어떤 하나의 작업은 잘하나, 모두 잘하지 못함 (현재의 인공지능 수준), Good at performing a single task, Works within a very limited context
강인공지능 (Artificial General Intelligence, AGI, "weak AI")
as smart as a human (아직 구현은 조금 멀었다)
슈퍼인공지능(Artificial SuperIntelligence, ASI)
much smarter than the best human brains (공상과학단계)
학습이란?
실제 정답과 예측 결과 사이의 오차(Loss, Cost, Error)를 줄여나가는 최적화 과정
Model fitting
데이터를 가장 잘 표현하는 모델을 찾는 과정
데이터를 가장 잘 설명하는 모델을 어떻게 찾을 건가?
1. 초기 모델에 데이터 넣기
2. 결과 평가
3. 결과를 개선하기 위해 모델을 수정 (모델 내부의 Parameter 수정, 모델 종류의 변경 등)
2. 머신러닝 핵심 개념 이해
머신러닝
A field of artificial intelligence that gives computers the ability to learn from data, without being explicitly programmed. - Arthur Samuel, 1959 -
만약 작업 T에 대해 기준 P로 측정한 성능이 경험 E로 인해 향상되었다면, 그 프로그램은 작업 T에 대해 기준 P의 관점에서 경험 E로부터 "배웠다"라고 말할 수 있다. - Tom M. Mitchell, 1997 -
머신러닝의 분류 (Supervised, Unsupervised, Reinforcement)
지도학습 (Supervised learning)
input data에 대한 정답을 예측하기 위한 학습 (Function approximator)
데이터에 정답(Label, Target)이 존재함
output 형태에 따라 회귀 분석과 분류 분석으로 나눌 수 있음
대표 알고리즘 : Linear/Logistic regression, Decision tree, Bayesian classfication
Numerical, Categorical
비지도학습 (Unsupervised learning)
input data 속데 숨어있는 규칙성을 찾기 위해 학습 (→ (shorter) Description)
데이터에 정답(Label, Target)이 존재하지 않음
군집분석, 차원축소(PCA)
대표 알고리즘 : K-means clustering, Nearest Neighbor clustering, t-SNE, EM clustering, PCA, Linear Discriminant Analysis(LDA)
강화학습 (Reinforcement)
Trial & Error를 통한 학습 (→ Sequential decision making)
주위 환경과 자신의 행동 사이의 반복적 상호작용을 바탕으로, 최종적으로 얻게 될 기대 보상을 최대화하기 위한 행동 선택 정책(Policy)을 학습
연속적인 단계마다 상태(State)를 인식하고, 각 상태에 대해 결정한 행동(Action)들의 집합에 대해, 환경으로부터 받는 보상(Reward)을 학습하여, 전체 행동에 대한 보상을 최대화하는 행동 선택 정책(Policy)을 찾는 알고리즘
3. Capacity & Overfitting
Model's Capacity
현실세계의 문제를 모델이 얼마나 잘 포용할 수 있는지에 대한 척도
용량, 포용력
X data : 독립변수
Y data : 종속변수(label(class), target(Reg & class))
Feature : X data
Attribute, Dimension, Column : X & Y data
Capacity의 극대화 → Overfitting 발생 → Generalization error(일반화 성능 낮아짐) 증가 → 새로운 데이터에 잘 대응하지 못함
4. Overfitting & Generalization
새로운 데이터들에 대해서도 좋은 결과를 내게 하려면?
Cross validation (교차 검증)
데이터를 3개의 그룹으로 나눈다.
1) 60% Training data로 모델의 학습시킨다.
2) 20% Validation data로 모델(or 하이퍼파라미터)을 최적화/선택 한다.
3) 20% Test data로 모델을 평가(Test only, no more tune)한다.
* Validation과 Test의 차이
Validation : 여러 후보 모델 중 가장 좋은 결과를 내는 모델을 선택하는 과정
Test : 선택한 모델의 실제 정확도를 평가하는 것 (estimate the accuracy)
Validation과 Test를 나누지 않고, Training과 Test로 7:3으로 나누는 경우도 있다.
100 ~ n * 10000 data → 6:2:2 or 7:3
more than n*100,000 data→ 98:1:1 or 99:0.5:0.5.....
그 외 활용되는 방법들
(Stratified) K-Fold cross validation (후보 모델 간 비교 및 선택을 위한 알고리즘)
Stratified : 층화 (이 옵션을 키면 비율 유지가 된다. 예를 들어 만약 class 0, 1을 분류하는 문제에서 라벨 비율이 class 0은 80%, 1은 20%로 치중되어 있더라도, Stratified 옵션을 키면 K-Fold 할 때 비율을 잘 유지 시켜준다.)
K값은 보통 5, 10 정도를 많이 사용함
Cost Function에 Regularization term 추가 (L1 or L2, weight up = cost up)
Drop-out & Batch Normalization (NN) 등
Training data를 많이 확보(Data augumentation & Test time augumentation)하거나 모델의 Feature를 줄이는 것도 좋은 방법