6주차인데, 병원이나 회사일이나 워크샵 등으로 5일을 빠졌다.
출석률 80% 넘겨야 스파르타 코딩 클럽에서 이수자에게만 주는 무료 강의
2개를 받을 수 있으니 분발해야겠다.

01. CNN 핵심 아이디어

  • 지역 수용영역(Local receptive field) : 픽셀 전부를 한 번에 보지 않고, 작은 창(kerenl)으로 국소 패턴을 학습
  • 파라미터 공유(Parameter sharing) : 같은 커널을 전 장소에 적용 → 파라미터 수 감소
  • 평행이동 등가성(Translation equivariance): 입력이 평행이동되면 특징맵도 같은 방식으로 이동

02. 2D 합성

  • 엄밀히는 상관연산; DL 프레임워크의 conv2d 기본

yc,i,j=bc+m=1Cinu=1Khv=1KwWc,m,u,v  xm,  iSh+uPh,  jSw+vPw.y_{c,\,i,\,j} = b_c + \sum_{m=1}^{C_{in}}\sum_{u=1}^{K_h}\sum_{v=1}^{K_w}W_{c,m,u,v}\; x_{m,\;i\cdot S_h + u - P_h,\; j\cdot S_w + v - P_w}.

03. 출력 크기 공식

  • 패딩 PP, 스트라이드 SS, 팽창(Dilation), DD가 있을 때
Hout=H+2PhDh(Kh1)1Sh+1H_{out}=\left\lfloor \frac{H + 2P_h - D_h\cdot (K_h-1) - 1}{S_h} + 1 \right\rfloor
Wout=W+2PwDw(Kw1)1Sw+1W_{out}=\left\lfloor \frac{W + 2P_w - D_w\cdot (K_w-1) - 1}{S_w} + 1 \right\rfloor

04. 파라미터 수 &연산량(FLOPs) 근사

  • 파라미터 수(바이어스 포함):
#params=KhKwCinCout+Cout.\#\text{params} = K_h K_w\, C_{in} C_{out} + C_{out}.
  • FLOPs(대략): 한 위치에서 곱셈·덧셈
FLOPs2HoutWoutKhKwCinCout\text{FLOPs} \approx 2\,H_{out}W_{out}\,K_hK_w\,C_{in}C_{out}

05. 수용영역(Receptive Field) 계산

  • 계층 ll 의 수용영역 RFlRF_{l}, 점프(유효 스트라이드) JlJ_{l}, 초기 RF0=1RF_{0} = 1, J0=1J_{0} = 1, 커널 크기 KlK_{l}, 스트라이드 SlS_{l} 라고 하면
J=J1S,RF=RF1+(K1)J1J_\ell = J_{\ell-1}\cdot S_\ell,\qquad RF_\ell = RF_{\ell-1} + (K_\ell - 1)\cdot J_{\ell-1}\quad

06. 패딩/스트라이드/팽창(Dilation)

  • same 패딩 : Hout [H/S]H_{out} ~\approx [H/S], Wout [W/S]W_{out} ~\approx [W/S] 되도록 패딩을 선택
  • dilation : 커널 내부 간격을 벌려 수용영역 확대, 해상도 유지
  • dilation 이 D일 때 유효 커널 크기
Keff=(K1)D+1K_{\text{eff}} = (K-1)\cdot D + 1

07. 활성화 함수

08. 풀링(Pooling)

  • Max Pool: 국소 영역 최댓값
  • Average Pool: 국소 영역 평균
  • Global Average Pool(GAP): 채널별 전 공간 평균
yc=1HWi=1Hj=1Wxc,i,j.y_c = \frac{1}{HW}\sum_{i=1}^{H}\sum_{j=1}^{W} x_{c,\,i,\,j}.

09. 정규화(Normalization)

  • 배치정규화(BatchNorm)

    • 특정 채널 cc에 대해 배치 평균, 분산을 ucu_{c}, σc2\sigma_{c}^2 라고 하면
      x^c=xcμcσc2+ϵ,yc=γcx^c+βc.\hat{x}_{c}=\frac{x_{c}-\mu_c}{\sqrt{\sigma_c^2+\epsilon}},\quad y_c=\gamma_c \hat{x}_c + \beta_c.
  • 레이어정규화(LayerNorm)

    • 한 샘플 내부의 전체(또는 채널별 공간) 평균·분산으로 정규화
      x^=xμσ2+ϵ,y=γx^+β\hat{x}=\frac{x-\mu}{\sqrt{\sigma^2+\epsilon}},\quad y=\gamma\hat{x}+\beta

10. 잔차 연결(Residual Connection)

  • 잔차 블록에서 출력:

    y=F(x;W)+S(x)y = F(x;\,W) + \mathcal{S}(x)
  • 여기서 SS는 아이덴티티(차원 불일치 시 1×1 conv로 투영)

11. 합성곱 변형들

  • 1 X 1 합성곱(포인트와이즈)
    • 채널 혼합(차원 축소/확장)에 사용, 공간 크기 보존
  • 그룹 합성곱(Grouped Conv)
    • 채널을 여러 그룹으로 나눠 연산 → 파라미터/연산량 감소
  • 깊이별 분리합성곱(Depthwise Separable, DW+PW)
    • 표준 conv비용 : K2CinCoutK^2C_{in}C_{out}
    • DW+PW 비용: Kin2+CinCoutK^2_{in} + C_{in}C_{out}
    • 비용 비율:
      ratio=K2Cin+CinCoutK2CinCout=1Cout+1K2.\text{ratio} = \frac{K^2 C_{in} + C_{in} C_{out}}{K^2 C_{in} C_{out}} = \frac{1}{C_{out}} + \frac{1}{K^2}.
  • 팽창합성곱(Dilated/Atrous)
    • 해상도 유지하며 수용영역 확장(위 6절 참조)
  • 전치합성곱(Transposed Conv; 업샘플)
Hout=(Hin1)S2P+D(K1)+output_padding+1H_{out}=(H_{in}-1)S - 2P + D\cdot (K-1) + \text{output\_padding} + 1

12. 역전파(Backprop) 핵심

  • 손실 LL, 출력 기울기 Ly\frac{\partial L}{\partial y}가 주어질 때,
    • 가중치 기울기: 입력과 출력기울기의 상관(또는 conv)
    • 입력 기울기: (cross-correlation 기준) 커널을 180° 회전하여 conv
LWxLy,Lxflip(W)Ly\frac{\partial L}{\partial W} \approx x \star \frac{\partial L}{\partial y},\qquad \frac{\partial L}{\partial x} \approx \text{flip}(W) * \frac{\partial L}{\partial y}

13. 분류 헤드: 소프트맥스 & 크로스엔트로피

  • 크로스엔트로피:
    pk=ezkjezj,L=k=1Cyklogpkp_k=\frac{e^{z_k}}{\sum_j e^{z_j}},\quad \mathcal{L} = -\sum_{k=1}^{C} y_k \log p_k
  • 라벨 스무딩(ε\varepsilon):
    yk(smooth)={1εif correctεC1otherwisey_k^{(\text{smooth})} = \begin{cases} 1-\varepsilon & \text{if correct}\\ \frac{\varepsilon}{C-1} & \text{otherwise} \end{cases}

14. 전형적 블록 & 스테이지 설계 패턴

  • Conv-BN-Activation 순서 반복(현대 CNN은 Conv→BN→GELU/ReLU가 일반적)
  • 해상도를 절반으로 줄일 때(스트라이드 2) 채널 수를 2배로 늘려 표현력 유지
  • 잔차 블록 마지막 BN의 γ를 0으로 초기화하면 학습 안정화(초기엔 항등에 가까움)

15. 초기화 & 최적화 & 정규화 팁

  • 초기화: ReLU류는 Kaiming(He) 초기화, tanh류는 Xavier(Glorot)
  • 옵티마이저: 대규모/현대 레시피는 AdamW + cosine decay + warmup. 순수 CNN에서 SGD+모멘텀도 아직 강력
  • 정규화: Weight decay(L2), Dropout(특히 분류 헤드), Stochastic Depth(딥 네트)
  • 데이터 증강: Random crop/flip, Color jitter, Random erasing, Mixup/CutMix(라벨도 혼합)

16. 대표 아키텍처 요약

  • LeNet-5(1998): 소형 필터+풀링+MLP
  • AlexNet(2012): ReLU, 드롭아웃, CUDA 병렬로 대규모 데이터(ImageNet) 돌파
  • VGG(2014): 3×3 작은 필터의 깊은 스택
  • Inception(2014–): 멀티 스케일 분기, 병렬 경로
  • ResNet(2015): 잔차 연결로 초딥 네트 학습 가능
  • MobileNet/ShuffleNet: 경량(Depthwise/Group)
  • EfficientNet: 컴파운드 스케일링
  • ConvNeXt: 현대적 설계(대형 커널, 층 정규화 등)로 ViT와 경쟁
profile
2025화이팅!

0개의 댓글