1.2 딥러닝의 개요
- 인공 신경망은 입력층, 은닉층, 출력층으로 구성되어 있음
- 각 층에는 여러 노드가 있고, 각 노드는 값을 가짐
- 임의의 층과 다음 층 사이의 노드와 웨이트를 가지는 가상의 선으로 연결됨
- 각 층에는 활성화 함수가 있음
- 임의의 노드 값은 해당 노드와 연결된 이전 층의 노드 값을 기준으로 계산
- 이전 노드의 값, 웨이트의 연결 가중치, 이전 노드의 활성화 함수를 이용하여 해당 노드 값 구함
인공 신경망을 이용한 이미지 인식
- 학습에 사용할 이미지를 모두 같은 크기로 만듦
- 입력 층 노드 개수 = 이미지 픽셀 수
- 출력 층 노드 개수 = 판정하려는 물체 개수 (n)
- 훈련데이터 : (이미지, n 차원 확률벡터). 예를 들어, 딸기면 (1,0,0)
- 이 후 입력 이미지에 대해 결과는 예를 들어 (0.98, 0.01, 0.01) 꼴로 나옴
- 딥러닝이란 층이 깊은 신경망을 이용한 알고리즘 총칭
딥러닝 알고리즘
컨볼루션 신경망(CNN, Convolution Neural Network)
컨볼루션층과 폴링층
- 컨볼루션층
- 이전 층에서 근접해 있는 노드들이 다음 층 노드와 연결되는 구조
- 임의의 이미지에서 국소적인 부분을 추상화(특정 효과를 만들어내는 것)하는 역할
- 폴링층
- 이전 층의 국소적인 부분을 통합하는 역할
- 국소적인 부분의 최대값을 취하는 처리 -> 맥스 풀링
- 위치 변경에 따른 감도를 낮춰 이전 층의 미세한 평행 이동(변화)이 다음 층에 영향을 미치지 않게 함
이미지 인식에 주로 사용
오토 인코더
신경망의 입력층과 출력층의 노드 개수가 같음
- 은닉층은 입력층, 출력층보다 적은 노드 개수를 가지는 것이 일반적
- 은닉층이 복수 개인 것 -> 중첩된 오토인코더(Stacked autoencoder)
- 최적화 : 입력층과 출력층의 값이 가능하면 같은 값을 출력하게 함
- 은닉층 노드 개수가 입력층보다 적기 때문에 입력층의 정보가 가능하면 손실 안되게 정보 압축하는 역할
입력된 정보가 최대한 불완전한 부분이 없도록 변환하는 신경망
순환 신경망(RNN, Recurrent Neural Network)
일반적으로 신경망은 입력값으로 길이가 고정된 값 사용
- 가변적 길이의 값을 취급하는 신경망
- 재귀적 접속 : 은닉층에서 노드 값을 계산할 때 입려층 및 직전의 은닉층 노드 값을 이용해 계산하는 것
- 순환 = 재귀(이전 상태를 재사용하면서 계산)
딥러닝 알고리즘 비교
- 컨볼루션 신경망 : 국소 정보를 추상화하거나 위치가 변하지 않는 신경망을 이용한 알고리즘
- 오토인코더 : 정보를 효율적으로 압축해주는 신경망을 이용한 알고리즘
- 순환 신경망 : 재귀적 접속이 있는 은닉층을 사용한 신경망으로 가변적 길이의 데이터를 취급하는 알고리즘