욱이의 냉철한 공부

[딥러닝 기본] Deep Learning 핵심개념 : Feature추출에 대한 이해 본문

데이터과학/개념 : Deep Learning

[딥러닝 기본] Deep Learning 핵심개념 : Feature추출에 대한 이해

냉철한 욱 2020. 6. 22. 00:08

* 출저

본 개념정리는 제 담당교수님이신 연세대학교 정보대학원 김하영 교수님 수업과 Andrew 교수님의 Coursera 수업을 통해 얻은 정보를 통해 정리했습니다. 자료는 Andrew 교수님의 Coursera 수업자료입니다.


* 목차

1. 딥러닝의 hidden layer 효과 (Network의 Size 중요성)

2. 딥러닝에서의 자유도와 가중치

3. 딥러닝에서의 High-level feature

4. 딥러닝에서의 Bottle neck 현상


1. 딥러닝의 hidden layer 효과 (Network의 Size 중요성)

< 3) 왜 hidden layer를 여러개 두어야 잘 될까? >

- 개념

더 high-level feature를 학습할 수 있다. 즉 복잡한 문제를 해결 할 수 있게 된다.

왜냐하면 네트워크가 깊어지고 넓어지면서 representive 수용성이 커지게 된다. 

즉 hidden layer가 쌓이면서 복잡한 함수를 표현할 수 있는 능력 가지게 되는 것이다. 

 

- 한 줄 설명​

hidden layer가 많아지면 즉 파라미터 수가 많아지면 representive capacity(수용성)이 커진다. 

이를 통해 더 high-level feature를 추출할 수 있게 된다. 

 

- 구체적 설명

hidden layer가 쌓이면서 더 high-level feature를 학습할 수 있다. 즉 복잡한 문제를 해결 할 수 있게 된다.

구체적으로 hidden layer가 쌓이면서 순차적으로 기존 layer에서 발생된 feature를 조합하여 다음 층으로 전달된다.

이 과정에서 비선형 함수를 사용하며, 이 함수들이 합성되면서 훨씬 더 복잡한 함수로 표현가능하다.

이 것은 더 어려운 문제를 해결할 수 있게 만든다. 이것은 representive(표현력)이 더 좋아진다고 할 수 있다.

쉽게 말해 비선형함수의 합성함수를 통해 표현력이 더 좋아진 것이다. 

즉 hidden layer가 쌓이면서 복잡한 함수를 표현할 수 있는 능력 가지게 되는 것이다. 

 

- 딥러닝의 다른 말 : Represnetive Learning

 

 

 

2. 딥러닝에서의 자유도와 가중치

- 자유도 개념

Neuron의 수를 의미한다. 

Neuron이 많으면 자유도가 크다. 

Neuron이 적으면 자유도는 작다

즉 Neuron의 수(자유도)는 Representive의 정도(Capacity)를 의미한다. 

Neuron의 수(자유도)가 커질수록 Representive의 방법이 다양해진다. 

 

- 가중치(W) 개념

Neuron의 수(자유도)가 크다는 것은 가중치(W, Parameter)가 많다는 것이다. 

가중치(W, Parameter) 값이 변하면, 추출되는 Feature 값도 변하는 것이다. 

이 값들이 다양하게 변함으로써 Representive도 다양하게 표현 가능해지는 것이다. 

이것은 각 Neuron마다 비선형함수의 합성함수로 복잡한 함수를 구축함으로써, 복잡한 문제를 해결할 수 있는 능력이 생기는 것이다. 

 

 

3. 딥러닝에서의 High-level Feature

- Feature 관점에서 layer의 의미

Feature를 "변환"("학습") 시키는 것이다. 

이를 통해 새로운 표현을 찾아가는 것이다. 

입력층에 가까운 layer에서는 low-level 표현이 될 것이며, 

출력층에 가까운 layer에서는 high-level 표현이 될 것이다. 

 

-  Feature 관점에서 가중치(W)의 의미

기존 가중치와 결합된 Feature들이 조합해가면서 다음 layer로 이동한다. 

이 때 가중치(W)는 Co-efficient하다.

가중치가 크다면 해당 정보(Feature)를 중요하게 사용한 것이다. 

즉 중요도에 따라 다른 가중치(W)를 적용하며 최적의 조합을 찾는 것이다.

- High-level Feature

이전 layer의feature들을 조합하여 점점 더 의미있는 High-level feature로 줄여나가는 것이다.

 

 

4. 딥러닝에서의 Bottle neck 현상

- 가설공간

가설공간에서 어떠한 문제가 해결될 것이라고 가정한다. 

즉 우리가 아키텍처를 결정하면, 가설공간을 결정한다는 뜻이다. 

 

- Bottle neck

layer마다 자유도(Neuron의 수)는 Output으로 갈수록 점점 작아진다.

Bottle neck은 한 번에 작게하여, 큰 정보손실을 가져오게 만드는 현상이다.

예를 들어, 이전 layer에 자유도(Neuron의 수)가 784개 있었다.

보통 다음 layer은 512, 그 다음은 128... 이런 식으로 줄어나가지만,

갑자기 10으로 줄인다면 Bottle neck 현상이 일어난다. 

많은 정보가 갑자기 축소된다면, 중요한 정보가 새어나갈 수도 있는 것이다. 

이렇게 되면 정보를 제대로 학습하지 못할 수 있다. 

이로 인해, Underfit 현상이 일어나는 것이다. 

애초에, 복잡한 문제를 해결할 수 있는 능력이 되지 않다는 뜻이다. 

 

- 딥러닝 설계의 주안점

항상 아키텍쳐(Network)는 충분히 크게 하여, Representive Capacity를 크게 한다. 

그 후, Overfit 방지할 수 있는 방법들을 생각해봐야 한다.  

 

 

5. 딥러닝에서의  Row Data 개념

- Missing value 처리

데이터는 하나하나가 모두 소중하다. 딥러닝에서는 Row Data 그대로 Input해야 한다. 

Missing value 지우기 시작하면 끝도 없이 지워야 한다. 

딥러닝은 representive learning 즉 feature learning이다. 스스로 feature를 조합해가면서 새로운 high-level feature를 만든다. 

그렇기 때문에 Missing value를 그냥 0으로 채워, 중요한 값이 아니라고 일관적으로 알려주면 된다. 

딥러닝은 가중치(W)를 통해서 이것들을 취사선택함으로써 스스로 걸러낼 것이다.  

 

- Row data 개념

1) 출력과 관련 있는 데이터이어야 한다. 

     관련이 적은 데이터는 가중치(W)가 0으로 알아서 취사선택 할 것이다. 

2) 충분히 많은 데이터 양이어야 한다.

 

- Row data 투입 이유 

Row data를 넣는 이유는 최대한 정보손실을 막겠다

 

- Row data가 적은데, 아키텍쳐는 큰 상황

파라미터 많기 때문에 가설공간(자유도)가 너무 커서, 아웃라이어까지 잘 외울 정도록 과하게 학습되어졌다. 

데이터 전체를 외워버릴 정도가 된다. 

이런 상황에서는 자유도에 제약을 걸어야 한다. 

 

- 그렇다고 아키텍쳐를 축소시킨다?

파라미터 줄이면, Representive capacity도 같이 줄어진다. 

데이터 적기 때문에 이 Representive capacity를 줄인다? 좋은 선택이 아니다. 

그렇기 때문에 Ealy stop은 가장 마지막에 사용하는 최후의 보류다. 

즉 네트워크 사이즈를 축소하는 것은 마지막에 생각해야 할 사항이다. 

네트워크 사이즈는 모델의 Representive capacity를 의미하기 때문에 좋은 석택 아니다. 

결국 최우선 순위는 데이터 확보이다. 혹은 이를 위해 Data Augmentiation을 우선시 해야 한다.