Introduction to Deep Learning & Neural networks
History of Deep Learning(AI)
- 1943: Neural networks
- 1957-62: Perceptron
- 1970-86: Backpropagation, RBM, RNN
- 1979-98: CNN, MNIST, LSTM, Bidirectional RNN
- 2006: “Deep Learning”, DBN
- 2009: ImageNet + AlexNet
- 2014: GANs
- 2016-17: AlphaGo, AlphaZero
- 2017-19: Transformers
AI
- 이세돌의 알파고와 Ke jie의 알파고 하드웨어 차이
- Dota2 & StarCraft2; 알파고와 다른 점이 상대방이 뭘 하는지 모르며 팀플레이로 진행
- Boston Dynamics’ Robots; 백덤블링까지 가능, 인공지능만이 아닌 다른 기술에 인공지능을 접목
- 2018 Google Assistant; umm~의 자연스러운 반응, 영어가 유창하지 않아도 대화 가능
- AI Speaker; privacy와 관련한 이슈 (깨어나는 동작과 관련한 정보수집 측면)
- 고양이를 보고 얘가 왜 고양이인지 완벽한 알고리즘으로 설명할 수 없음
- 사람처럼 생각하면 되겠는데 사람이 어떻게 생각하는지를 모름(raw signal).
- 기계가 스스로 특징을 찾아낼 수 있게 해보자
- 기술로서의 가치보다 도구로서의 가치가 커지고 있다.
Machine Learning
컴퓨터에 명시적으로 프로그래밍하지 않고 학습할 수 있는 능력을 부여하는 컴퓨터 과학의 하위 분야
Supervised Learning(지도학습)
- Input과 labels를 이용한 학습 → function approximation
- 정답이 미리 정해져 있음
- classification, regression이 목적
Unsupervised Learning(비지도학습)
- Input만을 이용한 학습 → (short) description
- 정답이 정해져 있지 않음
- clustering, compression을 목적
- ex: GAN, Text to Image Generation
Reinforcement Learning(강화학습)
- Trial and error을 통한 학습 → sequential description making
- ex: AlphaGo Zero, Atari Games, Autonomous Driving
Perceptron(Artificial Neural Network)
- 최적의 weight 값을 찾는 것
- XNOR,XOR, NAND 등의 논리 연산 문제에 한계를 갖고 있음
- 퍼셉트론을 여러층으로 쌓는 Multi Layer Perceptron(MLP)이 대안
- Universal Function Approximation; 어떤 함수도 근사할 수 있지만 그 근사함수가 좋은 것인지는 별개
Deep Learning
- Deep Neural Network: Hidden layer 수가 2개 이상인 network
- 머신러닝과 딥러닝의 차이: 데이터에서 변수(feature, 특징)를 추출하는 과정에서 사람의 직접 관여 여부, 최근엔 그 경계가 점점 허물어지고 융화되고 있음
- 많은 weight 값들을 어떻게 학습시킬 것인지가 관건
- Back Propagation을 사용하여 학습
Training and Testing
- Training → Tuning(validation) → Test
- 딥러닝의 핵심은 지금껏 가지지 않은 새로운 데이터에 대해 적용이 목적이므로 testing에서 New Input Data가 중요
- validation set과 test set의 차이: test set 적용 이전에 validation set에 적용하면서 tuning을 통해 모델 생성, test set 적용 후 다시 tuning을 했다면 더이상 test set이 아닌 validation set
Cross-Validation
- 시간이 매우 오래 걸림
- 원하는 weight을 찾기 위해 초기값을 random한 값으로 시작
Gradient Descent
$ \text{weight update} = w_{new} - w_{old} = \eta \triangledown_w L$
- Back propagation을 위한 계산법
- Loss Function을 W로 편미분하여 w에 대한 gradient를 구한다.
- Gradient를 이용해서 w를 업데이트한다.
- Batch Gradient Descent: 모든 data에 대해 loss를 계산하여 다 더함
- Stochastic Gradient Descent: data를 1개만 뽑아 그에 대한 loss 계산
- * Mini-batch Gradient Descent: data를 n개 뽑아 그에 대한 loss 를 계산
Back Propagation
- chain rule을 이용해 loss로부터 거꾸로 미분값을 구함
- Output layer에서 error(cost)를 계산하고 error의 미분값을 back propagation
- 미분값에α를 곱한만큼 w를 보정하여 학습한다.
- α는 learning rate를 의미하며 한번에 얼만큼 내려올지를 정해줌
- Loss Function(Cost Function) 값이 줄어들도록 미분을 이용해 weight 값을 바꿔나감
문제점
Vanishing Gradient Problem
- G값이 뒤로 전달될수록 점점 작아짐
- sigmoid 사용으로 아래쪽 layer는 학습이 이루어지지 않음 → sigmoid 말고 ReLu (Rectified Linear Unit) 사용
- piece-wise linear tiling: locally linear mapping
Overfitting Problem
- data가 많지 않은 경우 발생
- training data에 지나친 최적화 현상으로 인해 일반화(generalization) 성능이 떨어져 융통성이 없어짐
- Regularization method 사용(dropout)
- 각 학습 단계마다 특정확률로 random하게 hidden layer에 있는 unit 들을 없애고 학습
- Ensemble 개념 적용
- 여러개의 model을 사용하여 평균값을 쓰면 하나의 model를 쓰는 경우보다 좋음
- 하나의 model로 비슷한 효과낼 수 있는 방법
- Other: Weight Decay(L2 Regularization), Batch Normalization
Local Minima
- 실제로는 로컬미니멈 아닐 가능성이 매우 높음
- DNN과 같은 고차원 구조에서는 대부분 saddle point일 가능성이 높음
- saddlepoint에서 벗어나기가 사실 어렵고 매우 수학적인 분야임
About Deep Learning
- very data hungry
- It is not questionable that more data still improves network performance
- data is expensive(정확히는 labeling이 비쌈, 크라우드 소싱, 크라우드 웍스 등의 스타트업 활성)
- Good Data vs Bad Data
- Our labels are perfect?
- Our data is unbiased?
- Is Our Model Good Enough?
- Sometimes accuracy is not a good measurement
- precision과 recall trade-off 관계
Rethinking Generalization
Limitations
- Not sample efficient
- Compute intensive
- Catastrophic Forgetting Problem
- Poor at handling prior knowledge or uncertainty
- Not interpretable
- Suffers from hyper-parameter optimization
- Vulnerable to adversarial attack
Hot Topics
- Graph Neural Network; AAAI(triple AI)
- Meta Learning
- Attention (in NLP)
- Self-supervised Learning
- Adversarial Attack & Training
- Auto-ML
- Model Compression
'DEEP LEARNING > Fundamental Concept' 카테고리의 다른 글
Object Detection (0) | 2020.03.25 |
---|---|
Modern CNN (0) | 2020.03.10 |
Convolutional Neural Network (0) | 2020.03.03 |
Training Neural Networks (0) | 2020.02.24 |
Linear Regression & Logistic Regression (0) | 2020.02.12 |