딥러닝

·2021년 11월 11일
0

인공지능

목록 보기
15/20

딥러닝(심층학습, 깊은학습, 심화학습)

일반 신경망: 소수의 은닉층 포함
딥러닝 신경망: 다수의 은닉층 포함

일반 신경망과 딥러닝 신경망

일반 신경망 모델

원시 데이터에서 직접 특징(handcrafted feature)을 추출해서 만든 특징 벡터를 입력으로 사용
특징 벡터들의 품질에 영향

딥러닝 신경망

특징추출과 학습을 함께 수행
데이터로부터 효과적인 특징을 학습을 통해 추출 -> 우수한 성능

기울기 소멸 문제(Vanishing gradient problem)

은닉층이 많은 다층 퍼셉트론에서, 출력층에서 아래 층으로 갈 수록 전달되는 오차가 크게 줄어들어, 학습이 되지 않는 현상

기울기 소멸 문제 완화

시그모이드나 쌍곡탄젠트 대신 ReLU(Rectified Linear Unit) 함수 사용

ReLU 함수 사용과 함수 근사

함수를 부분적인 평면 타일들로 근사하는 형태
출력이 0이상인 것들에 의해 계산되는 결과
-> 입력의 선형변환(입력과 가중치 행렬의 곱으로 표현)의 결과

ReLU와 변형된 형태

가중치 초기화

  • 신경망의 성능에 큰 영향을 주는 요소
  • 보통 가중치의 초기값으로 0에 가까운 무작위 값 사용

개선된 가중치 초기화 방법

각 노드의 입력 노드 개수 n와 출력 노드의 개수 m를 사용하는 방법

  • 균등 분포
  • 제이비어 초기화
  • 허 초기화

입력 데이터를 제한적 볼츠만 머신(RBM)을 학습시킨 결과의 가중치 사용

과적합 문제

과적합

모델이 학습데이터에 지나치게 맞추어진 상태
데이터에는 잡음이나 오류가 포함
-> 과적합된 모델은 학습되지 않는 데이터에 대해 성능저하

과적합 문제 완화 기법

  • 규제화
  • 드롭아웃
  • 배치 정규화

규제화 기법

  • 오차 함수를 오차항과 모델 복잡도 항으로 정의
    -> 모델이 복잡해지면 과적합이 될 수 있으므로, 모델 복잡도를 벌점항으로 추가
  • 신경망 학습의 모델 복잡도 정의
    • 절대값이 큰 가중치에 벌점 부여
    • 모델 복잡도 정의

드롭아웃 기법

  • 일정 확률로 노드들을 무작위로 선택하여, 선택된 노드의 앞뒤로 연결된 가중치 연결선은 없는 것으로 간주하고 학습
  • 미니배치나 학습주기마다 드롭아웃할 즉, 없는 것으로 간주할 노드들을 새롭게 선택하여 학습
  • 추론을 할 때는 드롭아웃을 하지 않고 전체 학습된 신경망을 사용하여 출력 계산

    미니 배치

    • 전체 학습 데이터를 일정 크기로 나누어 놓은 것
    • 학습 데이터가 큰 경우에는 미니배치 단위로 학습
    • 경사 하강법 적용시 미니배치의 그레이언드
      • 미니 배치에 속하는 각 데이터의 그레디언트의 평균 사용
        • ex) 10개 데이터로 구성된 미니배치의 그레디언트
          g=110i=1ngi▽g = \frac{1}{10}\sum\limits_{i=1}^n▽g_i
    • 미니 배치를 사용하여 데이터에 포함된 오류에 대해 둔감한 학습 가능
      • 과적합 문제 완화에 도움

배치 정규화 기법

내부 공변량 이동 문제

  • 오차 역전파 알고리즘을 통한 학습
  • 이전 층들의 학습에 의해 이들 층의 가중치가 바뀌게 되면, 현재 층에 전달되는 데이터의 분포가 현재 층이 학습했던 시점의 분포와 차이 발생 -> 학습 속도 저하

배치 정규화

  • 신경망의 각 층에서 미니배치 B의 각 데이터에 가중치 연산을 적용한 결과인 xix_i의 분포를 정규화하는 것
    1. xix_i의 평균 μBμ_B가 0이 되고 표준편차 σBσ_B는 I가 되도록 변환
    2. 크기조정 파라미터 γγ와 이동 파라미터 ββ 적용
    3. 변환된 데이터 yiy_i 생성
profile

0개의 댓글