실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
Lecture 4: Neural Networks I
1. Neural Networks I
Sang Jun Lee
Ph.D. candidate, POSTECH
Email: lsj4u0208@postech.ac.kr
EECE695J 전자전기공학특론J(딥러닝기초및철강공정에의활용) – LECTURE 4 (2017. 9. 22)
2. 2
▣ Lecture 3: unsupervised learning
▲ Clustering
▲ Anomaly detection : Density estimation
1-page Review
K-means
Spectral
clustering
Given a set of unlabeled example, 𝐷𝐷 = (𝑥𝑥𝑡𝑡) 𝑡𝑡=1
𝑁𝑁
,
learn a meaningful representation of the data
K-means
Cluster의 center로부터의
거리를 기준으로 clustering
Spectral clustering
얼마나 적은 비용으로 그래
프를 partitioning 할 것인가
• 알고리즘이 간단
• 초기값에 따른 알고리즘
결과의 변화
• 계산량이 많음
• 데이터의 cluste가 highly
non-convex일 때 효과적!
• 동일 데이터에 대하여 비
슷한 결과 도출
3. 3
The history of artificial intelligence
1950 1970 1980 1990 2000 20101960
Perceptron 개발 (‘1957)
1st AI winter
• 60년대 말 ~ 70년대
• Perceptron 이론의 한계 발견
(perceptron: 데이터의 학습에
기반한 linear classifier)
• XOR 문제에 대한 한계점 발견
• 프로젝트 실패와 연구비 중단
Multilayer perceptron 개발 (‘1968)
인공지능 용어 등장
(Dartmouth AI Project, ‘1956)
4. 4
The history of artificial intelligence
1950 1970 1980 1990 2000 20101960
Perceptron 개발 (‘1957)
1st AI winter
Multilayer perceptron 개발 (‘1968)
인공지능 용어 등장
AI Boom (80년대 중반)
전문가 시스템의 개발
전문가와 동일한 또는 그 이
상의 문제해결 능력을 가질
수 있도록 만들어진 시스템
Backpropagation (‘1981, ‘1986)
• 폴 워보스가 74년에 적용, 81년에 발표
• 러멜하트, 제프리힌튼, 로날드윌리엄스
가 역전파 학습모델 발표 (‘1986)
• 인공신경망 연구 활성화
2nd AI winter
복잡한 모델 구성의 한계
5. 5
The history of artificial intelligence
1950 1970 1980 1990 2000 20101960
Perceptron 개발 (‘1957)
1st AI winter
Multilayer perceptron 개발 (‘1968)
인공지능 용어 등장 AI Boom
Backpropagation (‘1981, ‘1986)
2nd AI winter
순환신경망 (RNN, ‘1992) 필기체 문자인식 연구 (CNN, ‘1998)
딥러닝 용어 등장 (‘2000)
딥러닝 빙하기 (2000~2005)
• Deep neural network
최적화의 어려움
• 엄청난 계산량
• 학습데이터의 부족
6. 6
The history of artificial intelligence
1950 1970 1980 1990 2000 20101960
Perceptron 개발 (‘1957)
1st AI winter
Multilayer perceptron 개발 (‘1968)
인공지능 용어 등장 AI Boom
Backpropagation (‘1981, ‘1986)
2nd AI winter
순환신경망 (RNN, ‘1992)
필기체 문자인식 연구 (CNN, ‘1998)
Deep belief network (DBN, ‘2006)
• 제프리 힌튼
• RBM (Restricted Boltzmann Machine)
이라는 Pre-training 기법 개발
• Pre-training을 이용하여 가중치를
initialization 하면 DNN도 학습 가능
최근:
• GPU를 이용한 병렬처리 연산
• 빅데이터의 활용
• 알고리즘의 개발 (Dropout, ReLU)
8. ▣ Perceptron
생물학적인 신경체계 모방
▣ Multilayer Perceptron (MLP)
XOR문제를 어떻게 풀 것인가?
▣ Back Propagation
MLP의 학습
▣ Vanishing gradient
Neural network는 deep 할 수록 좋다?
8
Contents
9. 생물학적인 신경체계 모방하기 위한 수학적 모델
▲ Biological neuron:
▲ Artificial neuron: 여러 뉴런으로부터 신호를 받아 처리하여 하나의 output 생성 및 여러 뉴런으로 전달
▲ Biological neuron vs. Artificial neuron
물론, 실제 biological neuron은 여러가지 종류가 존재하고, dendrite는 복잡한 nonlinear computation을 수행하며,
synapse는 weight을 이용한 system이 아니라 복잡한 dynamic system으로 artificial neuron과 다르다!
9
Perceptron
신호 입력
입력 받은 신호 처리 및 분계점(threshold)가
넘는 신호에 대하여 axon terminal으로 전달
10. 생물학적인 신경체계 모방하기 위한 수학적 모델
▲ Activation function: step function 대신 sigmoid (logistic) function 사용
▲ 여러가지 종류의 activation function
10
Perceptron
𝑓𝑓 𝑥𝑥 =
1
1 + 𝑒𝑒−𝑥𝑥
11. 생물학적인 신경체계 모방하기 위한 수학적 모델
▲ Logic을 구성하는 기본단위인 AND/OR/NOT gate 구현 가능
11
Perceptron
12. 생물학적인 신경체계 모방하기 위한 수학적 모델
▲ Logic을 구성하는 기본단위인 AND/OR/NOT gate 구현 가능
▲ Perceptron: linear classifier → linearly non-separable 문제에 대한 한계 (ex. XOR)
12
Perceptron
13. Multilayer Perceptron = Neural Network
XOR gate: a simple nonlinear classification example
여러 개의 perceptron을 사용함으로써 구현 가능
예를 들어, 𝑋𝑋𝑋 = 0, 𝑋𝑋𝑋 = 1 일 때,
𝑋𝑋𝑋 = 𝑠𝑠𝑠𝑠𝑠𝑠 1 ⋅ 𝑋𝑋𝑋 + 1 ⋅ 𝑋𝑋𝑋 + 0 = 1 & 𝑋𝑋𝑋 = 𝑠𝑠𝑠𝑠𝑠𝑠 1 ⋅ 𝑋𝑋𝑋 + 1 ⋅ 𝑋𝑋𝑋 − 1 = 0
𝑂𝑂𝑂𝑂𝑂𝑂 = 𝑠𝑠𝑠𝑠𝑠𝑠 3 ⋅ 𝑋𝑋𝑋 + −2 ⋅ 𝑋𝑋𝑋 − 2 = 1
13
Neural Network
14. Multi-class classification
Neural network를 활용한 multi-class classification의 원리
(softmax function을 사용하여 K개의 hypothesis function을 구성하는 softmax classification과 같은 원리)
14
Neural Network
16. Multi-class classification
학습시키는 class 개수와 동일한 수의 output node를 구성
예를 들어, 분류하는 class의 개수가 4개일 때, 𝑦𝑦(𝑖𝑖)
는 아래 vector 중 하나로 구성
16
Neural Network
𝑦𝑦(𝑖𝑖)
=
1
0
0
0
𝑜𝑜𝑜𝑜
0
1
0
0
𝑜𝑜𝑜𝑜
0
0
1
0
𝑜𝑜𝑜𝑜
0
0
0
1
One-hot encoding !!
17. Multi-class classification의 cost function
데이터에 기반하여 좋은 가중치와 나쁜 가중치를 어떻게 판단?
→ cross-entropy loss 사용
어떻게 학습할 것인가?
𝛻𝛻𝜽𝜽 𝐽𝐽 𝜽𝜽 의 계산 필요! → Backpropagation
17
Neural Network
𝒉𝒉𝜽𝜽 𝒙𝒙 ∈ ℝ𝐾𝐾
𝐽𝐽 𝜽𝜽 = −
1
𝑚𝑚
�
𝑖𝑖=1
𝑚𝑚
�
𝑘𝑘=1
𝐾𝐾
𝑦𝑦𝑘𝑘
(𝑖𝑖)
log 𝒉𝒉𝜽𝜽 𝒙𝒙 𝒊𝒊
𝑘𝑘
+ 1 − 𝑦𝑦𝑘𝑘
𝑖𝑖
log 1 − 𝒉𝒉𝜽𝜽 𝒙𝒙 𝒊𝒊
𝑘𝑘
18. A simple example: Local gradient와 (parameter에 대한) gradient의 이해
𝑓𝑓 𝑥𝑥, 𝑦𝑦, 𝑧𝑧 = 𝑥𝑥 + 𝑦𝑦 ⋅ 𝑧𝑧
𝑥𝑥 = −2, 𝑦𝑦 = 5, 𝑧𝑧 = −4 일 때,
𝜕𝜕𝜕𝜕
𝜕𝜕𝜕𝜕
와
𝜕𝜕𝜕𝜕
𝜕𝜕𝑦𝑦
를 구해보자!
18
Backpropagation
𝑞𝑞 = 𝑥𝑥 + 𝑦𝑦
𝜕𝜕𝜕𝜕
𝜕𝜕𝜕𝜕
= 1,
𝜕𝜕𝜕𝜕
𝜕𝜕𝑦𝑦
= 1
𝑓𝑓 = 𝑞𝑞 ⋅ 𝑧𝑧
𝜕𝜕𝑓𝑓
𝜕𝜕𝑞𝑞
= 𝑧𝑧,
𝜕𝜕𝑓𝑓
𝜕𝜕𝑧𝑧
= 𝑞𝑞
26. Code: 141.223.87.129data상준EECE695J_딥러닝기초및활용 - W4_XOR_example.ipynb
Data preparation
26
TensorFlow implementation for XOR example
우리가 원하는 output은 1(true) 혹은 0(false)이지만
반드시! One-hot encoding 형태로 데이터를 구성해야!
Hidden layer의 neuron 개수를 20개로 setting
Output layer의 노드 개수는
분류하고자 하는 class의 수로
결정
27. Code: 141.223.87.129data상준EECE695J_딥러닝기초및활용 - W4_XOR_example.ipynb
Data flow graph 구성
27
TensorFlow implementation for XOR example
나중에 데이터를 실제로 입력할 placeholder 정의!
Layer의 수 = hidden layer의 수 + 1 (output layer)
28. Code: 141.223.87.129data상준EECE695J_딥러닝기초및활용 - W4_XOR_example.ipynb
Training
28
TensorFlow implementation for XOR example
Session을 열고 미리 정의한 data flow graph의 실행
학습을 위해 데이터(x) 및 라벨(y)를 data flow
graph에 입력
학습이 진행됨에 따라 loss가 감소하는 것을 확인
32. Network 구조를 deep하게 쌓으면 좋다고?
32
Vanishing Gradient
𝑑𝑑
𝑑𝑑𝑑𝑑
𝜎𝜎 𝑥𝑥 = 1 − 𝜎𝜎 𝑥𝑥 ⋅ 𝜎𝜎 𝑥𝑥 ≤ 1
• 각 layer의 local gradient가 곱해 짐에 따라 parameter에 대한 gradient 감소
• 입력 데이터에 의한 학습효과 x
33. ▣ Vanishing gradient 문제의 해결 방법?
Activation function: better nonlinearity
▣ Weight initialization
학습 파라미터의 초기값을 어떻게 설정할 것인가?
▣ Data Preprocessing
물리적 의미가 다른 데이터 혹은 분포가 다른 데이터를 어떻게 동시에 학습?
▣ Regularization
Dropout과 model ensemble
33
Preview (Lecture 5)
35. Neural network implementation for multi-class classification
Code: 141.223.87.129data상준EECE695J_딥러닝기초및활용 - W4_homework2.ipynb
35
Homework #2
Training data Test data
36. Neural network implementation for multi-class classification
Code: 141.223.87.129data상준EECE695J_딥러닝기초및활용 - W4_homework2.ipynb
36
Homework #2
To Do
• Label data (y)의 one-hot encoding
• Neural network 구성
• Training data를 이용하여 학습
• Test data에 대하여 테스트 및 분류 정확도 계산
𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 =
# 𝑜𝑜𝑜𝑜 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑
# 𝑜𝑜𝑜𝑜 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑
제출물
• Neural network 구조 (code부분 capture)
• 학습 iteration에 대한 cross-entropy loss (50번 혹은 100번 마다 출력)
• Training 및 Test data에 대한 정확도
Due date : 10/12 (3주 뒤)
37. ▣ Perceptron
생물학적인 신경체계 모방
▣ Multilayer Perceptron (MLP)
XOR문제를 어떻게 풀 것인가?
▣ Back Propagation
MLP의 학습
▣ Vanishing gradient
Neural network는 deep 할 수록 좋다?
37
Summary