컨벌루션 신경망(커브넷)은 영상 인식에 특화된 심층 신경망입니다.
어떤 영상 인식 기술을 사용하든지 간에 원본 이미지를 바로 사용하면 인식 성능이 좋지 않기 때문에 원본 이미니의 고유한 특징(feature)이 잘 들어 나도록 가동된 이미지를 사용해야 하는데 이러한 특징을 추출하는 설계는 그동안 머신러닝과 별개로 진행 되었습니다.
그러나 커브넷에서는 이러한 특징 추출기를 수작업으로 설계하지 않고 신경망의 학습 과정에 포함시켜 일괄 처리 합니다.
커브넷은 특징 추출 신경망이 깊을수록, 즉 층이 더 많이 쌓을수록 대체로 영상 인식 성능도 좋아진다고 합니다.
먼저 입력된 원본 이미지는 앞쪽의 특징 추출 신경망을 먼저 통화 하고, 여기서 추출된 이미지는 다시 특징 신호의 튀쪽의 분류 신경망에 다시 입력됩니다.
커브넷의 특징 추출 신경망은 컨버루션 계층(Convolutional layer) 와 풀링 계층(Pooling layer)을 차례로 쌓은 형태로 일종의 디지털 필터를 모안 놓은 계층이라고 이해마년 됩니다.
풀링 계층은 주위의 픽셀을 묶어서 하나의 대표 픽셀로 바꾸며 이미지의 차원을 축소하는 역할을 합니다.
컨벌루션 계층 입력 이미지의 고유한 특징을 부각시킨 이미지를 새로 만들어내는 역할을 합니다. 이러한 이미지를 '특징 맵(feature map' 이라고 부릅니다.
일반 신경망의 계층 구조와는 다르게 계층의 노드들은 입력 이미지를 다른 이미지로 변환하는 필터(Kernel)인 '컨벌루션 필터'로 입력 이미지를 처리하면 특징 맵을 얻을 수 있습니다.
컨벌루션 필터로 처리된 특징 맵은 활성함수를 거쳐 최종 출력 됩니다. 활성함수로는 요즘엔 ReLU함수를 많이 사용되지만, 시그모이드 함수나 tanh 함수를 쓰는 경우도 있습니다.
* ReLU 활성화 함수 그래디언트 소실(vanishing gradient) 현상은 역전파 알고리즘으로 심층 신경망을 학습시키는 과정에서, 출력층에서 멀어질수록 신경망의 출력 오차가 반영되지 않는 현상을 말합니다. 이러한 문제에 대하여 대표적인 방안은 노드들의 활성함수를 ReLU(Rectified Linear Unit) 함수로 바꾸는 것입니다.
ReLU 함수는 입력이 음수면 0, 양수이면 입력값 그대로 출력하는 함수로. 이런 간단한 개선으로 심층 신경망의 학습 성능을 개선할 수 있습니다.
풀링 계층 이미지의 크기를 줄이는 역할을 합니다. 입력 이미지의 특정 영역에 있는 픽셀들을 묶어서 하나의 대표 값으로 축소합니다. 보통 픽셀들은 정방 행렬로 묶어서 하나의 대표 값을 계싼하기 위해 평균값이나 최대값을 많이 사용합니다.
플링 계층은 입력 이미지에서 인식 대상이 한 쪽으로 치우쳐 있거나 돌아가 있어도 어느 정도 보상해주는 역할을 합니다. 또한 이미지의 크기를 줄여주어, 계산량을 줄이고 과적합을 방지하는 데도 도움이 됩니다.
'ⓘⓣ > 인공지능' 카테고리의 다른 글
[딥러닝] 텐서플로 설치 (Installing with virtualenv) (0) | 2018.01.08 |
---|---|
[AI] 텐서플로 (TensorFlow) (0) | 2017.12.16 |