서포트 벡터 머신(Support Vector Machine, SVM) `서포트 벡터 머신(Support Vector Machine, SVM)`은 고차원 데이터의 분류 문제에 굉장한 성능을 보이는 모델이다. 또한 SVM은 2차 방정식으로 formulation을 한다. 즉, `2차 계획법(quadratic programming)`으로 문제를 해결한다. 대부분 문제를 풀때 training data에 대하여 분류 성능을 최대화하기 위해 노력한다. 그러나 training data에 너무 맞춰진 모델은 과적합의 위험이 있으며, 알려지지 않은 데이터에 대한 성능(generalization ability)도 좋아야 한다. 여기서 generalization ability와 fitting to the training da..
기억을 갖는 신경망 모델 RNN 기억을 전달하는 순환 신경망 시간과 공간적 순서 관계가 있는 데이터를 `순차 데이터(sequence data)`라고 부른다. 순차 데이터는 시공간의 순서 관계로 형성되는 문맥 또는 `콘텍스트(context)`를 갖는다. 현재 데이터를 이해할 때 앞뒤에 있는 데이터를 함께 살펴보면서 콘텍스트를 파악해야 현재 데이터의 역할을 이해할 수 있다. 인공 신경망이 데이터의 순서를 고려하여 콘텍스트를 만들려면 데이터의 순차 구조를 인식할 수 있어야 하고, 데이터의 콘텍스트 범위가 넓더라도 처리할 수 있어야 한다. 이런 점들을 고려하여 만든 인공 신경망이 바로 `순환 신경망(RNN: Recurrent Neural Network)`이다. 순방향 신경망이나 컨벌루션 신경망과는 다르게 순환 ..
순환 신경망 학습 학습이란 데이터를 통해 parameters를 추정한다는 것을 의미한다. 순환 신경망은 t시점까지의 과거 정보를 활용하여 y를 예측하게 되는데, 학습 대상이 되는 파라미터는 3가지이다. 첫 번째는 t 시점의 데이터를 반영한 W_xh 가중치, 두 번째는 t 시점 이전의 정보를 반영하는 W_hh 가중치, 그리고 t 시점의 y를 예측할 때 활용하는 W_hy 가중치이다. 해당 파라미터는 매 시점마다 공유하는 구조이며(parameter sharing), 매 시점 파라미터를 구성하는 값이 같다. 또한 최적의 W는 W를 매 시점 적용했을 때 Loss가 최소가 되는 W이다. hidden state와 예측값은 다음과 같이 계산된다. 순환 신경망이 3가지의 가중치를 추론하는 학습과정은 다음과 같다. Los..
시계열 데이터 예측 분석 방법론 트렌드 `시계열 데이터(Time Series Data)`란, 시간의 흐름에 따라 순서대로 관측되어 시간의 영향을 받게 되는 데이터를 말한다. 이러한 시계열 데이터에는 `시계열 단변량 데이터(Univariate time series data)`, `시계열 다변량 데이터(Multivariate time series data)`, `시계열 이미지 데이터(Time series image data)` 등이 있다. 전통 통계 기반 시계열 데이터 분석 방법론 이동평균법(Moving average) 지수평활법(Exponential smoothing) ARIMA(Autoregressive integrated moving average) 모델 SARIMA(Seasonal ARIMA) 모델 ..
랜덤 포레스트 모델 배경 - 앙상블 `랜덤 포레스트(Random Forest)`는 앙상블 기법의 하나의 예이다. `앙상블(ensemble)`이란, 여러 Base 모델들의 예측을 다수결 법칙 또는 평균을 이용해 통합하여 예측 정확성을 향상시키는 방법을 말한다. 앙상블 모델은 Base 모델들이 서로 독립적이며, Base 모델들이 무작위 예측을 수행하는 모델보다 성능이 좋은 경우 Base 모델모다 우수한 성능을 보여준다. 앙상블 모델의 오류율은 다음과 같은 식으로 나타낸다. 랜덤 포레스트 모델은 `의사결정나무(decision tree)모델`을 Base 모델로 사용한다. 의사결정나무모델은 다음과 같은 이유로 Base 모델로써 활용도가 높다. Low computational complexity : 데이터의 크기가..
의사결정나무 모델 데이터에 내재되어 있는 패턴을 변수의 조합으로 나타내는 예측/분류 모델을 나무의 형태로 만드는 것 질문을 던져서 맞고 틀리는 것에 따라 우리가 생각하고 있는 대상을 좁혀나감 스무고개 놀이와 비슷한 개념 데이터를 2개 혹은 그 이상의 부분집합으로 데이터가 균일해지도록 분할 분류 : 비슷한 범주를 갖고 있는 관측치끼리 모음 예측 : 비슷한 수치를 갖고 있는 관측치끼리 모음 `뿌리 마디(Root node)`, `중간마디(Intermediate node)`, `끝마디(Terminal node)`로 구성 예측나무 모델(Regression Tree) 예측나무 모델에 대하여 다음 3가지 방법은 같은 문제를 다르게 표현한 것이다. 예측나무 모델링 프로세스는 다음과 같다. 이제 분할변수(j)와 분할점(..
분류 및 예측을 위한 모델 분류 및 예측을 위한 모델은 크게 2가지가 있다. 첫 번째는 `Model-based Learning`이다. 이는 데이터로부터 모델을 생성하여 분류 및 예측을 진행하는 것으로 선형/비선형모델(linear regression, logistic regression 등), Neural Network, 의사 결정 나무, Support Vector Machine 등을 예로 들 수 있다. 두 번째는 `Instance-based Learning`이다. 이는 별도의 모델 생성 없이 인접 데이터를 분류 및 예측에 사용하는 것을 말한다. 대표적인 예로는 K-nearest neighbor, Locally weighted regression 등이 있다. Nearest neighbors KNN 알고리즘..
`이미지 분류(classification)`는 특정 대상이 영상 내에 존재하는지 여부를 판단하는 것이다. 이미지 분류에서 주로 사용되는 합성곱 신경망의 유형은 다양하다. LeNet-5 `LeNet-5`는 합성곱 신경망이라는 개념을 최초로 개발한 구조로, 현재 CNN의 초석이 되었다. LeNet-5는 `합성곱(convolutional)`과 `다운 샘플링(sub-sampling)`(혹은 풀링)을 반복적으로 거치면서 마지막에 완전연결층에서 분류를 수행한다. LeNet-5의 신경망 구조는 다음과 같다. (32 x 32 x 1) 크기의 이미지에 합성곱층과 최대 풀링층이 쌍으로 두 번 적용된 후 완전연결층을 거쳐 이미지가 분류되는 신경망이다. 이러한 신경망 구조를 파이토치를 통해 구현하면 다음과 같다. 입력 이미지..
Good Model 좋은 모델이란 두 가지로 나눌 수 있다. 첫 번째는 현재 데이터(training data)를 잘 설명하는 모델(Explanatory modeling)이며, 두 번째는 미래 데이터(testing data)에 대한 예측 성능이 좋은 모델(Predictive modeling)이다. 좋은 Explanatory model이란 training error를 minimize하는 모델이다. 타깃 값이 연속형일 경우 MSE 값을 minimize 하는 경우이다. 또한 좋은 Predictive Model이란 미래 데이터에 대한 expected error가 낮은 모델이다. 이 경우에는 Expected MSE값을 감소시켜야 한다. 여기서 Irreducible Error는 어떻게 할 방법이 없는 오류를 말하며,..
합성곱 신경망 합성곱층의 필요성 합성곱 신경망은 이미지 전체를 한 번에 계산하는 것이 아닌 이미지의 국소적 부분을 계산함으로써 시간과 자원을 절약하여 이미지의 세밀한 부분까지 분석할 수 있는 신경망이다. 만약 (3 x 3) 배열을 펼쳐서(flattening) 각 픽셀에 가중치를 곱하여 은닉층에 전달하는 경우 데이터의 공간적 구조를 무시하게 된다. 이것을 방지하기 위해 도입된 것이 합성곱층이다. 합성곱 신경망의 구조 합성곱 신경망은 합성곱층과 풀링층을 거치면서 입력 이미지의 주요 `특성 벡터(feature vector)`를 추출한다. 이후 추출된 주요 특성 벡터들은 완전연결층을 거쳐 1차원 벡터로 변환되며, 마지막으로 출력층에서 활성화 함수인 `softmax` 함수를 사용하여 최종 결과가 출력된다. 입력층..