DEVELOPMENT 7

train, test, validation 데이터셋

모델을 생성할 때, 데이터셋은 정말 중요하다. 다음은 train,test,validation 3가지 데이터셋에 대한 설명이다. 1) train 데이터셋 모델을 학습시킬 때 사용하는 데이터셋이다. train 데이터가 많으면 많을수록 모델이 학습할 수 있는 데이터가 많아 똑똑해질 수 있다. 2) test 데이터셋 앞서 RandomForest, DNN, CNN 모델의 코드를 보면, train데이터와 test데이터를 나누는 것을 확인할 수 있다. train_set, test_set = train_test_split(xy_data, test_size=0.3, random_state=123) 위 코드에서 test_size가 test데이터셋의 크기를 지정해주는 부분이다. 0.3이 의미하는 것은 총 데이터셋에서 tra..

DEVELOPMENT/AI 2020.12.30

딥러닝(DL) - CNN 모델

CNN(Convolutional Neural Network)이란? 데이터의 특징을 추출하여 이 특징들의 패턴을 파악하는 구조이다. CNN 알고리즘은 Convolution과정과 Pooling과정을 통해 진행되며, Convolution Layer와 Pooling Layer를 복합적으로 구성하여 알고리즘을 만든다. 1) Convolution Convolution은 아래 그림처럼 데이터의 특징을 추출하는 과정이다. - 연산 예시 : (1*1)+(1*0)+(1*1)+(1*0)+(1*1)+(0*0)+(1*1)+(0*0)+(0*1)=4 연산 결과, 5x5 이미지에서 Filter 하나가 3x3 크기의 이미지를 생성하게 된다. 만약 Filter가 3개라면 3x3 이미지 3개가 생성되는 것이다. Convolved Feat..

DEVELOPMENT/AI 2020.12.30

딥러닝(DL) - DNN 모델

DNN(Deep Neural Network)이란? 입력층(input layer)과 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)들로 이루어진 인공신경망이다. DNN은 분류 및 수치 예측을 하기 위한 것으로, 특히 이미지 트레이닝이나 문자인식과 같은 분야에서 매우 유용하게 쓰이고 있다. 대표적인 DNN 응용 알고리즘에는 CNN, RNN, LSTM, GRU 등이 있다. DNN 구현 from tensorflow.keras import layers from tensorflow.keras import models from tensorflow.keras import metrics from tensorflow.keras import losses from tensorflow.kera..

DEVELOPMENT/AI 2020.12.30

머신러닝(ML) - RandomForest 모델

RandomForest란? 앙상블 머신러닝(ensemble machine learning) 모델로 여러개의 결정트리(decision tree)가 모여서 만들어진 것이다. 원리 수많은 feature를 기반으로 하나의 결정트리를 만든다면 트리의 가지가 많아질 것이고, 이는 오버피팅이 발생할 확률이 높다. 하지만 랜덤포레스트는 여러개의 feature 중 랜덤으로 몇가지의 feature를 선택해서 여러개의 결정트리를 만들 수 있다. 이렇게 만들어진 여러 결정트리들이 내린 예측 값들 중 가장 많이 나온 값을 최종 예측값으로 결정하게 된다. 즉, 하나의 결정트리를 만드는 것이 아니라 여러 개의 작은 결정트리를 만드는 것이다. 여러 개의 작은 결정트리가 예측한 값들 중 가장 많은 값(분류일 경우) 혹은 평균값(회귀일..

DEVELOPMENT/AI 2020.12.29

크롬 익스텐션 Safe Browsing 소개

AI를 이용해 브라우저 단에서 클라이언트 사이드 웹 공격을 탐지하고, 차단하는 크롬 익스텐션 프로그램이다. 탐지할 수 있는 공격은 스크립트 기반 웹 공격(xss, csrf), 브라우저 자체 취약점, 피싱 공격이며 각 모델이 웹 사이트를 악성으로 탐지했을 시, 사용자에게 alert 창으로 차단 여부를 물어본다. 또한, 부가 기능으로 사용자별 화이트리스트를 설정해 줄 수 있다. 본 크롬 익스텐션 프로그램은 클라이언트 단에서 동작해야 하기때문에 코드가 모두 html과 js로 이루어져 있다. chrome.google.com/webstore/detail/safe-browsing/nlabjhdjaeiajfgkpafhmdhnfeckpeol?hl=ko Safe Browsing BOB consulting track A!..

chrome.webRequest API로 request 차단하기

chrome.webRequest API로 request를 차단하기 위해 chrome.webRequest.onBeforeRequest 이벤트를 이용한다. chrome.webRequest.onBeforeRequest는 request가 발생하려고 할 때 동작하는 것으로, TCP 연결이 이루어지기 전에 전송되며 request를 취소하거나 리다이렉션하는데 사용한다. chrome.webRequest API의 자세한 정보는 개발자 도구에서 볼 수 있다. chrome.webRequest.onBeforeRequest 이벤트의 코드 구조는 다음과 같다. 추가로 이벤트에서 request를 차단하기 위해서는 확장 프로그램 manifest.json 파일의 permission부분에 webRequest와 webRequestBloc..

chrome extension 만들기 (hello, world 띄우기)

chrome extension(확장 프로그램)을 만드려면 먼저 manifest.json 파일이 필요하다. - manifest.json : 확장 프로그램의 이름과 버전과 같은 정보를 기재하는 파일로, 확장 프로그램을 구성할 html 페이지나 이미지, 권한 등을 조정하게 된다. 개발자 사이트에서 더 자세한 내용을 볼 수 있다. 다음은 hello,world를 띄우는 확장 프로그램을 만들기 위한 manifest.json이다. { // Required "manifest_version": 2, "name": "test_hello", "version": "1.0.0", // Recommended "description": "Print Hello, World! message", // Pick one (or none) ..