AI - 딥러닝과 컨볼루션 신경망

업데이트:

딥러닝

정의

심층 신경망을 사용하여 특징추출과 문제해결을 위한 학습을 동시에 하는 기계학습 방법입니다.

  • 일반 신경망: 원시 데이터에서 직접 특징을 추출해서 만든 특징 벡터를 입력으로 사용(소수의 은닉층)
  • 심층 신경망: 특징 추출과 학습을 함께 수행하며, 데이터로부터 효과적인 특징을 학습을 통해 추출하여 우수한 성능을 냄(다수의 은닉층)


기울기 소멸 문제

출력층이 아래로 갈수록 오차가 크게 줄어들어, 학습이 되지 않는 현상

  • 기울기 소멸 문제 완화: 시그모이드, 쌍곡 탄젠트 대신 ReLU 함수 사용
    • 함수를 부분적인 평면 타일들로 근사하는 형태
    • 출력이 0이상인 것들에 의해 계산되는 결과


가중치 초기화

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

  • 개선된 초기화 방법
    • 균등 분포, 제이비어 초기화, 허 초기화에서 무작위 선택
    • 입력 데이터를 제한적 볼츠만 머신을 학습시킨 결과의 가중치 사용
    • 인접 층 간의 가중치를 직교 행렬로 초기화


과적합 문제

모델이 학습 데이터에 지나치게 맞추어진 상태(미학습된 데이터에 성능 저하)

  • 과적합 문제 완화
    • 규제화: 오차 함수를 오차 항과 모델 복잡도 항으로 정의하여 벌점부여
    • 드롭아웃: 일정확률로 무작위로 노드들을 선택하여 가중치가 없는 것으로 간주하고 학습
    • 미니 배치: 전체 학습 데이터를 일정 크기로 나눔
    • 배치 정규화: 내부 공변량 이동 문제를 해결(가중치를 적용하여 정규화)


컨볼루션 신경망

정의

동물의 시각피질의 구조에서 영감을 받아 만들어진 딥러닝 신경망 모델

  • 컨볼루션: 일정 영역의 값들에 가중치를 적용하여 하나의 값을 만드는 것
  • 스트라이드: 커널을 다음 컨볼루션 연산을 위해 이동시키는 칸 수
  • 패딩: 입력 배열의 둘레를 확장하고 0으로 채우는 연산
  • 특징지도: 컨볼루션 필터의 적용 결과로 만들어지는 2차원 행렬
  • 풀링: 일정 크기의 블록을 통합하여 하나의 대표 값으로 대체하는 연산
  • 최대값 풀링, 평균값 풀링, 확률적 풀링
  • 전이 학습: 학습된 컨볼루션 층들을 가져오고 뒤 단계에서 분류하는 다층 퍼셉트론 모델을 붙여서 학습


컨볼루션 신경망의 구조

  • 컨볼루션: Conv(컨볼루션 연산), ReLu(ReLu 연산), Pool(풀링 연산)
  • 다층 퍼셉트론: 분류 또는 회귀 수행(FC, 소프트맥스(SM))


컨볼루션 신경망의 학습

  • 목적함수: 분류 문제(교차 엔트로피:, 회귀 문제
  • 경사 하강법, 모멘텀을 고려한 경사 하강법, Nag 방법


컨볼루션 신경망 모델

  • LeNet, AlexNet(정확도를 크게 향상)


딥러닝 신경망의 전이 학습

  • 학습된 컨볼루션 층들의 뒤 단계에서 다층 퍼셉트론 모델을 붙여서 학습

댓글남기기