SlideShare a Scribd company logo
Deep Learning -Neural
Network Basics
Okis Chuang
AI/ML 技能樹
#終於開始解副本
#開啟了另一道大門
Guideline
• What is Neuron - Perceptron/Sigmoid
• Neural Network Algorithm and Related Concept
• Feed Forward Propagation
• Cost Function
• Gradient Decent
• A Example for Neural Network Calculation
• Back Propagation
What is a Neural Network
5
Artificial Neural Network
What are the neurons?
How are they connected
and communicated with?
#模擬大腦決策過程
#真的神經元長得超複雜
#神經元能感知環境的變化 - input
#再將信息傳遞給其他的神經元 - propagate
#並指令集體做出反應 - output
#帶著敬畏的心學習
<img src />
Perceptron
#感知器
#Frank Rosenblatt在1957年提出
#Single neuron network
#最簡單形式的Forward Propagation NN
#二元線性分類器
#多個input
#一個binary output
Perceptron 小八卦
#影響力不輸 AI 魔人 Billy 的 AI 巨擘 Minsky 在1969年出書看衰 Perceptron
#連XOR都解決不了的垃圾
#多名學者因此放棄神經網路
#AI Winter
#曾經造成一股轟動
#早年的AI熱潮
Perceptron
(−2)∗0+(−2)∗0+3=3, y=1
(−2)∗0+(−2)∗1+3=1, y=1
(−2)∗1+(−2)∗0+3=1, y=1
(−2)∗1+(−2)∗1+3=-1, y=0
#猜猜這是什麼邏輯運算?
#是NAND!!
#其他邏輯運算線上展示
Multi-Layer Perceptron Net
#用什麼演算法讓這個網路學習很頭痛
#這麼多參數怎麼填?
#如果你願意
#一層一層的往下算
#你會發現你會訝異
#要算很久
Design Your own NN
#Weight 設多少?
#Bias 設多少?
#我們希望透過些微的權重調整來慢慢改變輸出
#透過不斷地調整來逐漸建立想要的神經網路
Perceptron is not
enough anymore!
Sigmoid Neuron
• Small change in weights and biases of perceptron in the
network can cause the output to completely FLIP
• 0 -> 1, 1 -> 0 (錯的分對了,但對的分錯了)
• Sigmoid neuron can make output change with slightly
change in weight/bias
#我又對了我又錯了打我啊笨蛋
#不隨波逐流
Sigmoid Neuron
#輸入值愈小,輸出值愈接近0
#輸入值愈大,輸出值愈接近1
#除了中間區段,其他輸出跟Perceptron很像
The Architecture of Neural Networks
Input Layer Hidden Layer Output Layer
Input Neuron
Output Neuron
Can be a perceptron/sigmoid/ReLU
784
0
1
2
3
4
5
6
7
8
9
#設計一個可以辨識手寫數字的類神經網路
Design a Network:
Recognition of Handwritten Digits
• Input layers contains neurons encoding the value of the
input pixels
• Value in greyscale: 0.0 -> White, 1.0 -> Black
• N neurons in hidden layersOutput layer contains 10
neurons which output value 0~1
• Check activation value of each neuron
• i.e. The first neuron fires indicating the digit is “0” if
output ≈1
#明明可以用4個output輸出0/1表示2進位數字,為何不用?
#4個output學習效率沒有10個output好
Design a Network:
Recognition of Handwritten Digits
#如果用4個output無法表現邊邊
與significant bit 間的關係
0000 -> 0
0001 -> 1
Neural Network Algorithm
1. Initializing parameters including weights and biases randomly
2. Computing output of each layer using Feed Forward Propagation
• The output from one layer is used as input to next layer
• No loops, information is always fed forward, never fed back
• Some other type of network model is not feed forward: Recurrent Neural
Network (RNN)
3. Using Error Back Propagation (BP) to learn the best weights and biases with
minimized cost
1. C(w,b)≈0
2. Using Gradient Decent to update weights and biases
#我們希望透過些微的權重調整來慢慢改變輸出
#透過不斷地調整來逐漸建立想要的神經網路
Cost Function and Gradient Decent
(Δv1, Δv2)
用向量表示變成
C(v1, v2)
V1 是 x 的向量 V2 是 a 的向量
#Gradient Decent就是一個醉漢下山的過程
gradient的向量矩陣表示法
梯度(gradient)就是向量v的改變對C的改變
永遠保證梯度向量是負的
–Anonymous
“我們找到了讓醉漢安全下山的方法”
Learning Rate
Neural Network Basics
Step1: Forward Propagation
1.1: Input Layer -> Hidden Layer
Step1: Forward Propagation
1.2: Hidden Layer -> Output Layer
[0.75136079 , 0.772928465] [0.01 , 0.99] #離答案還差很遠
Step2: Back Propagation
2.1: Compute cost using cost function
#Cost Function 定義了預測值跟實際值的差距
#幫助找到最好的weight/bias
Step2: Back Propagation
2.1: Update Weight: Hidden layer to Output layer
#以W5為例
#W5對於整體error產生多少影響
#要開始Gradient Decent囉
Step2: Back Propagation
2.1: Update Weight: Hidden layer to Output layer
#計算output1 activation對於整體誤差的導數(影響程度)
Step2: Back Propagation
2.1: Update Weight: Hidden layer to Output layer
#計算output1權重和對於output1 activation的導數
#Sigmoid特殊求導數的方式
#不要問我為什麼
Step2: Back Propagation
2.1: Update Weight: Hidden layer to Output layer
#計算w5對於output1權重和的導數
#最後三者相乘可以得到“權重w5對於整體誤差的導數”
Step2: Back Propagation
2.1: Update Weight: Hidden layer to Output layer
Learning Rate
#更新w5權重值
#這樣就完成了一層的權重更新....
Step2: Back Propagation
2.2: Update Weight: Hidden layer to Hidden Layer
#這樣就完成了Back Propagation
#不斷迭代這個過程會發現誤差下降
Some Questions
• Why use cost function like that? Quadratic cost (一元二次)
• Why not maximize the output directly rather than
minimizing a proxy measure like quadratic cost?
#f(wx+b) = y並非smooth function
#意思是大部份時候更改weight/bias並不會改變結果
#這樣很難知道微調對於表現是否增加
#藉由最小化smooth的cost function
Δv1
Δv2
Online Playground
• https://playground.tensorflow.org
• https://cs.stanford.edu/people/karpathy/convnetjs/
Thank you.
Let’s Discuss.
References
• http://neuralnetworksanddeeplearning.com
• https://www.cnblogs.com/charlotte77/p/5629865.html
• http://www.cnblogs.com/maybe2030/p/5597716.html#_lab
el5
• https://www.youtube.com/watch?v=tIeHLnjs5U8
• 李宏毅教授 - Deep Learning Youtube Videos
• Neural Networks - Geoffery Hinton

More Related Content

Similar to Neural Network Basics (20)

PDF
專為程式人寫的神經網路導論 (以反傳遞演算法為入門磚)
鍾誠 陳鍾誠
 
PPTX
Deep Learning Basic: #01 start from CNN
Terence Huang
 
PDF
5_Neural_network_碩士班第五次.pdf
FEG
 
PDF
用十分鐘開始理解深度學習技術 (從 dnn.js 專案出發)
鍾誠 陳鍾誠
 
PDF
用十分鐘理解 《神經網路發展史》
鍾誠 陳鍾誠
 
PDF
TENSORFLOW深度學習講座講義(很硬的課程) 4/14
NTC.im(Notch Training Center)
 
PDF
TensorFlow 深度學習講座
Mark Chang
 
PDF
CNN_Image Classification for deep learning.pdf
FEG
 
PPTX
TensorFlow 深度學習快速上手班--深度學習
Mark Chang
 
PPTX
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Jason Tsai
 
PDF
TENSORFLOW深度學習講座講義(很硬的課程)
NTC.im(Notch Training Center)
 
PDF
Chapter 2 Basic Neural Network Architecture_Claire.pdf
learningfqz
 
PPTX
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Jason Tsai
 
PPT
A brieft introduction of Neural Network
skant
 
PDF
Pytorch cnn netowork introduction 20240318
FEG
 
PDF
從 NN 到 嗯嗯
Heng-Xiu Xu
 
PDF
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
NTC.im(Notch Training Center)
 
PDF
20200323 - AI Intro
Jamie (Taka) Wang
 
PDF
從大數據走向人工智慧
Sheng-Wei (Kuan-Ta) Chen
 
PDF
Recurrent Neural Network 遞迴式神經網路
Yen-lung Tsai
 
專為程式人寫的神經網路導論 (以反傳遞演算法為入門磚)
鍾誠 陳鍾誠
 
Deep Learning Basic: #01 start from CNN
Terence Huang
 
5_Neural_network_碩士班第五次.pdf
FEG
 
用十分鐘開始理解深度學習技術 (從 dnn.js 專案出發)
鍾誠 陳鍾誠
 
用十分鐘理解 《神經網路發展史》
鍾誠 陳鍾誠
 
TENSORFLOW深度學習講座講義(很硬的課程) 4/14
NTC.im(Notch Training Center)
 
TensorFlow 深度學習講座
Mark Chang
 
CNN_Image Classification for deep learning.pdf
FEG
 
TensorFlow 深度學習快速上手班--深度學習
Mark Chang
 
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Jason Tsai
 
TENSORFLOW深度學習講座講義(很硬的課程)
NTC.im(Notch Training Center)
 
Chapter 2 Basic Neural Network Architecture_Claire.pdf
learningfqz
 
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Jason Tsai
 
A brieft introduction of Neural Network
skant
 
Pytorch cnn netowork introduction 20240318
FEG
 
從 NN 到 嗯嗯
Heng-Xiu Xu
 
NTC_Tensor flow 深度學習快速上手班_Part2 -深度學習
NTC.im(Notch Training Center)
 
20200323 - AI Intro
Jamie (Taka) Wang
 
從大數據走向人工智慧
Sheng-Wei (Kuan-Ta) Chen
 
Recurrent Neural Network 遞迴式神經網路
Yen-lung Tsai
 

More from Okis Chuang (7)

PDF
Make Your Own IoT Device by ZigBee
Okis Chuang
 
PPTX
Introduction to HTTP/2
Okis Chuang
 
PPTX
Connected vehicle in_serverless_architecture
Okis Chuang
 
PPTX
Let's Talk About Serverless - Focusing on AWS Lambda
Okis Chuang
 
PPTX
Microservice - Data Management
Okis Chuang
 
PPTX
Oh K8s Is Swag - Kubernetes Basics
Okis Chuang
 
PPTX
Experiences sharing about Lambda, Kinesis, and Postgresql
Okis Chuang
 
Make Your Own IoT Device by ZigBee
Okis Chuang
 
Introduction to HTTP/2
Okis Chuang
 
Connected vehicle in_serverless_architecture
Okis Chuang
 
Let's Talk About Serverless - Focusing on AWS Lambda
Okis Chuang
 
Microservice - Data Management
Okis Chuang
 
Oh K8s Is Swag - Kubernetes Basics
Okis Chuang
 
Experiences sharing about Lambda, Kinesis, and Postgresql
Okis Chuang
 
Ad

Neural Network Basics

Editor's Notes

  • #5: 想想看,當我們看到這個手寫數字的時候,我們把他判斷成幾? 我們又是依據什麼判斷的呢?
  • #6: 要了解類神經網路是怎麼被創造出來的,當然必須先對神經元跟神經元如此溝通要有基本的認知
  • #8: Perceptron 只能做簡單的線性分類,且只有一層功能神經元,學習能力有限,很難解決複雜問題
  • #9: AI巨擘Minsky看衰Perceptron,尤其是XOR这样的简单分类任务都无法解决。Minsky認為如果将计算层增加到两层,计算量则过大,而且没有有效的学习算法。所以,他认为研究更深层的网络是没有价值的。由于Minsky的巨大影响力以及书中呈现的悲观态度,让很多学者和实验室纷纷放弃了神经网络的研究。神经网络的研究陷入了冰河期。这个时期又被称为“AI winter”。
  • #11: Multi-layer perceptron 每一層layer的decision making都是由前一層的output乘上權重得出自己的output,再依序往下傳遞 对于多层神经网络采用什么样的学习算法又是一项巨大的挑战,如下图所示的具有4层隐含层的网络结构中至少有33个参数,我们应该如何去确定呢?
  • #20: 隨機初始化所有weight/bias 利用forward propagation計算每一層神經元的輸出值,直到output layer的output被計算出來 記得前面講過我們的目標是:慢慢調整慢慢得到正確的結果,達到學習的目的嗎? 利用back propagation 的方式回推各個權重對於誤差值的影響,進而反向得到每層weight的調整值,然後更新weight/bias 不斷重複進行 back propagation 直到 cost function 得到最小值
  • #27: 如果我们想知道w5对整体误差产生了多少影响,可以用整体误差对w5求偏导求出
  • #28: 如果我们想知道w5对整体误差产生了多少影响,可以用整体误差对w5求偏导求出
  • #29: 如果我们想知道w5对整体误差产生了多少影响,可以用整体误差对w5求偏导求出
  • #30: 如果我们想知道w5对整体误差产生了多少影响,可以用整体误差对w5求偏导求出
  • #32: out(h1)会接受E(o1)和E(o2)两个地方传来的误差,所以这个地方两个都要计算