[Coursera/IBM course #5] 신경망 (Neural Net)

2025. 7. 16. 17:31·🥇 certification logbook
728x90
반응형

 

 

 

 

[IBM course #5] Deep Learning with PyTorch

 

신경망 (Neural Net)

기본 신경망 구조 : 1개의 은닉층(2 뉴런)을 가진 신경망 구조

입력 → Linear → Sigmoid → Linear → Sigmoid → Threshold (이진 분류용)

 

 

  • 활성화 함수: Sigmoid 사용 (출력값: 0~1)
  • PyTorch 구현 방법: nn.Module 또는 nn.Sequential 활용
  • 모든 연산은 행렬 곱 기반으로 처리
  • Forward 패스에서 입력 벡터의 shape 변화 추적 가능

 

이진 분류 학습

손실 함수: nn.BCELoss() (Binary Cross Entropy Loss)

최적화 함수: Adam 사용

입력: 2D 벡터

출력: 0 또는 1 (Sigmoid 통과 후 threshold 적용)

 

은닉층 뉴런 수 증가의 효과

뉴런 수 증가 → 모델 표현력 증가

복잡한 경계 표현 가능

Sigmoid × weight의 누적 조합으로 다양한 형태의 decision boundary 생성

 

이 때,

너무 적은 뉴런 → underfitting (단순한 분류 경계)

너무 많은 뉴런 → overfitting (복잡한 경계, 일반화 어려움)

⇒  해결책

  1. Validation set 활용
  2. Regularization (예: Dropout)
  3. 데이터 양 증가

 

다중 클래스 분류 (Multiclass Neural Network)

출력층: 클래스 수만큼 뉴런 생성 (예: MNIST → 10개) → 각 뉴런은 그 클래스의 점수

출력층 활성화 함수 없음 (Softmax는 CrossEntropyLoss 내부 처리됨)

예측: 출력 중 가장 큰 값을 갖는 뉴런의 index → argmax

구현 방식: nn.Module, nn.Sequential 둘 다 가능

 

역전파(backpropagation) & Gradient 문제

연쇄법칙(chain rule)을 이용한 gradient 계산

PyTorch에서는 .backward() 호출로 자동 계산

 

Vanishing Gradient 문제

네트워크 깊어질수록 gradient가 작아짐

특히 sigmoid, tanh 사용 시 심각

⇒  해결 방법:

활성화 함수 변경 (ReLU)

BatchNorm, 초기화 기법 등 활용

 

주요 활성화 함수

함수 출력 범위 장점 단점
Sigmoid [0, 1] 확률 해석 가능 Gradient 소실 문제
Tanh [-1, 1] Zero-centered Gradient 소실 문제
ReLU → 해결책으로 자주 사용 [0, ∞] 빠른 수렴, Gradient 유지 Dead neuron 가능성 있음

 

ReLU, Tanh > Sigmoid (loss 감소 및 accuracy 향상)

 

Dropout - 과적합 방지를 위한 Regularization 기법

  • 훈련 시: 뉴런을 무작위로 꺼서 다양한 경로 학습 (Bernoulli 확률 분포 기반)
  • 평가 시: 모든 뉴런 사용
  • PyTorch: nn.Dropout(p) (일반적으로 p=0.2~0.5. p 클수록 더 많은 뉴런 drop)
    → .train() 시 활성, .eval() 시 비활성
  • 효과 : 모델 일반화 성능 향상 + Validation 정확도 개선
  • 주의 :
    • CNN에서는 convolution layer에는 잘 사용하지 않음
      → dropout을 통해 뉴런을 무작위로 끄게 되면, convolution 결과의 공간 패턴(위치 정보)를 무너뜨릴 수도 있으며, 보통 batch nomalization을 사용하는데, 이로 인해 dropout이 없어도 약간의 regulartization 효과 발생.
    • RNN에서는 variational dropout*이 대안

* Variational Dropout : "시퀀스 전체에 동일한 dropout mask를 적용"해서 시간적 일관성을 유지하려는 dropout 방식

 

Weight Initialization - 가중치 초기화 중요성과 방법

모든 뉴런 동일 초기화 및 업데이트 → 학습 실패

PyTorch 기본 초기화는 (-1/√Lin, +1/√Lin) 범위

권장 기법 :

Xavier: tanh에 적합

He: ReLU에 적합 (variance를 고려하여 초기화)

초기화 범위가 너무 크거나 작아도 → gradient vanishing 발생 가능

 

Momentum을 사용한 Gradient Descent 개선

기본 GD 문제: Saddle point, local minima에서 빠져나오기 어려움

해결법:

이전 gradient를 활용한 속도(velocity) 도입 (PyTorch: SGD(momentum=0.5) 등으로 설정 가능)

비유: 공의 위치, 속도, 가속도처럼 이해하면 쉬움

 

Batch Normalization - 학습 속도 및 안정성 향상

각 미니배치 기준으로 평균, 표준편차 계산 → 정규화 (평균 0, 표준편차 1)

이후에 scale(γ), shift(β) 파라미터 학습 추가 적용

효과 :

Gradient 방향 정렬 → 더 빠른 수렴

Vanishing gradient 완화

Dropout 없이도 성능 향상 가능

 

PyTorch: nn.BatchNorm1d(# 뉴런 수) 사용

.train() 시 batch 통계 사용, .eval() 시 전체 통계 사용

728x90
반응형

'🥇 certification logbook' 카테고리의 다른 글

[Coursera/IBM course #7] Data preparation for LLMs  (8) 2025.07.26
[Coursera/IBM course #7] 생성형 AI (Generative AI)  (5) 2025.07.23
[Coursera/IBM course #6] Capstone Project 메모  (3) 2025.07.20
[Coursera/IBM course #5] Convolution 연산 기본 개념  (4) 2025.07.19
[Coursera/IBM course #5] Softmax  (0) 2025.07.13
[Coursera/IBM course #4] Linear Regression Prediction  (0) 2025.06.14
[Coursera/IBM course #4] Dataset  (0) 2025.06.07
[Coursera/IBM course #4] Tensors  (2) 2025.06.07
'🥇 certification logbook' 카테고리의 다른 글
  • [Coursera/IBM course #6] Capstone Project 메모
  • [Coursera/IBM course #5] Convolution 연산 기본 개념
  • [Coursera/IBM course #5] Softmax
  • [Coursera/IBM course #4] Linear Regression Prediction
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (223)
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (73)
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    IBM
    데이터사이언스 입문
    법학과
    자격증
    certificate
    Coursera
    민법
    ADsP
    근로기준법
    datascience
    방통대
    Python
    머신러닝
    인공지능
    deeplearning
    데이터분석준전문가
    인공지능 입문
    형법
    기본권의기초이론
    온라인 강의 추천
  • hELLO· Designed By정상우.v4.10.3
이소야
[Coursera/IBM course #5] 신경망 (Neural Net)
상단으로

티스토리툴바