Convolution
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fcdb872b6-5d15-4db0-8b66-df88f6f1b075%2Fimage.png)
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fefff067b-cd51-4a28-beb2-a945c9cb1a33%2Fimage.png)
- filter에 따라 이미지에 다양한 변형을 할 수 있다
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fc38e42ed-0afb-4f64-bf80-48d0621c2771%2Fimage.png)
- filter의 dimension은 input의 dimension과 같고
filter의 갯수는 output의 dimension과 같다
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fd4e75f6c-43b1-4f7d-bae3-bf84571747ce%2Fimage.png)
- convolution + non-linear activation
CNN
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fa6d16392-e958-436e-89b6-79744a982dc5%2Fimage.png)
- convolution, pooling layer: feature extranction
- fully connected layer: decision making(classification 등의 score를 출력)
Stride
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F0efde8f3-e7bc-4bdb-ab28-1a07499d0f69%2Fimage.png)
Padding
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fdbe7c28d-590c-4983-af05-480d822eb3bb%2Fimage.png)
- 가장자리를 채워줌
- 보통은 zero padding
Convolution Arithmetic
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F2395c782-319e-4d28-9d00-06b6144c3d01%2Fimage.png)
- filter size * input의 channel 수 * output의 채널 수
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fb665c7f7-73e4-4a0f-ad71-697b94a42a5f%2Fimage.png)
- fully connected layer의 parameter 수가 convolution layer의 1000배 정도로 차이난다
- 그래서 요즘은 f-c layer를 줄이고 conv layer를 깊게 쌓아서 parameter 수는 줄이고 성능을 높이는 방향으로 발전중
1 x 1 convolution
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fd5e25835-2b0e-4689-8c71-87f24b4f9b62%2Fimage.png)
- layer는 깊게 쌓으면서 parameter는 줄이는 방식
- 3x3 쓰는거에 비해 1x1은 spatial dimension을 유지하면서도 채널을 자유롭게 늘리거나 줄일 수 있다
채널을 줄이면 압축하면서 노이즈를 줄이는 효과가 있고, 늘리면 더 많은 high level feature를 추출할 수 있는 장점이 있다
- SeNet 같은데서 1x1로 attention을 주기도 한다
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F08127acd-ed33-49b1-93e2-c4eebd4320c5%2Fimage.png)
Attention?
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F9bcd32f1-4745-4408-ad57-683b28aae4bb%2Fimage.png)
"자연어 처리에선 Attention 기법이 많이 연구되었고 널리 쓰이고 있다. 그렇다면 이미지에서도 이미지에 따라 봐야할 부분을 달리해서 가중치를 더 준다면 이미지 분류나 이미지 감지에서 더 좋은 성능을 줄 수 있지 않을까? 이 attention 기능을 해주는 모듈이 바로 BAM, CBAM이다."
CNN vs MLP?
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F7f0396ab-ff73-4632-862e-7e2d800a75c3%2Fimage.png)
- 가장 큰 차이는 이미지의 feature를 어떻게 추출하느냐의 차이
- MLP: 이미지의 픽셀값을 바로 network의 input으로 넣음
- CNN: Filter를 이용해 convolutional layer, pooling layer를 통과하고 그 결과인 feature map을 network에 input으로 넣음
출처: https://bluediary8.tistory.com/87