Professional Documents
Culture Documents
SRU Deeplearning Workshop Part1
SRU Deeplearning Workshop Part1
قسمت اول:
مقدمه ای بر شبکههای عصبی و
شبکه های عصبی کانولوشنالی در
Keras کتابخانه
Alireza Akhavanpour
Akhavanpour.ir
CLASS.VISION
Thursday, February 7, 2019
۶
1
2/8/2019
مقدمه:
مقدمه :1مقدمهای بر یادگیری ماشین •
مقدمه :2تصویر به عنوان داده •
مقدمه :3طبقه بندی تصویر در پایتون •
شبکههای عصبی:
بخش :1مقدمهای بر پرسپترون •
بخش :2مقدمهای بر شبکههای عصبی •
بخش :3تابع هزینه •
بخش :4پسانتشار خطا و گرادیان کاهشی •
مقدمه :1
Introduction to Machine
Learning
2
2/8/2019
cat
Challenges: Illumination
3
2/8/2019
Challenges: Deformation
Challenges: Occlusion
4
2/8/2019
5
2/8/2019
An image classifier
Data-driven approach:
1. Collect a dataset of images and labels
2. Use Machine Learning to train an image classifier
3. Evaluate the classifier on a withheld set of test images
6
2/8/2019
7
2/8/2019
?
Male
Heigh
t Female
Weigh
t
Male
Heigh
t Female
Weigh
t
8
2/8/2019
9
2/8/2019
رگرسیون
y
)Price ($
مقدمه :2
Images as data
10
2/8/2019
11
2/8/2019
…Let’s code
01_Intro2image&numpy.ipynb
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
مقدمه :3
12
2/8/2019
13
2/8/2019
Test prediction
=6.0
Keras مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی
علیرضا اخوان پور
14
2/8/2019
طبقهبندی تصویر:
)X.reshape(25
معرفی مجموعه داده هدی و تغییر اندازه و شکل برای استفاده در
الگوریتمهای یادگیری ماشین
…Let’s code
02_HodaDataset.ipynb
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
15
2/8/2019
Let’s code…
16
2/8/2019
بخش اول:
مقدمهای بر پرسپترون
17
2/8/2019
پرسپترون
پرسپترون
Input 0
Output
Input 1
18
2/8/2019
پرسپترون
12
Input 0
Output
4
Input 1
پرسپترون
12
Input 0
Output
4
Input 1
19
2/8/2019
پرسپترون
12
Input 0
Output
4
Input 1
پرسپترون
Output
4
Input 1
4 * -1 = -4
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
20
2/8/2019
پرسپترون
12
Input 0
Activation
Output
Function
4
Input 1
پرسپترون
21
2/8/2019
پرسپترون
پرسپترون
12
Input 0
Activation
Output
Function
4
Input 1
22
2/8/2019
پرسپترون
Input 0
Activation
Function Output
Input 1
Bias
پرسپترون
Input 0
Activation
Function Output
Input 1
Bias
23
2/8/2019
بخش دوم:
24
2/8/2019
الیه ورودی:
مقادیر حقیقی دادهها
الیه پنهان:
الیه های بین ورودی و خروجی
به 3یا بیشتر الیه معموال شبکه عمیق میگوییم.
الیه خروجی:
تخمین نهایی شبکه از خروجی است
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
25
2/8/2019
0
0
z = wx + b
تغییرات کوچک منعکس نمی شوند.
اگر تابعی پویاتر داشتیم بهتر میشد ،مثل تابع قرمز رنگ!
1
Output
0
0
z = wx + b
26
2/8/2019
تابع سیگموئید
1
Output
0
0
z = wx + b
1
Output
0
0
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras z = wx + b
علیرضا اخوان پور
27
2/8/2019
1
Output
-1
0
z = wx + b
Output )max(0,z
0
z = wx + b
28
2/8/2019
بخش سوم:
تابع هزینه
Cost Function
تابع هزینه
29
2/8/2019
تابع هزینه
تابع هزینه
30
2/8/2019
تابع هزینه
Cross Entropy
𝒚′
)Log (x
𝒚
تابع هزینه
تا االن با 2جنبه کلیدی یادگیری شبکه های عصبی آشنا شدیم:
نورون ها با تابع فعالیت
تابع هزینه
ما هنوز یک گام کلیدی را کم داریم! "یادگیری"!
31
2/8/2019
بخش چهارم:
32
2/8/2019
C
C
w
w
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
C
C
w
w
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
33
2/8/2019
C
C
w
w
مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی Keras
علیرضا اخوان پور
پیدا کردن این کمینه برای 1بعد ساده است ،اما تقریبا تماام مساائل ماا
دارای پارامترهای زیادی است ،به این معنی که ماا بایاد از جبار خطای
built-inدر کتابخانه یادگیری عمیق استفاده کنیم.
با استفاده از گرادیان کاهشی میتوانیم بهتارین پارامترهاا را بارای باه
حداقل رساندن تابع هزینه بدست آوریم ،به عنوان مثاال ،پیادا کاردن
بهترین مقادیر برای وزن ورودیهای نورون.
34
2/8/2019
پسانتشار خطا برای محاسبه سهم خطاای هار ناورون پاس از
پردازش یک دسته از داده ها استفاده می شود.
این روش به شدت بر قاعده زنجیری برای پیدا کردن مشاتق یاا
chain ruleتکیه می کند تا از طریق شبکه عقب برود و ایان
خطاها را محاسبه کند.
35
2/8/2019
playground.tensorflow.org
36
2/8/2019
بخش پنجم:
5x5
Relu
64 Neurons Softmax
0
1
25 pixels
2
9
37
2/8/2019
C
38
2/8/2019
C
C
39
2/8/2019
C
C
40
2/8/2019
…Let’s code
41
2/8/2019
x x
x x x
x x
Let’s code…
05_Dropout.ipynb
Keras مقدمه ای بر شبکههای عصبی و پیادهسازی در کتابخانهی
علیرضا اخوان پور
42
2/8/2019
:بخش ششم
Neurocognitron
[Fukushima 1980]
43
2/8/2019
LeNet-5
بعد از ...2012
44
2/8/2019
𝑦ො
45
2/8/2019
46
2/8/2019
مقدمات – convolutionلبهیابی
1 10 -1
10 10
-1 -1
0 -1
3 0 1 2 7 4
1 10 10
-1 10
-1 0
-1 -1
1 5 8 9 3 1 1 0 -1 -5 -4 0 8
1
1 110 110
-1 100
-1 -1
-1
0 -1
2 7 2 5 1 3 1 0 -1 -10 -2 2 3
0
1
1
10
3
-1
10
1
0
-1
7
-1
8
∗ =
1 0 -1 0 -2 -4 -7
4 2 1 6 2 8 -3 -2 -3 -16
2 4 5 2 3 9
47
2/8/2019
مقدمات convolution
مقدمات – convolutionلبهیابی
vertical edges
48
2/8/2019
!یادگیری فیلتر
1 0 -1 1 0 -1 3 0 -3
1 0 -1 2 0 -2 10 0 -10
1 0 -1 1 0 -1 3 0 -3
3 0 1 2 7 4
1 5 8 9 3 1
𝑤1 𝑤2 𝑤3
2 7 2 5 1 3
𝑤4 𝑤5 𝑤6
0 1 3 1 7 8
𝑤7 𝑤8 𝑤9
4 2 1 6 2 8
2 4 5 2 3 9
Data augmentation ، انتقال یادگیری،شبکههای کانولوشنالی
علیرضا اخوان پور
49
2/8/2019
مشکالت کانولوشن!
f
n
لبه ها به اندازه ی پیکسل های درونی در کانولوشن شرکت نمیکنند
خروجی کوچک میشود
50
2/8/2019
مشکالت کانولوشن!
f
n
لبه ها به اندازه ی پیکسل های درونی در کانولوشن شرکت نمیکنند
خروجی کوچک میشود
0 0
0 0 f
0 0 0 0 0 0 0 0
n
P=1
51
2/8/2019
padding
0 0 0 0 0 0 0 0
0 0
0 0
0 0
0 0
∗ f =
0 0
0 0 f
0 0 0 0 0 0 0 0
padding
0 0 0 0 0 0 0 0
0 0
0 0
0 0
0 0
∗ f =
0 0
0 0 f
0 0 0 0 0 0 0 0
n=6 6
52
2/8/2019
padding
n ∗ f =
f
n P = padding
n+2p-f+1
Data augmentation ، انتقال یادگیری،شبکههای کانولوشنالی
علیرضا اخوان پور
n 2 p f 1 n
𝒇 −𝟏 P=1برای مثال قبل
𝒑=
𝟐
Data augmentation ، انتقال یادگیری،شبکههای کانولوشنالی
علیرضا اخوان پور
53
2/8/2019
Strideدر کانولوشن
2 3 3 4 7 43 4 4 6 34 2 4 9 4
6 1 6 0 9 21 8 0 7 12 4 0 3 2
3 -13 4 40 8 -143 3 40 8 -134 9 40 7 43 3 4 4
7 1 8 0 3 21 6 0 6 2
1 3 0 4 2 ∗ 1 0 2 =
4 -1
3 2 04 1 -1
34 8 4
0 3 34
-1 4 0
4 6 3
4 -1 0 3
3 1 2 0 4 1
2 1 0 9 2
1 8 0 3 2
54
2/8/2019
55
2/8/2019
+بایاس
∗ =
3x3 4x4
6x6x3
56
2/8/2019
چندین فیلتر...
∗ =
3x3x3 4x4
چندین فیلتر...
Filters always extend the full
depth of the input volume
32x32x3 image
5x5x3 filter
32
32
3
57
2/8/2019
...چندین فیلتر
For example, if we had 6 5x5 filters, we’ll get 6 separate activation maps:
32
28
Convolution Layer
32 28
3 6
58
2/8/2019
)Convolution (Conv
)Pooling (Pool
)Fully Connected (FC
59
2/8/2019
الیهی pooling
5x5 f=3
S=1
شبکههای کانولوشنالی ،انتقال یادگیریData augmentation ،
علیرضا اخوان پور
60
2/8/2019
Average pooling
1 3 2 1
2 9 1 1 3.75 1.25
1 4 2 3 4 2
5 6 1 2
pooling خالصه
Hyperparameters:
f : filter size f = 2, s = 2
f = 3, s = 2
s : stride
Max or average pooling
61
2/8/2019
62
2/8/2019
63
2/8/2019
Let’s code…
06_ConvolutionalNeuralNetwork-Hoda-Keras.ipynb
منابع
• http://cs231n.stanford.edu/
• https://www.csee.umbc.edu/courses/671/fall01/class-notes/k-nn.ppt
• https://docs.google.com/presentation/d/1kytN5gqrZe0Bcu3hExjZpA4PQipaFEK
n26S-JhqncXk/edit#slide=id.g1ff36e20db_0_450
• https://www.slideshare.net/Alirezaakhavanpour/tensorflow-71395844
• https://www.datacamp.com/courses/convolutional-neural-networks-for-image-
processing
64