주뇽's 저장소

4장 심층학습(deep learning) 본문

ComputerVision/NeRF

4장 심층학습(deep learning)

뎁쭌 2021. 10. 31. 15:50
728x90
반응형

4-1 심층학습의 등장

배경

  • 1980년대에 이미 깊은 신경망 아이디어 등장(다층 퍼셉트론)
  • 하지만 당시 기술로는 실현 불가능
    • 경사 소멸 (gradient vanishing)문제
    • 작은 훈련집합
    • 과다한 연산과 시간 소요(낮은 연산의 범용 컴퓨터, 값비싼 슈퍼컴퓨터)
  • 일부 연구자(캐나다)들은 실망스러운 상황에서도 지속적인 연구
    • 학습률에 따른 성능 변화 양상
    • 모멘텀과 같은 최적 탐색 방법 모색
    • 은닉 노드 수에 따른 성능 변화
    • 데이터 전처리의 영향
    • 활성함수의 영향
    • 규제 기법의 영향 등

# 보통 다층 퍼셉트론이 4개 이상일 때 심층학습이라 부른다.

 

경사 소멸 문제(gradient vanishing problem)

# Back_prob 단계에서 경사 소멸 문제 발생

 

Gradient Vanishing

#위 그림 처럼 오류 역전파를 통해 계산하는 도중 미분값이 너무 크거나 작은 경우(시그모이드 함수) 중간에 오류가 손실 되는 경우가 발생한다

→ 활성함수를 바꾸는 방법으로 해결 (ReLU)

 

# 은닉층이 늘어남에 따라 출력값에서 나온 오류를 입력까지 전달하는 과정이 많아진다 이 때 기존의 시그모이드 함수를 사용한다면 운이 좋으면 문제가 없겠지만 미분값이 너무 작거나 클 때 전달 과정에서 값이 손실되는 경우가 발생하는데 이 부분은 활성함수를 시그모이드 → ReLU함수를 이용함으로 해결한다.

 

 

이유

  • 혁신적 알고리즘의 등장
    • 합성곱 신경망(convolutional neural networks(CNN) ) 구조
      → 부분 연결과 가중치 공유를 통해서 효율적인 신경망 학습 구조 제공
    • 경사 소멸 문제 해결을 위한 ReLU 활성함수 사용
    • 과잉적합을 방지하는데 효과적인 다양한 규제 기법
    • 층별 예비학습기법 개발 (지금에는 잘 사용하지 않음)
  • 값싼 GPGPU의 등장
  • 학습 데이터양과 질의 향상

기계학습의 새로운 전환

  • 전통적인 다층 퍼셉트론
    • 은닉층특징 추출기
      얕은 구조(제한적 특징 추출)이므로 가공하지 않고 획득한 원래 패턴을 그대로 입력하면 낮은 성능
         → 따라서 사람이 수작업 특징을 선택 하거나 추출하여 신경망에 입력함
  • 현대 기계학습 (심층학습)
    • 학습에 의해 데이터의 특징을 자동적으로 추출표현학습
      → 특징 벡터를 신경망의 입력 ← 종단간 학습(end to end learning)
    •  

#고전적 기계학습에서는 특징을 추출하는 단계에서 사람이 수작업으로 개입을 하였지만 딥러닝에서의 특징 학습은 처음부터 끝까지 자동적으로 기계가 처리한다. 

 

 

 

고전적인 기계학습과 심층학습 비교 예

 

깊은 신경망의 표현 학습 또는 특징 학습

  • 낮은 단계 은닉층은 이나 모서리와 같은 간단한(저급) 특징 추출
  • 높은 단계 은닉층은 추상적인 형태의 복잡한(고급) 특징을 추출
    → 표현 학습이 강력해짐에 따라 기존 응용에서 획기적인 성능 향상
    • 영상 인식, 음성 인식, 언어 번역 등
    • 새로운 응용 창출
      • 분류나 회귀 뿐 아니라 생성 모델이나 화소(pixel)수준의 영상 분할
      • CNN과 LSTM의 혼합 학습 모델(ex: 자연 영상에 주석 달기 응용) 등이 가능해짐

# 입력(input)과 가까운 층에서는 간단한 형태를 추출하고 출력에 가까울수록 추상적인 형태를 추출한다!

 

 

4-2 깊은 다층 퍼셉트론(깊은 신경망)

 

깊은 다층 퍼셉트론의 구조

  • 입력 (d+1 차원의 특징벡터)과 출력 (c개 분류)
  • L-1개의 은닉층 (입력층은 0번째 은닉층, 출력층은 L번째 은닉층으로 간주)
    • ι번째 은닉층의 노드 수를 nι로 표기

 

DMLP의 가중치 행렬

  • 𝑢𝑗𝑖 𝑙 은 l-1번째 층의 i번째 노드와 l번째 층의 j번째 노드를 연결하는 가중치
  • l-1번째 층과 l번째 층을 연결하는 가중치는 총 𝑛𝑙−1 + 1 𝑛𝑙개

DMLP의 동작

  • MLP의 동작을 나타내는 식을 보다 많은 단계로 확장한 것

 

#기존의 다층퍼셉트론의 층을 확장한 것이다 (4층 이상의 다층퍼셉트론 → 깊은 다층 퍼셉트론)

 

 

동작(전방 계산)을 구체적으로 쓰면,

  • 입력층의 특징 벡터를 내부 표현으로 바꾸어 쓰면,
  • l번째 층의 i번째 노드가 수행하는 연산


  • 행렬 표기를 이용하여 l번째 층의 연산 전체를 쓰면,

DMLP 학습은 기존 MLP 학습과 유사

  • DMLP는 경사도 계산과 가중치 갱신을 더 많은 단계(층)에 걸쳐 수행

오류 역전파 알고리즘

  • L번째 층(출력층)의 경사도 계산
  • l+1번째 층의 정보를 이용하여 l번째 층의 경사도 계산

 

오류 역전파 공식을 이용한 학습 알고리즘

 

역사적 고찰

  • 주요 알고리즘의 개선

 

  • 합성곱 신경망(CNN)의 부상 
    • ex) MNIST 인식 경쟁
      → 2010년 784-2500-2000-1500-1000-500-10 구조의 DMLP: 0.35% 오류율
      → 2011년 CNN: 0.35% 오류율
      → 2012년 35개 CNN을 이용한 앙상블 모델: 0.23% 오류율
    • ex) ILSVRC 사진 인식 경쟁: CNN이 DMLP보다 확연히 우월

 

종단간 최적화된 학습 가능 (사람 개입 X)

  • 고전적인 방법에서는
    • 사람의 직관에 따르므로 성능 한계
    • 인식 대상이 달라지면 새로 설계해야 함
    • 다음 그림처럼 분할, 특징 추출, 분류를 따로 구현한 다음 이어 붙임

 

 

 

 

 

  • 심층학습은 전체 깊은 신경망을 동시에 최적화 (종단간 학습이라 부름)

 

 

깊이(depth)의 중요성

  • 점섬은 각각 10개 노드를 가진 은닉층 두 개짜리 신경망 → 더 정교한 분할 → 과대적합 문제
  • 실선은 20개 노드를 가진 은닉층 하나 짜리 신경망

 

#넓이보다 깊이가 중요하다!

'ComputerVision > NeRF' 카테고리의 다른 글

NeRF  (0) 2023.07.01