koos808

딥러닝 제대로 시작하기(책) - 1장 요약 본문

Deep Learning/딥러닝 제대로 시작하기

딥러닝 제대로 시작하기(책) - 1장 요약

koos808 2020. 7. 5. 02:04
728x90
반응형

BOOK : 딥러닝 제대로 시작하기

 

※ STEP 0 : 인공 신경망 간단 요약

인공신경망의 구성요소

  • 노드/유닛(Node/Unit) : 각 층(Layer)를 구성하는 요소
  • 층(Layer)
      1. 입력층(Input Layer) : 데이터를 받아들이는 층
      1. 은닉층(Hidden Layer) : 데이터를 한 번 이상 처리한 (가중치를 곱하고, 활성함수를 얻은) 노드로 구성된 층
      1. 출력층(Output Layer) : 최종 은닉층 또는 입력층에 가중치를 곱하고, 출력함수의 결과를 얻은 노드로 구성된 층
  • 가중치(Weight) : 노드와 노드간의 연결강도를 나타냄
  • 합(Summation) : 가중치와 노드의 곱을 합하는 것
  • 활성함수(Activation Function) : 합을 처리해 주는 함수로 은닉층 노드의 결과를 얻을 경우 활성함수로 표현
  • 출력함수(Output Function) : 합을 처리해 주는 함수로 출력층 노드의 결과를 얻을 경우 출력함수로 표현
    • 출력함수는 마지막 은닉층의 노드와 가중치의 곱을 처리해주는 함수로 출력층의 노드값을 계산해줍니다.
    • 반응 변수 Y의 변수 타입이 범주형(Categorical), 연속형(Continuous)에 따라 크게 Softmax 함수와 Identity 함수로 구성되며, 각각 분류문제, 회귀문제로 연결됩니다.
  • 손실함수(Loss Function) = 오차함수 : 가중치의 학습을 위해 출력함수의 결과와 반응(Y)값 간의 오차를 측정하는 함수
    • 분류 : Cross Entropy Loss
    • 회귀 : Mean Square Error Loss(MSE)
  • 퍼셉트론과 인공신경망의 차이점
    • 퍼셉트론은 인공신경망에서 활성함수를 step 함수로 적용하되 0 대신 thereshold θ를 이용한 특수한 경우로 생각할 수 있습니다.
    • 다시 말해, 퍼셉트론에서 활성함수의 개념이 추가된 것이 인공신경망이라고 할 수 있습니다.
  • 변수 전처리 : 인공신경망 모형을 적용할 때 변수의 형태에 따라서 간단한 전처리를 해줍니다.
    • 연속형의 경우 : 가중치 학습시 안정성을 위해 최소-최대 정규화(Min-max Normalization) 를 해줍니다.
      • Min-max 정규화를 거치면 처리된 값은 [0,1] 사이의 값을 갖게 됩니다. 여러 연속형 변수가 데이터에 존재할 경우 각 변수의 단위가 다를 수있습니다.
      • 경사하강법으로 가중치를 학습할 때, 단위가 다를 경우 알고리즘을 불안정하게 만드는 경향이 있어 전처리로 정규화를 해줍니다.
    • 범주형의 경우 : dummy 변수 처리를 해주는데, 인공신경망에서는 One-Hot Encoding 방법을 이용해 범주형 변수의 값을 이진벡터로 맵핑해줍니다.
  • 경사하강법(Gradient Descent)
    • 인공신경망의 가중치를 학습하기 위해서 경사하강법을 사용하는데, 경사하강법은 국소 최소값(Local minimum)을 찾기 위한 수치적인 방법으로 기울기의 역방향으로 값을 조금씩 움직여 함수의 출력 값이 수렴할 떄까지 반복하는 것입니다.
    • 그 중 학습률(learning rate)은 기울기의 역방향으로 x를 이동할 크기를 조정하는 역할을 합니다.
    • 주의해야할 두 사항은 초기값과 학습률입니다.
  • 역전파
    • 역전파 알고리즘은 오차함수로부터 측정된 오차를 출력층에서부터 입력층까지 역전파하여 연쇄적으로 가중치를 학습하는 방법입니다.
    • 역전파 진행 순서
      • 1.주어진 가중치를 이용해 입력값을 (앞)전파 시킨다.
      • 2.출력층에 도달했을때 손실함수를 이용하여 오차를 측정한다.
      • 3.오차에 대한 정보를 부모층으로 역전파한다.
      • 4.모든 가중치의 gradients를 계산한다.
      • 5.경사하강법을 이용해 가중치를 update한다.
      • 6.수렴할 때까지 1~5를 반복한다.
  • 참고 사이트 : https://yjjo.tistory.com/5

※ STEP 1 : START

  • 역전파법
    • 샘플에 대한 신경망의 오차(error cost, 목표 출력과 실제 출력의 차이)를 다시 출력층에서부터 입력층으로 거꾸로 전파시켜 각 층의 가중치의 기울기를 게산하는 방법입니다.
  • 기울기 소실(vanishing gradient)
    • 역전파법을 수행할 때 입력층에서 멀리 떨어진 깊은(deep) 층 에 이르게 되면 기울기가 급속히 작아지거나 너무 커져서 발산해 버리는 현상입니다.
  • 90년대 후반 신경망 기법은 보다 나중에 제안된 머신 러닝 기법보다 뒤떨어진다는 평가를 받게 된 이유
    • 기울기 소실 문제가 다층 신경망의 학습을 곤란하게 만들었으며, 신경망은 학습을 위한 여러 파라미터로 층수나 유닛의 수를 갖는데 이 파라미터가 최종적으로 어떻게 성능으로 이어지는지 알 수 없었기 때문입니다.
    • 또한, 층과 층 사이의 결합 밀도가 높은 다층 신경망의 학습이 어려웠다.
  • CNN은 특정한 이미지 처리를 수행하는 층이 여러 개 쌓인 구조를 갖는, 층간의 결합 밀도가 낮은 신경망이다.
  • 제프리 힌턴의 연구진이 발표한 딥 빌리프 네트워크(Deep Belief Network, DBN) 는 일반적인 신경망과 유사하게 다층 구조를 갖는 그래프 모델(graph model)이다.
    • DBN 모델의 동작은 확률적으로 기술되며, 주로 데이터의 생성 모델로 쓰였다.
    • 다른 신경망과 마찬가지로 층수가 늘어나면 DBN의 학습도 곤란해졌는데 이때 힌턴은 대책으로 제약 볼츠만 머신(Restricted Boltzmann, RBM) 이라는 단층 신경망으로 분해한 뒤, 탐욕 알고리즘(Greedy Algorithm)과 같은 아이디어로 이들 RBM에 입력층과의 거리가 가까운 순으로 차례차례 비지도 학습을 수행하는 방법을 제안했다.
  • 사전훈련(pre-training) 이란 사용하려는 신경망을 학습시키기 전에 층 단위의 학습을 거치는 거으로 더 나은 초기값을 얻는 방법입니다.
    • 이후 DBN이나 RBM이 아닌, 그보다 더 단순한 자기부호화기(autoencoder) 를 사용하여도 다층 신경망의 사전훈련이 가능해졌다.
  • 오토인코더
    • 오토인코더란 입력으로부터 계산되는 출력이 입력 자체와 비슷해지도록 훈련되는 신경망입니다.
    • 즉, 오토인코더의 목표 출력은 입력 그 자체이기 때문에 비지도 학습으로 학습이 이루어집니다.
    • 학습 절차 : 목적으로 하는 다층 신경망을 단층으로 분할한 뒤, 입력층과 가까운 순서대로 각 층을 오토인코더로 보고 비지도 학습을 실시해서 각 층의 파라미터의 초기값을 얻습니다. 그 다음, 전체 신경망에 대한 지도 학습을 실시합니다.
728x90
반응형
Comments