본문 바로가기

DEEP LEARNING/Fundamental Concept

What is AI?

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를 업데이트한다.
  1. Batch Gradient Descent: 모든 data에 대해 loss를 계산하여 다 더함
  2. Stochastic Gradient Descent: data 1개만 뽑아 그에 대한 loss 계산
  3. * 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     

        

Data, more data (by Andrew Ng’s tutorial @NIPS 2016)

  • 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