[Deep Learning] 데이터의 흐름을 지배하는 법: 4가지 정규화(Normalization) 완전 정복

nomadicsoul·2026년 3월 24일

deeplearning

목록 보기
15/20

딥러닝 모델이 깊어질수록 데이터를 단순히 쌓는 것보다, 각 층을 통과하는 데이터의 '분포'를 일정하게 유지하는 것이 훨씬 중요해집니다. 이를 가능하게 하는 정규화에 대해 알아보겠습니다.


1. 정규화(Normalization)의 정의와 목적

정규화란?

학습 과정에서 각 층의 입력 또는 출력값을 평균 0, 분산 1에 가깝게 표준화하여 데이터의 분포를 안정시키는 기법입니다.

  • 수식: x^=xμbatchσbatch2+ϵ\hat{x} = \frac{x - \mu_{batch}}{\sqrt{\sigma_{batch}^2 + \epsilon}}
    • μ\mu: 데이터의 평균
    • σ2\sigma^2: 데이터의 분산
    • ϵ\epsilon: 분모가 0이 되는 것을 방지하는 아주 작은 상수

왜 하는가? (학습의 난제 해결)

  1. 내부 공변량 변화(Internal Covariate Shift) 억제: 층이 깊어질수록 가중치 업데이트에 따라 입력 분포가 계속 변하는 현상을 막아 학습 속도를 높입니다.
    • '학습의 효율성' 문제입니다. 층마다 데이터 분포가 널뛰니까 다음 층이 매번 "어? 갑자기 데이터가 왜 이래?" 하면서 갈팡질팡하는 상태입니다. 공부로 치면 '교과서가 매일 바뀌어서 진도를 못 나가는 상황'입니다.
  2. 과적합(Overfitting) 방지: 정규화 과정에서 더해지는 미세한 노이즈가 일종의 규제(Regularization) 역할을 하여, 모델이 특정 훈련 데이터에만 과하게 최적화되는 것을 방지합니다.
    • '일반화'의 문제입니다. 훈련 데이터에 너무 집착해서 시험 문제(새로운 데이터)를 못 푸는 상태입니다.
  3. 기울기 소실 방지: 데이터가 활성화 함수(Sigmoid, ReLU 등)의 포화 영역에 빠지지 않게 하여 학습이 멈추는 것을 막습니다.

1, 3번과 2번(오버피팅)의 관계: 연결고리는 무엇인가?1번과 3번은 "학습이 잘 안 되는 문제(Optimization)"이고, 2번은 "학습이 너무 과하게 된 문제(Generalization)"입니다.

왜 공변량 변화가 심하면 오버피팅이 생기나요?

  • 부정확한 학습 방향: 분포가 계속 변하면 모델의 가중치는 최적의 지점을 향해 곧장 가지 못하고 지그재그로 움직입니다. 이 과정에서 모델은 데이터의 본질적인 특징(Signal)이 아니라, 매번 바뀌는 분포의 특성(Noise)을 학습하게 됩니다. 이것이 곧 오버피팅의 시작입니다.
  • Normalization 의 규제 효과(Regularization): 배치 정규화(BNBN)를 할 때 사용하는 평균(μ\mu)과 분산(σ2\sigma^2)은 전체 데이터가 아닌 '현재 배치'의 통계량입니다.
    • x^i=xiμbatchσbatch\hat{x}_i = \frac{x_i - \mu_{batch}}{\sigma_{batch}}
    • 매 배치마다 들어오는 샘플이 다르기 때문에 μbatch\mu_{batch}σbatch\sigma_{batch} 는 조금씩 요동칩니다. 이 미세한 수치의 변화가 모델 입장에서는 일종의 노이즈가 되어 모델이 특정 샘플을 달달 외우지 못하게 방해하는 '규제' 역할을 합니다. 결과적으로 오버피팅을 막아줍니다.

step 1) 가중치 업데이트가 일어남.
step 2) 내부 공변량 변화(1번) 발생 → 입력 분포가 활성화 함수의 끝단으로 쏠림.
step 3) 그 결과 기울기 소실(3번) 발생 → 학습이 멈추거나 매우 느려짐.
step 4) 이 불안정한 과정에서 모델이 데이터의 노이즈를 학습하며 오버피팅(2번)에 취약해짐.
step 5) 정규화 도입: 분포를 0 근처로 고정(1번 해결)하여 기울기를 살리고(3번 해결), 배치 통계량의 노이즈로 일반화 성능을 높임(2번 해결).


2. "배치 정규화의 마법: 왜 '전체'가 아닌 '배치' 단위인가?"

정확히는 지금 내 눈앞에 있는 '현재 배치' 안에 들어온 데이터들만 가지고 그 안에서 평균과 분산을 구해서 정규화하는 것입니다.모든 데이터를 다 뒤져서 평균을 내는 게 아니기 때분에 '노이즈'로 '규제 효과'를 만듭니다.

1. 에폭이 바뀔 때마다 '배치 친구들'이 달라집니다.

보통 모델을 학습시킬 때, 매 에폭이 시작될 때마다 데이터를 셔플(Shuffle, 무작위 섞기)합니다.

  • 에폭 1 (Iteration 1): 고양이 AA가 [강아지 BB, 나무 CC]와 같은 배치에 묶였습니다.
    • 이때 이 배치의 평균(μ\mu)은 0.51이 나왔고, 고양이 AA의 정규화 값은 0.19가 됩니다.
  • 에폭 2 (Iteration 50): 데이터를 새로 섞었더니, 고양이 AA가 이번에는 [자동차 DD, 하늘 EE]와 같은 배치에 묶였습니다.
    • 이번 배치의 평균(μ\mu)은 0.48이 나왔고, 고양이 AA의 정규화 값은 0.22가 됩니다.

모델은 수천 번의 에폭을 돌며 같은 고양이 사진 AA를 반복해서 봅니다. 그런데 볼 때마다 같이 들어오는 친구들(배치 구성원)이 달라지니, 정규화된 최종 숫자값(x^\hat{x})이 미세하게 계속 변하는 것입니다.

2. "내 배치의 데이터"만 봅니다

예를 들어 전체 데이터가 10,000개 있고, 배치 크기(NN)를 32로 설정했다고 가정해 봅시다.

  1. 샘플링: 10,000개 중 무작위로 32개를 뽑습니다. (이게 현재 배치입니다.)
  2. 통계량 계산:32개만의 평균(μbatch\mu_{batch})과 분산(σbatch\sigma_{batch})을 구합니다.
  3. 정규화: 이 32개의 데이터(x1,x2,,x32x_1, x_2, \dots, x_{32}) 각각에서 위에서 구한 32개짜리 평균을 빼고 분산으로 나눕니다.
    • 배치 1: [A, B, C...]가 뽑힘 → 평균이 0.51
    • 배치 2: [D, E, F...]가 뽑힘 → 평균이 0.48
    • 배치 3: [G, H, I...]가 뽑힘 → 평균이 0.53
  • 정규화 수식 (x^=xμbatchσbatch\hat{x} = \frac{x - \mu_{batch}}{\sigma_{batch}}) 에 대입.

똑같은 데이터xx가 들어와도 각 에폭마다 어떤 친구들과 같은 배치에 묶이느냐에 따라 x^\hat{x} 값이 조금씩 변하게 됩니다. 각 에폭마다 입력값이 매번 조금씩 미세하게 떨리면서(Noise) 들어오는 셈입니다.

  • 외우기 방해: 데이터가 고정되어 있으면 모델이 "이 사진은 픽셀값이 정확히 얼마니까 고양이네!"라고 암기(Overfitting)하기 쉽습니다.

  • 본질 집중: 하지만 데이터가 조금씩 흔들리면, 모델은 지엽적인 숫자를 외우는 대신 "흔들려도 변하지 않는 고양이의 본질적인 특징"을 찾으려 노력하게 됩니다.

3. 왜 모든 데이터(μall\mu_{all})를 안 쓰나요?

  • 계산량 문제: 매번 업데이트할 때마다 10,000개를 다 뒤져서 평균을 내는 건 너무 느리고 비효율적입니다.
  • 학습의 동적 특성: 가중치(WW)가 계속 변하므로, 예전 가중치로 뽑아놓은 전체 평균은 지금 시점에서는 의미가 없을 수 있습니다.
  • 규제 효과(The "Magic" of BN): 전체 평균을 쓰면 값이 딱 고정되겠지만, 32개씩만 묶어서 평균을 내면 어떤 친구들과 묶이느냐에 따라 평균값이 조금씩 달라집니다(요동침). 이 '우연한 오차'가 모델이 데이터를 통째로 외우는 걸 방해하는 천연 노이즈 역할을 하는 거죠.

4. 그럼 모든 데이터의 평균은 언제 쓰나요? (테스트 시점)

학습이 다 끝나고 실제 서비스를 할 때는(Inference), 데이터 한 장씩 들어오는데 배치 평균을 낼 순 없겠죠?

  • 학습 중: 매 배치마다 계산한 평균들을 이동 평균(Moving Average) 방식으로 기록해둡니다. (마치 "우리 모델이 그동안 봐온 데이터들의 평균은 대략 이 정도였어"라고 메모해두는 것과 같습니다.)
  • 테스트 시: 학습 때 메모해둔 전체 데이터의 평균(μmoving_avg\mu_{moving\_avg})을 고정해서 사용합니다. 이때는 노이즈 없이 안정적으로 결과를 내야 하기 때문입니다.

"학습할 때는 지금 배치에 모인 친구들끼리만 평균 내서 정규화합니다. 그래서 배치마다 평균이 조금씩 다르고, 그 '다름'이 오버피팅을 막아주는 고마운 노이즈가 됩니다."


3. 텐서(Tensor) 형상과 4가지 정규화 기법 비교

정규화 기법의 차이는 "어떤 차원(N,C,H,WN, C, H, W)을 묶어서 평균(μ\mu)과 분산(σ2\sigma^2)$$을 계산하느냐"에 달려 있습니다.

텐서 형상의 의미

  • NN (Batch): 데이터의 개수 (한 번에 학습하는 묶음)
  • CC (Channel): 특징의 종류 (이미지의 RGB나 필터에 의해 생성된 특징들)
  • H,WH, W (Spatial): 데이터의 공간적 크기 (이미지의 가로, 세로)

① Batch Normalization (BN)

  • 계산 차원: 동일한 채널(CC)에 대해 배치(NN) 전체와 공간(H,WH, W)의 통계량을 구합니다.
  • 수식 특징: μc=1NHWn,h,wxn,c,h,w\mu_c = \frac{1}{N \cdot H \cdot W} \sum_{n, h, w} x_{n, c, h, w}
  • 의미: "우리 팀(Batch) 전체에서 이 특징(Channel)의 평균은 얼마인가?"

② Layer Normalization (LN)

  • 계산 차원: 각 샘플(NN) 내부에서 모든 채널(CC)과 공간(H,WH, W)의 통계량을 구합니다.
  • 수식 특징: μn=1CHWc,h,wxn,c,h,w\mu_n = \frac{1}{C \cdot H \cdot W} \sum_{c, h, w} x_{n, c, h, w}
  • 의미: "이 데이터 한 건(Sample)이 가진 전체 에너지(Features)의 평균은 얼마인가?"

③ Instance Normalization (IN)

  • 계산 차원: 각 샘플(NN)의 각 채널(CC)별로 공간(H,WH, W)의 통계량만 구합니다.
  • 수식 특징: μn,c=1HWh,wxn,c,h,w\mu_{n, c} = \frac{1}{H \cdot W} \sum_{h, w} x_{n, c, h, w}
  • 의미: "이 이미지 한 장에서 R채널(혹은 특정 특징)의 평균적인 밝기는 얼마인가?"

④ Group Normalization (GN)

  • 계산 차원: 채널(CC)을 GG개의 그룹으로 나누고, 해당 그룹 내의 채널들과 공간(H,WH, W)의 통계량을 구합니다.
    * 새로운 형상: (N,G,CG,H,W)(N, G, \frac{C}{G}, H, W) (여기서 CG\frac{C}{G}는 한 그룹당 포함된 채널의 개수입니다.)
    • 해당 그룹 내의 채널들과 공간(H,WH, W)의 통계량
      • μi,g=1(C/G)HWcSgh,wxi,c,h,w\mu_{i,g} = \frac{1}{(C/G)HW} \sum_{c \in S_g} \sum_{h,w} x_{i,c,h,w}
      • σi,g2=1(C/G)HWcSgh,w(xi,c,h,wμi,g)2+ϵ\sigma_{i,g}^2 = \frac{1}{(C/G)HW} \sum_{c \in S_g} \sum_{h,w} (x_{i,c,h,w} - \mu_{i,g})^2 + \epsilon
      • ii: 샘플 인덱스 (NN 중 하나)
      • gg: 그룹 인덱스 (GG 중 하나)
      • SgS_g: gg번째 그룹에 속하는 채널들의 집합
  • 수식 특징: LN(전체 채널)과 IN(개별 채널)의 중간 형태입니다.
    • G=1G = 1 일 때: 모든 채널을 하나의 그룹으로 묶으므로 Layer Normalization(LN)과 수식이 완전히 같아집니다.
    • G=CG = C 일 때: 각 채널이 곧 하나의 그룹이 되므로 Instance Normalization(IN)과 수식이 완전히 같아집니다.
  • 의미: "서로 연관된 특징들(Group)끼리의 평균은 얼마인가?"
기법평균 μ\mu 계산 시 합산하는 인덱스 (\sum)특징
Batch (BN)(N,H,W)(N, H, W)채널별로 배치 전체를 훑음
Layer (LN)(C,H,W)(C, H, W)샘플별로 모든 채널을 훑음
Instance (IN)(H,W)(H, W)샘플의 각 채널별로 공간만 훑음
Group (GN)(Group_Channels,H,W)(Group\_Channels, H, W)샘플 내 특정 채널 묶음만 훑음

4. 언제 어떤 정규화를 써야 할까?

실무에서 정규화를 선택하는 기준은 데이터의 도메인과 하드웨어 자원(배치 크기)에 따라 달라집니다.

  • 배치 크기가 충분히 클 때 (N16N \ge 16) → Batch Norm
    • 일반적인 이미지 분류, 객체 검출 모델에서 가장 강력한 성능을 냅니다.
  • 텍스트나 시계열 데이터(NLP)일 때 → Layer Norm
    • 문장의 길이가 매번 달라 배치 단위로 평균을 내기 힘든 RNN이나 Transformer 모델에서 표준으로 쓰입니다.
  • 이미지의 스타일(화풍, 조명)이 중요할 때 → Instance Norm
    • GAN이나 Style Transfer 모델에서 개별 이미지의 스타일 정보를 정규화하여 콘텐츠의 특징만 남기고 싶을 때 유용합니다.
  • 이미지 모델인데 메모리가 부족해 배치 크기가 작을 때 (N4N \le 4) → Group Norm
    • 배치 크기에 영향을 받지 않으면서도 Batch Norm과 유사한 성능을 내야 하는 의료 영상 처리나 고해상도 이미지 처리에서 사용됩니다.

정규화 기법별 장단점 요약 (Summary Table)

기법장점단점주요 사용처
Batch (BN)학습 속도가 매우 빠르고 성능이 검증됨.배치 크기(NN)에 민감함. 작은 배치에서 불안정함.CNN, 일반적인 MLP
Layer (LN)배치 크기에 무관함. 시계열 데이터에 강점.채널 간의 상관관계가 너무 클 때 비효율적일 수 있음.RNN, Transformer (NLP)
Instance (IN)스타일 정보(조명, 대비 등)를 효과적으로 제거함.콘텐츠의 구체적인 특징이 뭉개질 수 있음.Style Transfer, GAN
Group (GN)작은 배치에서도 BN에 근접한 성능을 냄.그룹 수(GG)라는 추가 하이퍼파라미터 결정 필요.고해상도 이미지 처리 (의료/위성)

5. 정규화와 가중치 초기화의 시너지

1) 왜 정규화와 가중치 초기화를 같이 고민해야 할까?

가중치 초기화(Weight Initialization)의 목적은 "층이 깊어져도 활성화 값의 분포를 일정하게 유지하는 것"입니다. 정규화 역시 같은 목적을 가집니다.

  • 초기화: 출발선에서 데이터의 분포를 맞춰주는 작업 (He, Xavier)
  • 정규화: 경기가 진행되는 동안(학습 중) 계속해서 분포를 교정하는 작업

이 둘이 만나면, 모델은 초기 단계부터 안정적인 그래디언트(Gradient)를 가지게 되어 학습 속도가 폭발적으로 향상됩니다.

2) 왜 Batch Norm(BN)을 쓰면 초기화의 영향력이 줄어들까?

이것은 매우 중요한 포인트입니다. BN의 수식을 다시 떠올려보면, 입력값에서 평균을 빼고 분산으로 나눕니다.

  • x^=Wxμσ2+ϵ\hat{x} = \frac{W \cdot x - \mu}{\sqrt{\sigma^2 + \epsilon}}

만약 초기 가중치(WW)가 조금 크거나 작게 설정되어 데이터의 스케일이 엉망이 되더라도, BN 층을 통과하는 순간 다시 평균 0, 분산 1로 강제 재조정됩니다.

  • 즉, 가중치가 데이터에 미치는 '절대적인 크기'의 영향력이 정규화 과정에서 상쇄됩니다.
  • 결과적으로 BN을 사용하면 가중치 초기화에 덜 민감해지며, 심지어 학습률(α\alpha)을 평소보다 더 크게 설정해도 모델이 안정적으로 수렴할 수 있게 됩니다.

실전 딥러닝에서의 BN: 어디에 위치하며 어떻게 작동하는가?

정규화는 단순히 수식으로만 존재하는 것이 아니라, 딥러닝 모델 안에서 하나의 독립적인 층(Layer)으로 당당히 자리 잡고 있습니다.

1. BN 레이어의 위치

"샌드위치 구조"일반적으로 BN 층은 선형 연산(Linear/Conv)과 활성화 함수(Activation) 사이에 위치합니다. 데이터가 가중치와 곱해져 분포가 뒤틀린 직후, 활성화 함수에 들어가기 전이 가장 '수선'하기 좋은 골든타임이기 때문입니다.

  • 구조: Linear/Conv Layer \rightarrow Batch Norm Layer \rightarrow Activation (ReLU, 등)
    • Linear/Conv: 가중치(WW)와 입력(xx)을 곱해서 결과값을 냅니다. 이때 분포가 한쪽으로 쏠리거나 커질 수 있습니다.
    • BN 층: 활성화 함수에 들어가기 직전, 방금 나온 결과값들을 평균 0, 분산 1로 예쁘게 깎고 다듬습니다. (기울기 소실 방지!)
    • Activation: 예쁘게 다듬어진 데이터를 받아 비선형성을 추가합니다.
  • 특징
    • 가중치(WW)와 곱해진 결과값들이 활성화 함수의 포화 영역(Saturation region)에 빠지기 전에 평균 0, 분산 1로 예쁘게 다듬어 '기울기 소실'을 원천 봉쇄합니다.
    • 논문 저자들은 활성화 함수 직전(Pre-activation)을 권장했지만, 가끔 활성화 함수 이후에 BN을 쓰기도 합니다. 하지만 표준은 위 순서입니다.
      • 문제 1 (이미 늦음): 이미 Sigmoid를 통과하면서 값이 0이나 1로 쏠려버렸다면(Saturation), 기울기는 이미 사라진 상태입니다. 뒤늦게 BN으로 수치를 조정해도 잃어버린 기울기를 되살릴 순 없습니다.
      • 문제 2 (비선형성 파괴): 활성화 함수의 목적은 데이터에 '비선형성'을 주는 것인데, 그 직후에 다시 평균 0, 분산 1로 강제 정규화를 해버리면 활성화 함수가 공들여 만든 비선형적 특징이 희석될 수 있습니다.
    • Linear/Conv Layer 전에 오면 정규화를 하는 의미가 없어집니다.

2. 레이어가 여러 번 있으면 BN도 여러 번 하나요?

층이 100개라면 BN 층도 보통 100개가 들어갑니다.딥러닝 모델은 [Linear - BN - ReLU]라는 세트가 수십 번 반복되는 구조입니다.

  • Layer 1: Linear1 \rightarrow BN1 (정규화) \rightarrow ReLU1
  • Layer 2: Linear2 \rightarrow BN2 (정규화) \rightarrow ReLU2
  • Layer 3: Linear3 \rightarrow BN3 (정규화) \rightarrow ReLU3... (반복)

데이터는 층을 통과할 때마다 '추상적인 특징'으로 계속 가공됩니다. 가공될 때마다 새로운 가중치와 곱해지며 분포가 또다시 무너지죠.

그래서 각 층마다 BN이라는 '중간 검수대'를 세워둡니다. 이전 공정에서 아무리 데이터가 널뛰었어도, 다음 공정으로 넘어가기 전에는 반드시 규격(평균 0, 분산 1)에 맞게 교정하는 것입니다.

3. "같은 데이터"가 여러 번 정규화되나요?

네, 하지만 데이터의 '모습'이 층을 지날 때마다 계속 변하기 때문에 매번 새로 정규화하는 것입니다.

  • 처음 들어온 입력 데이터(예: 고양이 사진)가 Linear1을 통과하면 '추상적인 특징 1'로 변합니다. 이 특징값들이 엉망이 되지 않게 BN1이 잡아줍니다.

  • 그 값이 다시 Linear2를 통과하면 '더 고차원적인 특징 2'로 변합니다. 이때 가중치와 곱해지면서 분포가 또 뒤틀리겠죠? 그래서 BN2가 다시 잡아주는 것입니다.

즉, 데이터라는 원재료가 층을 통과하며 가공될 때마다, 중간중간 분포가 망가지지 않게 '수선'해주는 작업이 여러 번 일어나는 것이라고 이해하시면 완벽합니다.

1. 한 번의 이터레이션 (1 Iteration)

  • 데이터: 전체 10,000개 중 딱 32개만 뽑힙니다.과정: 이 32개가 모델의 입구로 들어갑니다.
  • 정규화의 반복: 이 32개 뭉치는 1층을 지나며 BN1을 거치고, 2층을 지나며 BN2를 거치고... 100층까지 있다면 100번의 정규화를 거칩니다. (층마다 데이터의 모습이 변하니까 층마다 정규화를 진행합니다.)
  • 마무리: 마지막 층을 통과하면 오차를 계산하고 가중치를 한 번 업데이트합니다.

2. 한 에폭 (1 Epoch)반복:

  • 위와 같은 '32개 뽑기 + 100번 정규화 + 가중치 업데이트' 과정을 전체 데이터 / 32 번만큼 반복합니다. (예: 10,000 / 32 \approx 312번의 이터레이션)

4. 정규화가 소실/폭주를 막는 공통 원리

딥러닝 모델은 층이 깊어질수록 Gradient Vanishing(기울기 소실), Gradient Explosion(기울기 폭주) 현상이 발생하기 쉬워집니다. 정규화는

  • 기울기 소실 방지 (Anti-Vanishing): 데이터를 활성화 함수의 중심부로 끌고 와서 기울기가 0이 되는 것(가뭄)을 막습니다.
    • 원인: 데이터 분포가 활성화 함수(Sigmoid 등)의 양 끝단(포화 영역)으로 쏠리면 기울기가 0이 됨.
    • BN의 역할: 데이터를 강제로 기울기가 살아있는 중심부(평균 0)로 끌고 옵니다.
    • 결과: 죽어가던 기울기를 살려내어 학습이 중단되지 않게 합니다.
  • 기울기 폭주 방지 (Anti-Exploding): 값이 너무 커지면 분산(σ2\sigma^2)으로 나누어 스케일을 강제로 줄여 폭발하는 것(홍수)을 막습니다.
    • 원인: 층을 지날 때마다 가중치(WW)가 계속 곱해지면서, 출력값과 기울기가 기하급수적으로 커지는 현상입니다. (예: 1.11001.1^{100}은 엄청나게 큰 숫자가 됨)
    • BN의 역할: 값이 아무리 커지려고 해도 BN 층을 만나는 순간 분산(σ2\sigma^2)으로 나누어 스케일을 확 줄여버립니다.
    • 수식: x^=xμσ2+ϵ\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}값이 커지면 분산(σ2\sigma^2)도 같이 커지기 때문에, 결국 나눗셈을 통해 항상 일정한 범위(표준편차 1) 안에 머물게 강제합니다.
    • 결과: 숫자가 무한대로 발산하는 것을 물리적으로 막아주어 학습이 안정됩니다.

5. 왜 BN을 쓰면 학습률(Learning Rate)을 크게 높여도 되나요?

이게 바로 기울기 폭주 방지와 연결되는 실무적인 장점입니다.

  • BN이 없을 때: 학습률을 조금만 높여도 가중치가 확 커지고, 그게 다음 층에서 증폭되어 모델이 바로 '에러(NaN)'를 뱉으며 터져버립니다.
  • BN이 있을 때: 가중치가 커져서 값이 튀어 오르려고 해도 BN이 다음 층 입구에서 규격에 맞춰 다시 작게 깎아버립니다.
  • 결론: 덕분에 우리는 평소보다 훨씬 큰 학습률을 설정해서 학습 속도를 획기적으로 높일 수 있습니다.
profile
꾸준히

0개의 댓글