Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

شبکه های کانولوشنالی در Kears

134 views

Published on

یادگیری عمیق
شبکه های کانولوشنالی
data augmentation
Transfer learning

Published in: Data & Analytics
  • Be the first to comment

شبکه های کانولوشنالی در Kears

  1. 1. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Convolutional Neural Networks Alireza Akhavan Pour 1
  2. 2. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫بخش‬1:‫شبکه‬‫کانولوشنالی‬ ‫عصبی‬ ‫های‬ ‫بخش‬2:‫افزایش‬‫دادگان‬ ‫بخش‬3:‫بررسی‬‫در‬ ‫رتبه‬ ‫حائز‬ ‫های‬‫معماری‬ ‫بندی‬‫طبقه‬‫تصاویر‬ ‫بخش‬4:‫انتقال‬‫یادگیری‬
  3. 3. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫بخش‬1: ‫کانولوشنالی‬ ‫عصبی‬ ‫های‬ ‫شبکه‬ Convolutional neural network
  4. 4. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation A bit of history: Neurocognitron [Fukushima 1980] “sandwich” architecture (SCSCSC…) simple cells: modifiable parameters complex cells: perform pooling
  5. 5. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation A bit of history: Gradient-based learning applied to document recognition [LeCun, Bottou, Bengio, Haffner 1998] LeNet-5
  6. 6. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫از‬ ‫بعد‬2012...
  7. 7. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫عمق‬ ‫و‬ ‫مراتب‬ ‫سلسله‬ ‫لزوم‬ ‫شهود‬ ‫شبکه‬ 𝑦
  8. 8. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫عمق‬ ‫و‬ ‫مراتب‬ ‫سلسله‬ ‫لزوم‬ ‫شهود‬ ‫شبکه‬[From recent Yann LeCun slides]
  9. 9. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫عمق‬ ‫و‬ ‫مراتب‬ ‫سلسله‬ ‫لزوم‬ ‫شهود‬ ‫شبکه‬[From recent Yann LeCun slides]
  10. 10. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Cat? (0/1) 𝑥1 𝑥2 𝑥 𝑛 𝑦⋮⋮ ⋮ 64x64x3 =12288 1000x1000x3 =3000000 = 3m 3m 1000 3bilion ‫بزرگ‬ ‫تصاویر‬ ‫و‬ ‫عمیق‬ ‫یادگیری‬
  11. 11. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation -101 -101 -101 ‫مقدمات‬convolution–‫فیلتر‬edge detection
  12. 12. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 3 0 1 2 7 4 1 5 8 9 3 1 2 7 2 5 1 3 0 1 3 1 7 8 4 2 1 6 2 8 2 4 5 2 3 9 1 0 -1 1 0 -1 1 0 -1 ∗ = 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 -5 -4 0 8 -10 -2 2 3 0 -2 -4 -7 -3 -2 -3 -16 ‫مقدمات‬convolution–‫یابی‬‫لبه‬
  13. 13. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫مقدمات‬convolution
  14. 14. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫مقدمات‬convolution
  15. 15. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation vertical edges horizontal edges ‫مقدمات‬convolution–‫یابی‬‫لبه‬
  16. 16. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 𝑤1 𝑤2 𝑤3 𝑤4 𝑤5 𝑤6 𝑤7 𝑤8 𝑤9 3 0 1 2 7 4 1 5 8 9 3 1 2 7 2 5 1 3 0 1 3 1 7 8 4 2 1 6 2 8 2 4 5 2 3 9 1 0 -1 1 0 -1 1 0 -1 1 0 -1 2 0 -2 1 0 -1 3 0 -3 10 0 -10 3 0 -3 ‫فیلتر‬ ‫یادگیری‬!
  17. 17. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation The convolution operation • Dense layers learn global patterns in their input feature space • Convolution layers learn local patterns
  18. 18. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation The patterns they learn are translation invariant They can learn spatial hierarchies of patterns
  19. 19. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ∗ = n-f+1 n n f f ‫نمیکنند‬ ‫شرکت‬ ‫کانولوشن‬ ‫در‬ ‫درونی‬ ‫های‬ ‫پیکسل‬ ‫ی‬ ‫اندازه‬ ‫به‬ ‫ها‬ ‫لبه‬ ‫میشود‬ ‫کوچک‬ ‫خروجی‬ ‫کانولوشن‬ ‫مشکالت‬!
  20. 20. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ∗ = n-f+1 n n f f ‫نمیکنند‬ ‫شرکت‬ ‫کانولوشن‬ ‫در‬ ‫درونی‬ ‫های‬ ‫پیکسل‬ ‫ی‬ ‫اندازه‬ ‫به‬ ‫ها‬ ‫لبه‬ ‫میشود‬ ‫کوچک‬ ‫خروجی‬ ‫کانولوشن‬ ‫مشکالت‬!
  21. 21. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ∗ = n n f f ‫کار؟‬ ‫راه‬padding 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 P=1
  22. 22. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ∗ = f f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 padding
  23. 23. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ∗ = f f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 n=6 6 padding
  24. 24. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ∗ = n n f f P = padding n+2p-f+1 padding
  25. 25. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation “Valid”: “Same”: Pad so that output size is the same as the input size. nxn * fxf -> n-f+1 x n-f+1 6x6 * 3x3 -> 4 x 4 n+2p-f+1 x n+2p-f+1 2 1n p f n    𝒑 = 𝒇 − 𝟏 𝟐 ‫قبل‬ ‫مثال‬ ‫برای‬P=1 ‫کانولوشن‬Valid‫و‬Same
  26. 26. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 3 4 4 1 0 2 -1 0 3 ∗ = 2 3 7 4 6 2 9 6 6 9 8 7 4 3 3 4 8 3 8 9 7 7 8 3 6 6 3 4 4 2 1 8 3 4 6 3 2 4 1 9 8 3 0 1 3 9 2 1 4 3 1 -1 4 0 0 4 2 3 3 1 -1 4 0 0 4 2 3 3 1 -1 4 0 0 4 2 33 1 -1 4 0 0 4 2 3 3 1 -1 4 0 0 4 2 3 3 1 -1 4 0 0 4 2 33 1 -1 4 0 0 4 2 3 3 1 -1 4 0 0 4 2 3 3 1 -1 4 0 0 4 2 3 Stride‫کانولوشن‬ ‫در‬
  27. 27. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 𝑓 × 𝑓 filter𝑛 × 𝑛 image padding p stride s 𝑛+2𝑝 −𝑓 𝑠 + 1 × 𝑛+2𝑝 −𝑓 𝑠 + 1 ‫آن‬ ‫خروجی‬ ‫و‬ ‫کانولوشن‬ ‫خالصه‬
  28. 28. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫رنگی‬ ‫تصویر‬ ‫روی‬ ‫بر‬ ‫کانولوشن‬ (RGB) ‫فیلتر‬ ‫یک‬ ‫رنگی‬ ‫کانال‬ ‫هر‬ ‫ازای‬ ‫به‬
  29. 29. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫رنگی‬ ‫تصویر‬ ‫روی‬ ‫بر‬ ‫کانولوشن‬ (RGB) ‫نظیر‬ ‫به‬ ‫نظیر‬ ‫جمع‬feature map‫یا‬activation map
  30. 30. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫رنگی‬ ‫تصویر‬ ‫روی‬ ‫بر‬ ‫کانولوشن‬ (RGB) +‫بایاس‬
  31. 31. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation =∗ 4 x 4 ‫رنگی‬ ‫تصویر‬ ‫روی‬ ‫بر‬ ‫کانولوشن‬ (RGB) 6 x 6 x 3 3 x 3
  32. 32. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation = 6 x 6 x 3 4 x 4 ∗ ∗ 3 x 3 x 3 = ‫فیلتر‬ ‫چندین‬...
  33. 33. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫فیلتر‬ ‫چندین‬... 32 32 3 5x5x3 filter 32x32x3 image Filters always extend the full depth of the input volume
  34. 34. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫فیلتر‬ ‫چندین‬... 32 32 3 Convolution Layer 6 28 28 We stack these up to get a “new image” of size 28x28x6! For example, if we had 6 5x5 filters, we’ll get 6 separate activation maps:
  35. 35. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫پارامتر‬ ‫تعداد‬ ‫محاسبه‬ ‫فیلتر‬ ‫هر‬ ‫پارامترهای‬ ‫تعداد‬3x3x3+1 = 28 28x10 = 280
  36. 36. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫ساده‬ ‫کانولوشنال‬ ‫شبکه‬ ‫یک‬
  37. 37. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Convolution (Conv) Pooling (Pool) Fully Connected (FC) ‫های‬‫شبکه‬ ‫در‬ ‫الیه‬ ‫انواع‬ ‫کانولوشنالی‬
  38. 38. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 1 3 2 1 2 9 1 1 1 3 2 3 5 6 1 2 9 2 6 3 ‫دو‬hyper parameter‫دارد‬:s‫و‬f ‫ندارد‬ ‫آموزش‬ ‫برای‬ ‫پارامتری‬ ‫هیچ‬ ‫ی‬‫الیه‬pooling
  39. 39. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 1 3 2 1 3 2 9 1 1 5 1 3 2 3 2 8 3 5 1 0 5 6 1 2 9 9 9 5 9 9 5 8 6 9 5 x 5 f = 3 S = 1 ‫ی‬‫الیه‬pooling–max pooling
  40. 40. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Average pooling 1 3 2 1 2 9 1 1 1 4 2 3 5 6 1 2 3.75 1.25 4 2
  41. 41. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Hyperparameters: f : filter size s : stride Max or average pooling ‫خالصه‬pooling f = 2, s = 2 f = 3, s = 2
  42. 42. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫کانولوشنالی‬ ‫شبکه‬ ‫یک‬ ‫از‬ ‫مثالی‬ (LeNet-5)
  43. 43. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Activation shape Activation Size # parameters* Input: (32,32,3) 3,072 0 CONV1 (f=5, s=1) (28,28,8) 6,272 608 POOL1 (14,14,8) 1,568 0 CONV2 (f=5, s=1) (10,10,16) 1,600 3216 POOL2 (5,5,16) 400 0 FC3 (120,1) 120 48,001 FC4 (84,1) 84 10,081 Softmax (10,1) 10 841 ‫پارامترها‬ ‫تعداد‬ ‫و‬ ‫الیه‬ ‫هر‬ ‫سایز‬
  44. 44. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 3072 × 4704 = 14450688 ≈ 14.5 𝑚 76 𝑥 6 = 456(5 𝑥 5 𝑥 3) + 1 = 76 ‫کانولوشن؟‬ ‫چرا‬
  45. 45. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 10 10 10 0 0 0 10 10 10 0 0 0 10 10 10 0 0 0 10 10 10 0 0 0 10 10 10 0 0 0 10 10 10 0 0 0 1 0 -1 1 0 -1 1 0 -1 0 30 30 0 0 30 30 0 0 30 30 0 0 30 30 0 ∗ = Parameter sharing: A feature detector (such as a vertical edge detector) that’s useful in one part of the image is probably useful in another part of the image. Sparsity of connections: In each layer, each output value depends only on a small number of inputs.
  46. 46. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 06_ConvolutionalNeuralNetwork-Hoda-Keras.ipynb Let’s code… ‫کراس‬ ‫در‬ ‫کانولوشنالی‬ ‫های‬‫شبکه‬– ‫فارسی‬ ‫ارقام‬
  47. 47. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 07_CNN-cat_Vs_dog.ipynb Let’s code… ‫کراس‬ ‫در‬ ‫کانولوشنالی‬ ‫های‬‫شبکه‬– ‫گربه‬ ‫چالش‬/‫سگ‬
  48. 48. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫بخش‬2: ‫دادگان‬ ‫افزایش‬ Data Augmentation
  49. 49. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Data Augmentation Load image and label “cat” CNN Compute loss
  50. 50. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Data Augmentation Load image and label “cat” CNN Compute loss Transform image
  51. 51. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Data Augmentation - Change the pixels without changing the label - Train on transformed data - VERY widely used What the computer sees
  52. 52. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Common augmentation method 1- Mirroring(Horizontal flips) 2- Random cropping
  53. 53. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Data Augmentation 3. Color shifting(Color jitter) +20,-20,+20 -20,+20,+20 +5,0,+50
  54. 54. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Data Augmentation 3. Color shifting(Color jitter) ‫بیشتر‬ ‫مطالعه‬ ‫برای‬ Complex (PCA color augmentation): 1. Apply PCA to all [R, G, B] pixels in training set 2. Sample a “color offset” along principal component directions (As seen in [Krizhevsky et al. 2012], ResNet, etc) Simple: Randomly jitter contrast
  55. 55. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Data Augmentation 4. Get creative! Random mix/combinations of : - translation - rotation - stretching - shearing, - lens distortions, … (go crazy)
  56. 56. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Bottlenecks to be aware of
  57. 57. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Implementation distortions during training distortion CPU thread Load mini-batch Training CPU / GPUHard Disk
  58. 58. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Implementation distortions during training distortion CPU thread Load mini-batch Training CPU / GPUHard Disk
  59. 59. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 08_data_augmentation.ipynb Let’s code… Data Augmentation
  60. 60. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 09_Load_trained_model_in_keras.ipynb Let’s code… ‫کراس‬ ‫در‬ ‫شده‬ ‫ذخیره‬ ‫مدل‬ ‫لود‬
  61. 61. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫بخش‬3: ‫موردی‬ ‫مطالعه‬ )‫بررسی‬‫بندی‬ ‫طبقه‬ ‫در‬ ‫رتبه‬ ‫حائز‬ ‫های‬‫معماری‬‫تصاویر‬( Case Study
  62. 62. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Classic networks: • LeNet-5 ResNet Inception • AlexNet • VGG • ZFNet
  63. 63. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation LeNet
  64. 64. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation LeNet - 5 ⋮ ⋮ 𝑦 32×32 ×1 28×28×6 14×14×6 10×10×16 5×5×16 120 84 5 × 5 s = 1 f = 2 s = 2 avg pool 5 × 5 s = 1 avg pool f = 2 s = 2 [LeCun et al., 1998. Gradient-based learning applied to document recognition]
  65. 65. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation AlexNet
  66. 66. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation AlexNet = ⋮ ⋮ 227×227 ×3 55×55 × 96 27×27 ×96 27×27 ×256 13×13 ×256 13×13 ×384 13×13 ×384 13×13 ×256 6×6 ×256 9216 4096 ⋮ 4096 11 × 11 s = 4 3 × 3 s = 2 MAX-POOL 5 × 5 same 3 × 3 s = 2 MAX-POOL 3 × 3 same 3 × 3 3 × 3 3 × 3 s = 2 MAX-POOL Softmax 1000 [Krizhevsky et al., 2012. ImageNet classification with deep convolutional neural networks]
  67. 67. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: AlexNet [Krizhevsky et al. 2012] Input: 227x227x3 images First layer (CONV1): 96 11x11 filters applied at stride 4 => Output volume [55x55x96] Q: What is the total number of parameters in this layer?
  68. 68. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: AlexNet [Krizhevsky et al. 2012] Input: 227x227x3 images First layer (CONV1): 96 11x11 filters applied at stride 4 => Output volume [55x55x96] Parameters: (11*11*3)*96 = 35K
  69. 69. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: AlexNet [Krizhevsky et al. 2012] Input: 227x227x3 images After CONV1: 55x55x96 Second layer (POOL1): 3x3 filters applied at stride 2 Q: what is the output volume size? Hint: (55-3)/2+1 = 27
  70. 70. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: AlexNet [Krizhevsky et al. 2012] Input: 227x227x3 images After CONV1: 55x55x96 Second layer (POOL1): 3x3 filters applied at stride 2 Output volume: 27x27x96 Q: what is the number of parameters in this layer?
  71. 71. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: AlexNet [Krizhevsky et al. 2012] Input: 227x227x3 images After CONV1: 55x55x96 Second layer (POOL1): 3x3 filters applied at stride 2 Output volume: 27x27x96 Parameters: 0!
  72. 72. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: AlexNet [Krizhevsky et al. 2012] Full (simplified) AlexNet architecture: [227x227x3] INPUT [55x55x96] CONV1: 96 11x11 filters at stride 4, pad 0 [27x27x96] MAX POOL1: 3x3 filters at stride 2 [27x27x96] NORM1: Normalization layer [27x27x256] CONV2: 256 5x5 filters at stride 1, pad 2 [13x13x256] MAX POOL2: 3x3 filters at stride 2 [13x13x256] NORM2: Normalization layer [13x13x384] CONV3: 384 3x3 filters at stride 1, pad 1 [13x13x384] CONV4: 384 3x3 filters at stride 1, pad 1 [13x13x256] CONV5: 256 3x3 filters at stride 1, pad 1 [6x6x256] MAX POOL3: 3x3 filters at stride 2 [4096] FC6: 4096 neurons [4096] FC7: 4096 neurons [1000] FC8: 1000 neurons (class scores) Details/Retrospectives: - first use of ReLU - used Norm layers (not common anymore) - heavy data augmentation - dropout 0.5 - batch size 128 - SGD Momentum 0.9 - Learning rate 1e-2, reduced by 10 manually when val accuracy plateaus - L2 weight decay 5e-4 - 7 CNN ensemble: 18.2% -> 15.4%
  73. 73. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 73 ‌‫‌شنبه‬‫ه‬‫س‬-۱۱‌‫اردیبهشت‬ ZFNet
  74. 74. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: ZFNet [Zeiler and Fergus, 2013] AlexNet but: CONV1: change from (11x11 stride 4) to (7x7 stride 2) CONV3,4,5: instead of 384, 384, 256 filters use 512, 1024, 512 ImageNet top 5 error: 15.4% -> 14.8%
  75. 75. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation VGG
  76. 76. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation VGG - 16 224×224 ×3 CONV = 3×3 filter, s = 1, same MAX-POOL = 2×2 , s = 2 [CONV 64] ×2 224×224×64 POOL 112×112 ×64 [CONV 128] ×2 112×112 ×128 POOL 56×56 ×128 [CONV 256] ×3 56×56 ×256 POOL 28×28 ×256 [CONV 512] × 3 28×28 ×512 POOL 14×14×512 [CONV 512] ×3 14×14 ×512 POOL 7×7×512 FC 4096 FC 4096 Softmax 1000 [Simonyan & Zisserman 2015. Very deep convolutional networks for large-scale image recognition]
  77. 77. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Case Study: VGGNet [Simonyan and Zisserman, 2014] best model Only 3x3 CONV stride 1, pad 1 and 2x2 MAX POOL stride 2 11.2% top 5 error in ILSVRC 2013 -> 7.3% top 5 error TOTAL memory: 24M * 4 bytes ~= 93MB / image (only forward! ~*2 for bwd) TOTAL params: 138M parameters
  78. 78. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Classic networks: • LeNet-5 ResNet Inception • AlexNet • ZFNet • VGG 7 CNN ensemble: 15.4% top 5 error 7.3% top 5 error 14.8% top 5 error ‫بیشتر‬ ‫اطالعات‬: ‫جلسه‬16-‫بندی‬ ‫طبقه‬ ‫در‬ ‫رتبه‬ ‫حائز‬ ‫های‬‫معماری‬ ‫بررسی‬‫تصاویر‬: http://blog.class.vision/winter-96-97-syllabus/
  79. 79. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 11_using-a-pretrained-convnet.ipynb Let’s code… ‫آموزش‬ ‫قبل‬ ‫از‬ ‫های‬‫مدل‬ ‫از‬ ‫استفاده‬ ‫کراس‬ ‫در‬ ‫شده‬ ‫داده‬
  80. 80. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫بخش‬4: ‫یادگیری‬ ‫انتقال‬ Transfer Learning
  81. 81. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Preview [From recent Yann LeCun slides]
  82. 82. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫مغز‬ ‫در‬ ‫بینایی‬ ‫فرآیند‬ ‫به‬ ‫نگاهی‬!
  83. 83. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Ventral visual stream ‫تصویر‬ ‫تبدیل‬ ‫از‬ ‫تصاویر‬ ‫تبدیل‬ ‫به‬ ‫نیاز‬ ‫مغز‬ ‫چرا‬ ‫دارد؟‬ ‫پیکسل‬ ‫محیط‬ DiCarlo and Cox , TICS (2007)
  84. 84. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 84 ‌‫‌شنبه‬‫ه‬‫س‬-۱۸‌‫اردیبهشت‬ ‫ای‬‫دسته‬ ‫درون‬ (intraclass) ‫صفحه‬ ‫در‬ ‫موقعیت‬ ‫و‬ ‫نور‬ ‫تغییرات‬ ،‫دید‬ ‫ی‬‫زاویه‬ ،‫اندازه‬ )Clutter, occlusion ‫ریختگی‬ ‫درهم‬( Invariant object recognition ‫اشیاء‬ ‫تغییرات‬
  85. 85. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫نورون‬1 ‫نورون‬2 ‫نورون‬3 ‫نورون‬4 ‫نورون‬5‫و‬... ‫خمینه‬ ‫و‬ ‫نرونی‬ ‫فضای‬(manifold) DiCarlo and Cox , TICS (2007)
  86. 86. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫خوب‬ ‫نرونی‬ ‫فضای‬ ‫نرونی‬ ‫فضای‬“‫خوب‬” ‫کننده‬ ‫جدا‬ ‫ی‬‫صفحه‬ ‫ابر‬
  87. 87. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫تبدیل‬ ‫تصویر‬ ،‫تنیده‬ ‫هم‬ ‫در‬ ‫از‬ ‫ضمنی‬ ‫اطالعات‬ ‫اشیاء‬ ،‫جداپذیر‬ ‫و‬ ‫صریح‬ ‫اطالعات‬ ‫اشیاء‬ ‫از‬ ‫روشن‬ DiCarlo and Cox , TICS (2007), DiCarlo, Zoccolan and Rust, Neuron (2012) ‫مغز‬ ‫در‬ ‫نورونی‬ ‫فضای‬ ‫تبدیل‬
  88. 88. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Transfer Learning “You need a lot of a data if you want to train/use CNNs”
  89. 89. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Transfer Learning “You need a lot of a data if you want to train/use CNNs”
  90. 90. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Persian Cat Tiger cat Neither Transfer Learning softmax 1000 softmax P T N freeze
  91. 91. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Persian Cat Tiger cat Neither Transfer Learning softmax 1000 softmax P T N freeze ‫کرد‬ ‫حساب‬ ‫آموزشی‬ ‫تصاویر‬ ‫برای‬ ‫را‬ ‫الیه‬ ‫خروجی‬ ‫قبل‬ ‫از‬ ‫میتوان‬.
  92. 92. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Persian Cat Tiger cat Neither Transfer Learning freeze softmax T N P Train
  93. 93. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Transfer Learning
  94. 94. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Transfer Learning with CNNs 1. Train on Imagenet 3. Medium dataset: finetuning more data = retrain more of the network (or all of it) 2. Small dataset: feature extractor Freeze these Train this Freeze these Train this
  95. 95. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation Transfer Learning with CNNs 1. Train on Imagenet 3. Medium dataset: finetuning more data = retrain more of the network (or all of it) 2. Small dataset: feature extractor Freeze these Train this Freeze these Train this
  96. 96. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 12_Transfer_learning_feature_extraction.ipynb Let’s code… Transfer Learning(1)
  97. 97. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation 13_Transfer_learning_Fine_tuning.ipynb Let’s code… Transfer Learning(2)
  98. 98. ‫پور‬ ‫اخوان‬ ‫علیرضا‬ ،‫یادگیری‬ ‫انتقال‬ ،‫کانولوشنالی‬ ‫های‬‫شبکه‬ation ‫منابع‬ • https://www.coursera.org/specializations/deep-learning • http://cs231n.stanford.edu/ • https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning- 1f6f42faee1 • http://blog.class.vision/winter-96-97-syllabus/ • https://www.slideshare.net/Alirezaakhavanpour/presentation10-68048331 • https://www.pyimagesearch.com/deep-learning-computer-vision-python-book/ • https://www.datacamp.com/courses/machine-learning-with-tree-based-models-in-python • https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438

×