혁펜하임의 <Easy! 딥러닝> - backpropagation은 액웨가 핵심?!

·2025년 2월 15일
0

제가 혁펜하임의 Easy! 딥러닝 이라는 책을 리뷰하게 되었습니다ㅎㅎ

혁펜하임님의 다양한 영상들을 보면서 공부해온 저였습니다.
사실 비전공자이다보니, 학교에서 선형대수학 강의나 딥러닝 강의를 들을 때마다 많이 힘들었(?)었는데요...ㅋㅋㅋ
그럴 때마다 혁펜하임님의 도움을 상당히 많이 받았습니다.

특히 인공지능수학을 공부할 때 배웠던 convex optimizaiton이나, 선형대수학이나, 딥러닝이나
상당히 많은 도움을 받았었습니다ㅎㅎ


그런 혁펜하임님께서 새로운 딥러닝 책을 내셨다고 하는데요!

바로 'Easy!딥러닝'입니다.
사실 AI가 정말 핫해진지 한 2년?정도 된 거 같은데요, 이제는 사람들이 그냥 '갖다 쓰기만 하면 되는 거 아니야?'하는 생각이 들 정도로 정말 쉬운 방법들로 코드 몇줄만 돌리면 딥러닝을 할 수 있는 시대가 되었습니다.


하지만 '딥러닝을 안다'와 '딥러닝을 활용하는 방법을 안다' 간에는 큰 간극이 있습니다.

그 간극은 바로 '1.수학 지식+ 2.코딩 능력 + 3.모델 공부'로 해결되죠.
1,3번을 위한 바로 첫번째 스텝이 바로 'Easy!딥러닝' 책인 것 같습니다




저는 일단 역전파에 관련해서 리뷰해보겠습니다!
일단 딥러닝은 매 iteration마다 실제값과 훈련된값의 차이인 loss를 계산합니다(loss는 계산하는 방식마다 다 다릅니다). 그 loss를 궁극적으로 계산하는 이유는 뭘까요?

바로 그 loss를 이용해서 파라미터를 바꿔줘야 하기 때문입니다. 그 파라미터를 바꿔주는 거의 정석적인 방법이 바로 역전파입니다.

학교에서 backpropagation에 대해 배울 때,
Chain rule을 활용해서 복잡하게 배웠던 기억이 있는데 이 책에서는 그림과 함께 상세하게 역전파의 기본 개념을 알려주더군요!

들,나의 개념으로 제시를 하는데
들어가고
나가고
이래서 들,나 인거 같습니다ㅋㅋ
Activation function 통과 전을 들!
Activation function 통과 후를 나!

일단 w2를 바꿔야 하니까,
w2가 어떻게 L에 들어가는지 보면,
w2-> 들2 -> 나2-> L
의 과정인데요

그 과정처럼 chain rule을 써서
L에 대한 w2미분을 쓸 수 있습니다

생각해보니 들 나 이렇게 쓰는게 진짜 편하네요
나/들 이 액티베이션 함수가 뭐인지에 따라서 실제 식은 다 달라지겠지만, 이해하는 데에는 훨 좋은!! 것 같습니다

그리고 나서 똑같이 chain rule을 써서
L에 대한 w1미분을 구할 수 있습니다
w1-> 들1 -> 나1-> 들2 -> 나2-> L
과정이 길다보니 당연히
Chain rule으로 구할 때도 좀 더 길겠죠??

하지만 중요한건
모든 경로를 고려해줘야한다는 점!
그래서 사실상

w1-> 들1 -> 나1-> 들2 -> 나2-> L
w1-> 들1 -> 나1-> 들‘2 -> 나’2-> L

이렇게 다양한 경로로 L에 영향을 미칠 수 있으니…!
노드의 개수에 맞춰서 모든 경로를 고려해야합니다~

근데 여기서
잘 생각해보면
가로로 노드가 많아질수록
액티베이션 미분이 점점 많아집니다!
처음에 w2를 L에 대해 미분한다고 치면,
= 액티베이션 미분 x L에 대한 나2의 미분
w1을 L에 대해 미분한다고 치면,
= 액티베이션 미분 x 웨이트 미분 x 액티베이션 미분 x L에 대한 나2의 미분

점점 액티베이션 미분 x 웨이트 미분이 계속 추가될 거 같다는 느낌이 들지 않으신가요!!

즉, 책에서 말하는 액웨!가 계속 추가된다는 말입니다.
이게 바로 다양한 activation function이 등장한 이유고, L에 대한 파라미터의 미분값들이 소실되지 않도록 ReLU같은 activation function이 등장한 이유입니다!

왜냐면 ReLU는 진짜 신기하게도 그냥
0보다 작으면 0이고 0보다 크면 그냥 y=x거든요
0보다 클때 미분하면(액티베이션 미분)이 1이니까
그래도 곱할때마다 값이 적어질 확률은 없겠죠???

그래서 이 책에서는 vanishing gradient를 액웨를 여러번 곱하게 되는 것의 문제로 규정하였고, 특히 여기서 ‘액’의 중요성을 알게 했습니다!
(Activation function 잘 골라야 합니다…ㅋㅋ)

뭔가 액웨가 계속해서 곱해지는 게 어쩔 수 없는 back propagation의 본질적인 현상이고, 그래서 ’액‘을 잘 선택해야하는…점을 정말 잘 알려주신 것 같습니다!!!

저도 액웨로 배웠으면…좀 더 backpropagation이해가 빠르지 않았을까 하는 생각이…ㅋㅋㅋ
어찌되었든
이런 상세한 설명과 액웨가 들어있는 혁펜하임의 easy! 딥러닝 강추합니다!!!><

그리고 심지어 혁펜하임 강의도 있어서 이해하기도 정말 easy할거같네요!!!!
추천추천~~~

profile
한발한발 나아갑니당!

0개의 댓글