1. LeNet
- 20여년 전에 제안된 첫 CNN
- LeNet은 손글씨 숫자를 인식하는 네트워크로 1998년에 제안되었다.
- 위 그림과 같이 합성곱 계층과 풀링 계층을 반복하고, 마지막으로 완전연결 계층을 거치면서 결과를 출력한다.
- '현재의 CNN'과 달리 활성화 함수로 시그모이드를 사용하고 서브샘플링을 하여 중간 데이터의 크기가 작아진다.
2. AlexNet
- 2012년에 발표되어 딥러닝 열풍을 일으키는데 큰 여할을 했다.
- 합성곱 계층과 풀링 계층을 거듭하며 마지막으로 완전연결 계층을 거쳐 결과를 출력한다.
- 활성화 함수로 ReLU를 사용하였다.
- LRN이라는 국소적 정규화를 실시하는 계층을 이용한다.
- 드롭아웃을 사용한다.
3. VGGNet
- 합성곱 계층과 풀링 계층으로 구성되는 기본적인 CNN이다.
- 다만 비중있는 층(합성곱 계층, 완전연결 계층)을 모두 16개(혹은 19개)로 심화한 게 특징이다.
- 층의 깊이에 따라서 VGG16과 VGG19로 구분한다.
- 3 x 3의 작은 필터를 사용한 합성곱 계층을 연속으로 거친다.
- 합성곱 계층을 2~4회 연속으로 풀링 계층을 두어 크기를 절반으로 줄이는 처리를 반복한다. 그리고 마직막에 완전연결 계층을 통과시켜 결과를 출력한다.
4. GoogleNet
- GoogleNet은 세로 방향 (깊이)뿐 아니라 가로 방향(폭)도 깊다는 점이 특징이다.
- 두번째 그림이 GoogleNet의 특징인 인셉션 구조이다.
- 인셉션 구조는 두번째 그림과 같이 크기가 다른 필터(와 풀링)을 여러 개 적용하여 그 결과를 결합한다.
- 인셉션 구조를 하나의 빌딩 블록(구성요소)으로 사용하는 것이 GoogleNet의 특징이다.
- 또 1 x 1크기의 필터를 사용한 합성곱 계층을 많은 곳에서 사용한다.
- 1 x 1의 합성곱 연산은 채널 쪽으로 크기를 줄이는 것으로 매개변수 제거와 고속 처리에 기여한다.
5. ResNet
- ResNet은 마이크로 소프트의 팀이 개발한 네트워크이다.
- 보다 더 층을 깊게 쌓기 위해 스킵 연결(skip connection)을 도입한다.
- 스킵 연결이란 두번째 그림과 같이 입력 데이터를 합성곱 걔층을 건너뛰어 출력에 바로 더하는 구조를 말한다.
- 이 단축 경로가 없었다면 두 합성곱 계층의 풀력이 F(x)가 되나, 스킵연결로 인해 F(x)+x가 되는 게 핵심이다.
- 스킵 연결은 층이 깊어져도 학습이 효율적으로 할 수 있도록 해주는데, 이는 역전파 때 스킵 연결이 신호 감쇠를 막아주기 때문이다.
- VGG 신경망을 기반으로 스킵연결을 도입하였는데 실험결과 150층 이상으로 해도 정확도가 오르는 모습을 확인할 수 있었다.
반응형
'인공지능 > 딥러닝' 카테고리의 다른 글
텐서플로를 이용한 신경망 구현 (0) | 2020.06.12 |
---|---|
텐서플로 - 설치, 상수/변수 선언, 메소드 (0) | 2020.05.28 |
간단한 신경망으로 MNIST 정확도 99% 만들기 (0) | 2020.05.19 |
강화학습 - 슈퍼마리오 DQN 기본 코드 (0) | 2020.05.12 |
Object Detection API 설치 - Window 10 / CPU 버전 (2) | 2020.05.11 |