학습 관련 기술들

Jiyoon·2023년 1월 31일
1

Deep Learning

목록 보기
5/6

매개변수 갱신

신경망 학습의 목적: 손실 함수의 값을 가능한 한 낮추는 매개변수 찾기 → 최적화

확률적 경사 하강법(SGD)

매개변수 기울기 구하고 기울어진 방향으로 매개변수 갱신

💡 Learning Rate(학습률): 학습을 진행하는 속도
작다 → 학습속도를 느리게하여 보다 정확
크다 → 학습속도가 빠르지만 부정확

SGD 단점

비등방성 함수(방향에 따라 기울기가 달라지는 함수)에서는 탐색 경로가 비효율적이다.
기울어진 방향이 본래의 최솟값과 다른 방향을 가리킬 경우 문제가 된다.

모멘텀(Momentum)

v(속도)에 대한 식은 기울기 방향으로 힘을 받아 물체가 가속된다는 물리 법칙을 나타낸다.
+) 공이 그릇의 바닥을 구르는 듯한 움직임

SGD와 비교했을 경우 지그재그 정도가 덜하다

AdaGrad

학습률 감소: 학습을 진행하면서 학습률을 점차 줄여간다(처음에는 크게 학습, 뒤에서는 조금씩 작게)

AdaGrad: 각각의 개별 매개변수에 적응적으로 학습률을 조정하며 학습 진행
h: 기존 기울기 값을 제곱하여 계속 더해준다
→ 매개변수의 원소 중 많이 움직인(크게 갱신된) 원소는 학습률이 낮아진다
→ 매개변수의 원소마다 다르게 적용된다

문제점: 무한히 계속 학습하다 보면 갱신량 0되는 경우 존재
해결책: RMSProp 먼 과거의 기울기는 잊고, 새로운 기울기 정보를 크게 반영



Adam

모멘텀 + AdaGrad

갱신 강도를 적응적으로 조정해서 모멘텀 때보다 공의 좌우 흔들림이 적다.

Optimizer 발달 계보





가중치의 초깃값

가중치의 초깃값에 따라 신경망 학습의 성패가 결정된다

가중치 감소

가중치 매개변수의 값이 작아지도록 학습하여 오버피팅이 일어나지 않게 하는 것
가중치가 오차역전파법에서 잘 갱신되게 하려면 가중치의 초깃값을 무작위로 설정해야 한다

은닉층의 활성화 값 분포

활성화 함수로는 시그모이드 함수를 사용하며, 초기값 설정에 따른 각 층의 활성화 값 분포를 알아본다.

  • 표준편차가 1인 정규분포로 초기화:
    출력이 0 또는 1에 가까워지자 미분은 0에 다가간다 → 기울기 소실
  • 표준편차가 0.01인 정규분포로 초기화:
    다수의 뉴런이 같은 값을 출력한다 → 표현력 제한
  • Xavier 초깃값:
    계층의 노드가 n개라면 표준편차가 1/root(n)인 분포를 사용한다
    앞 층에 노드가 많을수록 대상 노드의 초깃값으로 설정하는 가중치가 좁게 퍼진다
    형태가 다소 일그러지지만 확실히 넓게 분포된다

ReLU를 사용할 때의 가중치 초깃값

Xavier 초깃값은 활성화 함수가 선형인 것을 전제로 이끈 결과(sigmoid, tanh)이다
ReLU를 이용할 때는 He 초깃값을 사용한다

He 초깃값

앞 계층의 노드가 n개일 때, 표준편차가 root(2/n)인 정규분포를 사용한다
→ 음의 영역이 0이라 더 넓게 분포시키기 위해 2배의 계수가 필요

활성화 함수로 ReLU를 사용할 때는 He 초깃값, sigmoid나 tanh 등의 선형 함수일 때는 Xavier 초깃값을 쓴다



배치 정규화

각 층에서의 활성화값이 적당히 분포되도록 조정하는 것
데이터 분포를 정규화하는 ‘배치 정규화 계층’을 신경망에 삽입한다

미니배치를 단위로 정규화하며 평균 0, 분산 1이 되게 정규화한다
이 처리를 활성화 함수의 앞(혹은 뒤)에 삽입해서 데이터 분포가 덜 치우치게 할 수 있다
배치 정규화를 사용하면 가중치 초깃값에 크게 의존하지 않아도 된다



오버피팅

매개변수가 많고 표현력이 높은 모델일 경우, 훈련 데이터가 적을 경우 발생한다
훈련 데이터를 사용하여 측정한 정확도 & 시험 데이터를 사용하여 측정한 정확도 확연히 다를 때

  • 가중치 감소: 큰 가중치에 대해서는 그에 상응하는 큰 패널티를 부과
  • 드롭아웃: 뉴런을 임의로 삭제하면서 학습하는 방법


하이퍼파라미터

하이퍼파라미터(각 층의 뉴런 수, 배치 크기, 매개변수 갱신 등)를 조정할 때는 훈련이나 시험 데이터가 아닌 검증 데이터가 필요하다

  • 훈련 데이터: 매개변수 학습
  • 검증 데이터: 하이퍼파라미터 성능 평가
  • 시험 데이터: 신경망의 범용 성능 평가

ex) MNIST 데이터 중 20% 정도를 검증 데이터로 먼저 분리한다

하이퍼파라미터 최적화

  1. 하이퍼파라미터 값의 범위 설정
    → 대략적으로 로그 스케일(0.001 ~ 1,000)로 지정한다
  2. 설정된 범위에서 하이퍼파라미터의 값을 무작위로 추출
  3. 2번에서 샘플링한 하이퍼파라미터의 값을 사용하여 학습하고, 검증 데이터로 정확도를 평가한다(에폭은 작게)
  4. 2번과 3번을 특정 횟수 반복하며, 그 정확도의 결과를 보고 하이퍼파라미터의 범위를 좁힌다(축소된 범위로 똑같은 작업 반복)

0개의 댓글

관련 채용 정보