[D&A DeepSession] 3차시 - 딥러닝 관련 학습기법들

공부보따리·2023년 6월 10일
0
post-thumbnail

01.활성화함수

활성화 함수의 정의

: 입력 신호의 총합을 출력 신호로 변환하는 함수

활성화 함수의 종류

  • sigmoid
    • 과거에 많이 사용되었던 활성화 함수, 0~1사이의 연속적인 값이 출력
    • 단점 : Non-zero centered , Gradient vanishing
      📌 Non-zero centered : 함수값의 중심이 0이 아니다 (zig-zag로 parameter update가 발생하기 때문에 비효율적)
      📌 Gradient vanishing : 기울기 소실 (기울기가 계층을 이동하면서 점차 기울기가 사라지는 현상)
  • Tanh
    • sigmoid 함수에서 Non-zero centered 단점을 극복
    • 기울기의 최대값이 1로 증가
    • 단점 : Gradient vanishing
  • ReLU
    • Gradient vanishing 문제 해결
    • 가장 많이 사용되고 있는 함수
    • 단점 : 입력 값이 음수일때는 모든값이 0으로 수렴
  • Leaky ReLU
  • ELU
  • Maxout

02.최적화

최적화 (Optimizer)

딥러닝의 학습에서는 최대한 틀리지 않는 방향으로 학습을 해야한다.
여기서 얼마나 틀리는지(손실이 생겼는지)를 알게 하는 것이 손실함수(loss function)인데 이것의 최솟값을 찾는 것이 목표이다.
이때의 최적의 매개변수를 찾아내는 것이 Optimizer의 역할이라고 할 수 있다.

Optimizer의 종류

SGD(Stochastic Gradient Descent = 확률적 경사하강법)

  • 정의 : 전체데이터가 아니라 랜덤하게 추출한 일부데이터의 모음(Mini-Batch)을 사용해 경사하강법(Gradient Descent)울 수행하는 방법
  • 특징 : 일부데이터만을 사용하여 기울기를 구하므로 학습속도 증가
  • 단점
    - 미니 배치를 기준으로 학습하기 때문에 학습 효율 감소
    - 최소값(Global minimum)이 아니라 극소점(Local Minimum)에 수렴할 수도 있고 이를 구분할 수 없다.
    - 안장점과 같은 특수한 데이터에서는 오히려 수렴 속도 감소 (경사하강법에서는 미분값이 0일 경우 더이상 파라미터를 업데이트하지 않기때문)
    📌안장점: 기울기가 0이지만 극값이 아닌 지점

Momentum

  • 정의: SGD에 관성을 더해주는 방법으로 이전의 가중치의 수정 방향을 참고하여 갱신 방향을 설정함
    📌관성 : 탄성, 가속도와 같이 기존의 방향을 유지하려는 성질
  • 특징
    - 기존의 갱신 방향을 참고하여 진동 횟수 감소
    - 이전의 갱신 값을 고려하여 더 빠르게 갱신
    - 기울기가 0일때에도 학습이 종료되지 않기 때문에 극소값이 아닌 최소값에 수렴 가능
  • 단점
    - 여전히 진동하므로 최적해에 직선으로 가지 못함
    - 이전 방향을 참고하기때문에 오히려 최소값을 지나칠 수 있음

NAG(Nesterov Accelated Gradient)

  • 정의 : Momentum 방식을 베이스로 하며 미리 경사를 확인할 수 있게하고 경사에 맞춰 보폭(Learning rate)을 조절하는 방식
  • 특징
    - Momentum 방법에 비해 진동 폭 감소
    - Momentum 값을 기준으로 기울기를 계산하기 때문에 더 빠르게 최소값에 접근 할 수 있음
  • 단점 : 모든 가중치에 동일한 학습률을 적용하기 때문에 최적화가 어려움

AdaGrad(Adaptive Gradient)

  • 정의 : 학습률을 조절하여 기울기를 갱신하는 방법 + 업데이트 정도에 따라 업데이트의 크기를 조절 함
  • 특징
    - 과거에 업데이트 된 총량을 기준으로 학습률 조정
    - 학습률 조정을 통해 학습 속도 증가
    - 극솟값에 수렴하지 못하고 발산하는 경우 방지
  • 단점 : 과거의 모든 업데이트 총량을 고려하기 때문에 시간이 지날수록 학습률이 점점 감소해 0이 되는 문제 발생

RMSProp

  • 정의
    - AdaGrad에서 과거의 정보를 일정 수준만 활용 하는 방법(먼 과거 데이터의 영향력을 줄임) + 지수 이동평균 개념 도입
  • 특징
    - 지수 이동평균을 활용하여 최근 값에 더욱 집중 가능
    • 먼 과거의 정보는 잊기 때문에 지속하여 학습 가능
  • 단점 : 초반에는 과거의 정보가 존재하지 않아 0으로 편향된 값 추정 발생

Adam(Adaptive Moment Estimation)

  • 정의 : RMSProp + Momentum
  • 특징
    - 초반 과거 정보 부족 문제 해결
    - 최근 가장 많이 사용되는 방법
    - 가장 최적화에 근사한 값에 도달
  • 단점 : 계산 비용이 다른 방법보다 큼 (속도 ↓)

03.가중치 초기화

가중치 초기화란?

: 모델을 학습하기전, 모델에 존재하는 가중치를 초기화하는 것
가중치 최적화와 함께 모델 학습에 있어서 중요한 요소 중 하나
➕ 가중치는 랜덤하게 설정 해야한다. -> 동일하게 설정하면 업데이트 시에도 모든 값이 동일하기 때문
➕가중치의 최초의 위치가 추후에 업데이트 되는 방향을 결정함

가중치 초기화 방법은 아래와 같은 방법 등이 있다.

  • Xavier Initialization
  • He Initialization

04.기타 기법들

정규화(Normalization)

정규화란? -> 데이터값의 분포는 유지하되, 범위를 변경하는 것

Internal Covariate Shift(ICS)

모델학습 전 입력 Feature간 데이터 범위를 조정할 수 있지만, 모델학습 과정에서 Layer를 통과할 때마다 출력값의 데이터 분포가 Layer마다 다르게 나타나는 현상
특히, 미니배치 학습시에는 배치마다 분포가 달라져 기울기 갱신에 많은 문제점을 야기한다.

배치정규화(Batch Normalization)

배치(batch)마다 평균과 분산을 활용해 데이터의 분포를 정규화하는 과정(평균은 0,표준편차는 1인 정규분포를 따름)

  • 장점
    - Internal Covariate Shift(ICS) 문제 해결
    - 가중치 초기화 문제 어느정도 해결
    - 가중치가 한방향으로만 학습되는 것을 방지
    - 오버피팅억제

오버피팅 억제

  • 가중치 감소
    - 학습과정에서 큰 가중치에 대해 그에 맞는 큰 패널티 부과
  • 드롭아웃(Dropout)
    - 신경망 학습시, 뉴런의 일정비율을 사용하지 않고 학습하는 방법
    - 순전파 과정에 참여한 뉴런만 학습을 수행하고 모든 뉴런을 공평하게 사용하도록 유도함
    - 장점 : 오버피팅억제, Ensemble 효과

0개의 댓글