Y B I G T A , D A T A D E S I G N T E A M
NEURAL NETWORKS
SUNLOK KIM
NEURAL NETWORKS ?
NEURAL NETWORKS !
약간의 심리학
어렸을 적 추억이
마음 속에 남아있다
기억이 저장되는 장소?
Hippocampus 해마
기억은 연결 속에
James L. McGaugh, 2000
시간을 거슬러…
Warren McCulloch, 1943
with Walter Pitts
Donald Hebb, 1949
Hebbian Learning, 1949
Cells that fire together, wire together
두 개의 뉴런이 반복적이고 지속적으로
연달아 점화한다면,
두 뉴런 사이의 연결성은 강화된다
Threshold & Long-Term Potentiation, 20c
Connectionism 연결주의의 시작
Frank Rosenblatt
1928.7.11 ~ 1971.7.11
심리학자,
Perceptron의 아버지
The First Perceptron, 1957
Single Layer Perceptron, 1957
출처: untitledtblog
MARK 1 PERCEPTRON
MARK 1
신경망을 이용한
학습이 가능한 첫 컴퓨터
Perceptron의 개념
YCA1004-01-00
나는 오늘 채플에 결석하기로 했다
내가 밀린 과제가 있는가𝑥" :
𝑥# :
𝑥$ :
𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 : 나는 채플에 가는 성실한 학생이다
내 결석 횟수가 4번을 안 넘었겠지
나는 혹시 지금 늦잠을 잤는가
- 내가 밀린 과제가 있는가 : Yes
- 결석 횟수가 4번을 안 넘었겠지 : No
- 나는 혹시 지금 늦잠을 잤는가 : Yes
𝑥" = 1
𝑥# = 0
𝑥$ = 1
중요도 (=가중치, Weight)
핑계들 0중요도 > 나는 성실한 학생이라는 양심
내가 밀린 과제가 있는가𝑥" :
𝑥# :
𝑥$ :
내 결석 횟수가 4번을 안 넘었겠지
나는 혹시 지금 늦잠을 잤는가
높은 중요도일수록 높은 가중치
Weight : [	𝑤", 𝑤#, 𝑤$	]
Input vector:
Weight vector: [	𝑤", 𝑤#, 𝑤$	]
[	𝑥", 𝑥#, 𝑥$	]
Input 벡터와 가중치 벡터의 내적
The First Perceptron, 1957
Activation function
Sign function
- 밀린 과제가 있는가 : No
- 결석 횟수가 4번을 안 넘었겠지 : Yes
- 나는 혹시 지금 늦잠을 잤는가 : No
𝑥" = 0
𝑥# = 1
𝑥$ = 0
순록의 양심으로는 역부족이었습니다0.45 > 0
하지만 잘못된 결과값
제대로 된 순록의 채플 결석 perceptron이라면
내적값이 0 이하가 되어
결석을 하지 않는다(=-1)는 결론이 나와야 합니다
Weight vector를 조정해야 합니다
Weight vector의 조정
신경망 대박 조짐
Marvin Minsky
1927.8.9 ~ 2016.1.24
초기 인공지능
발전을 주도한 아버지
초기 인공지능
발전을 주도한 장본인
Symbolicism 기호주의
Alan
Turing
John Von
Neumann
Marvin Minsky & Symbolic A.I.
Artificial Intelligence 라는 말을
처음 만들어 낸 장본인
http://web.media.mit.edu/~minsky/papers/SymbolicVs.Connectionist.html
Frank Rosenblatt
1928.7.11 ~ 1971.7.11
심리학자,
Perceptron의 아버지
사실은 고등학교 동기
The Bronx High School of Science
두 명의 기둥
인공지능에 대한 학계와 사회의 기대
인공지능에 쏟아지는 어마어마한 투자와 관심
하지만 기대가 크면, 실망도 큰 법
말라가는 물 웅덩이
Perceptrons
Marvin Minsky & Seymour Papert, 1969
“ XOR 문제는
Perceptron으로 풀 수 없다
내가 수학적으로 증명했다
그러니깐 연구 이제 그만해라”
Single Layer Perceptron
& the XOR problem
A or B A and B A xor B
신경망 바로 암흑기
그리고 1971, Rosenblatt의 의문사
The A.I. Winter
XOR problem 돌파
부활의 신호탄
David
Rumelhart
John
Hopfield
Back propagation
& Multi Layer Perceptron, 1984
Back propagation
& Multi Layer Perceptron, 1984
MLP의 치명적 한계:
3층 이상 쌓으면 오히려 효율이 떨어진다
신경망, 또다시 침체기
하지만 언제나 구원자가 있습니다
Geoffrey Hinton
1947.12.6 ~ 현재
인지심리학자, 컴퓨터과학자
딥러닝의 창시자, 대부
2006, Deep Learning의 가능성
2012 ILSVRC, Imagenet Large ScaleVisual Recognition Challenge
Deep Learning의 승리
2012, Deep Learning의 압도적 승리
2013, Google에 합류
2014, Google의 DeepMind 인수
그리고 대망의 2016년
그리고 대망의 2016년
Demis Hassabis
1976.7.27 ~ 현재
구글 딥마인드의 창업자
알파고의 아버지, 13세 체스 챔피언
1992, One algorithm hypothesis
Visual Cortex & Auditory Cortex
with Ferrets 담비
Switching
Visual inputs to A1
볼 때 들을까?
들을 때 볼까?
청각피질이 보는 법을 배웠다
영역 별로 기능이 고정되어 있다기보다
각 영역에 주어지는 input 값에 의해
weight 값이 조정되며 학습하는 알고리즘
Seymour
Papert
Artificial
Natural
쉬는 시간
1부 끝
Neural Net
Anatomy
The First Perceptron, 1957
An Artificial Neuron
A Neural Net
An Artificial Neuron
Non-linearity
Activation Functions
Activation Functions
Best choice: ReLU
𝛼 값을 따로정한다
또는 아예 파라미터화
𝛼 값을 uniform distribution에서
랜덤하게추출한다
𝛼 = 0
𝑓 𝑥 = <
0	(𝑥 < 0)
𝑥	(𝑥 ≥ 0)
𝑓 𝑥 = max		(0, 𝑥)
𝑓 𝑥 = <
𝛼𝑥	(𝑥 < 0)
𝑥	(𝑥 ≥ 0)
𝑓 𝑥 = <
𝛼𝑥	(𝑥 < 0)
𝑥	(𝑥 ≥ 0)
𝛼	~	𝑈 𝑙, 𝑢 , 𝑙 < 𝑢, 𝑎𝑛𝑑	𝑙, 𝑢 ∈ [0,1)
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
𝑤J,J 𝑤J," 𝑤J,#
𝑤",J 𝑤"," 𝑤",#
𝑤#,J 𝑤#," 𝑤#,#
𝑤$,J 𝑤$," 𝑤$,# 𝑤J,J 𝑤J,"
𝑤",J 𝑤","
𝑤#,J 𝑤#,"
2 x 4 4 x 3 3 x 2
Weight vectors
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
4 x 3 3 x 2
Weight vectors
𝑥J 𝑥"
2 x 4
x
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
4 x 3 3 x 2
Weight vectors
𝑥J 𝑥"
2 x 4
x
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
4 x 3 3 x 2
Weight vectors
𝑥J 𝑥"
2 x 4
x
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
4 x 3 3 x 2
Weight vectors
𝑥J 𝑥"
2 x 4
x
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
4 x 3 3 x 2
Weight vectors
𝑥J 𝑥"
2 x 4
= 1 x 4 행렬
[1 x 2] x [2 x 4]
x
activF(X 0 W1 +b1)
𝑤J,J 𝑤J," 𝑤J,#
𝑤",J 𝑤"," 𝑤",#
𝑤#,J 𝑤#," 𝑤#,#
𝑤$,J 𝑤$," 𝑤$,#
2 x 4 4 x 3 3 x 2
[1 x 4 행렬 ] x = [1 x 3 행렬 ]
Weight vectors activF(activF(X 0 W1 +b1) 0 W2 +b2)
2 x 4 3 x 2
[1 x 3 행렬 ]
Weight vectors
𝑤J,J 𝑤J,"
𝑤",J 𝑤","
𝑤#,J 𝑤#,"
= [1 x 2 행렬 ]x
4 x 3
activF(activF(activF(X 0 W1 +b1) 0 W2 +b2) 0 W3 +b3)
NEURAL NETWORKS ?
[1 x 8]
[8 x 9] [9 x 9] [9 x 9]
[9 x 4]
[8 x 15] [15 x 10]
Loss functions
우리가 배울 때,
얼마나 틀렸는지를 알아야 합니다. 그래야 얼만큼 고칠지를 알 수 있습니다.
정답지랑 비교해서 얼마나 틀렸는지를 통해 학습을 진행합니다.
따라서 최대한 틀리지 않게 학습해야 합니다.
= minimize the	Loss	
=	Optimization	
결국 어떤함수의최솟값찾기
OPTIMIZATION
산에서 좋은 길을 찾아 내려오기
어떤 loss 함수의 최솟값찾기
Gradient Descent
어떤 loss 함수의 최솟값찾기
Gradient Descent
기울기 음수 기울기 양수
→ 오른쪽으로 이동 ← 왼쪽으로 이동
기울기 음수
→ 오른쪽으로 이동
기울기 0
정지
어떤 loss 함수의 최솟값찾기
Gradient Descent
기울기 음수 기울기 양수
→ 오른쪽으로 이동 ← 왼쪽으로 이동
기울기 음수
→ 오른쪽으로 이동
기울기 0
정지
𝑤VWXYZ[X = 𝑤W[]^_V` 	− 	𝛾	𝛻d 𝐿(𝑤)
어떤 loss 함수의 진짜최솟값찾기
Gradient Descent
어떤 loss 함수의 진짜최솟값찾기
Gradient Descent
어떤 loss 함수의 진짜최솟값찾기
Gradient Descent
𝑤VWXYZ[X = 𝑤W[]^_V` 	− 	𝛾	𝛻d 𝐿(𝑤)	Weight를 업데이트 해주면서
어떤 loss 함수의 진짜 최솟값 찾기
Gradient Descent
Learning Rate
한 걸음의 크기
Gradient
지금 w에서의 기울기
Weight를 업데이트 해주면서
어떤 loss 함수의 진짜 최솟값 찾기
Gradient Descent
𝑤J,J 𝑤J," 𝑤J,# 𝑤J,$
𝑤",J 𝑤"," 𝑤",# 𝑤",$
𝑤J,J 𝑤J," 𝑤J,#
𝑤",J 𝑤"," 𝑤",#
𝑤#,J 𝑤#," 𝑤#,#
𝑤$,J 𝑤$," 𝑤$,# 𝑤J,J 𝑤J,"
𝑤",J 𝑤","
𝑤#,J 𝑤#,"
이 많은 weight를?
기울기 언제 다 구하지?
Back propagation
“뒤로 전달”이라는 의미
사실상 미적분의 Chain Rule
출처: 하용호님 발표
출처: 하용호님 발표
Vanishing Gradient
Back-prop에서 발생할 수 있는 문제
Layer가 많을수록 업데이트가 사라져간다
그래서 fitting이 잘 안 된다[underfitting]
Best choice: ReLU
Gradient Descent
전체 Data를 다 본 후 loss를 구해서
Weight를 업데이트 해주면서
어떤 loss 함수의 진짜 최솟값 찾기
전체 데이터를 다 보고
1 걸음 간다 (update)
이걸 m번 반복
BATCH
Gradient Descent
S T O C H A S T I C
Gradient Descent
Data 1개 본 후 loss를 구해서
Weight를 업데이트 해주면서
어떤 loss 함수의 진짜 최솟값 찾기
→ update → → update →
→ update → → update →
→ update → → update →
… → update → …
이걸 m번 반복
반복 때마다 랜덤하게 섞는다
M I N I B AT C H
Gradient Descent
Data B개 본 후 평균 loss를 구해서
Weight를 업데이트 해주면서
어떤 loss 함수의 진짜 최솟값 찾기
→ update →
… → update → …
→ update →
→ update →→ update →
이걸 m번 반복
반복 때마다 랜덤하게 섞는다
GPU !
S T O C H A S T I C
Gradient Descent
M I N I B AT C H
Gradient Descent≅
Different GDs
Visualizing Optimization
𝑤VWXYZ[X = 𝑤W[]^_V` 	− 	𝛾	𝛻d 𝐿(𝑤)	Weight를 업데이트 해주면서
어떤 loss 함수의 진짜 최솟값 찾기
Gradient Descent
Learning Rate
한 걸음의 크기
Gradient
어느 방향
1.
2.
방향
출처: 하용호님 발표
블로그 참조
헷갈리기 쉬운 핵심용어들
• Epoch [이폭, 에픽]
• Mini-batch size
• Iteration
update →
… → update → …
update →
update →update →
이걸 m번 반복
반복 때마다 랜덤하게 섞는다
전체 데이터를 보는 걸 1바퀴라 했을 때, 몇 바퀴 돌 것인지 : m
하나의 mini-batch는 몇 개의 데이터로 이루어져있을지
대개 2의 제곱수: 16, 32, 64, …
전체 데이터 수와 mini-batch사이즈에 따라 자동으로 결정됨
=number of updates in 1 epoch
=number of mini-batches
Dropout
각 mini-batch로 update할 때마다
특정 뉴런들을 생략하고 update
*대개 0.5
Hyperparameters
• Learning rate
• Epochs
• Mini-batch size
• Momentum
• Decay rate
• …
xkcd.com
딥러닝 모델 구축하기
• Dataset & DataLoader
• Model
• Loss function
⚬ MSE, Cross-entropy, KL-divergence 등등
• Optimizer
⚬ SGD, AdaGrad, RMSProp, Adam 등등
• Training & Testing
출처: DeepBrick
쉬는 시간
2부 끝
딥러닝 모델 구축하기 [실습]
• Dataset & DataLoader
• Model
• Loss function
⚬ MSE, Cross-entropy, KL-divergence 등등
• Optimizer
⚬ SGD, AdaGrad, RMSProp, Adam 등등
• Training & Testing
출처: DeepBrick
쉬는 시간
3부 끝
The Pillars of
DEEP LEARNING
CONVOLUTIONAL
N E U R A L
N E T W O R K
R E C U R R E N T
N E U R A L
N E T W O R K
CONVNETConvolutional Neural Network
CLASSIFICATION
& DETECTION
Categorization of the object
계란말이?
치즈케익?
두부부침?
파인애플?
CLASSIFICATION
뭔가 여기 있는데, 이 물체가 무엇일까?
계란말이 0.86
1. 무언가 있다는 사실
2. 이것이 무엇인지
DETECTION
Identifying the object
How it used to work:
proposal to classification
REGION PROPOSAL
SEMANTIC
SEGMENTATION
GENERATIVE
M O D E L S
Generative Adversarial
Network:GAN Ian
Goodfellow
PixelCNN
Key features
Variational
Autoencoder:VAE
출처: kvfrans
What I'm doing these days
DEFENSE against
Adversarial attacks
Attacks?
Through the
human eye
Anderson & Winawer, 2005
iPodBoat Perturbation
Through the
machine’s eye
Adversarial
Example or Attack
Defense Model 2:
Convolutional VAE [conv_VAE]
28x28x1
28x28x10
14x14x16
7x7x28 128
256
20
128
256
7x7x16
14x14x10
28x28x6
28x28x1
Z_mu, Z_logvar
Sampled Epsilon
X. Yan et al., Attribute2Image: Conditional Image Generation from Visual Attributes. In ECCV, 2015.
Geoffrey
Hinton
Andrew
Ng
Yoshua
Bengio
Yann
Lecun
Deep Learning
CELEBRITIES
Ian
Goodfellow
Facebook - TensorFlowKR
Community
Lectures
초짜 대학원생 시리즈
https://brunch.co.kr/@kakao-it
http://kvfrans.com/
http://colah.github.io/
모두를 위한 머신러닝/딥러닝 강의
http://cs231n.stanford.edu/
3Blue1Brown 강의
Blogs
TA K E AWAYS
Sung
Kim
감사합니다

Neural Networks Basics with PyTorch