[프로그래머스 인공지능 미니 데브코스] 수업 정리 -16- [Deep Learning: 신경망의 기초 - 심층학습기초 I]

3yeong·2022년 8월 19일
0

심층학습 기초

심층학습

다층 퍼셉트론(multilayer perceptron)에 은닉층(hidden layer)을 여러 개 추가하면 깊은 신경망(deep neural networks)이 됨
심층학습은 깊은 신경망의 학습
심층학습은 새로운 응용을 창출하고 인공지능 제품의 성능을 획기적으로 향상
-> 현대 기계학습을 주도

심층학습의 등장

배경

: 1980년대 이미 깊은 신경망 아이디어 등장

: 하지만 실현 불가능(당시, 깊은 신경망은 학습이 안 됨)
1. 경사소멸vanishing gradient문제
2. 작은 훈련집합
3. 과다한 연산과 시간 소요(낮은 연산의 범용 컴퓨터, 값비싼 슈퍼컴퓨터)

: 일부 학자들은 실망스러운 상황에서도 지속적인 연구
1. 학습률에 따른 성능 변환 양상
2. 모멘텀과 같은 최적 탐색 방법 모색
3. 은닉 노드 수에 다른 성능 변화
4. 데이터 전처리의 영향
5. 활성함수의 영향
6. 규제기법의 영향 등에서 다양하게 시도

경사 소멸 문제(gradient vanising problem)

  1. compute activations, forward prop : 예측하기까지
  2. Compute loss : 실제 값과 예측 값을 비교, 손실과 에러 값 확인
  3. compute derivatives, back-prop : 손실함수 값을 낮추는 과정
    -> sigmoid함수는 미분하면 경사도가 0이 되는 지점이 존재해서 back-prop를 할수록 gradient가 희석되는 경우가 생긴다.

    심층 학습의 성공 배경

    이유

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

표현 학습의 부각

기계학습의 새로운 전환

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

1번은 사람이 개입하여 가공해서 특정한 feature를 사용해야한다.
2번은 학습에 의해 자동적으로 (사람의 개입이 없다) -> 깊은 신경망을 통한 계층적 표현 학습

깊은 신경망의 표현 학습(representation learnin, 또는 특징학습 feature learning)

  • 낮은 단계 은닉층은 선이나 모서리와 같은 간단한(저급) 특징 추출
  • 높은 단계 은닉층은 추상적인 형태(abstractive representation)의 복잡한 특징 추출

사진이 들어옴 -> 점선면 추출 -> 추출된 값을 조합, 특징을 뽑음 -> 조합된 것을 다시 조합 -> 결과 ( 해당되는 것만 활성화 )

-> 표현 학습이 강력해짐에 따라 기존 응용에서 획기적인 성능 향상
| 영상 인식, 음성인식, 언어 번역 등
| 새로운 응용 창출
=> 분류나 회귀 뿐 아니라 생성 모델이나 화소 수준의 영상 분할
=> CNN과 LSTM의 혼합 학습 모델등이 가능해짐

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

구조와 동작

깊은 다층 퍼셉트론(DMLP, DEEP MLP)의 구조

입력(d+1 차원의 특징벡터)과 출력(c개 분류)
L-1개의 은닉층(입력층은 0번째 은닉층, 출력층은 L번째 은닉층)

DMLP의 가중치 행렬

DMLP의 동작

  • MLP의 동작을 나타내는 식보다 많은 단계로 확장한 것
    o = f(X)
    f = W2max(0,W1x)

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

  • 입력층의 특징 벡터를 내부 표현으로 쓰면 z0

  • 행렬 표기를 이용하여 l번재 층의 연산 전체를 쓰면,
    z^l = Tl(U^lz^(l-1), 1<=l<=L

학습

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

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

역사적 고찰

  • 주요 알고리즘의 개선
    퍼셉트론 -> 다층 퍼셉트론 -> 깊은 다층 퍼셉트론
    활성함수 : 계단함수 -> 시그모이드 함수 -> ReLU
    목적함수 : MSE -> MSE -> 교차엔트로피 또는 로그 우도

합성곱 신경망CNN의 부상

종단간(end to end) 최적화된 학습 가능

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

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

심층학습은 왜 강력한가?

깊이의 중요성

  • 실선은 20개 노드를 가진 은닉층 하나 짜리 신경망
  • 점선은 각각 10개 노드를 가진 은닉층 두 개 짜리 신경망 -> 더 정교한 분할

넓이 보단 깊이가 중요하다.

계층적 특징(hierarchical features)

  • ImageNet으로 학습한 특징 맵(feature map) -> 추출된 특징 표현
    : 깊은 신경망에서는 층의 역할이 잘 구분됨
    : 얕은 신경망은 하나 또는 두 개의 은닉층이 여러 형태의 특징을 모두 담당

실습

컨볼루션 신경망

  • DMLP
  1. 완전 연결 구조로 높은 복잡도(이전 노드들과 다음 노드들이 모두 연결되어있음)
  2. 학습이 매우 느리고 과잉적합이 발생할 가능성이 있음
  • 컴볼루션 신경망(CNN)
  1. 격자 구조를 갖는 데이터에 적함 (이전 노드와 다음 노드의 연결이 느슨함)
  2. 컨볼류션 연산을 수행하여 특징 추출
  3. 영상부류나 문자 인식 등 인식문제에 높은 성능
  • 컨볼루션
  1. 컨볼류션은 해당하는 요소끼리 곱해서 결과를 모두 더하는 선형 연산
    입력 + 커널(mask) = 출력
  • 보폭(Stride)
  1. 커널을 다음 컨볼루션 연산을 위해 이동시키는 칸 수
  • 패딩(Padding)
  1. 컨볼루션 결과의 크기를 조정하기 위해 입력 배열의 둘레를 확장하고 0으로 채우는 연산
  • 풀링
  1. 일정 크기의 블록을 통합하여 하나의 대푯값으로 대체하는 연산
  • 최대값 풀링(Max Pooling)
  1. 지정된 블록 내의 원소들 중에서 대푯값으로 선택
  • 평균값 풀링 (Average Pooling)
  1. 블록 내의 우너소들의 평균값을 대푯값으로 사용
  • 컨볼루션 신경망 구조
  1. 특징 추출
    컨볼루션 연산을 하는 Conv층
    ReLU연산을 하는 ReLU
    풀링 연산을 하는 Pool

  2. 추출된 특징을 통해 분류나 회귀를 수행하는 다층 퍼셉트론
    전체 연결된 (Fully connected) FC층 반복
    분류의 경우 마지막층에 소프트맥스(Softmax)연산 수행

profile
초보 컴공

0개의 댓글