Fall in Coding

^_^

Computer Vision/5. Deep Learning

[5.3] Deep neural networks (깊은 신경망)

jjunoXD 2025. 6. 8. 17:53

퍼셉트론의 동작 과정중, 입력값과 가중치의 곱 과정, bias 항의 합, 마지막의 활성 함수의 결과까지 보여줌.

 

5.3.1 Weights and layers

W : 가중치 행렬

x : 입력값

한 레이어의 입력값에 대한 출력값은 다음 레이어의 입력값이 됨. (fully connected, FC)

FC layer로만 구성된 네트워크를 다층 퍼셉트론 (multi-layer perceptron, MLP) 라고함.

 

5.3.2 Activation Functions

Rectified Linear Units (ReLU) 수식임.

입력값과 가중치 행렬의 결과값이 0이하면 ReLU의 값은 0이고, 0보다 크면 그대로 값이 나옴.

ReLU는 계산이 간단하다는 장점이 있지만, 입력이 음수가 되면 출력은 0이 나옴.

즉, gradient는 0이 되고, 해당 뉴런은 학습이 되지 않음. (죽은 뉴런 문제)

(gradient를 최소화 시키기 위해 학습을 하지만, gradient가 0이 되는 상황이 좋지 않다니 뭔가 미묘합니다)

순서대로 ReLU, leaky ReLU, shifted ReLU, maxout, softplus, ELU, sigmoid, tanh, swish의 그래프임.

분류 문제에 사용되는 신경망의 마지막 레이어에서 softmax 함수를 사용해서 실수 값을 확률로 바꿈. (softmax는 클래스의 score를 전체 클래스에 대한 확률 분포로 바꿈)

즉, 신경망은 입력에 대해 어떤 클래스인가를 판별하는 모델임.

 

5.3.3 Regularization and normalization

Dropout

드롭아웃은 신경망이 과적합 되는 것을 방지하기 위해 학습 시 일부 뉴런을 0으로 만드는 기법임.

학습 중 드롭아웃을 적용하면 뉴런들의 기댓값은 전체저의 (1-p)만큼 줄어들게됨. (p는 드롭아웃 비율)

그래서 출력값의 총합이 원래보다 작아지기 때문에 이를 보완하고자 남은 뉴런들의 출력을 스케일링함.

(1-p)^-1을 곱하면, 기댓값이 원래 값과 같아짐. (p가 0.5면 2가 됨)

 

Batch Normalization

μ = 평균 / σ² = 분산 / sᵢ = w*x+b / ϵ = 분모가 0이 되는 걸 막기 위한 작은 값

 

batch normalization은 평균 0, 분산 1을 갖도록 스케일링 하는 것임.

하지만 이런 정규화는 손실함수와 문제가 생길수 있음. 일반적으로 손실 함수는 각 샘플의 예측값과 정답의 차이를 기반함. 그런데 batch normalization은 배치 단위에서 평균과 분산을 구해서 샘플에 적용함. 그래서 손실 함수의 그래디언트를 계산할 때, 샘플을 기준으로 손실을 줄이기 위해 가중치를 바꾸면 그 샘플이 포함된 배치의 평균과 분산이 바뀜. 결국 모든 샘플의 출력 값이 바뀜.

bn 정규화는 배치마다 출력 값을 평균 0, 분산 1로 강제함. 이는 모델의 자유도를 제한하게 됨. 그래서 이런 문제를 해결하고자 2개(γ, β)의 학습 가능한 파라미터를 사용함. 

γ = 분산을 조절 (스케일)

β = 평균을 조절 (시프트)

모델 학습의 목표는 손실 값을 낮추는 것임. 그러기 위해 손실을 가중치에 대해 편미분한 값을 구함. 그런데 손실 값은 y에 영향을 받고, y는 s에 영향을 받고, s는 μ와 σ²에 영향을 받음. 그래서 역전파 시 체인룰을 적용해서 미분을 해야함.

N : 배치 크기 / C : 채널수 / H, W : 이미지의 세로, 가로

 

CNN 구조에서의 다양한 정규화 기법이 어느 축을 기준으로 평균과 분산을 계산하는지에 대한 그림임.

Batch Norm : 같은 채널에 있는 모든 배치의 픽셀 (N x H x W)

Layer Norm : 하나의 샘플의 모든 채널과 픽셀 (C x H x W)

Instance Norm : 하나의 샘플에서 각 채널의 픽셀 (H x W)

Group Norm : 채널을 G개의 그룹으로 나누고 각 그룹에 대한 픽셀 ((C/G) x H x W)

 

5.3.4 Loss Functions

분류를 위해, 대부분의 신경망은 마지막 층에 softmax layer를 사용함.

softmax는 출력값을 확률 분포를 만들어줌. cross entropy는 확률 분포와 정답간의 차이를 측정함. 그래서 손실 함수로 사용함.

pntn : n번째 샘플에 대해 정답 클래스 tn의 확률

정답 클래스의 확률이 작을수록 손실이 커짐.​

Sntn : 정답 클래스에 해당하는 신경망의 출력

Zn : softmax의 분모에 해당, 모든 클래스 출력의 합

위 수식은 이렇게 유도됨

깊이 추정이나 디노이즈와 같은 회귀를 수행하는 네트워크에서는 보통 L2 손실(Mean Squared Error)를 사용함.

하지만 L2는 에러가 클수록 급격히 증가하여 이상치에 민감함. 그래서 학습 데이터에 노이즈나 이상치가 많으면 선형적으로 증가하는 L1을 사용할 수 있음.

contrastive loss from (Hadsell, Chopra, and LeCun 2006)

P : 샘플 쌍들의 집합 / t : 2개의 샘플이 비슷하면 1, 다르면 0 / d : 임베딩 벡터 간 유클리드 거리

Ls : similar 쌍에 대한 손실 함수 / Ld : dissimilar 쌍에 대한 손실 함수

cross entropy 구조와 비슷하며, Ls와 Ld를 최소화 하는 목적임.

Ld는 ReLU처럼 동작함. (0 이하면 0, 0보다 크면  m-d) (m : margin (안전거리))

즉, d가 m보다 작으면 양수이므로 (m-d)^2 만큼의 손실이 발생함.

d가 m보다 크면 음수이므로 0만큼의 손실임.

softmax 기반의 contrastive loss (InfoNCE / NT-Xent)

‖v‖ = 1 : 정규화된 임베딩 / 

 

가중치 w는 평균 0, layer l 에 대한 분산 Vl, bias는 0으로 초기화하면 선형 합산은 위와 같은 수식임.

 nl = 가중치의 수 = fan-in / E[x2l] = 들어온 값의 제곱의 평균 (여기선 평균이 0이기 때문에 분산을 의미함)

수식 참고

평균이 0인 합계 sl이 ReLU를 통과하면 제곱 평균은 sl 분산의 절반임. (ReLU가 확률 밀도 함수 절반을 날려버리기 때문임)

그래서 초기 가중치 Vl의 분산은 위와 같이 설정해야함.

 

5.3.5 Backpropagation

 

n번째 샘플에 대해 k 클래스의 s가 손실에 미치는 영향임.

만약 tnk = 1(원핫인코딩, 정답 클래스임), Pnk = 0.7이면 -0.3이 나옴. Snk를 증가시키면 손실이 감소함.

L2 loss

예측값과 정답값의 차이임. 출력층의 gradient고 역전파의 시작점임.

체인룰에 따라 수식은 이렇게 정리가 됨.

은닉층 뉴런은 자신을 입력으로 사용하는 다른 뉴런들의 오차와 가중치를 곱한 것의 합이 손실에 얼마나 기여했는지 나타냄.

현재 뉴런의 오차 = (다음 레이어의 오차 x 가중치)의 합 x 자신의 활성함수의 기울기임.

역전파가 오차를 뒤로 전파하는 원리임.

(만약 ReLU에서 Si < 0이면 출력은 0이 됨. 그래서 미분값도 0이 되고 gradient는 사라짐. grandient vanishing 현상인가??)

 

5.3.6 Training and optimization

딥러닝에서는 최적화 기법으로 확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 사용함.

그런데 단일 샘플은 노이즈가 많으므로, 여러 개를 묶은 미니배치 단위로 함.

: t번째 학습 단계의 가중치 / α : 학습률 (learning rate)

기울기를 기반으로 가중치를 업데이트함. (기울기의 반대방향)

: 지금까지의 누적 방향 (속도 벡터 역할) / ρ ∈ [0.9, 0.99] : 관성 계수 (momentum decay)

위 수식은 모멘텀(Momentum)을 적용한 SGD 개선에 대한 수식임.

기본 SGD는 평평한 지역에서는 기울기가 작아서 학습이 느리고, 좁고 깊은 골짜기에서는 기울기 방향이 진동하여 비효율적인 경로를 따름.

과거 기울기 방향을 고려해서 관성 효과를 부여함. 그래서 더 빠르고 안정적인 수렴을 유도함.