본문 바로가기

신경망과 심층학습

1.3 역전파를 이용한 신경망 훈련

단층 신경망의 훈련 과정은 간단. 이는 단층망의 오차를 가중치들의 직접적인 함수로 계산할 수 있어서 기울기 계산이 쉽기 때문. 

다층 신경망에서는 손실함수가 이전 층들의 가중치들에 대한 복잡한 합성 함수라서 훈련이 쉽지 않다. 다층망 훈련에서는 합성 함수의 기울기를 역전파 알고리즘을 이용해서 계산한다. 

역전파 알고맂즘은 한 노드에서 출력으로의 다양한 경로들에 관한 국소 기울기 곱들의 합을 통해서 오차 기울기들을 계산하는데, 이때 미분의 연쇄법칙이 쓰인다. 그러한 합에서 구성요소의 수는 지수적이지만, 

동적 계획법 dynamic programming 을 이용하면 합을 효율적으로 계산할 수 있다. 

역전파 알고리즘은 동적 계획법의 직접적인 응용에 해당한다.

두 단계로 구성되는데, 하나는 순방향 단계이고, 다른 하나는 역방향 단계이다. 

순방향 단계에서는 출력값들과 여러 노드의 국소 미분들을 계산해야 하고, 역방향 단계에서는 노드에서 출력으로의 모든 경로에 관해 그러한 국소 값들의 곱을 합산해야 한다.

 

1. 순방향 단계

한 훈련 견본의 입력 성분들이 신경망에 공급된다. 그러면 알고리즘은 현재 가중치 집합을 이용해서 층들을 순방향으로, 즉 입력층에서 출력층 쪽으로 계산한다. 출력층에 도달하면 최종 출력, 예측값을 훈련 견본의 목푯값과 비교하고, 손실함수의 미분을 출력에 대해 계산한다. 이후 역방향 단계에서는 모든 층에서 이 손실함수의 미분을 해당 가중치들에 대해 계산한다.

 

2. 역방향 단계

역방향 단계의 주된 목표는 서로 다른 가중치들에 대한 손실함수의 기울기들을 미분의 연쇄법칙을 이용해서 학습하는 것이다. 그러한 기울기들은 가중치들의 갱신에 쓰인다. 이 가중치들이 역방향으로 학습되기 때문에 이 단계를 역방향 단계라고 부른다.

신경망이 일련의 은닉 단위 h_1, ..., h_k 다음에 출력 단위 0 로 구성되며, 이들이 계산하는 손실함수가 L 이라고 하자. 그리고 은닉 단위 h_r 에서 h_r+1 로의 연결에 대한 가중치가 w 라고 하자. 그러면 h_1 에서 0 으로의 단일한 경로의 경우에서 이 간선 가중치 중 임의의 것에 대한 손실함수의 기울기를 연쇄법칙을 ㅣㅇ용해서 유도할 수 있다.

경로가 여러 개일 수 있는 계산 그래프에서 기울기를 계산할 때는 다변수 함수의 연쇄법칙, 다변수 연쇄법칙 multivariable chain rule 이라고 부르는 일반화된 버전의 연쇄법칙 사용,