일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터분석
- lstm
- 그래프
- 머신러닝
- 데이터
- 주가예측
- 딥러닝
- Hadoop
- AI
- ggplot
- 자연어처리
- 하둡
- R시각화
- r
- 데이터시각화
- SQL
- R프로그래밍
- HIVE
- Python
- R그래프
- word2vec
- NLP
- 기계학습
- 빅데이터
- 그래프시각화
- CNN
- Deeplearning
- 데이터처리
- 빅데이터처리
- pandas
- Today
- Total
욱이의 냉철한 공부
[딥러닝 기본] Deep Learning 핵심개념 : Feature추출에 대한 이해 본문
* 출저
본 개념정리는 제 담당교수님이신 연세대학교 정보대학원 김하영 교수님 수업과 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을 우선시 해야 한다.
'데이터과학 > 개념 : Deep Learning' 카테고리의 다른 글
[딥러닝 기본] Setting up your ML application (0) | 2022.03.28 |
---|---|
[딥러닝 기본] Deep learning 학습개념 2 (0) | 2022.03.28 |
[딥러닝 기본] Deep Learning 학습최적화 개선 (0) | 2020.06.21 |
[딥러닝 기본] Deep Learning 과적합 해결 (0) | 2020.06.21 |
[딥러닝 기본] Deep learning 학습개념 1 (1) | 2020.06.21 |