본문 바로가기
딥러닝(Deep Learning)/D&A Deep Session

[D&A Deep Session] 2차시 - 4. 오차 역전파법

by rahites 2022. 3. 21.

 

# MLP ( Multi Layered Perceptron )에 대한 공부 후...

 

- 비선형 분류가 가능하다!

- 신경망에서는 데이터가 입력된 입력층에서 시작해 은닉층을 거쳐 출력층에서 출력 값이 도출되는 Feed Forward (순전파) 방식을 취한다.

- 비용함수를 정의해서 네트워크가 얼마나 나쁜지 판단 -> Cost를 어떻게 줄여 네트워크를 향상시킬 수 있을지 알아야 한다.

 

*다음과 같은 신경망 구조를 가정하고 설명!!*

1. 비용함수 = MSE

2. 각 뉴런의 노드와 출력값은 0 ~ 1 사이의 값 ( 확률같이 )

3. 효율적인 학습법인 경사 하강법을 어떻게 적용할지 생각하는 것이 목표!!

4. 16 x 8 x 4 신경망 가정 ( 순서대로 입력층, 은닉층, 출력층 )

 

이 때 각각의 가중치를 연결의 세기로 생각한다면 각 연결의 세기를 조정하면 출력 결과도 달라질 것이다. 우리는 신경망이 잘 작동해서 4개의 출력 노드 중 정답 노드를 강하게 활성화 하기를 원한다. ( 1에 가까울 수록 확신의 정도가 높음 )

 

* 목표! *

1. 비용함수를 설정하여 목적을 가지게 하기

2. Cost 관점에서 입력 변수는 수많은 가중치 행렬 w, 종속 변수는 Cost 값인데 이 값을 최소화하기 위해 가중치를 조정해야 한다.

3. 이 과정에서 경사하강법을 통해 w로 이뤄진 파라미터 공간에서 Cost Function의 값이 최솟값과 가까워지도록하고 싶다.

4. MSE의 식을 미분해서 각 w의 기울기가 특점 점에서 어떤 값을 가지는지 판단하자

 

- 효율적인 경사하강법

: 아무리 가중치 w가 많더라도 각 w에 대해 Cost Function을 편미분하면 각 w로의 가파른 정도를 알 수 있다 (Gradient Vector). 이 때 여러 가중치들 중 가장 가파른 값을 가지는 w를 음의 방향으로 한 걸음씩 이동하는게 가장 효과적일 것!!!

-> 이 과정을 최종 출력층에서부터 거꾸로 반복하다 보면 모든 가중치의 최종 Cost에 대한 연결의 세기가 나올 것이다!!

 

*오차 역전파법*

위에서 가정한 신경망으로 생각해보면 출력층 첫번째 노드에 대한 부분적 비용함수는 C1 = (y-b)^2일 것이고 이 때 이 C1에 대한 비용함수를 구하기 위해 은닉층 8차원 공간에서 각 w에 대한 편미분을 통해 Gradient Vector를 구해줄 수 있다. 이를 모든 출력층에 반복해 C1, C2, C3, C4에 대해 모드 구해준 후 4개의 부분 비용함수를 더해 4로 나눠 가중치의 평균을 구해 최종적인 총 비용함수 C를 구하고 이 C에 대한 가중치들의 연결의 세기를 구해 알맞게 이동한다.

 

- 가중치를 알맞게 조정해서 정답 노드의 활성화 정도를 높이기를 원한다.

- 총 비용함수에 대해 계산할 수 없기 때문에 정답 노드 하나 당 부분적인 비용함수를 정의해서 부분적으로 살펴봐야 한다.

- 총 연결 강도를 평균 내서 전체적인 비용함수에 대해 가중치들의 연결 강도를 알아보기 위해 출력층 노드 하나 당 은닉층의 모든 노드에 대해 비용함수를 정의하여 개별적인 강도를 알아보았다.

- 총 비용함수에서 각 가중치의 연결 강도를 측정해서 비용함수가 낮아지는 방향으로 내려간다.

_i^((0))

a_i^((0))

댓글