출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS] [시계열 딥러닝] 딥러닝의 개념: 신경망, 순전파 네트워크(Neural Network, Feed Forward Network)
본문 바로가기
Financial Time Series

[시계열 딥러닝] 딥러닝의 개념: 신경망, 순전파 네트워크(Neural Network, Feed Forward Network)

by 헤지월드 2022. 2. 26.

데이터 과학이나 AI에 조금이라도 관심이 있는 사람은 '딥러닝'이라는 단어를 한 번쯤은 들어보았을 것이다. 개념을 모르는 사람들의 입장에서는, 단순히 '머신러닝보다 더 나은 방법' 정도로 여겨질 수도 있다. 그런데 사실 딥러닝은 이미지 및 자연어 처리 이외의 분야에서는 아직 훌륭한 예측 능력을 보여주지 못했다.
물론, 딥러닝은 전통적인 예측 모델이 공통으로 갖는 획일성과 불안정한 가정에 대해 요구되는 필요 조건을 감소시킨다.

딥러닝의 장점

딥러닝 모델을 사용하면 모델의 가정에 데이터를 맞추기 위해 지금껏 수행한 여러가지 전처리 과정이 사라진다.

  • 정상성을 요구하지 않는다.
  • 계절형 ARIMA 모델의 차수, 계절성에 따른 평가와 같은 파라미터를 고르는 기술을 개발할 필요가 없다.
  • 상태 공간 모델링에서 유용하게 사용되었던 시스템의 dynamic에 대한 가설을 세울 필요가 없다.

 

  • 앞서 배웠던 머신러닝 알고리즘은 input data와 차원의 측면에서 불안정한 경향이 있었다. 그러나 딥러닝은 모델과 input의 특성에 대해 매우 유연하다.
  • 또한 일반적인 머신러닝 기법으로 heterogenous한 데이터를 다루기란 매우 어렵지만, 딥러닝 모델에서는 꽤 흔히 사용된다.
  • 시계열 문제를 해결하기 위해서 머신러닝 모델이 개발되는 경우는 드물지만, 딥러닝은 그 유연성 덕에 time-series data에 특화된 구조의 개발이 가능하다.

 

딥러닝의 한계

물론 딥러닝이 만능은 아니고, 정상성을 요구하지 않는다 하더라도 표준 딥러닝 구조를 추세에 맞도록 변경해야 한다.
즉, 여전히 데이터 전처리 과정은 필요하다.

또한 시간 지향적인 신경망 모델링(순환 신경망)과 관련된 딥러닝 최적화 기법은, 이미지 처리용 신경망(합성곱 신경망)에 비해 많이 발전되지 않았다. 즉, 선행 연구가 적어 참고할 만 한 지침이 적은 편이다.

딥러닝 개념

 

딥 러닝이란 무엇인가요? | Vision Campus

"딥 러닝"이라는 용어는 구체적으로 무엇을 의미하며 어떻게 작동하나요? Vision Campus에서 그 답을 확인할 수 있습니다!

www.baslerweb.com

기본 개념: 인간의 뇌를 모방하고 특정 동작에 반응하는 뉴런들로 구성된 네트워크가 지능적인 기계를 만드는 방법

간단한 순전파 네트워크(출처: Practical Time Series Analysis, 293p)

딥러닝은 신경망이 임의의 비선형 기능을 매우 정확히 표현해낼 수 있다는 이론을 토대로, 거대한 데이터셋을 학습할 수 있는 수백만 개의 파라미터로 구성된 신경망을 만들어냈다.

위 그림은 간단한 신경망과 다단계 perceptron(or fully connected layer)을 보여주며, d차원 벡터 형태의 다중채널 Inputs이 모델로 제공되는 방식을 보여준다.

Input layer의 각 노드(파란색 원)는 입력값을, 노드를 잇는 선은 승수(multiplier)를 나타낸다. 노드에 들어간 모든 선은 이전 노드의 값에 이전 노드와 현재 노드를 잇는 선의 값이 곱해진 값을 표현한다. 한 노드에 연결된 모든 입력값은 더해지고, 보통 비선형 활성함수(activation function)로 전달되어 비선형성이 만들어지는 것이다.

위 그림에서 보다시피, Inputs는 채널 3개(or 길이가 3인 벡터)로 구성되었다는 것을 알 수 있다.
그 다음으로 등장하는 은닉 계층(hidden layer)에는 4개의 은닉 유닛(hidden unit)이 존재한다. 각 Inputs은 연결된 4개의 hidden unit에 대한 선이 가지는 서로 다른 가중치와 곱해진다. 즉 이 문제를 설명하려면 가중치 12개(3 * 4)가 필요하다. 그 다음으로는 모든 곱의 결과를 더해주게 되므로, 곱하고 더하는 모든 과정은 행렬곱셈(matrix multiplication)이 하는 일과 정확히 일치한다고 볼 수 있다.

이 과정을 단계별로 적어보자.

  1. $W_1 * X_1$
    1. 입력 벡터 $X$는 세 가지 요소를 가진다($3*1$). 입력 계층과 은닉 계층 사이의 가중치($W_1$)는 $4 * 3$ 행렬이다. 따라서 은닉 계층을 구성하는 네 개의 요소는 $W_1 * X_1$로 계산되고, 그 결과는 $4 * 1$ 행렬일 것이다. 그러나, 이 결과가 곧 은닉 계층의 출력이 되는 건 아니다.
  2. $H = a(W_1 * X_1 + B_1)$
    1. 그 다음 다양한 '활성함수(activation function)'로 비선형성을 적용하는 단계다. 이 함수에는 hyperbolic tangent($tanh$)나 sigmoid($\sigma$) 같은 것이 있다. 또한 bias인 $B_1$을 활성함수 내에 적용하면, $H = a(W_1 * X_1 + B_1)$과 같은 일반적 형태의 은닉 계층의 출력을 만들 수 있다.*
  3. $Y = W_2 * H$
    1. 위 그림의 신경망은 두 개의 에측에 대해 두 개의 출력을 가진다. 따라서 4차원의 은닉 계층의 출력을 두 개의 출력으로 변환해줄 필요가 있다. 마지막 계층에서는 분류 문제의 경우, softmax라는 활성함수가 적용되지만, 비선형 활성함수를 포함하지 않는 것이 보통이다. 일단 두 개의 확률이나 범주가 아닌, 단순히 두 개의 숫자만을 예측한다고 가정하자. 그러면 최종 출력당 은닉 계층의 네 개의 출력을 결합하기 위해 '덴스 계층(dense layer)'만 적용하면 된다. Dense layer는 네 개의 입력을 두 개의 출력이 되도록 결합해주는 것으로, 이 둘 사이에는 $W_2$라는 $2*4$ 행렬이 필요하다.

 

  • * sigmoid 함수의 단점을 보완한 hyperbolic tangent
    • -1 ~ 1 사이의 값을 출력하며, 중앙값 또한 0

 

출처: https://gooopy.tistory.com/54
출처: https://gooopy.tistory.com/54

 

댓글