-
[10주차 - Day1] Deep Learning 기초교육/프로그래머스 인공지능 데브코스 2021. 7. 7. 20:33728x90
Deep Learning: 신경망의 기초 - 심층학습기초 II
4. 컨볼루션 신경망 사례연구
영상 분류(image classification)는 어렵고 도전적인 문제였음
4.1. AlexNet
구조 : 컨볼루션층 5개+완전연결층 3개->총 8개층
GPU메모리 한계로 분할 학습 수행, 컨볼루션층 큰 보폭으로 다운 샘플링
학습에 성공한 요인
- 외적 요인
- ImageNet이라는 대규모 사진 데이터
- GPU를 사용한 병렬 처리
- 내적 요인
- 활성함수로 ReLU사용->gradient vanishing문제 해결
- 지역 반응 정규화(local response normalization)기법 적용 : 인간 신경망 측면 억제(lateral inhibition), ReLU활성화 규제 1, 3번째 최대 풀링 전 적용
- 과잉 적합 방지하는 여러 규제 기법 적용 : 데이터 확대(잘라내기(cropping)와 반전(mirroring)으로 확대), 드롭아웃(dropout)->완전연결층에서 사용
- 테스트 단계에서 앙상블 적용
- 입력된 영상을 잘라내기와 반전을 통해 증가시키고 증가된 영상들의 예측 평균으로 최종 인식
4.2. VGGNet
핵심 아이디어 : 3*3의 작은 커널 사용, 신경망을 더욱 깊게 만듦(컨볼루션층 8~16개>AlexNet의 컨볼루션층은 5개)
작은 커널의 이점?
큰 크기의 커널은 여러 개의 작은 크기 커널로 분해할 수 있음->매개변수의 수는 줄어들면서 신경망은 깊어짐
1*1 커널을 실험은 했지만 선택하지는 않았음->차원통합(차원축소효과)->연산량 감소
4.3. GoogLeNet
핵심 아이디어 : 인셉션 모듈(inception module)->수용장의 다양한 특징을 추출하기 위해 NIN(Network In Network)의 구조를 확장하여 복수의 병렬적인 컨볼루션 층을 가짐, 마이크로 네트워크로 MLPConv대신 4종류(1*1, 3*3, 5*5, 3*3 max pooling)의 컨볼루션 연산 사용으로 다양한 특징 추출
더보기NIN구조?
- 기존 컨볼루션 연산을 MLPConv연산으로 대체
- 커널은 선형함수로 특징을 추출하는 반면 비선형함수를 활성함수로 포함하는 MLP를 사용하여 좀 더 나은 특징 추출
- 신경망의 미소 신경망(micro neural network)가 주어진 수용장의 특징을 추상화 시도
- 전역 평균 풀링(global average pooling) 사용
보조분류기(auxiliary classifier) : 원 분류기의 오류 역전파 결과와 보조 분류기의 역전파 결과를 결합하여 경사 소멸 문제 완화, 학습할 때 도우미 역할, 추론할 때 제거
4.4. ResNet
잔류(잔차) 학습(residual learning)이라는 개념을 이용하여 성능 저하를 피하면서 층 수를 대폭 늘림
잔류 학습은 지름길 연결된 x를 더한 F(x)+x에 t를 적용 F(x)는 잔류(잔차) y=t(F(x)+x)
신경망을 부분부분으로 보는 것
지름길 연결을 두는 이유?
- 깊은 신경망도 최적화 가능, 관점의 변화를 통한 신경망 구조 변화->단순 구조 변경이므로 매개변수 수에 영향이 없고 덧셈 연산만 증가하므로 전체 연산량 증가도 미비
- 깊어진 신경망으로 인해 정확도 개선 가능
- 경사 소멸 문제 해결
VGGNet과 같은 점 : 3*3커널사용
VGGNet과 다른 점 : 잔류 학습 사용/전역평균풀링사용(FC층제거)/배치 정규화 적용(드롭아웃 적용 불필요)
5. 생성모델
5.1. 생성모델이란?
우리가 이전까지 본 것들은 분별모델
training set을 만들어낼 수 있는게 생성모델
5.2. GAN(Generative Adversarial Network)
생성기(generator) G와 분별기(discriminator) D의 대립구도
- G는 가짜 샘플 생성
- D는 가짜와 진짜를 구별
GAN의 목표는 G가 만들어내는 샘플을 D가 구별하지 못하는 수준까지 학습
'교육 > 프로그래머스 인공지능 데브코스' 카테고리의 다른 글
[10주차 - Day3] Deep Learning 최적화 (0) 2021.07.28 [10주차 - Day2] CNN Models (0) 2021.07.17 [9주차 - Day4] Deep Learning 기초 (0) 2021.07.03 [9주차 - Day3] Deep Learning 기초 (0) 2021.07.01 [9주차 - Day2] Multilayer Perceptron (0) 2021.06.24 - 외적 요인