인공지능 AI/MLP

다층 퍼셉트론 MLP 가중치 최적화 오류역전파

sailorCat 2022. 2. 8. 15:20
728x90

오류역전파 Back Propagation

다층 퍼셉트론은 각 층으로 진행되면서 행렬곱으로 연산이 이뤄진다.

행렬곱과 편향으로 왜곡이 일어난다.

 

예측값과 실제값의 차이를 손실함수를 통해 낮춰준다.

경사하강법으로 미분값을 통해 새롭게 갱신

목적함수를 최소화하거나 최대화하는 값을 찾는것이 목적이다.

여기서는 최소화시기는 목적함수를 사용하고 거의 배치모드로 사용한다.

기댓값과 실제값의 차이로 이루어진다.

 

전방 연산은 그래프로 표현할 수 있다.

a) 간단한 연산

b) 로지스틱 회귀 : 내적을 구하고 편향을 더한다

c) ReLU activation : matmul을 구하고 편향을 더한다

d) 선형 회귀

 

부분식이 반복되기 때문에 원하는 위치의 가중치 w값을 연쇄적으로 얻어낼 수 있다.

이 부분식들을 저장하여 재연산을 최소화 하는 동적프로그래밍을 적용할 수 있다.

신경망도 오류역전파를 할 때 그레디언트가 부분식으로 연산을 최소화 할 수 있다.

 

그레디언트 디센트 방법을 사용하여 오류를 최소화 한다.

연쇄법칙은 분해된다.

중간 연산들은 생략될 수 있다.

끝에서 나오는 손실오차값을 특정 가중치 값으로 연산하여 역전파한다.

예측값과 실제값의 차이인 J(세타)를 가장 최소화 하는 U1, U2값의 최저점을 찾아주는 경사하강법을 사용한다.

오차를 구하고 오차를 미분하여 가중치 값을 구한다.

가중치 값을 갱신하여 다시 오차를 계산한다.

원하는 멈춤 조건이 나올 때 까지 가중치 값을 갱신하고 오차를 계산한다.

 

빨간선의 미분값을 구한다.

오차 Ok를 통해 U2값을 구한다.

빨간 선 O1과 U2, O2와 U2, O3와 U2를 통해 U1값을 구한다.

 

출력의 오류를 역방향으로 전파하며 경사도를 계산한다.

반복되는 부분식들의 경사도의 지수적 폭발이나 사라짐을 피해야 한다.

f(x, y) = z

손실 = z - 기댓값

 

728x90