Python/인공지능

06_CNN ILSVRC,CNN모델들

728x90

CNN모델에는 무수히 많은 디자인 요소가 들어가 있다. (레이어의 depth, Pooling사이즈 등)

 

개개인이 모든 디자인 요소들의 가능성을 탐구하고 분석하는것은 현실적으로 불가능하기에 잘 동작하는 것이 검증된 표준 CNN모델을 사용하는것이 필요하다.

 

ImageNet Large-Scale Visulal Recognition Challenge(ILSVRC)

 

120만장의 traning images와 5만장의 validation images 등의 데이터를 가지고 성능을 비교하는 대회이다.

 

1000개의 카테고리가 있기 때문에 가장 확신의 정도가 큰 1개의 값이 정답과 일치하는 방식인 TOP-1 과 가장 확신의 정도가 큰 5개안에 정답이 있는지 TOP-5 의 두개의 성능분석이 가능하다.

 

2012년 이전에는 CNN 외 기법들이 우승을 했지만, AlexNet이 큰 성능 차이를 보여주면서 대부분 참가자들이 CNN모델을 사용하기 시작하였다.

 

표준 CNN모델들은 이 ILSVRC대회에서 우승을 하거나 준우승을 차지한 모델들을 지칭한다

 

재미있는 부분은 사람이 해당테스트를 봐도 5%의 오류정도가 나는데, 사람보다 에러가 적은 인공지능들이 나오기 시작했다는 것이다! ( 사람보다 뛰어난..)

 

 

AlexNet (2012)

VGGNet(2014)

GoogleNet(2014)

 

이러한 모델들은 자주 사용되기 때문에 Pre-Trained 모델을 TensorFlow에서 기본적으로 제공되고 있다.

 

 

이러한 표준 CNN모델들은 다른 컴퓨터 비전 문제영역을 해결을 위한 모델들의 기본 베이스이므로 원리를 이해하고 가는것이 좋다! 즉 Backbone을 어떤 모델을 선택하느냐에 따라 모델의 성능이 달라질 수 있다.

 

 

AlexNet

 

2012년에 첫 CNN을 선보인 모델이다. GPU를 이용한 컨볼루션 네트워크를 만들어서 이미지 처리를 수행한다.

 

아이디어 자체는 1998년 leNet과 크게 다르진 않지만, 다수의 트레이닝 이미지와 컴퓨터 성능이 달라져서 실제로 구현이 가능하게 된 것이다.

 

ReLu Non-Linearity , Multiple-GPU 2개의 GPU를 사용해서 Overfitting을 방지하고 학습속도가 엄청 빨라지게한 기법을 사용하였다!

 

Local Response Normalization

자기 앞의 feature맵에서 부모부분의 앞의 두개 뒤에 두개를 포함해서 Normalization을 해서 갑자기 값이 크게 변동하는 등을 막아서 에러율을 줄였다.

 

Overlapping Pooling

기존에는 stride와 filter size 의 크기를 같게 해서 overlapping을 막았지만, s = 2, z = 3(filter)를 사용해서 오차율을 줄이는 기법을 사용하였다

 

 

물론 overfitting을 막기위해 앞서 소개한 방법도 있지만 원초적으로 이미지 개수를 증가시키는 방법도 있다. 사이즈를 약간씩 변형시키거나, 상하반전을 등을 사용해서 데이터셋을 늘리는 이 방법을 Data Augmentation이라고 한다. 색상을 약간 바꾸는것도 이 방법에 포함된다.

 

또한 여러 분류기를 활용하여 투표하듯이 가장 많이 추정되는 답을 추출해내는 방법또한 존재한다

즉, 이 AlexNet은 딥러닝 기반 컴퓨터 비전기법의 시작과 딥러닝의 붐을 일으킨 모델이라고 볼 수 있다.

 

VGGNet

 

비록 GoogleNet에 살짝 밀려 2위를 했지만 구현방법등이 훨씬 간결해서 오히려 더 많이 사용되었던(?) 모델이다. 

 

핵심적으로는 3 * 3 Convolution인 작은 필터를 깊이쌓는방식을 사용하여 성능을 증가시켰다.

 

GoogleNet

 

 

Alexnet에 비해 12배나 적은 parameter로 더 좋은 성능을 보였다! 최대한 파라미터를 줄이면서 네트워크를 깊고 넓게 디자인하고자 하였다. 하지만 연산은 Dense하게 처리하였다.

 

이러한 고민끝에 Inception Module을 제안하였다.

 

학습할 파라미터가 줄어들기 때문에 overfitting의 가능성이 낮아지는 큰 장점이 있다. 즉, 적은 파라미터로도 높은 성능을 발휘하는 창의적 딥러닝 구조가 큰 장점이라 볼 수 있다.

 

 

728x90

'Python > 인공지능' 카테고리의 다른 글

09_순환신경망 RNN  (0) 2022.03.19
08_개,고양이 구분 인공지능 구현  (0) 2022.03.18
05_CNN 기초  (0) 2022.03.18
04_오토인코더  (0) 2022.03.18
03_다중 퍼셉트론 MLP,인공신경망  (0) 2022.03.18