본문 바로가기
Data Science/CV 컴퓨터 비전

CNN(Convolution Neural Network)

by 데이터에듀 2024. 1. 19.

■ CNN이란?

 

합성곱 작업을 수행하는 Neural Network

 

이미지를 분석하는데 유용, 이미지가 아닌 분야에서도 사용하기도 함

 

■ CNN의 계산 방법

 

이미지(행렬)을 input으로 받아 kernel과 연산 → feature map을 출력

 

파이토치에서는 3차원 합성곱까지 가능 Conv1d, Conv2d, Conv3d

 

■ hyperparameter

 

● kernel size

2,3,... input과 연산되는 커널의 크기,

커널 크기가 커지면 출력 크기가 작아짐

 

● stride

연산을 몇 칸씩 띄면서 연산할지 

stride 크기가 커지면 출력 크기가 작아짐

 

● padding

입력 텐서에 0을 얼마나 추가할지

zero padding을 많이 사용하고 출력 크기를 조절해줄 수 있음

 

● dilattion

연산을 몇 칸 간격으로 진행할지

마찬가지로 커지면 출력 크기가 작아짐

 

●Channel

input 각 포이늩에 있는 feature dimension을 의미

ex) 컬러 사진에는 RGB 3개의 차원이 존재

 

 

■ Pooling Layer

 

이미지를 Down Sampling하는 역할을 함

 

●sum pooling

 

●average pooling

 

●max pooling

 

■ bacth normalization

 

CNN의 출력에 적용

activation 값이 정규화되도록 만듦(평균 0, 분산 1)

model parameter를 둔하게 만들어 안정성을 더해줌