<z = x2 + y2에서 x가 1에서 1+Δx, y가 2에서 2+Δy로 바뀔 때 이 함수의 최솟값에 해당하는 벡터 (Δx, Δy)를 구하는 방법>
함수 z를 x, y 각각에 관해 편미분하면 2x, 2y이다.
x = 1, y = 2였으므로 편미분한 함수에 해당 값을 대입하면 된다.
따라서, (Δx, Δy) = -η(2, 4)가 된다.
경사하강법 사용하기
함수 f(x,y)의 최솟값인 점을 찾는 방법 (이변수 함수의 경사하강법)
가장 가파른 기울기에 해당하는 방향으로 조금씩 이동하면서 점(위치)을 찾는다.
1번 절차를 반복해 그래프의 바닥, 즉 함수의 최솟값인 점에 도달하는 것을 확인한다.
신경망에서의 경사하강법
신경망의 비용함수가 최솟값이 되도록 하는 파라미터(가중치와 편향)를 모두 미분해서 결정하는 것은 매우 어렵기에 '경사하강법'을 신경망에서 비용함수의 최소화 방법으로 사용한다.
미분 가능한 함수 f(x1, x2, ... , xn)에서 변수에 차례로 x1+Δx1, x2+Δx2, ... , xn+Δxn이라고 작은 값을 더해 변화시켰을 때 함수 f가 최솟값이려면 다음 함수가 성립한다.
(η는 작은 값을 갖는 양의 상수) 이때, (∂f/∂x1, ∂f/∂x2, ... , ∂f/∂xn)을 함수 f의 '기울기'라고 한다.
<64개의 학습 데이터를 가진 '필기체 숫자 식별 신경망'에 적용한 예시>
비용함수 CT = C1 + C2 + ... + C64를 위의 경사하강법의 기본식에 대입하면 다음처럼 표현할 수 있다.
w, b는 가중치와 편향을 나타내며, 양의 상수 η는 학습률이다.
위의 식을 이용하면 컴퓨터에서 CT가 최솟값이 되는 가중치 및 편향을 계산할 수 있다.
현재 변수의 위치(w211, ... , w311, ... , b21, ... , b31, ...)에 위 식의 좌변에서 구한 변위 벡터를 더해 새로운 위치(w211+Δw211, ... , w311+Δw311, ... , b21+Δb21, ... , b31+Δb31, ...)를 구하는 계산을 반복하여 최솟값이 되는 가중치 및 편향을 계산할 수 있으며, 이는 각 파라미터를 모두 미분해서 결정하는 방법과 비교했을 때 컴퓨터가 계산하기 쉽다.
위 식을 계산하는 방법은 두 가지가 있다.
먼저, 복잡한 계산을 수행할 경우 아래와 같다.
미분 지옥
정해야 할 파라미터(가중치와 편향)가 47개라면, 위 식에서의 기울기 성분도 47개가 된다.
다수의 기울기 성분을 계산하는 것은 어려운 일이다.
<기울기 성분 중 하나인 ∂CT/∂w211 계산 예시>
k 번째 이미지에서 얻은 출력과 정답 데이터의 제곱오차 Ck를 편미분의 연쇄법칙에 대입해 변형해서 계산한다.
위의 식을
CT = C1 + C2 + ... + C64에 대입하면 다음과 같다.
각 미분의 항에 '=0'을 붙여 미분방정식으로 만들어 계산하면 편미분 결과를 가중치와 편향의 식으로 표현할 수 있으나 그 과정은 매우 복잡하고 어려운 작업이 될 것이다.