- 수정 내역
- 최초 작성: 250624 PyTorch DL
1. CNN이란?
-
FCN(Fully Connected Network)는 데이터 형상이 무시되는 문제점이 있음
-
CNN(Convolutional Neural Network)으로 해결
-
CNN에서는 2~3차원 이미지 데이터를 펼치지 않고 그대로 입력받아 데이터 형상 정보를 활용함으로써 FCN보다 정확하게 인식함
-
이미지 인식 방법
- 이미지를 인식하는 알고리즘
- 종류는 다양하게 있지만 모두 CNN에 기반을 두고 있음
2. CNN의 구조
-
- 이미지 입력
-
- 합성곱층(convolution layer)
- 이미지를 필터로 훑으면서 특징 추출
- convolution 연산: 특정한 필터를 통해 특정한 패턴을 찾는다.
-
- 풀링층(pooling layer)
- 이미지를 특징만 남기고 크기 감소
-
- 여러 층 반복
-
- 완전연결층(fully connected layer)
- 마지막엔 전통적인 신경망처럼 분류/예측
3. 패딩(padding)
- 패딩: 컨볼루션 연산을 하기 전에 입력 데이터 주변을 특정값(예를 들면 0)으로 채우는 것
- 패딩 필요성: 출력크기를 조절할 때 사용. 즉 입력 데이터의 크기를 고정한 채로 다음 계층에 전달하기 위해 사용되는 기법
4. 스트라이드(stride)
- 스트라이드: 필터가 이동하는 간격
- 스트라이드를 2로하면 필터가 2칸씩 이동하면서 컨볼루션 연산을 하게 됨
- 스트라이드 값을 크게 할수록 출력 크기는 더 작아짐
5. 구현
- 각 layer 의 뉴런 개수는 이전 layer 보다 대략 절반 크기로 줄도록 설계하는 것이 좋음