inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

딥러닝 이론 + PyTorch 실무 완전 정복

[이론] BatchNorm의 실제 효과

Batch Normalization 효과

해결된 질문

183

HELLO

작성한 질문수 13

1

안녕하세요 선생님

강의 정말 잘 보고 있고요

제 많은 질문들에도 너무 성심성의껏 답변 달아주셔서 감사합니다 ㅎㅎ

BatchNorm이 설계된 의도는 internal covariate shift를 해결하기 위해 제안되었다는 것은 이해했습니다.

하지만 실제로는 그렇지 않고 optimization surface를 매끄럽게 해서 학습이 잘된다라고 설명하신 것까지 들었습니다.

제가 이해한 바로는 활성화 함수에 들어가는 입력의 분포를 조정해서 학습이 잘되는 위치? 분포를 학습하는 것으로 이해했는데요

(sigmoid로 예시를 든다면 더 이상 업데이트가 되지 않아도 될 정도라면 기울기가 saturate되는 부분으로 혹은 업데이트가 많이 되어야 한다면 0부근으로 이동시키는 등의)

 

정확히 어떤 원인에 의해 surface가 매끄러워지는 효과를 가지게 되는 것인지 궁금합니다..!

딥러닝 pytorch NLP 컴퓨터-비전 cnn rnn transformer llm

답변 2

0

변정현

안녕하세요!

좋은 질문 감사합니다!

개인적인 사정으로 답변이 많이 늦어져서 죄송합니다 ㅠㅠ

아래에 첨부한 설명 참고 부탁드립니다!

1.png.webp2.png.webp3.png.webp4.png.webp5.png.webp6.png.webp7.png.webp8.png.webp

 

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. HELLO님께서 질문해 주신 Batch Normalization의 효과에 대해 답변 드리겠습니다.

Batch Normalization은 딥러닝의 훈련 과정을 안정화하고 가속화하기 위해 사용되는 기술로, 네트워크의 각 층에서 입력 데이터의 평균과 분산을 정규화하여 신경망의 학습을 돕습니다. 초기에는 internal covariate shift 문제를 해결하기 위해 제안되었으나, 실질적인 효과는 다음과 같이 설명될 수 있습니다:

  1. Optimization Surface의 매끄러움: 배치 정규화는 각 층에 전달되는 데이터의 분포를 안정화하면서 활성화 함수에 입력되는 값들이 적절한 범위에 있도록 유지해 줍니다. 이는 특히 기울기 소실 문제(Vanishing Gradient Problem)를 완화시켜 학습이 더욱 원활이 진행되도록 도와줍니다.

  2. Gradient에 대한 효과: 배치 정규화를 사용하면 학습 초기에 활성화 함수의 비연속적인 부분으로부터 비롯된 변동성을 줄일 수 있습니다. 또한, 각각의 미니배치마다 입력을 표준화하는 과정에서 네트워크의 가중치 업데이트가 더 균일하게 이루어져 최적화 과정이 매끄럽게 진행됩니다.

  3. Regularization 효과: Mini-batch 간의 평균과 분산의 차이를 이용한 정규화 과정은 적은 샘플로 학습할 때 과적합(overfitting) 예방에도 도움이 됩니다.

자세한 설명은 아래 유사한 질문과 답변 링크에서 확인하실 수 있습니다:

이러한 답변들이 HELLO님의 이해에 도움되길 바랍니다. 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

노션URL 이동문제

0

56

1

섹션12 실습코드 의 initialization 각각 적용 코드 문의

0

97

0

오타

0

82

0

혹시 이론강의 자료도 공유가 가능하실까요?

1

166

1

[sec. 2-8 실습] 배치사이즈의 선택

0

171

2

[section 14 / [실습] 직접 만든 CNN 모델과 ResNet, VGGNet을 활용한 CV 프로젝트] transforms.Normalize 질문

1

226

1

[section 14 / VGGNet ] receptive filed 질문

1

131

2

[섹션3, PyTorch로 구현해보는 Loss Function] 분류task loss함수 질문입니다.

1

233

2

KL Div Loss에서 Negative Entropy를 더해주는 의미에 대해서

1

193

2

GoogleNet Inception 모듈

1

166

2

Layer Norm이 언어모델에 적합한 이유

1

520

1

9-2 fully connected NN

1

129

1

Mini-batch Gradient Descent computation time 질문

1

175

2

Huber Loss에 대한 질문

1

303

2

Batch size 가 극단적으로 작은 경우 (예를들어 batch_size =1) Normalization 적용 방안

3

353

1

Normalization 질문

1

270

2

Section 7 [Activation Function의 종류] Softmax logit 분포와 Entropy 질문이 있습니다

2

210

1

Section 3 [실습] PyTorch로 구현해보는 Loss Function의 Cross Entropy 구현 관련하여 질문이 있습니다.

1

299

1

Section 3의 [이론] Regression task의 Loss: L1, L2, Huber, Log Cosh Loss "미분가능"관련 에서 질문이 있습니다.

1

280

1

Section 15 실습 중, lstm 클래스의 forward 함수 질문

1

236

2

Section 16 [이론] Transformer의 Encoder 질문

1

177

1

Auto Differentiation에서 computational Graph 질문있습니다

1

212

1

Section 3 이론 classification Loss function 질문

1

235

1

section4의 entropy 시그마 식 전개에 대한 질문입니다.

1

266

2