총 10분 중 11분
2001
시즌 2개, 그리고 영화
시즌 2: 5화 “아일랜드”
출연: 이나영, 김민준, 김민정, 현빈
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
Data Science/Machine Learning 기계 학습 개요

기계학습(저자 오일석)을 참고했습니다.

기계학습이란

기계학습이란 기계를 학습시킨다는 맥락에서 여러 정의를 가진다. 기계가 주어진 데이터에 대해 올바른 분류, 예측이 가능하게끔 학습시키는 과정이다. 
기계학습이란 훈련집합을 이용해 데이터 생성 과정을 역으로 추청하는 문제다.

데이터 생성 과정이란, 샘플 x가 발생할 확률과 target y(결과)를 모두 알고 있는 상황을 말한다. 우리는 보통 샘플에 대해 결과값만 알거나 샘플만 가지고 결과값이 없다. 샘플이 어떠한 과정으로 데이터를 생성하는지 알면 모델은 정확한 데이터 예측 또는 가상 데이터 생성이 가능해진다.

기계학습이란 훈련집합에 없는 새로운 데이터, 테스트 집합에 대해 높은 성능을 보장하는 프로그램을 만드는 것이다.
즉, 일반화하는 작업이다. 

테스트 집합에 대해 높은 성능을 가지는 것을 일반화 능력이라고 한다. 
훈련집합 + 테스트 집합 = 데이터베이스

 
프로그램을 모델이라고 볼 수 있다. 모델은 선형, 비선형으로 크게 나뉘며 여러 개가 존재한다.  가장 단순한 모델은 직선 모델이다.

직선을 찍 그어서 원과 사각형을 분리해봐라

(a)는 선 하나로 ㅁ 와 ㅇ 가 분리된다. (b)는 선으로 ㅁ 와 ㅇ 를 분리할 수 없다.
특징 공간을 분류한 직선 y = wx + b 가 모델이다! 
여기서 x : feature, y : target , w : weigth, b : bias 으로 w, b가 매개변수다. 우리가 찾아야 할 값이란 뜻이다.
기계학습이란 가장 정확하게 예측할 수 있는, 최적의 매개변숫값을 찾는 작업이다.

매개변수는 업데이트를 거쳐 최적의 상태에 도달하게 되는데 이 작업을 학습, 훈련이라고 부른다. 

 

기계학습의 목표

높은 일반화 능력: 낮은 바이어스와 낮은 분산을 가진 예측기를 가지는 것이다.

  • 바이어스란, 데이터 생성 과정과 모델 사이의 차이를 의미한다. 즉, 학습한 데이터와 학습 결과 간 차이이다. 차이가 클수록 성능이 안좋다.
  • 분산이란, 학습 결과들에 대해 유사한 값을 지속해서 생성할 수 있느냐를 의미한다.

보통 bias와 variance는 tradeoff 성질을 가지므로 바이어스의 희생을 최소로 유지하면서 분산을 최대로 낮추는 전략을 쓴다.

Feature space

기계가 패턴을 학습할 입력값을 넣어줘야 하는데 이를 feature라고 한다.

이 책에서는 feature을 가로축으로 표현하고, (열 벡터)T로 표현한다. 출력값은 세로축으로 나타난다. 

feature 하나당 하나의 축으로 나타나며 하나의 차원을 가진다. 예를 들어, 웹사이트 문서에서 단어의 발생 빈도를 조사한 데이터베이스가 있다. 여기에 총 54,877개에 대한 단어에 대한 빈도를 조사했다면 54877차원의 특징 공간이 된다.
d차원의 데이터 x = (x1, x2, x3 .. xd)T는 모델 y = w1x1 + w2x2 + ... + wdxd + b 로 표현할 수 있고, 여기서 매개변수는 (w1, w2, ..., wd) 와 b 로 총 d+1 개를 가진다. 

모델이 2차 곡선인 경우에는 d^2 + d + 1 개의 매개변수를 가진다. 
매개변수가 많으면 추정해야 할 값이 많은 것이기 때문에 모델이 복잡하고 계산량이 많이 필요해진다. 

 

특징 공간의 변환

앞서서 우리는 XOR gate를 분류하지 못하는 선형 모델을 보았다. 모델을 복잡하게 해서 정확도를 높일 수도 있지만 특징 공간 자체를 변환하면 간단한 모델로도 정확도를 높일 수 있다. 다시 말하면, XOR gate는 특징 공간 변환을 이용해 직선 모델로 100% 정확도를 이룰 수 있다. 이처럼 학습에 유리한 특징 공간을 찾는 작업을 중요하게 취급하는데 이를 표현 학습이라고 한다. 
- 비지도 학습의 과업으로 특징 변환 알고리즘 뿐만 아니라 깊은 신경망의 은닉층 변환까지 포괄하여 표현학습이라고 부른다. 

표현 학습: 특징 공간 변환

 
고차원 데이터에서는 표현 학습 알고리즘을 사용해야 하는데 여러 은닉층을 거쳐 저급 -> 고급 특징을 추출하는 과정이다.
ㅁ - ㅁ - ㅁ - ㅁ 네모 하나 당 층이라고 생각하면 왼쪽 은닉층에서 저급 특징(흔한, 공통 특징)을 추출하고 오른쪽으로 갈수록 고급 특징(저급 특징이 결합한 얼굴 등)을 추출하는 계층적인 특징 추출 기능을 이용한다. 
각 차원에서는 동일한 알고리즘, 수식을 이용하므로 저차원에서 고안한 식은 고차원에서 그대로 적용할 수 있다. 
데이터 발생은 작은 부분 공간에서 일어나고, 발생하는 데이터 변화에 일정한 규칙이 있다는 가정에서,
데이터 분포를 잘 표현하는 새로운 특징 공간으로 변환할 수 있다면 간단한 모델로도 높은 성능을 얻을 수 있다고 말한다. 
 

데이터 가시화

가시화하려면 차원이 작아야 한다. 이를 위해 주성분 분석을 진행합니다. (나중일)
데이터 가시화로 데이터 분포 확인 -> 모델 선택 -> 학습 알고리즘 선택 등 중요한 의사결정에 도움을 받을 수 있다. 
 

목적 함수, 비용 함수

objective function, cost function 
앞서서 우린 w, b를 매개변수로 가지고, 최적의 매개변숫값을 찾기 위한 과정이 기계학습이라고 했다. 
매개변수를 Θ = (w, b)T 로 표현하고, 이를 입력값으로 갖는 함수를 J(Θ) : cost function 이라고 한다. 가중치와 바이어스는 크면 분산이 커지거나, 학습 데이터와 차이가 많이 난다는 뜻이기 때문에 목적 함수를 최소화하는 최적의 해를 찾아야 한다. 
보통은 찾을 때까지 대입하며 업데이트하고(수치적), 데이터 시각화 등을 통해 최적의 해를 유도하는 분석적 방법을 이용할 수도 있다. 

수치적 방법 Numerical method

목적함숫값이 작아지는 방향을 찾아 매개변숫값을 조정하는 일을 반복한다. 조정은 보통 미분으로 한다. 이처럼 작은 개선을 반복해 최적의 해를 찾아간다. 

난수를 생성해 초기해 o 설정
t = 1
while (j(o) 가 0 이랑 거리가 있을 동안 )
	j 가 작아지는 방향 gradient 을 구함 // 미분
    매개변수 업데이트
    t = t + 1
    
o = ot

분석적 방법 Analytical method

목적함수를 미분해 나온 도함수 = 0 을 전개해 최적해 구하는 식을 유도한다. 유도한 식에 훈련 집합 샘플을 대입해 한꺼번에 최적해를 구한다.
 

Overfitting, Underfitting

과잉적합은 주어진 데이터 분포와 비교해 모델 용량이 너무 크다보다 아주 작은 잡음까지 수용해, 새로운 점에 대해 적절한 대처가 되지 않는 것을 말한다. 
과잉, 과소 적합은 모두 훈련 집합과 테스트 집합 성능 차이가 커서 나타나는 문제로 일반화 능력이 낮다고 볼 수 있다.
이를 bias, variance 측면에서 바라보면 높은 바이어스를 가지거나 큰 분산을 가진 상황이라고 표현할 수 있다. 
 

Validation set & Cross-Validation -> 모델 선택

일반화 성능을 높이는 방법은 많은 데이터다. 데이터 수집은 비용이 많이 들기 때문에 우리는 있는 훈련 집합을 잘 쪼개서 활용할 것이다. 
ㅁ ㅇ 를 분리하기 위해 직선을 쓸지, 2차 곡선을 쓸 지 모델 선택이 필요하다. 이를 위해서 테스트 집합이 아닌 모델 성능 평가용 데이터 집합이 필요하다. 이를 검증 집합이라고 한다. 훈련 집합에서 일정 비율로 분리해서 사용하며 모델을 비교하는 데 사용된다. 학습 시킨 모델에 대해 검증 집합으로 성능을 측정한다.
 
앞서서 데이터 학습시킬 양도 부족한데 검증할 데이터랍시고 훈련 데이터 양이 더 줄어들면 곤란하다. 해서 교차검증 방법을 이용한다.
k-fold cross validation

훈련 집합을 n 개로 등분한다. 
for ( each model in a model set )
	for ( i = 1 to n )
    	train n-1 model expect for ith train set
        validate performance with ith train set
    model's performance = average of the performance
select a model with the best performance
evaluate the performance of a selected model

 
부트스트랩을 이용한 모델 선택

  1. 부트스트랩은 훈련 집합 x에서 pn개 샘플을 뽑아 새로운 훈련 집합 x'를 구성한다. 이때 샘플은 중복을 허용한다. 
  2. x'로 모델을 학습시킨다.
  3. x-x' 를 검증 집합으로, 학습된 모델의 성능을 측정한다. 
  4. 일정 횟수(T)만큼 성능을 측정하면 이를 평균내서 모델의 성능으로 취한다. 
  5. 가장 높은 성능을 보인 모델을 선택한다. 
  6. 테스트 집합으로 선택된 모델의 성능을 측정한다. 

 
위 과정에서 중요한 것은 처음 모델 집합이다. 가능한 모델은 수없이 많다. (신경망, 강화 학습, SVM, 등등 ,,, 신경망 중에는 피드백 없는 MLP 가 있고 피드백이 있는 순환 신경망도 있다.) 실제로는 경험 지식을 통해 큰 틀 안에서 세부 모델을 선택하는 전략을 취한다. 이는 우리가 선택한 모델에 데이터 생성 과정을 끼워 맞추는 과정이라고도 묘사된다. 
현대 기계 학습은 용량이 충분히 큰 모델을 선택한 후, 선택한 모델이 정상을 벗어나지 않도록 여러 규제 기법을 적용해 일반화 성능을 끌어올린다. 
 

규제

높은 일반화 성능을 가지기 위해 용량이 큰 모델에 여러 규제를 적용한다고 했다. 규제의 방법에는 데이터 확대, 가중치 감쇠, 앙상블 등 여러 기법이 있다. 

데이터 확대
데이터가 많으면 일반화 능력이 좋다. 근데 데이터 수집이 비용이 들다보니 훈련 집합에 있는 샘플을 변형해 인위적으로 데이터의 양을 늘려 사용한다. 

가중치 감쇠 weight decay

 
Overfit 그래프를 보면 굴곡이 엄청나다. 이를 곡률(curvature)이 크다고 한다. 이는 매개변수 값이 너무 커서 정상을 벗어난 상황이다. 
이처럼 가중치가 너무 크면 일반화 능력이 떨어진다. 이를 막기 위해 기존 목적함수에 새로운 항을 추가한 꼴이다. 

새로운 항(사진에선 첫 번째 항)은 가중치 크기를 나타내는데, 가중치가 클수록 큰 값을 가진다. 최적화 알고리즘은 두 항의 합을 최소화하는 방향으로 학습을 진행하므로 결국 오류가 적으면서 계수가 작은 해를 찾아준다. 

Data Science/Machine Learning 기계 학습 개요