*본 내용은 시계열데이터 강의 내용 중 일부분을 요약한 내용입니다
개요
오늘은 딥러닝에 대해서 포스팅 하겠습니다. 발전 개요는 생략했고 중요하다고 생각하는 것들만 정리해 보았습니다.
단층퍼셉트론(Single-Layered Perceptron: SLP)
위 이미지는 단층 구조입니다. H0와 이를 가리키는 X들만 따로 구별해서 본다면 우리가 알고 있는 회귀분석 y=f(x) 구조와 같습니다. 즉 ho=f(x) 구조 형식을 띕니다. 즉 각 노드가 하나의 회귀분석이며 딥러닝은 이러한 회귀분석을 여러개 계산하는 것입니다. H0 -> Y으로 넘어 갈때 활성함수가 들어가게됩니다. 활성함수는 비선형으로 만들어 주는 장치입니다. 따라서 정리하면 뉴런(노드)의 수만큼 회귀분석 한 다음에 이를 결합 하고 또다시 회귀 분석을 합니다
Y= g(H0, H1, ... , Hk-2) 이때 g는 활성함수입니다.
히든레이어가 1개밖에 없다는 의미는 오직 선형으로만 구분 할수 있다는 것입니다. 아래 이미지를 보겠습니다
위 예시로는 한 직선으로 구분이 가능합니다. 하지만 ...
XOR 같은 문제는 한 직선으로 구분을 못하게 됩니다. 이 문제를 구분 할려면 비선형이 필요하게 되고 이를 만들기 위해서는 히든레이어를 2개 이상 쌓아야 합니다. 아래 1번 문항이 이에 해당됩니다.
2번의 의미는 가중치 업데이트가 안된다는 것입니다. 어찌저찌 해서 회귀분석 수십개를 돌린 후 Y라는 결과를 한번 딱 냈다고 했을때, 실제 Y와 예측치 Y 간의 잔차를 토대로 잔차가 줄어드는 방향으로 가중치를 조절해야 하는데, 단층에서는 이 조절할 장치가 없습니다. 초기에 정해진 가중치가 업데이트가 되지않고 유지가 되어서 최적의 값을 찾지 못합니다.
다층퍼셉트론(Multi-Layered Perceptron: MLP)
XOR문제를 해결하기 위해서 2개 이상의 히든 레이어를 쌓은 형태입니다. 하지만 여전히 가중치 조절은 해결하지 못한 상태입니다.
히든 레이어가 1개면 1차식, 2개면 2차식, 3개면 3차식 형태로 증가합니다. 따라서 다양한 비선형 특징을 추출할수 있게 됩니다. 이로써 XOR 문제는 해결이 가능해 졌습니다. 이제 가중치 업데이트를 어떻게 하면 될건가 문제인데
이는 역전파를 통해서 해결이 가능합니다.
역전파(Back Propagation: BP)
실제 Y와 예측치 Y의 차이인 error를 학습 시 사용했던 파라미터의 수만큼 잘게 쪼갭니다. 그러면 위 이미지의 노란색 화살표에 그려진 e값이 분산이 됩니다. 정리를 하자면, 단층 퍼셉트론 설명할때 노드의 수만큼 회귀분석이 실행이 된다고 했는데, 이 각각의 회귀분석에게 잔차를 나눠주고 각자 할당 받은 잔차를 가장 낮게 가중치를 조절하는 것입니다. 마치 회사 대표가 이번년도 매출은 100억원이다 라고 정해 놓으면 각 부서의 차장이나 책임자들이 목표를 소분해서 가장효율적인 방법을 찾아 일하는 것과 비슷해 보입니다. 역전파를 통해 학습 업데이트를 해결 할수 있었습니다.
하지만 이는 또다른 문제를 야기 했습니다. 이때 사용되는 활성함수는 sigmoid인데, 바로 vanishing Gradients가 발생하는 것입니다.
히든레이어가 많아지면 잔차 값이 0이 됩니다. 그러면 가장 처음부분에서 계산된 파라미터, 여러개의 회귀분석은 잔차값을 받지 못하여 업데이트를 못하게 됩니다. 역전파 과정에서 미분끼리 연산과정이 발생합니다. 예를들어 0.5, 0.5 이 둘을 곱하면 0.25로 줄어 들듯 뒤로 갈수록 잔차가 줄어들고 결국 0밖에 남지 않는다는 것이죠
이 문제는 LeRu라는 활성함수를 통해 해결할수 있습니다.
딥러닝(Deep Learning: DL)
인공신경망의 다층구조가 심화(Deep)된 네트워크 구조의 알고리즘
(시계열)회귀분석과 (딥러닝)인공신경망의 차이
y=f(x)의 형태를 취하고 있는 반면 인공신경망은 중간에 히든레이어가 추가된 형태입니다.
Y를 구하기 위한 연관 과정을 위 식에서 확인 할 수 있습니다. Vi * h(x) 에서 h(x)는 단층에서 언급했었던 내용처럼 히든레이어를 회귀식으로 취했을때 형태입니다. h(x) 안에는 X들과 가중치 값들을 포함하고 있습니다.
위 내용의 이유로 현재 딥러닝을 이용한 비지니스 수익창출하기가 아직은 어렵다고 합니다. 딥러닝은 사람의 손을 많이 탑니다. 자유도가 높아서 값이 매번 바뀌고 가중치의 설명력이 부족하기때문에 정확성이 높아도 신뢰하기가 어렵습니다.
'Data Diary' 카테고리의 다른 글
2021-04-14(시계열데이터 심화18_bitcoin 실습편) (0) | 2021.04.14 |
---|---|
2021-04-13(시계열데이터 심화17_RNN,LSTM,Gru) (0) | 2021.04.13 |
2021-04-10 기록(시계열 데이터 심화_비선형 복습) (0) | 2021.04.10 |
2021-04-09(시계열데이터 심화15_비선형 알고리즘) (0) | 2021.04.09 |
2021-04-08기록 (0) | 2021.04.08 |