ML

CNN

술임 2023. 1. 10. 11:50

LeNet --> AlexNet --> GoogLeNet --> VGGNet --> ResNet --> SENet

 

Alexnet

- Conv층 5개와 FC층 3개로 구성됨

- 8개 층에 290400-186624-64896-64896-43264-4096-4096-1000

- input : 224*224 크기의 RGB 3채널 3*224*224 텐서

- CNN은 FC의 매개변수 수를 줄이는 방향으로 발전

- LeNet-5에 컨볼루션 부에 2개 층을 추가하고, FC에 1개 층을 추가한 깊어진 CNN

- 활성함수로 ReLU 사용

- 커널의 컨볼루션 결과를 이웃 커널의 값을 고려해서 조정하는 local response normalization 기법 적용

- 규제 기법 : 데이터 확대, 드롭아웃

* 데이터 확대 : cropping과 flipping을 적용, PCA 사용해서 영상의 개수 추가로 늘림

* 드롭아웃은 FC층 3개 중 앞에 2개만 적용함

 

- 영상 전처리 : 화소별로 평균을 빼는 연산 적용

 

VGGNet

- 작은 커널을 사용해서 신경망을 깊게 만듦

- FC층은 3개로 고정한채(분류 목적) Conv층을 8~16개의 범위에서 바꿔가며 성능 실험

- AlexNet에 비해서 층이 2~3배정도 깊어짐

- 모든 컨볼루션층이 3*3의 작은 커널을 사용함

--> 작은 커널을 여러번 적용하는 연산이 분별력 측면과 매개변수가 작아서 더 계산이 빨라짐

- input : 224*224 크기의 RGB 3채널 3*224*224 텐서

- 1*1 크기의 커널 사용

VGG16

 

GoogLeNet

- 1*1 커널 사용

--> 특성맵이 줄어들어서 연산량이 줄어듦 -> 네트워크를 더 깊게 만들 수 있음

- 과잉적합 방지 용으로 inception 모듈 사용 ; network in network

--> 매개변수가 줄어듦

- 마이크로 네트워크로 컨볼루션 연산 사용

--> 4종류의 컨볼루션을 수행하고 결과를 결합하는 방식으로 연산을 수행함

--> 4종류의 연산은 모두 같은 크기의 특징 맵을 만들지만, 특징맵의 수는 각각 다름

- FC 층 대신 global average pooling 방식 사용함

- 네트워크 깊이가 깊어져서 중간에 auxiliary classifier를 달아줌

ResNet

- VGG처럼 깊은 구조를 추구함, VGG19의 구조를 뼈대로 함

--> Conv 층을 추가해서 깊게 만든 후 shortcut을 추가함

1) residual learning을 제안함 

--> 지름길 연결 사용

--> 그래디언트 소멸 문제가 발생하지 않음

--> 성능 저하를 피하면서 층수를 최대로 늘림

2) FC layer3개를 전역 평균 풀링 (GAP)층으로 대치함

 

SENet

- SE Block을 제안함

--> Squeeze and Excitation

---> squeeze해서 특성맵을 1*1 사이즈 특성맵으로 변환시켜주고 GAP로 평균냄

---> excitation해서 각 채널의 상대적 중요도를 알아냄 

- VGG, GoogLeNet, ResNet 등에 SE block을 추가함

 

 

SE Block

 

 

 

'ML' 카테고리의 다른 글

활성함수와 목적함수  (0) 2023.01.12
생성 모델  (0) 2023.01.11
Deep Learning  (0) 2023.01.03
다층 퍼셉트론  (0) 2023.01.03
기계 학습과 수학  (0) 2023.01.02