본문 바로가기

AI Theory/key concept of AI

딥네트워크

딥네트워크

여러 개의 은닉층(hidden layer)을 가진 신경망

사전 학습된 네트워크(Pre-trained network)들을 Tensorflow나 PyTorch 등 프레임워크 차원에서 지원 중

 

ImageNet

ILSVRC2010 대회를 위해 만들어진 대량의 이미지 데이터를 포함하는 데이터셋1만개가 넘는 카테고리, 100만장 규모의 이미지를 가짐

 

cf. top-5 error vs top-1 error?

이미지 분류 성능 평가에 사용클래스가 {개, 고양이, 햄스터} 인 분류기에 새로운 이미지를 넣었을 때 {0.1, 0.2, 0.7} 이라는 결과가 나오면 햄스터일 확률이 가장 높다고 판단한 것이다.

 

이때 top-1 class는 {햄스터}, top-2 class는 {햄스터, 고양이}이다.

 

분류기가 새로운 테스트 이미지에 대해 예측한 top-1 class가 실제 클래스와 같다면 top-1 error는 0이다.또한 top-5 class 안에 실제 클래스가 있다면 top-5 error도 0이다.클래스가 5개뿐이라면, top-5 error는 무조건 0일 것이다.

 

클래스가 1000개로 훈련된 분류기의 top-5 error가 5% 이하이면 분류 능력이 상당히 좋다고 판단할 수 있다.

 

cf. layer 거친 후 이미지 데이터 크기 계산하기

  • (kernel(filter) 거친 후 이미지 크기) = (입력 크기 - 필터 크기 + 2 * 패딩) / 스트라이드 + 1
  • parameter 개수 = filter size * filter size * channel
  •  

이미지넷 데이터를 활용한 pretrained Models

AlexNet

ILSVRC 대회에서 2012년 오류율 16%로 1등을 달성한 모델

기존 Le-Net 모델을 활용

많은 class를 분류할 수 있는 CNN 모델

Relu, Dropout, Overlapping pooling 등이 적용됨

 

AlexNet의 구조

https://bskyvision.com/421

 

[CNN 알고리즘들] AlexNet의 구조

LeNet-5 => https://bskyvision.com/418 AlexNet => https://bskyvision.com/421 VGG-F, VGG-M, VGG-S => https://bskyvision.com/420 VGG-16, VGG-19 => https://bskyvision.com/504 GoogLeNet(inception v1) => https://bskyvision.com/539 ResNet => https://bskyvision.co

bskyvision.com

 

VGG16

2014년 이미지넷 챌린지 준우승한 네트워크 모델

이전 네트워크들이 10개가 안 되는 CNN층을 가진 반면  VGG는 16개, 19개의 층으로 이루어짐

(max pooling, softmax 등의 activation function을 제외한 개수)

 3x3 커널을 사용해서 더 많은 레이어를 쌓고 이미지의 비선형적 특성을 더 잘 잡아낼 수 있도록 함

 

그런데 layer를 깊게 쌓으면 vanishing gradient 문제가 발생한다.

모델이 깊어질수록 모델의 학습을 위한 gradient( 신경망의 손실 함수에 대한 편미분 값들의 벡터)가 0이 되거나, 무한대로 폭발하는 것이다.(gradient explosion)

imagenet model의 레이어수와 에러율

 

이러한 문제를 해결하고자 새로운 방법을 도입한 ResNet이 등장하였다.

 

ResNet

skip connection 기법을 통해 vanishing gradient 문제 해결

 

cf. skip connection

레이어의 입력을 다른 곳에 이어서 gradient가 깊은 곳까지 이어지도록 함

skip connection이 있는 블록을 residual block이라고 한다.

skip conncection

 

skip connection을 사용해 layer를 쌓으면 vanishing gradient 문제 없이 수천개까지도 layer를 쌓을 수 있다고 한다.

(출처: https://youtu.be/ZILIbUvp5lk)

이러한 skip connection을 사용하는 대표적인 네트워크로는 ResNet, DenseNet, U-Net 등이 있다.

 

그렇다면 위의 pre trained 모델들이 tensorflow의 model API와 keras에서 어떻게 구현되는지 확인해보자.

 

Tensorflow model API

 

Keras

 

 

'AI Theory > key concept of AI' 카테고리의 다른 글

Regularization(정칙화)  (0) 2023.07.05
활성화 함수의 이해  (0) 2023.07.03
데이터 전처리 기법들  (0) 2023.06.28
사이킷런 머신러닝  (0) 2023.06.28
배열(array)과 파이썬 그래프  (0) 2023.06.27