21년 6월 9일 

코드스테이츠 부트캠프 #일차

S4-Week 1 : Neural Networks

Note 02 : 경사하강법과 역전파 알고리즘

 


키워드

  • 역전파(Backpropagation, backward pass) - 학습방법에 대한 구체적인 지식

 

신경망 학습을 할 때 예측값이 높게 나와야 할 것들이 낮게 나오거나, 낮게 나와야 할 경우 높게 나온다는건 에러가 높다는 것을 의미한다. 입력값은 고정값이므로 가중치를 얼마만큼 올려주는 것이 효과적인지 찾아야 한다.

Deep Learning은 기본적으로 여러개의 Layer를 쌓은 후 학습하여, 실제 Y값과 예측 Y값의 차이 ( Cost )를 구하고 다시 처음 과정으로 돌아가서 변수를 재조정하는 과정을 반복합니다.  이는 곧 Cost Minimize와 같습니다.

역전파 알고리즘(back propagation)

역전파란 역방향으로 오차를 전파시키면서 각 층의 가중치를 업데이트하고 최적의 학습 결과를 찾아가는 방법이다.

 

역전파 알고리즘은 출력값에 대한 입력값의 기울기(미분값)을 출력층 layer에서부터 계산하여 거꾸로 전파시키는 것이다이렇게 거꾸로 전파시켜서 최종적으로 출력층에서의 output값에 대한 입력층에서의 input data의 기울기 값을 구할 수 있다이 과정에는 중요한 개념인 chain rule이 이용된다.

chain rule을 쉽게 표현하면 이런 느낌!

출력층 바로 전 layer에서부터 기울기(미분값)을 계산하고 이를 점점 거꾸로 전파시키면서 전 layer들에서의 기울기와 서로 곱하는 형식으로 나아가면 최종적으로 출력층의 output에 대한 입력층에서의 input의 기울기(미분값)을 구할 수가 있다.

 

역전파 알고리즘 순서

1. 가중치 값을 이용해 출력층의 출력값을 계산한다. (순전파(Forward Propagation)를 통해 이루어짐) – 그림 1

2. 오차를 각 가중치로 미분한 값으로부터 기존 가중치에서 빼준다

   (경사하강법을 적용하는 것이며, 역전파를 통해 이루어진다)

3. 2번 단계는 모든 가중치에 대해 이루어짐

4. 1~3단계를 주어진 학습 횟수만큼 또는 주어진 허용 오차값에 도달할 때까지 순전파를 진행하여 반복한다. – 그림 3

 

역전파 알고리즘을 한 번 수행하는 것을 1 epoch 주기라고 하며  epoch를 늘릴 수록 가중치가 계속 업데이트(학습)되면서 점점 오차가 줄어나가는 방법이다.

(예를 들어 1 epoch를 줄 때, iteration을 10회 주면 가중치는 10번 바뀐다.)

 

 

'''

잠깐 짚고 넘어갈 문제!

입력데이터의 개수는 100개이고 batch_size가 50개라고 하면, 위 코드를 기준으로 전체 가중치의 학습(iteration)은 총 몇번이 일어날까? (epochs는 100) 

정답 : 200회.

 

계산 방법 : (입력데이터/batch_size) * epoches  ==> (100/50)*100

설명 : 1 epoch는 2 번의 iteration으로 나눠지고 전체에 100번의 학습을 이루어지니까 2*100 = 200회!!

'''

 

 

 

참고

 

https://wikidocs.net/37406

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

https://ganghee-lee.tistory.com/31

 

딥러닝 역전파 backpropagation이란?

<개요> 이전 글에서 설명했듯이 활성화 함수를 적용시킨 MLP에서 XOR과 같은 non-linear 문제들은 해결할 수 있었지만 layer가 깊어질수록 파라미터의 개수가 급등하게 되고 이 파라미터들을 적절하게

ganghee-lee.tistory.com

 

 

 

'개발 관련자료 > ML, DL' 카테고리의 다른 글

정리_머신러닝 공부 계획  (0) 2023.05.08
경사하강법(gradient descent)  (0) 2021.06.16
퍼셉트론(Perceptron)  (0) 2021.06.16
Bias와 Variance 개념  (0) 2021.06.11
L1 regularization, L2 regularization 간단한 개념  (0) 2021.06.11

+ Recent posts