🤖 Education/2021석사과정

[딥러닝기초] 5주차 : (CS231 Lecture 4) Backpropagation and Neural Networks

데이터분석가SIENNA 2023. 6. 30. 21:39

5주차 : (CS231 Lecture 4) Backpropagation and Neural Networks

 

[Backpropagation and Neural Networks]

: 현재 w에 의해서 계산된 score 값이, 내가 원하는 값과 얼마나 차이나는지 어떻게 계산할 것인가?

 

* 딥 뉴럴네트워크의 학습방법

<학습데이터> 이런 입력을 줬을 때, 이런 아웃풋이 나왔으면 좋겠어

<실제 OUTPUT>

= 차이 (loss) → RMS Error 계산하여 loss를 구함. loss에 맞춰서 W를 업데이트! 그 다음, 학습 데이터를 다시 입력 → 출력 계산 → 원하는 값과 비교 → 또 loss가 났으므로 업데이트 → roof를 계속 돌림 

=> roof가 돌아갈 수록 RMS Error가 작아짐

 

Backpropagation

: 그레디언트를 출력단부터 입력단까지 계속 바꾸고, 그 결과값으로 또 바꾸고, 뒤로 보내면서 w를 늘릴래 줄일래? 하는 것이 오류역전파.

w에 대해 미분하면서 w를 줄어드는 방향으로 w를 업데이트 시켜간다



q를 x가지고 미분하면 1이다 = x가 1 증가하면 q도 1 증가한다

q를 y가지고 미분하면 1이다 = y가 1 증가하면 q도 1 증가한다

q = x+y

입력에 따라 출력이 어떻게 변하나

 

sigmoid 함수

= activation function

 

출력이 입력에 대해 시그모이드라는 함수가 얼마나 sensetive한가?

초창기 sigmoid :

이미 충분히 크면 출력이 1로 나감. 1000 이었던 것을 999로 바꾸어도 출력값에는 변화X

충분히 크기 때문에 그레디언트가 0이 되어버림 => vanising gradient = 학습이 안 됨

 

요즘엔 ReLU를 쓴다! : 많이 씀! 꼭 써야하는 것은 아니다

네트워크가 깊어져도 그레디언트가 입력단 까지 잘 전달이 되도록 (0이 안되도록)

=> 학습이 잘 되도록 만들었다