[TIL Day39] 신경망의 기초 - 심층학습 기초 III

이다혜·2021년 6월 28일
0

TIL

목록 보기
40/60

컨볼루션 신경망 사례연구

AlexNet

  • 구조
    - 컨볼루션층 5개와 완전연결층 3개
    - 컨볼루션층은 200만개, FC층은 6500만개 가량의 매개변수를 가짐
    → 향후 CNN은 FC층의 매개변수를 줄이는 방향으로 발전
    - 당시 GPU의 메모리 크기 제한으로 인해 GPU#1(색과 관련되지 않은 특징 추출)과 GPU#2(색과 관련된 특징 추출)로 분할하여 학습 수행

    • intra-GPU connections: 한 GPU 내에서 연산
    • inter-GPU connections: 두 개 GPU 간의 결과를 섞어서 사용
  • 성공 요인
    - 활성함수로 ReLU 사용
    - 인간 신경망 측면억제를 모방한 지역 반응 정규화(local response normalization) 기법 적용, ReLU 활성화 규제
    - 과잉적합을 방지하는 여러 규제 기법 적용(데이터 증진 및 드롭아웃(완전연결층에서 사용))
    - 테스트 단계에서 앙상블 적용

    • 입력된 영상을 잘라내기/반전을 통해 증가시키고 증가된 영상들의 예측 평균으로 최종 인식
    • 2~3%만큼 오류율 감소 효과가 있었음

VGGNet

  • 구조
    - 3x3의 작은 커널을 사용한 것이 핵심 아이디어
    - 신경망을 더욱 깊게 만듦
    - 컨볼루션층 8~16개를 두어 AlexNet에 비해 2~3배 깊어짐

  • 작은 커널의 이점
    - 큰 크기의 커널은 여러 개의 작은 크기 커널로 분해될 수 있음
    → 매개변수의 수는 줄어들면서 신경망은 깊어지는 효과

  • 1x1 커널
    - VGGNet은 적용 실험을 하였지만 최종 선택하지는 않음
    - GoogLeNet에서 사용됨
    - 차원 통합
    - 차원 축소 효과(연산량 감소): c2의 입력 차원에 1x1 커널을 c3개 사용하면 가로, 세로 크기는 유지되면서 depth만 c3으로 감소시킬 수 있음

GoogLeNet

수용장의 다양한 특징을 추출하기 위해 NIN의 구조를 확장하여 복수의 병렬적인 컨볼루션 층을 가짐

  • NIN 구조
    - 기존 컨볼루션 연산을 MLPConv 연산으로 대체
    - 수용장이 가변적
    - 커널 대신 비선형 함수를 활성함수로 포함하는 MLP를 사용하여 특징 추출 유리함
    - 신경망의 미소 신경망이 주어진 수용장의 특징을 추상화 시도
    - 전역 평균 풀링 사용

  • NIN이 사용하는 전역 평균 풀링
    - MLPConv가 부류 수만큼 특징 맵을 생성하면, 특징 맵 각각을 평균하여 출력 노드에 입력
    - 완전연결 방식에 비해 매개변수를 대폭 줄일 수 있음

  • GoogLeNet의 인셉션 모듈
    - 수용장을 다양화시킨다는 NIN 개념을 확장
    - 마이크로 네트워크로 MLPConv 대신 네 종류의 컨볼루션 연산 사용 → 다양한 특징 추출
    - 1x1 컨볼루션을 사용하여 차원 축소
    - 매개변수의 수(= 특징 맵의 수)를 줄임 + 깊은 신경망
    - 3x3, 5x5 같은 다양한 크기의 컨볼루션을 통해서 다양한 특징들을 추출

  • GoogLeNet 구조

    - 인셉션 모듈을 9개 결합
    - 매개변수가 있는 층 22개, 없는 층(풀링) 5개로 총 27개 층을 가짐
    - 완전 연결층은 1개에 불과
    - 1백만 개의 매개변수를 가지며, VGGNet의 완전 연결층에 비하면 1%에 불과
    - 보조 분류기

    • 원 분류기의 오류 역전파 결과와 보조 분류기의 오류 역전파 결과를 결합하여 경사 소멸 문제 완화
    • 학습할 때 도우미 역할을 하고, 추론할 때 제거됨

ResNet

  • 잔류(잔차) 학습
    - Use layers to fit residual F(x)=H(x)xF(x) = H(x) - x instead of H(x)H(x) directly!
    - 성능 저하를 피하면서 층 수를 대폭 늘리기 위해 고안
    - 블록 단위 학습, 얕은 신경망을 조금씩 학습시키는 것과 유사
    - y=τ(F(x)+x)y = \tau(F(x) + x)

  • 지름길 연결을 두는 이유
    - 깊은 신경망도 최적화가 가능해짐
    - 단순한 학습 관점의 변화를 통한 신경망 구조 변화
    - 단순 구조의 변경으로 매개변수 수에 영향이 없으며 덧셈 연산만 증가하므로 전체 연산량 증가도 미비
    - 깊어진 신경망으로 인해 정확도 개선 사능
    - 경사 소멸 문제 해결

  • VGGNet과 비교
    - 같은 점: 3x3 커널 사용
    - 다른 점

    • 잔류 학습 사용
    • 전역 평균 풀링 사용(FC층 제거)
    • 배치 정규화 적용(드롭아웃 적용 불필요)

생성 모델

생성 모델은 분별 모델에 비해 데이터 생성 과정에 대한 보다 깊은 이해를 필요로 한다.

  • 생성 모델이란?

GAN

  • 생성기(Generator, G)와 분별기(Discriminator, D)의 대립 구도
    - G는 가짜 샘플 생성
    - D는 가짜와 진짜를 구별
    - GAN의 목표는 G가 만들어내는 샘플을 D가 구별하지 못하는 수준까지 학습하는 것
profile
하루하루 성장중

0개의 댓글