오늘은
- back propagation 부분에서 이해가 안되는 부분 정리하고, 겸사겸사 gradient descent 포스팅한거 보면서 한 번 더 다듬었다.
정리한 포스팅)
https://sept-moon.tistory.com/93
Gradient Descent Methods
내용 출처 네이버 부스트코스 딥러닝 기초 다지기 - Gradient Descent Methods https://www.boostcourse.org/ai111/lecture/1162942?isDesc=false 딥러닝 기초 다지기 부스트코스 무료 강의 www.boostcourse.org 이전 글 https://sep
sept-moon.tistory.com
back propagation
이 부분은 블로그 포스팅 보면서 이해는 했는데, 포스팅을 다시 하려니 그림과 수식이 많이 필요해 내가 참고한 자료를 url로 남기고 마무리 해야할듯...
내가 back propagation에서 가장 궁금했던 것은
그래서 weight, bias는 어떻게 업데이트 하는건데?
이거였다.
그 질문에 대한 해답을 아래 참고자료 포스팅이 깔끔하게 설명을 잘 해주었다.
그래서 혹시 누군가 이글을 back propagation때문에 본다면 내 글보다는 아래 블로그 글을 참고하시는 걸 더더더 추천드리는편... (언젠가 나도 누군가가 보고 깔끔하다는 인상을 남기는 글을 쓰리라...)
내가 내린 결론을 작성하자면
- 입력값을 x,
- hidden layer를 h,
- 출력값을 y_
- 정답을 y
- weight를 w
- bias를 b
라고 할 때,
forward propagation은
x -- w1*x + b -> h
h -- w2*h + b --> y_
이렇게 되는데,
여기서 추론(inference) 과정이면 여기서 y_를 출력값으로 활용한다.
근데 학습(train) 이면 여기서 정답인 y값과 차이를 판단해야 한다. 여기서 생기는 걸 Loss, Error 등으로 불리며 loss나 error를 구할 때 쓰는 함수가 Loss function, 손실함수이다.
Loss = L(y_)
가 되겠지?
자 근데, 여기서 y_에 따라서 loss가 최소가 되는 지점이 있을 것이다. 당연히 정답(y)가 정해져 있으므로 정답으로 부터 y_가 양의 방향으로든, 음의 방향으로든 멀어지면 차이가 커질 것이고, y에 가까워지면 0으로 수렴하겠지.
자 간단하게 그려보면
이런 그래프 같이 될 것이다. 여기서 가로축이 y_이 되겠고, 세로축이 loss라고 보면 된다.
gradient descent에서 보다시피 내려가려면 현재 y_에서 기울기를 빼면 된다.
이 때 기울기를 구하려면 미분을 하면 된다.
Loss' = L'(y_)
이고,
w2*h + b = y_
이므로
y_'(w) = h
y_'(b) = 1
이게 된다.
자세한 식은 아래 포스팅을 참고하면 되겠다.
아 그리고 아래 포스팅을 읽을때는 직접 수식과 그래프를 손으로 작성해보면서 읽을 것을 추천한다.
참고 자료)
[Deep Learning 시리즈] Backpropagation, 역전파 알아보기
이번 포스팅에서는 저번 포스팅에 이어 에 대해서 알아보려고 한다. 앞서 설명했듯, 이 알고리즘으로 인해 에서의 학습이 가능하다는 것이 알려져, 암흑기에 있던 학계가 다시 관심을 받게 되었
evan-moon.github.io
여담으로, 블로그를 더 깔끔하게 만들고 싶은데, 이 블로그가 가독성도 좋고, 디자인이 깔끔하면서도 글을 잘 쓰시는 것 같다.
'진행중' 카테고리의 다른 글
[주간정리] 2023년 4월 2주차 (0) | 2023.04.16 |
---|---|
[TIL] 2023-03-30 cycleGAN, parametric test (0) | 2023.03.30 |
[TID] 2023-03-21 datacamp, kaggle discussion (0) | 2023.03.21 |
[TIL] 2023-03-20 kaggle notebook - pretraining 관련, DataCamp (0) | 2023.03.20 |
[TIL] 2023-03-17 (0) | 2023.03.18 |