
어김없이 찾아온 시험기간.
정말 큰일났다.
학교가 영어로 시험봐서 좀 찌질이같이 영어랑 한국어 섞어쓴다.
📌 CNN(Convolution Neural Network)
🔍 Image Recognition에서 사용되는 Neural Network
- 2D 이미지를 vector 형태로 바꿈
➡️ 이미지의 첫째줄을 N개의 elements의 벡터 형태로 두고, 두번째줄은 다음 elements, 이렇게 이어짐
- 결국
fully connected neural network
를 construct하게 됨.
➡️ 각 input node는 해당 위치에서의 pixel을 의미함.
하지만, 한계가 존재함
Image transformation이 고려되지 않았음!
이미지의 색이 바뀌고, 회전하게 되면 vector가 바뀌어서 인식을 하지 못함.
위의 문제를 해결하기 위해 ‼️Convolutional Neural Network‼️가 등장하게 됨
🔍 Convolutional Neural Network
- Fully connected Neural network의 subset임
- CNN은 이미지 자체를 학습하는 것이 아닌 feature를 뽑아 학습하는 방식임
kernel(filter)
- 8, 6 perceptrons의 2 layers의 경우에 FC를 위해선 48개의 param이 필요함
- CNN에서는 N(
N = kernel size
)개의 parameter가 필요함
- 이미지 프로세싱에서,
kernel(or filter)
은 input value들로 계산되는 convolution matrix임
channel
- convolution layer의 channel은 kernel의 갯수와 같음

- 64x64x3: 입력텐서
- 3x3x3: 커널
- 64x64x1: 출력 피처 맵
- 64x64x...: 출력 텐서
왜? 출력 피처 맵이 64x64x1이 되는거지❓
- convolution 연산 시에 padding을 사용하여 출력 크기와 입력 크기를 동일하게 맞추었기 때문
- 하나의 커널이 하나의 출력 피처 맵을 생성하기 때문
커널은 왜 3x3x3❓
- 3x3은 커널의 공간적 크기를 의미함! 임의의 값임
- 깊이가 3인 이유는 입력 텐서의 채널 수와 동일하게 하기 위해서임
그리고 여기선 RGB이미지가 입력 텐서이므로, 각 이미지 패치가 3개의 채널을 가짐! 따라서 커널도 이 3개의 채널을 모두 고려하여 연산을 수행
🔍 Fully Connected Layer
- 여러개의 application들은 network의 마지막 단에 fully-connected layer를 필요로 함
- 전통적으로 우리는 FC전 레이어를
feature extraction layer
라고 불렀고, FC를 classification layer
로 불렀음
- feature layer들과 FC를 연결 짓는 걸 flatten 또는 linear라고 불렀음.
- 마지막 레이어를 1D로 변환하고 추가적인 1D 레이어들을 추가하는 방식임

- FC 레이어는 모든 입력 뉴런과 출력 뉴런이 완전히 연결되어 있어, 각 뉴런이 모든 입력을 고려하여 연산을 수행
➡️ 앞에서 얻은 이득을 다 놓치기에 최근엔 많이 안쓰는 기법임
CNN Output Size

Output (feature maps) size
- input size: 입력 텐서의 크기
- kernel size: 커널(필터)의 크기
- padding: 입력 텐서 주위에 추가된 픽셀의 수
- stride: 커널이 이동하는 간격
Number of weights
- Convolution size: 커널의 크기 (가로 × 세로)
- Channel size: 입력 채널의 수
- bias: 각 필터에 대한 바이어스 항(보통 1로 가정)
- number of filters: 필터의 수

-
INPUT (32 x 32 x 3):
- 입력 이미지 크기: 32 x 32, 채널 수: 3
- 가중치: 없음 (입력이기 때문에 가중치가 필요하지 않음)
-
CONV-5-6:
- 커널 크기: 5 x 5, 필터 수: 6
- 출력 크기: ((32 - 5 + 1) = 28), 즉 28 x 28 x 6
- 가중치 수: 6 x (5 x 5 x 3 + 1) = 6 x 76 = 456
-
POOL-2:
- 풀링 크기: 2 x 2, 스트라이드: 2
- 출력 크기: 14 x 14 x 6 (풀링은 가중치를 가지지 않음)
-
CONV-5-16:
- 커널 크기: 5 x 5, 필터 수: 16
- 출력 크기: ((14 - 5 + 1) = 10), 즉 10 x 10 x 16
- 가중치 수: 16 x (5 x 5 x 6 + 1) = 16 x 151 = 2416
-
POOL-2:
- 풀링 크기: 2 x 2, 스트라이드: 2
- 출력 크기: 5 x 5 x 16 (풀링은 가중치를 가지지 않음)
-
FC-3:
- Fully Connected 레이어로, 3개의 뉴런을 가지며, 이전 레이어의 모든 뉴런과 연결됩니다.
- 출력 크기: 3
- 가중치 수: 3 x (5 x 5 x 16 + 1) = 3 x 401 = 1203
🔍 1 X 1 convolution
- 장점: computation complexity를 감소시킴



