[딥러닝]이란?

HJ Koo·2022년 1월 12일
0

AI

목록 보기
3/10
post-thumbnail

딥러닝 Deep learning

딥러닝은 러닝머신의 한 분야로 머신러닝의 하위집단에 속한다.

탄생배경: 과거에 선형회귀 논리회귀를 이용한 1차 함수로 모든 문제를 풀고자했지만 자연계에는 직선으로만 설명할 수 없는 문제들이 휠씬 많았다.

이런 복잡한 문제를 해결하기 위해 선형회귀를 여러번 반복했지만 선형이 비선형이 되는 것은 아니니, 선형 사이에 비선형의 무언가를 넣어야 한다 생긱헸고 아래같이 층(Layer)을 여러개 쌓게 되었다. 이 모델은 정말 잘 동작했고 이를 층을 깊게 쌓는다 하여 딥러닝이라 불렀다.

1958년 erceptron(퍼셉트론) 등장으로 스스로 생각하는 기꼐를 만들 수 있다는 기사가 나갔지만, 그 당시에는 Perceptron을 여러개 붙인 Multilayer Perceptrons (MLP)라는 개념을 도입해서 문제를 푸는 것에 한계를 맞이했고 10년~20년 정도 침채기를 가졌다.

1974년 발표된 Paul Werbos(폴)박사 논문으로 Backpropagation (역전파) 딥러닝의 침체기는 끝이났고 (역전파: 출력에서 Error(오차)를 발견하여 뒤에서 앞으로 점차 조절하는 방법)

1986년 Hinton 교수가 똑같은 방법을 독자적으로 발표하면서 알려지게 됐다.

Deep Neural Networks 구성 방법

Layer(층) 쌓기

딥러닝 네트워크 구조는 크게 3가지로 이루어진다.

  • nput layer(입력층): 네트워크의 입력 부분. 우리가 학습시키고 싶은 x 값이다.
  • Output layer(출력층): 네트워크의 출력 부분. 우리가 예측한 값, 즉 y 값이다.
  • Hidden layers(은닉층): 입력층과 출력층을 제외한 중간층.

풀어야하는 문제에 따라 입력층과 출력층의 모양은 정해져 있고, 따라서 우리가 신경써야할 부분은 은닉이다. 은닉층은 완전연결 계층 (Fully connected layer = Dense layer)으로 이루어져 있다.

기본적인 뉴럴 네트워크(Deep neural networks)에서는 보통 은닉층에 중간 부분을 넓게 만드는 경우가 많다. 예를 들면 보편적으로 아래와 같이 노드의 개수가 점점 늘어나다가 줄어드는 방식으로 구성된다

활성화 함수를 어디다가 넣어야하는지도 중요! 보편적인 경우 모든 은닉층 바로 뒤에 위치한다.

네트워크의 Width(너비)와 Depth(깊이)

  • 만약 우리가 수많은 시간을 투자하여 완성한 적당한 연산량을 가진, 적당한 정확도의 딥러닝 모델이 있다고 가정합시다. 그 모델은 Baseline model(베이스라인 모델)이라고 지칭한다. 예를 들어 우리가 만든 베이스라인 모델의 크기는 다음과 같다:
    • 입력층 : 4

    • 1) 은닉층 : 8

    • 2) 은닉층 : 4

    • 출력층 : 1

      이 베이스라인 모델을 가지고 가장 간단하게 성능을 테스트할 수 있는 방법이 바로 [모델의 너비와 깊이를 가지고 테스트]하는 것이다.

    1. 네트워크의 너비를 늘리는 방법
      은닉층의 개수는 그대로 두고 은닉층의 노드 개수를 늘리는 방법
      아래는 너비를 베이스라인 모델의 2배로 늘린 것.
      - 입력층 : 4
      - 1) 은닉층 : 8 2
      - 2) 은닉층 : 4
      2
      - 출력층 : 1
    2. 네트워크의 깊이를 늘리는 방법
      네트워크의 은닉층 개수를 늘리는 방법
      - 입력층 : 4
      - 1) 은닉층 : 4
      - 2) 은닉층 : 8
      - 3) 은닉층 : 8
      - 4) 은닉층 : 4
    3. 너비와 깊이 다 늘리기
      • 입력층 : 4
      • 1) 은닉층 : 4
      • 2) 은닉층 : 16
      • 3) 은닉층 : 16
      • 4) 은닉층 : 4

이는 과접합과 과소적합을 피하기 위한 필수 노가다이다.

딥러닝에는 아래같이 많은 개념과 기법이 있다

  • 배치 사이즈, 에폭 Batch size, Epoch
  • 활성화 함수
  • 과적합과 과소적합
  • 데이터 증강
  • 드랍아웃
  • 앙상블
  • 학습률 조정
profile
날마다 꾸준히 성장하는 Software Engineer

0개의 댓글