BOAZ/데이터 분석 9

6. GAN and Reinforcement Learning

GAN은 생산적 적대 신경망(Generative Adversarial Network)의 약자이며 비지도학습(Unsupervised Learing) 입니다. Generator가 위조 데이터를 만들면 Discrminator가 진짜인지 가짜인지 구분을 하여 판별기를 속일 수 있도록 Generator를 훈련해야 합니다. Discriminator는 실제 데이터로 훈련을 진행해야 합니다. Loss function $min_Gmax_D \, V(D,G) = E_{x ~ p_{data}}(x) [log \, D(x)] + E_{z~p_z}(z)[log(1 - D(G(z)))]$ 실제 데이터 분포에서 샘플링한 데이터 x와 임의의 데이터 분포에서 샘플링한 데이터 z D(x)는 1이 나오도록 학습하고 D(z)는 0이 나오도..

5. RNN and LSTM

일반적인 feed forward 신경망은 흐름이 단방향이라 시계열 데이터의 성질을 충분히 학습하기 어렵습니다. 다음과 같이 문장 내 단어 순서가 무시되거나 아니면 맥락의 크기에 비례해 가중치 매개변수가 늘어나게 됩니다. 이러한 문제를 해결하기 위해 RNN(순환 신경망)을 통해 과정의 정보를 기억하는 동시에 최신 데이터를 갱신하는 신경망이 등장하게 됩니다. 입력은 $(x_t, h_{t-1})$이고 각 t일 때 RNN의 입력은 $x_t$와 한 시각 전의 RNN 계층으로부터의 출력인 $h_{t-1}$로 이루어져 있습니다. 출력은 $h-t = tanh(h_{t-1}W_h + x_tW_x + b)$으로 현재 출력과 그 이전의 출력을 통해 출력이 결정됩니다. (과거의 정보를 기억한다.) 이러한 RNN은 Long-T..

4. CNN

Convolution Neural Network란 시각적 이미지 분석에서 가장 일반적으로 사용되는 인공신경망의 한 종류로, 입력 이미지로부터 특징을 추출하여 입력 이미지가 어떤 이미지인지 클래스를 분류합니다. - 다양한 이미지 처리에 유용한 알고리즘이고 기존에 image 인식에 사용하던 Affine 계층에 바로 이미지를 넣는 FCNN이 가지고 있는 한계를 개선하기 위해 개발되었습니다. FCNN은 input image를 행으로 flatten 하여 이것을 입력으로 넣어주는데 이때 이미지의 형상이 flatten으로 소실되어 픽셀들 간의 상관관계를 잃게 된다는 문제가 있습니다. CNN의 구조는 FCNN의 문제점을 해결하기 위해 앞부분에 convolution layer와 pooling layer를 추가한 방법입니..

3. Ensemble and Random Forest

앙상블(Ensemble)은 서로 다른 여러 모델의 예측 결과를 바탕으로 새로운 모델을 만들어 더 정확한 예측 결과를 도출해내는 방법을 말합니다. 다수의 모델의 결과를 통해 예측을 진행하기에 단일 모델보다 신뢰성이 높은 예측 결과를 얻을 수 있습니다. 앙상블 1. 보팅(Voting) 보팅은 서로 다른 알고리즘의 예측 결과를 투표하여 최종 예측 결과를 선정하는 방식입니다. 하드 보팅은 다수의 분류기가 예측한 결괏값을 최종 결과로 선정하는 방법이고 소프트 보팅은 모든 분류기가 예측한 레이블 값의 결정 확률 평균을 구한 뒤 가장 확률이 높은 레이블 값을 최종 결과로 선정합니다. - 보팅은 다음과 같은 하이퍼 파라미터를 가지고 있습니다. 1. estimators: 보팅에 사용될 여러 classifier 객체를 튜..

2. Decision Tree and SVM

의사결정나무(Decision Tree)는 머신러닝의 학습 알고리즘으로 방정식 형태가 아닌 트리 형태의 목적함수를 가집니다. 위 사진처럼 트리 형태로 데이터를 분류하는데 각각의 질문이 담긴 부분을 node라고 하며 해당 질문에 True, False를 나타내 주는 화살표를 edge라고 하며 최상위 node를 제외한 층수를 depth라고 합니다. 위에 결정트리는 독립변수가 수치형으로 이루어진 트리이고 범주형으로 이루어진 형태도 존재합니다. 첫 부분에서 결정트리는 방정식 형태가 아니라고 했었는데 그 이유는 이전의 선형회귀 처럼 가설 함수가 $Y = Wx + b$ 형태가 아니라 True/False로 데이터를 나눠서 점점 작은 형태의 가설 함수를 가지기 때문입니다. - 모든 데이터가 단일 클래스로 분할되는 순간 학..

[핸즈온 머신러닝] 3장

성능 측정 classification에 대한 평가를 진행할 때 사용하는 방법들에 대해 알아보겠습니다. 1. k-fold Cross Validation 분류를 진행하고 나서 성능 측정을 하는 방법 중에는 k-fold cross validation이 존재하는데 훈련 세트를 k개의 폴드로 나누고 각 폴드에 대해 예측을 만든 다음 평가하기 위해 나머지 폴드를 훈련시킨 모델에 사용하는 방법입니다. 2. Precision/Recall and Confusion Matrix 분류기의 성능을 평가하는데 오차 행렬(Confusion Matrix)로 각각의 분류 결과를 알 수 있습니다. 이런 오차 행렬의 정보를 요약한 지표가 존재하는데 그것이 정밀도(Precision)와 재현율(Recall)입니다. 정밀도는 $\frac {..

1. Classification and Regression

분류(Classification)는 data set(x, y)를 가지고 학습을 진행합니다. 그 이후 새로운 데이터 x'의 범주 y'을 예측하면 됩니다. 분류는 스팸메일, 게임 어뷰저, 신문기사 분류 등등에 사용됩니다. 특징으로는 Lable로 구분되는 값으로 값이 연속적이지 않습니다. 회귀(Regression)는 data set(x, y)를 가지고 x의 숫자 y를 예측하는 문제를 말합니다. 주가 예측, 경제 성장률 예측 등등에 활용되며 값이 연속적인 실수라는 특징이 있습니다. Regression 위에서 말했듯이 회귀 문제는 주어진 데이터를 학습해 연속적인 예측값을 출력하는 모델입니다. 모델이란 해당 데이터들을 가장 잘 표현해줄 것 같은 가설(수학식으로 표현 되는 함수)로도 생각할 수 있습니다. $H(x) ..

[핸즈온 머신러닝] 2장 머신러닝 프로젝트 처음부터 끝까지

실제로 작업할 때 전체적인 흐름을 보자면 1. 큰 그림 보기 2. 데이터 구하기 3. 데이터로부터 통찰을 얻기 위해 탐색, 시각화 4. 머신러닝 알고리즘을 위해 데이터 준비 5. 모델을 선택하고 훈련 6. 모델을 상세하게 조정 7. 솔루션 제시 8. 시스템 런칭, 모니터링하면서 유지 보수 첫 번째 큰 그림 보기 예시를 봐보겠습니다. - 캘리포니아 인구조사 데이터를 사용해 캘리포니아의 주택 가격 모델 만들기 - 이 데이터로 모델을 학습시켜서 다른 측정 데이터가 주어졌을 때 그 구역의 중간 주택 가격을 예측해야 한다. - 문제를 정의하고 성능 측정 지표를 선택한다. 문제 정의에서는 비즈니스의 목적이 정확이 무엇인지, 현재 솔루션 구성이 어떻게 되는지, 어떤 머신러닝으로 문제를 해결할 것인지 이렇게 크게 3가..

[핸즈온 머신러닝] 1장 한눈에 보는 머신러닝

머신러닝이란? 머신러닝이란 명시적 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구분야입니다. 머신러닝을 사용하는 이유는 크게 4가지 정도가 있습니다. 1. 새로운 규칙을 일일이 추가하는 방식에서 벗어나게 해 줍니다. 2. 전통적인 방식으로는 해결방법이 없는 복잡한 문제를 풀게 해 줍니다. 3. 머신러닝 시스템은 새로운 데이터에 적응할 수 있으므로 유동적이다. 4. 복잡한 문제와 대량의 데이터에서 통찰을 얻게 해 줍니다. 기존의 전통적인 방법은 아래 두 개의 단계를 반복하는 과정을 가지고 1단계: 패턴 파악(주로 어떤 패턴이 나타나는가) 2단계: 각 패턴 감지 알고리즘 작성(규칙을 직접 작성 및 성능 향상) 머신러닝 기반으로 진행하게 된다면 - 패턴을 감지하고 그 특징이 좋은 기준인지 자동으로 ..

반응형