역 전파 알고리즘
📂머신러닝역 전파 알고리즘
이 글은 역전파 알고리즘의 원리를 수학 전공자가 이해하기 쉽도록 작성되었다.
표기법

위 그림과 같은 인공 신경망이 주어졌다고 하자. x=(x1,x2,…,xn0)는 입력input, yjl는 l번째 층의 j번째 노드, y^=(y^1,y^2,…,y^n^)는 출력output이다.
L∈N은 은닉층hidden layer의 개수이고, n=(n0,n1,…,nL,n^)∈NL+2의 성분은 순서대로 입력층, L개의 은닉층, 출력층의 노드의 수를 의미한다. 또한 편의상 0번째 은닉층은 입력층을 의미하고, L+1번째 은닉층은 출력층을 의미한다고 하자.
wjil은 l번째 층의 i번째 노드와 그 다음 층의 j번째 노드를 연결하는 가중치를 나타낸다. 그러면 각 층에서 다음 층으로의 전파는 아래의 움짤과 같이 일어난다.

여기서 ϕ는 임의의 활성화 함수이다. l번째 층에서 다음 층의 j번째 노드로 전달되는 선형결합을 vil로 표기하자.
vjlyjl+1=i=1∑nlwjilyil=ϕ(vjl)=ϕ(∑i=1nlwjilyil)
이를 정리하면 다음과 같다.
기호 | 의미 |
---|
x=(x1,x2,…,xn0) | 입력 |
yjl | l번째 층의 j번째 노드 |
y^=(y^1,y^2,…,y^n^) | 출력 |
nl | l번째 층의 노드 수 |
wjil | l번째 층의 i번째 노드와 그 다음 층의 j번째 노드를 연결하는 가중치 |
ϕ | 활성화 함수 |
vjl=i=1∑nlwjilyil | 선형결합 |
yjl+1=ϕ(vjl) | l번째 층에서 다음 층으로의 전파 |
정리
E=E(y^)를 미분가능한 적절한 손실 함수라고 하자. 그러면 E를 최적화하는 방법은 각 층에서의 가중치 wjil들을 다음과 같이 업데이트하는 것이다.
wjil←wjil+αδjlyil
이때 α는 학습률이고, δjl은 다음과 같다. l=L일 때,
−δjL=ϕ′(vjL)∂y^j∂E(y^)
l∈{0,…,L−1}일 때,
δjl=ϕ′(vjl)i=1∑nlδil+1wijl+1
설명
(1)을 살펴보자. l번째 층과 l+1번째 층 사이의 가중치를 업데이트할 때 l번째 노드들 yjl에 의존한다는 말인데, 각 층의 출력에 따라 최종적으로 출력 y^이 결정되므로 당연하다고 볼 수 있다. 또한 yjl들은 l번째에서 l+1번째 층으로 전파될 때의 입력으로 볼 수 있는데, 이는 선형회귀모델에서 LMSLeast Mean Squares로 학습하는 방법과 비슷한 꼴이다.
w←w−α(wTx−y)x
한편 각 층에서의 출력 yjl들은 입력층에서부터 출력층으로 계산되는 반면에 최적화를 위한 δjl들은 다음과 같이 출력층에서부터 입력층으로 거꾸로 계산되기 때문에 이러한 최적화 기법을 역 전파 알고리즘back propagation algorithm이라 한다.
δjLδjL−1δjL−2δjL−3δj1δj0=−ϕ′(vjL)∂y^j∂E(y^)=ϕ′(vjL−1)i∑δjLwijL=ϕ′(vjL−2)i∑δiL−1wijL−1=ϕ′(vjL−3)i∑δiL−2wijL−2⋮=ϕ′(vj1)i∑δi2wij2=ϕ′(vj0)i∑δi1wij1
증명
입력층에서부터 출력층으로의 계산이 끝났다고 하자. 가중치를 손실 함수 E가 줄어드는 방향으로 수정하는 방법은 경사하강법을 사용하면 다음과 같다.
wjil←wjil−α∂wjil∂E(y^)
각각의 yil들은 주어진 값이므로, 편미분 부분을 계산할 수 있는 꼴로 풀어내면 된다. 우변의 편미분은 연쇄법칙에 의해 다음과 같다.
∂wjil∂E(y^)=∂vjl∂E(y^)∂wjil∂vjl=∂vjl∂E(y^)yil
(3)의 우변의 편미분을 −δjl로 두면, (2)로부터 (1)을 얻는다.
wjil←wjil+αδjlyil
각 층에서 δjl를 다음과 같이 구한다.
l=L인 경우
j∈{1,…,n^}에 대해서 다음이 성립한다.
−δjL=∂vjL∂E(y^)=∂y^j∂E(y^)dvjLdy^j
이때 y^j=ϕ(vjL)이므로 다음을 얻는다.
−δjL(t)=ϕ′(vjL(t))∂y^j∂E(y^)
■
l=L−1인 경우
j∈{1,…,nL−1}에 대해서 다음과 같다.
−δjL−1=∂vjL−1∂E(y^)=∂yjL∂E(y^)dvjL−1dyjL
이때 yjL=ϕ(vjL−1)이므로 다음을 얻는다.
−δjL−1=∂yjL∂E(y^)∂vjL−1∂yjL=ϕ′(vjL−1)∂yjL∂E(y^)
우변의 편미분은 연쇄법칙에 의해 다음과 같이 계산된다.
−δjL−1=ϕ′(vjL−1)∂yjL∂E(y^)=ϕ′(vjL−1)i∑∂y^i∂E(y^)∂yjL∂y^i=ϕ′(vjL−1)i∑∂y^i∂E(y^)dviLdy^i∂yjL∂viL
여기서 (4)와 viL=∑jwijLyjL에 의해 다음을 얻는다.
⟹−δjL−1δjL−1=ϕ′(vjL−1)i=1∑∂y^i∂E(y^)∂viL∂y^idyjLdviL=ϕ′(vjL−1)i∑−δiLwijL=ϕ′(vjL−1)i∑δiLwijL
■
l=L−2인 경우
j∈{1,…,nL−2}에 대해서 다음과 같다.
−δjL−2=∂vjL−2∂E(y^)=∂yjL−1∂E(y^)dvjL−2dyjL−1
이때 yjL−1=ϕ(vjL−2)이므로 다음을 얻는다.
−δjL−2=∂yjL−1∂E(y^)dvjL−2dyjL−1=ϕ′(vjL−2)∂yjL−1∂E(y^)
우변의 편미분은 연쇄법칙에 의해 다음과 같이 계산된다.
−δjL−2=ϕ′(vjL−2)∂yjL−1∂E(y^)=ϕ′(vjL−2)i∑∂y^i∂E(y^)∂yjL−1∂y^i=ϕ′(vjL−2)i∑∂y^i∂E(y^)dviLdy^i∂yjL−1∂viL=ϕ′(vjL−2)i∑∂y^i∂E(y^)dviLdy^ik∑∂ykL∂viL∂yjL−1∂ykL=ϕ′(vjL−2)i∑∂y^i∂E(y^)dviLdy^ik∑∂ykL∂viLdvkL−1dykL∂yjL−1∂vkL−1=ϕ′(vjL−2)k∑i∑∂y^i∂E(y^)dviLdy^i∂ykL∂viLdvkL−1dykL∂yjL−1dvkL−1=ϕ′(vjL−2)k∑i∑−δiLwikLϕ′(vkL−1)wkjL−1
따라서 다음을 얻는다.
δjL−2=−ϕ′(vjL−2)k∑i∑δiLwikLϕ′(vkL−1)wkjL−1
이때 (5)에 의해 다음이 성립한다.
i∑δiLwikLϕ′(vkL−1)=ϕ′(vkL−1)i∑δiLwikL=δkL−1
따라서 다음을 얻는다.
δjL−2=ϕ′(vjL−2)k∑δkL−1wkjL−1=ϕ′(vjL−2)i∑δiL−1wijL−1
■
일반화: l∈{1,…,L−1}
위의 결과들을 토대로 다음과 같이 일반화 할 수 있다. j∈{1,…,nl}에 대해서 다음과 같다.
−δjl=ϕ′(vjl)∂yjl∂E(y^)
우변의 편미분을 연쇄법칙으로 풀어내면 다음과 같다.
δjl=−ϕ′(vjl)∂yjl∂E(y^)=−ϕ′(vjl)i(1)∑∂y^i(1)∂E(y^)∂yjl∂y^i(1)=−ϕ′(vjl)i(1)∑∂y^i(1)∂E(y^)dvi(1)Ldy^i(1)∂yjl∂vi(1)L=−ϕ′(vjl)i(2)∑i(1)∑∂y^i(1)∂E(y^)dvi(1)Ldy^i(1)∂yi(2)L∂vi(1)L∂yjl∂yi(2)L=−ϕ′(vjl)i(2)∑i(1)∑∂y^i(1)∂E(y^)dvi(1)Ldy^i(1)∂yi(2)L∂vi(1)Ldvi(2)L−1dyi(2)L∂yjl∂vi(2)L−1=−ϕ′(vjl)i(3)∑i(2)∑i(1)∑∂y^i(1)∂E(y^)dvi(1)Ldy^i(1)∂yi(2)L∂vi(1)Ldvi(2)L−1dyi(2)L∂yi(3)L−1∂vi(2)L−1∂yjl∂yi(3)L−1=−ϕ′(vjl)i(3)∑i(2)∑i(1)∑∂y^i(1)∂E(y^)dvi(1)Ldy^i(1)∂yi(2)L∂vi(1)Ldvi(2)L−1dyi(2)L∂yi(3)L−1∂vi(2)L−1dvi(3)L−2dyi(3)L−1∂yjl∂vi(3)L−2⋮=−ϕ′(vjl)i(L−l)∑⋯i(3)∑i(2)∑i(1)∑∂y^i(1)∂E(y^)dvi(1)Ldy^i(1)∂yi(2)L∂vi(1)Ldvi(2)L−1dyi(2)L∂yi(3)L−1∂vi(2)L−1dvi(3)L−2dyi(3)L−1∂yi(4)L−2∂vi(3)L−2⋯dvi(L−l+1)ldyi(L−l+1)l+1∂yjl∂vi(L−l+1)l=ϕ′(vjl)i(L−l)∑⋯i(3)∑i(2)∑i(1)∑−δi(1)Lwi(1)i(2)Lϕ′(vi(2)L−1)wi(2)i(3)L−1ϕ′(vi(3)L−2)wi(3)i(4)L−2⋯ϕ′(vL−l+1l)wi(L−l+1)jL=ϕ′(vjl)i(L−l)∑⋯i(3)∑i(2)∑δi(2)L−1wi(2)i(3)L−1ϕ′(vi(3)L−2)wi(3)i(4)L−2⋯ϕ′(vL−l+1l)wi(L−l+1)jL=ϕ′(vjl)i(L−l)∑⋯i(3)∑δi(3)L−2wi(3)i(4)L−2⋯wi(L−l)jL⋮=ϕ′(vjl)i(L−l)∑δi(L−l)l+1wi(l−l)jl
따라서 정리하면 다음과 같다.
δjl=ϕ′(vjl)i∑δil+1wijl+1
■