2021. 7. 10. 12:22ㆍAI-딥러닝/딥러닝
CNN은 딥러닝의 한 종류로 주로 이미지를 인식하는데 사용하는 딥러닝 신경망이다.
CNN은 일반적으로 3종류의 layer로 구성되어 있는데
크기 '컨볼루션층', '풀링층', '전결합층'으로 구성되어 있다.
<컨볼루션층>
1. 컨볼루션층에서는 여러개의 필터를 이용해 이미지의 특징 검출을 실시합니다.
2. 필터에서는 각기 다른 특징을 검출합니다.
3. 컨볼루션 층에서는 입력 이미지의 특징을 더 강조한 이미지로 변환을 시킵니다.
컨볼루션층에서는 이미지의 픽셀값을 '필터'를 사용하여 이미지의 특징값을 추출한다.
<풀링층>
풀이층에서는 컨볼루션을 거친 이미지를 여러영역으로 구획하고 각 영역을 대표하는 값을 추출해 새로운 이미지를 만듭니다. 이런 과정을
"풀링"이라고 합니다.
<전결합층>
전결합층은 일반적인 딥러닝 신경망의 끝에서 이용되는 층과 같다고 말할 수 있다.(은닉층 혹은 풀링층에서 처리한 특징 값들을 종합하는 단계라고 생각하면 좋다.)
전결합층은 일반적으로 컨볼류션층과 풀링층이 몇 번 반복된 후 배치됩니다.
전결합층에서는 일반적인 신경망과 마찬가지로 뉴런이 서로 이웃하는 층의 모든 뉴런과 접촉합니다.
컨볼루션층과 풀링층의 출력을 전결합층으로 입력할 경우, 이미지를 벡터값으로 변환합니다.
예를들어 높이(H), 너비(W), 채널수(F)<풀링을 거친 특징 수>라면 결합층의 입력은 H x W x F인 벡터가 됩니다.
<패딩기법>
1. 컨볼루션층과 풀링층을 지나면 이미지가 점점 작아져 결국 1x1 크기의 이미지로 변하게 되는데
2. 이미지의 크기를 유지하기 위해서 컨볼루션층에 이미지를 넣기 전에 입력이미지에 픽셀을 배치하는 기법을 패딩이라고 합니다.
이미지 주변에 0인 픽셀을 배치하는 것을 제로 패딩이라고 합니다. 다른 패딩 기법도 있지만 CNN에서는 제로 패딩을 폭 넓게 사용하고 있습니다.
패딩을 하는 목적 중 하나는 컨볼루션 처리를 거쳐도 이미지 크기가 변하지 않게 하기 위해서 입니다.
패딩을 적용하면 가장자리는 컨볼루션 횟수가 적어집니다.
이런 패딩을 거치면 이미지의 크기를 유지하고 가장자리부분의 특징도 포함시키는 장점을 가지고 있습니다.
'AI-딥러닝 > 딥러닝' 카테고리의 다른 글
딥러닝 - 회귀에서의 역전파 구현 (0) | 2021.06.14 |
---|---|
딥러닝 - 경사하강법 기울기 연산 (0) | 2021.06.14 |
딥러닝 - 경사하강법 (0) | 2021.06.14 |
딥러닝 - 손실함수 (0) | 2021.06.14 |
딥러닝 - 역전파(back propagation) (0) | 2021.06.14 |