본 포스팅은 2022-11-09(수) & 2022-11-14(월), 국민대학교 이재구 교수님의 인공지능 수업을 통해 배운내용을 정리하기 위해 작성하는 게시글입니다.
# 합성곱 신경망
저번시간에 공부했던거와 같이, 합성공 신경망은 CONV - POOL - FC(FullyConnected)로 나뉜다. 이러한 전체적인 틀 아래에서 합성곱 신경망은 발전해 왔고 2015년에서는 인간을 뛰어넘었다.
대표적인 합섭곱 신경망이 LeNet, AlexNet, GoogLeNet, ResNet에대해서 알아보도록 하자.
# LeNet-5
LeNet은 V1부터 마지막 버전인 V5의 버전이 있다. 초창기 합성곱 신경망의 사례이며 CNN의 첫번째 성공사례이기도 하다. 필기 숫자 인식기로 수표 인식 자동화 시스템을 구현할 수 있었다고 한다.
InputLayer와 3개의 컨볼루션 Layer, 2개의 서브샘플링 레이어, 1층의 FC레이어, Output Layer로 구성된다.
특징 추출을 하는데 5개의 층을 사용한다. Input데이터를 첫번째 컨볼루션을 거쳐 6개의 Feature map를 얻고 28*28의 Size가 된다. 이를 풀링 - 컨볼루션 - 풀링 - 컨볼루션 과정을 통해서 아래와 같이 결과를 얻게 된다.
# AlexNet
AlexNet은 5개의 컨볼루션 레이어와 3개의 FC레이어, 총 8개의 레이어로 구성 된다. GPU병렬연산을 수행하기 위해서 병렬구조로 설계한 것이 가장 큰 특징이다.
입력데이터 224가 아니라 227*227 크기의 입력데이터라고 한다. 첫번째 레이어에서 11*11*3 stride=4로 컨볼루션 하면 96개의 Feature-map이나온다. 55*55*96(개)가 된다. 그다음에 ReLu함수로 활성화 해준다. 이후 3*3 max pooling이 stride2로 수행되어 27*27*96의 Feature-map이 나온다. 이러한 과정들이 위의 그림처럼 반복된다.
핵심은 위와 같이 GPU를 병렬처리하기 위해서 설계했다는 것이고, GPU두개를 돌리면 두개의 모델이 학습되는 거와 같은 예상과 다를 수 있기 때문에 Swaping을 통해서 데이터를 한번 섞어준다.
## AlexNet 특징
- ReLU활성함수 사용
- local response normalization(지역 반응 정규화) 기법 적용 -> 현재는 사용되지 않음
- 오버피팅 방지하기위해 데이터 확대(augmentation - cropping,mirroring) 드롭아웃(완전 연결층에서) 사용
- 추론단계에서 앙상블 적용하여 2~3%오류 감소시킴 ( 걸레 쥐어짜기)
local response normalization(지역 반응 정규화)은 정규화 방법 중 하나로 활성함수를 적용하기 전에 normalization을 적용하는 것이다. 강한 자극이 주변의 약한 자극을 막는것은 우리 인체에서 실제로 일어나는 시각화 현상이다. 이를 지역 반응 정규화를 통해서 평탄화게 만든다.
# VGCNet
- 3*3의 작은 필터를 이용해서 신경망을 깊게 만드는 특징이 있다.
- AlexNet에 비해서 2~3배 깊어진다.
- 1 Stride , 1 padding 사용
3*3의 작은 필터를 사용하기에 2가지 이점을 얻을 수 있는데, 첫번째로는 매개변수의 숫자를 줄일 수 있다. 그리고 깊어지고 활성함수를 더 많이 사용하기 때문에 인식 에러가 감소한다. 매개변수가 줄었기 때문에 학습 속도가 빨라질 것이다.
## 3*3 필터와 5*5필터
5*5의 크기를 봐야한다면, 5*5필터는 25개의 파라메타를 사용하는 반면, 3*3은 3*3한개와 다음층에서 3*3한개로 총 9+9 18개의 파라메타만을 사용하여 다 볼 수 있다.
유사하게 3*3필터를 1*3필터와 3*1필터로 분해하여 구현 할 수 있다. 이렇게 하면 3*3필터의 경우 9개의 파라메타 였다면, 1*3 + 3*1 = 3+3=6개의 파라메타를 사용하면 볼 수 있게 된다.
## 1*1 Conv layer에 가능성을 제시
VGCNet에서 가능성을 실험했지만 최종 적용하지 않았고, 이후 GoogLeNet에서 사용 됐다.
- Channel수 조절
- 계산량 감소
- 비선형성
채널 수를 조절하여 차원 통합, 차원 축소의 효과를 낼 수 있다.
1*1필터가 존재하면 필터는 input의 채널에 맞게 구성해야 한다. 그러면 1*1*(input의 채널)이 될 것이다.
필터를 구성할때 필터의 개수를 구성할 수 있다. 필터의 갯수가 해당 층의 출력 Feature-map의 갯수가 된다 그렇다면 1*1*(input채널)*(원하는 출력의 갯수)로 1*1합성곱 필터를 구성 할 수 있다.
# GoogLeNet
매개변수가 있는 22개층, 매개변수가 없는 5개의 층으로 총 27개의 층을 가진다.
위에서 살펴본 1*1 필터를 사용하여 차원 축소를 시킨다. 이를 통해 매개변수의 수가 줄어든다.
## 인셉션 모듈
하나의 Layer층에서 복수의 수용장을 만들어 다변화 시켜, 필요한 곳을 학습 할 수 있도록 한다.
## 보조 분류기
훈련시 도우미 역할을 하고 추론할때 제거되면서, 경사 소멸 문제를 완화 시킨다.
# ResNet
GoogLeNet이 22개의 Layer를 사용했다면 ResNet은 152개의 Layer를 가진다. 그렇다면 Layer가 깊어진다고 성능이 좋아지는 것일까? 56Layer와 20layer를 살펴보면 깊다고 좋은 게 아니라는 것을 알 수 있다.
ResNet은 이러한 점을 보완하기 위해 Residual block이라는 개념을 도입 했다.
현재Layer에서 그 다음층으로 가는 지름길을 만든 것인데 아래와 같이 아무것도 하지 않고 값을 흘려보내는 것이다.
이러한 지름길 연결로
- 깊은 신경망도 최적화가 가능해짐
- 단순 덧셈연산의 추가로 매개변수의 수에 영향을 주지 않아짐
- 오류 역전파 경사 소멸 문제를 해결
- 깊은 신경망으로 성능 개선
의 효과를 거두었다.
# 심층학습의 특징
딥러닝은 다양한 분야에서 활용 될 수 있다.
물체인식의 경우에는, 물체를 인식도해야하며, 위치도 찾아줘야 할 것이다.
## 생성 모델 - 생성적 적대 신경망(GAN)
두개의 신경망이 적대적으로 대립한다.
하나의 신경망은 가짜 샘플을 생성하고, 하나의 신경망은 이것을 가짜인지 진짜인지 확인하는 역할을 하게 한다.
결국 가짜샘플을 생성하는 모델이 진위여부를 판별하는 것을 이기는 수준에 오를때까지 학습시킨다.
# 끝
그만 알아보자..
'•Compter Science > Artificial Intelligence' 카테고리의 다른 글
[인공지능#13/11-21] 성능향상 기법 - 정규화, 배치 정규화, 가중치 초기화, 활성함수, one-hot-encoding (0) | 2022.11.22 |
---|---|
[인공지능#12/11-16] 목적함수의 알맞은 쓰임, 데이터 전처리 (0) | 2022.11.21 |
[인공지능#10/11-07] CNN의 구조 및 특징, 패딩, 보폭(Stride), Pooling (0) | 2022.11.09 |
[인공지능#9/10-31] 깊은 신경망(DNN)과 CNN 맛보기 (0) | 2022.10.31 |
[인공지능#8/10-12] 인공신경망, 퍼셉트론 개념 (0) | 2022.10.13 |