"기계학습은 최적화 과정이다." 라고 말해도 될 정도로
기계학습은 최적화를 많이 사용한다.
주어진 데이터를 가지고 최적화 문제를 어떻게 공식화할 것인가,
최적화 공식을 어떻게 풀어 최적의 해, 즉 목적함수를 최소로 하는 점을 찾은 것인가가 기계학습의 핵심 주제이다.
기계학습에서의 최적화는
순수 수학에서와 달리,
잡음이 심한 열악한 데이터를 잘 이용하여 미분을 계산하는 과정이 매우 중요
하다.
이 절에서는 기계 학습이 가장 널리 사용하는,
데이터로 미분을 계산하면서 최저점을 찾아가는 경사하강법(Stocatic Gradient Descent, SGD)를 공부
한다.
훈련집합은 아주 높은 차원에 정의된 매우 희소한 데이터에 불과하고
이런 데이터를 가지고 참인 확률분포를 구하는 일은 불가능하다.
이러한 이유 때문에 기계 학습은 적절한 모델을 선택하고 목적함수를 정의하며,
모델의 매개변수 공간을 탐색하여 목적함수가 최저가 되는 최적점을 찾아내는 전략을 사용한다.
➡️ '특징 공간에서 해야 하는 일을 모델의 매개변수 공간에서 하는 일로 대치'한 셈이다.
모델의 매개변수 공간은 특징 공간보다 수 배 ~ 수만 배 넓다.
예를들어, Iris data를 인식하기 위한 퍼셉트론의 경우 특징 공간은 4차원이지만,
매개변수는 총 12개로 매개변수 공간은 12차원이다.
전역 최적해에 가까운 지역 최적해
를 찾고 만족하는 경우가 많다.목적함수 를 최소로하는 최적해 를 찾는 것.
즉, =
미분
이다.멈춤 조건
으로 정의.미분이란,
어떤 점에서의 기울기, 즉 가 미세하게 증가하였을 때 함수값의 변화율을 알려준다.
함수 의 1차 미분 == 함수 의 1차 도함수 == 는 다음과 같이 정의한다.
함수 의 2차 미분 == 함수 의 2차 도함수 == 는 다음과 같이 정의한다.
- 방향으로 가면 최저점을 만난다. (이는 경사 하강법의 핵심 원리이다)
➡️ = 이다.
따라서 <##최적화 문제해결> 에서의 그림을 다음과 같이 나타낼 수 있다.
분석적 방법
: 고등학교 수학에서 을 풀면 최저점을 구할 수 있다는 사실을 배웠다.
이와 같이 수식을 풀어 최저점을 찾는 방법을 분석적 방법이라고 한다.
수치적 방법
: 만큼 조금씩 이동하는 일을 반복하여 최저점을 찾는 접근방법을 수치적 방법이라고 한다.
분석적 방법은 차원이 낮고 목적함수가 단순한 경우에 적용할 수 있는데,
기계학습은 이러한 조건을 벗어나므로 수치적 방법을 사용한다.
2개의 변수 로 함수가 정의되므로, 1차 도함수도 2차원이다.
이러한 미분을 편미분(Partial Differentiation)
이라고 한다.
편미분은 변수 각각에 대해 독립적으로 미분하면 된다.
편미분의 결과
는 Vector 형태가 되는데, 이 벡터를Gradient
라고 한다.
편미분을 이용하여 다차원 공간에서의 최저점을 찾을 수 있다.
기계학습에서는 높은 차원에 비해 훈련집합의 크기가 작아 참인 확률분포를 구하는 일은 불가능하다.
따라서 기계 학습은
연쇄법칙(Chain Rule)
을 이용하여 합성함수의 도함수
를 구할 수 있다.
합성함수 가 있을 때, 도함수 는 다음과 같다.
➡️
합성함수 가 있을 때, 도함수 는 다음과 같다.
➡️
example
출력값이 [m * 1]인 다변수 함수 vector 의
[n * 1]인 입력 변수 vector 에 대한 편미분을 계산한 결과 나온,
[m * n] Matrix를Jacobian Matrix
라고 한다.
다변수 함수인 의
[n * 1]인 입력 변수 vector 에 대한이차 편미분
을 계산한 결과 나온,
[n * n] Matrix를Hessian Matrix
라고 한다.
함수 자체를 모른는 상황에서,
어떤 점 에서의 함숫값 와 미분 가 주어지고,
이웃한 점()에서의 함숫값을 추정해야 하는 상황이 있다.
➡️ Taylor Series는 이 문제를 해결해 준다.
Taylor Series는 다음과 같이 정의할 수 있다.
앞서 미분으로 알아낸 Gradient의 반대 방향으로 가야
최적해에 도달 할 수 있다는 것을 알 수 있었다.
다음과 같은 식을 이용하는 최적화 알고리즘을
경사 하강법(Gradient Descent Method)
라고 한다.
: Learning Rate
: Gradient
BGD
는 모든 샘플의 Gradient를 평균한 후 한꺼번에 매개변수를 갱신한다.SGD
알고리즘은 한 번에 샘플 하나의 Gradient를 계산하고 즉시 매개변수를 갱신한다.한 세대(epoch)
가 지났다고 말한다.새로운 epoch이 시작할 때마다 샘플의 순서를 섞어 알고리즘의 임의성을 투입
한다.