AI - 딥러닝과 컨볼루션 신경망
업데이트:
딥러닝
정의
심층 신경망을 사용하여 특징추출과 문제해결을 위한 학습을 동시에 하는 기계학습 방법입니다.
- 일반 신경망: 원시 데이터에서 직접 특징을 추출해서 만든 특징 벡터를 입력으로 사용(소수의 은닉층)
- 심층 신경망: 특징 추출과 학습을 함께 수행하며, 데이터로부터 효과적인 특징을 학습을 통해 추출하여 우수한 성능을 냄(다수의 은닉층)
기울기 소멸 문제
출력층이 아래로 갈수록 오차가 크게 줄어들어, 학습이 되지 않는 현상
- 기울기 소멸 문제 완화: 시그모이드, 쌍곡 탄젠트 대신 ReLU 함수 사용
- 함수를 부분적인 평면 타일들로 근사하는 형태
- 출력이 0이상인 것들에 의해 계산되는 결과
가중치 초기화
신경망의 성능에 큰 영향을 주는 요소로써, 보통 초기값으로 0에 가까운 무작위 값 사용
- 개선된 초기화 방법
- 균등 분포, 제이비어 초기화, 허 초기화에서 무작위 선택
- 입력 데이터를 제한적 볼츠만 머신을 학습시킨 결과의 가중치 사용
- 인접 층 간의 가중치를 직교 행렬로 초기화
과적합 문제
모델이 학습 데이터에 지나치게 맞추어진 상태(미학습된 데이터에 성능 저하)
- 과적합 문제 완화
- 규제화: 오차 함수를 오차 항과 모델 복잡도 항으로 정의하여 벌점부여
- 드롭아웃: 일정확률로 무작위로 노드들을 선택하여 가중치가 없는 것으로 간주하고 학습
- 미니 배치: 전체 학습 데이터를 일정 크기로 나눔
- 배치 정규화: 내부 공변량 이동 문제를 해결(가중치를 적용하여 정규화)
컨볼루션 신경망
정의
동물의 시각피질의 구조에서 영감을 받아 만들어진 딥러닝 신경망 모델
- 컨볼루션: 일정 영역의 값들에 가중치를 적용하여 하나의 값을 만드는 것
- 스트라이드: 커널을 다음 컨볼루션 연산을 위해 이동시키는 칸 수
- 패딩: 입력 배열의 둘레를 확장하고 0으로 채우는 연산
- 특징지도: 컨볼루션 필터의 적용 결과로 만들어지는 2차원 행렬
- 풀링: 일정 크기의 블록을 통합하여 하나의 대표 값으로 대체하는 연산
- 최대값 풀링, 평균값 풀링, 확률적 풀링
- 전이 학습: 학습된 컨볼루션 층들을 가져오고 뒤 단계에서 분류하는 다층 퍼셉트론 모델을 붙여서 학습
컨볼루션 신경망의 구조
- 컨볼루션: Conv(컨볼루션 연산), ReLu(ReLu 연산), Pool(풀링 연산)
- 다층 퍼셉트론: 분류 또는 회귀 수행(FC, 소프트맥스(SM))
컨볼루션 신경망의 학습
- 목적함수: 분류 문제(교차 엔트로피:, 회귀 문제
- 경사 하강법, 모멘텀을 고려한 경사 하강법, Nag 방법
컨볼루션 신경망 모델
- LeNet, AlexNet(정확도를 크게 향상)
딥러닝 신경망의 전이 학습
- 학습된 컨볼루션 층들의 뒤 단계에서 다층 퍼셉트론 모델을 붙여서 학습
댓글남기기