[UDL 스터디 노트] 7장 - Gradients and initialization

박주원
September 7, 2025

[UDL 스터디 노트] 7장 - Gradients and initialization

Use Original Cover Image
Type
Post
Children
Language
ko
Tags
Deep Learning
UDL
Gradient
Initialization
SGD
Adam
Authors
박주원
Published
September 7, 2025

개요

해당 포스팅 시리즈는 “Unerstanding Deep Learning” 책을 학습하는 과정을 기록하는 스터디 노트이다.
이번에는 7장, Gradients and initialization에 대해 다룬다.
 

1. Backward pass

7장에서는 gradient를 구하기 위하여, 일반적인 모델의 추론 과정인 forward pass가 아닌, 반대 방향으로 backward pass에 대해서 다룬다.
각 파라미터들을 조정하기 위해서 loss로부터 뒤로 가며 편미분을 구해 gradient를 구한다는 발상을 처음 들었을 때에는 매우 신기했다.
그리고 실제 컴퓨팅에 쓰이는 파라미터의 데이터들은 이산적인 수치인데 이를 어떻게 미분을 한다는 것인지 의문이 들었지만, 대부분이 선형적인 딥러닝 함수들은 미분하면 말 그대로 기울기가 상수로 나오기 때문에 미분을 할 수도 있다는 걸 알게 되었다.
또한 각 layer의 편미분들은 loss부터 input까지 진행하며 차근차근 구해지고, 각 파라미터의 편미분들은 layer에서 파생되기에, 이 구조를 보며 Tree 자료구조를 떠올려 볼 수도 있었다.
 

2. Matrix Calculus

Backward pass에 쓰이는 수식이나 7장 후반의 문제들을 살펴보면 벡터나 행렬로 편미분을 하는 표기가 자주 보이는데, 책을 읽으며 이가 이해하기 어려웠다.
그래서 이에 대한 내용을 찾아보니 Matrix Calculus라는 또다른 분야를 찾을 수 있었다.
Matrix Calculus는 Multivariable Calculus에서의 여러가지 미분을 표기하는 방법을 제시하는 분야이다.
각 미분 표기에 대한 정의는 다음과 같다:
7장을 읽으며 특히나 벡터를 벡터로 미분하는 표기가 자주 나와 혼란스러웠는데, 사실은 두 벡터의 야코비안 행렬이었다는 사실을 알 수 있었다.
 

3. 초기화의 분산

모델의 파라미터들을 초기화 할 때, 처음에는 그냥 대충 랜덤으로 설정하면 괜찮지 않냐고 생각했었는데, 그러면 vanishing gradient problem이나 exploding gradient problem이 발생한다는 걸 알 수 있다.
이런 문제들을 책을 따라가며 처음 접했을 때, 분산이 너무 작아도 문제, 너무 커도 문제가 생기기에 어떤 적절한 값으로 정해져야 한다는 것을 추론할 수 있었다.
또한 ReLU 함수가 이전 layer의 값의 범위 중 반을 clip 하므로 gradient가 소멸하거나 발산하는 문제가 생긴다는 설명에서, ReLU가 절반을 clip 하더라도 이전 layer와 다음 layer의 범위가 같도록 분산을 설정하면 해결할 수 있을 것이라 추론할 수 있었다.
실제 내용 또한 전후 layer의 차원이 같을 경우, He initialization을 통해 로 분산을 설정하여 전후 layer의 분산이 같도록 만들어줄 수 있다는 내용임을 확인할 수 있었다.
 

4. 예시 코드와 프레임워크

7장의 후반에는 이전 단원 내용들을 종합하여 모델을 학습하는 예시 코드가 등장한다.
이전에는 이러한 PyTorch 코드를 보면, 각 줄이 무슨 역할을 하는지 몰라 black box같은 코드라고 생각했었는데, 이 책을 7장까지 읽어보니 이제는 각 줄이 무슨 역할을 할지 대략적으로 가늠할 수 있었다.
또한 이런 PyTorch 혹은 TensorFlow와 같은 현대의 딥러닝 프레임워크는 수치적인 컴퓨터임에도 불구하고 해석적인 미분을 할 수 있다는 내용이 신기했다.
7장에 나왔던 어려운 편미분들이 PyTorch에서는 loss.backward() 함수 하나로 계산할 수 있다는 것으로 프레임워크의 간편함을 알 수 있었다.
그리고 모델 하나에 들어가는 파라미터 수와 파라미터의 편미분을 구하기 위해 필요한 계산량을 배웠기에, 딥러닝 모델에 필요한 컴퓨팅 자원이 왜 이렇게 많은 지 생각할 수 있었다.

Reference

[1] Prince, S. J. D. (2023). Understanding Deep Learning. The MIT Press. Retrieved from http://udlbook.com