در این مطلب، ویدئو آموزش یادگیری عمیق با پایتون، تنسورفلو و کراس – شبکه عصبی برای طبقه بندی تصاویر با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:16:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,640 –> 00:00:02,879
در این آموزش
2
00:00:02,879 –> 00:00:05,440
قصد داریم اولین شبکه عصبی خود را برای
3
00:00:05,440 –> 00:00:08,480
طبقه بندی تصاویر بسازیم. کتابخانه python kira دارای
4
00:00:08,480 –> 00:00:10,800
این مجموعه داده های تصویری است که می تواند
5
00:00:10,800 –> 00:00:12,880
در یکی از این 9
6
00:00:12,880 –> 00:00:16,400
دسته طبقه بندی شود و هر یک از این تصاویر در
7
00:00:16,400 –> 00:00:20,320
واقع تصویر 28 در 28 پیکسل هستند، بنابراین در اینجا
8
00:00:20,320 –> 00:00:23,039
شما یک تصویر را مشاهده می کنید. تصویری از یک نیم بوت
9
00:00:23,039 –> 00:00:27,680
که شبکهای 28 در 28 پیکسلی است
10
00:00:27,680 –> 00:00:29,599
طبق معمول
11
00:00:29,599 –> 00:00:30,400
12
00:00:30,400 –> 00:00:32,558
ما میخواهیم نوت بوک ژوپیتر خود را
13
00:00:32,558 –> 00:00:34,399
برای این آموزش راهاندازی کنیم، چند
14
00:00:34,399 –> 00:00:36,480
کتابخانه ضروری
15
00:00:36,480 –> 00:00:38,719
از جمله keras را در اینجا وارد کردهام و اولین چیزی
16
00:00:38,719 –> 00:00:41,360
که میخواهیم بررسی کنیم این است که
17
00:00:41,360 –> 00:00:45,079
بک هند کراس از چه چیزی استفاده میکند.
18
00:00:46,000 –> 00:00:48,399
پیشفرض tensorflow است و این همان
19
00:00:48,399 –> 00:00:49,920
چیزی است که ما برای همه
20
00:00:49,920 –> 00:00:52,640
آموزشهای خود استفاده میکنیم، میتوانید
21
00:00:52,640 –> 00:00:54,960
یک بکاند
22
00:00:54,960 –> 00:00:57,520
thiano یا هر بکاند دیگری که
23
00:00:57,520 –> 00:01:00,480
فکر میکنم microsoft cntk است را وصل کنید
24
00:01:00,480 –> 00:01:02,559
و ما به آن نگاه میکنیم که چگونه میتوانیم
25
00:01:02,559 –> 00:01:04,559
از کارهای پشتیبان مختلف استفاده کنیم. برای این
26
00:01:04,559 –> 00:01:07,040
آموزش ما از tensorflow استفاده می کنیم
27
00:01:07,040 –> 00:01:09,200
اکنون بیایید مجموعه داده های خود را وارد کنیم
28
00:01:09,200 –> 00:01:12,880
تا keras fasten mnist من با
29
00:01:12,880 –> 00:01:14,450
نحو خوب نیستم بنابراین من فقط می خواهم از
30
00:01:14,450 –> 00:01:15,600
[Music]
31
00:01:15,600 –> 00:01:16,880
از مستندات api استفاده کنم
32
00:01:16,880 –> 00:01:17,680
،
33
00:01:17,680 –> 00:01:20,240
34
00:01:20,240 –> 00:01:21,680
بنابراین
35
00:01:21,680 –> 00:01:25,280
آنها اینجا دارند مانند این مجموعه دادههای مختلف
36
00:01:25,280 –> 00:01:26,960
و
37
00:01:26,960 –> 00:01:30,400
مجموعه دادههای مد منیست این است،
38
00:01:30,400 –> 00:01:33,840
بنابراین من فقط میخواهم کپی پیست
39
00:01:36,079 –> 00:01:38,799
کنم و در اینجا من x train و y train را دارم،
40
00:01:38,799 –> 00:01:42,560
بنابراین بیایید به شکل نگاه
41
00:01:44,240 –> 00:01:48,240
کنیم تا مجموعهای از 60 000 تصویر باشد که هر کدام
42
00:01:48,240 –> 00:01:51,520
باشد. 28 در 28 پیکسل
43
00:01:51,520 –> 00:01:55,840
و اگر به مجموعه داده های آزمایشی نگاه کنید،
44
00:01:57,119 –> 00:02:00,159
ما 10000 تصویر در مجموعه داده های آزمایشی خود داریم
45
00:02:00,159 –> 00:02:00,960
،
46
00:02:00,960 –> 00:02:03,360
اکنون بیایید
47
00:02:03,360 –> 00:02:08,439
تصویر معمولی را بررسی کنیم تا ببینیم چگونه به نظر می رسد
48
00:02:10,720 –> 00:02:14,160
همانطور که می بینید 28 در 28 پیکسل است، اکنون
49
00:02:14,160 –> 00:02:16,720
این اعداد از نظر بصری
50
00:02:16,720 –> 00:02:17,840
جذاب نیستند.
51
00:02:17,840 –> 00:02:20,200
بنابراین من قصد دارم از matplotlib من استفاده کنم
52
00:02:20,200 –> 00:02:22,560
این
53
00:02:22,560 –> 00:02:25,200
تابع mat show را دارد که اساساً یک
54
00:02:25,200 –> 00:02:27,360
نمایش متریک است
55
00:02:27,360 –> 00:02:29,040
و این تصویر را به شما نشان می دهد
56
00:02:29,040 –> 00:02:32,319
که یک بوت مچ پا است
57
00:02:32,319 –> 00:02:34,080
و بیایید برچسب را بررسی کنیم
58
00:02:34,080 –> 00:02:35,599
59
00:02:35,599 –> 00:02:40,000
تا برچسب مربوط به این
60
00:02:40,640 –> 00:02:42,800
61
00:02:42,800 –> 00:02:44,080
عدد نه باشد
62
00:02:44,080 –> 00:02:45,760
اکنون شماره نه
63
00:02:45,760 –> 00:02:49,040
به این معنی است یک نیم بوت
64
00:02:49,040 –> 00:02:52,879
خوب است به همین ترتیب شما می توانید
65
00:02:52,879 –> 00:02:55,599
چند تصویر مختلف را بررسی کنید
66
00:02:55,599 –> 00:02:58,720
و برچسب مربوط به آن
67
00:02:58,720 –> 00:03:01,519
صفر است که تی شرت یا بالاست و
68
00:03:01,519 –> 00:03:04,400
شبیه یک تی شرت یا تاپ به نظر می رسد
69
00:03:04,400 –> 00:03:06,879
در حال حاضر قبل از شروع
70
00:03:06,879 –> 00:03:09,440
آموزش شبکه عصبی خود که می خواهیم نرمال کردن
71
00:03:09,440 –> 00:03:10,720
72
00:03:10,720 –> 00:03:14,640
مجموعه داده های ما تا این داده ها مجموعه همانطور که می بینید
73
00:03:14,640 –> 00:03:18,239
در واقع حاوی یک مقدار از 0 تا
74
00:03:18,239 –> 00:03:22,480
255 است به طوری که نشان دهنده مقیاس رنگ شما
75
00:03:22,480 –> 00:03:25,040
76
00:03:25,040 –> 00:03:26,159
77
00:03:26,159 –> 00:03:30,480
78
00:03:30,640 –> 00:03:32,879
79
00:03:32,879 –> 00:03:35,920
است. وقتی کرنش x را بررسی می کنید
80
00:03:35,920 –> 00:03:38,159
81
00:03:38,159 –> 00:03:41,200
، مقادیر در محدوده صفر تا یک هستند،
82
00:03:41,200 –> 00:03:43,599
می توانید ببینید که قبل از اینکه صفر تا 255 باشد، صفر به یک است
83
00:03:43,599 –> 00:03:46,799
، بنابراین این
84
00:03:46,799 –> 00:03:48,959
نرمال سازی به آموزش شبکه عصبی ما کمک می کند،
85
00:03:48,959 –> 00:03:50,560
86
00:03:50,560 –> 00:03:51,599
خوب
87
00:03:51,599 –> 00:03:54,000
حالا بیایید شروع به ساخت
88
00:03:54,000 –> 00:03:55,519
شبکه عصبی خود کنیم تا
89
00:03:55,519 –> 00:03:56,799
keras
90
00:03:56,799 –> 00:03:58,959
اوه این
91
00:03:58,959 –> 00:04:00,799
مدل ترتیبی را دارد
92
00:04:00,799 –> 00:04:03,280
و کاری که این مدل ترتیبدهنده انجام میدهد
93
00:04:03,280 –> 00:04:04,159
94
00:04:04,159 –> 00:04:05,760
این است که
95
00:04:05,760 –> 00:04:09,439
یک پشته خطی از
96
00:04:09,439 –> 00:04:12,480
لایههای شبکه عصبی ایجاد میکند، بنابراین من
97
00:04:12,480 –> 00:04:13,360
98
00:04:13,360 –> 00:04:17,439
دوباره کد را کپی
99
00:04:17,680 –> 00:04:19,919
100
00:04:20,478 –> 00:04:22,639
میکنم، بنابراین یک چیز دیگر
101
00:04:22,639 –> 00:04:24,560
به نام Flatten
102
00:04:24,560 –> 00:04:27,360
okay را وارد میکنم و ما خواهیم دید که آن مسطح چیست،
103
00:04:27,360 –> 00:04:29,919
بنابراین اولین چیز
104
00:04:29,919 –> 00:04:31,280
ایجاد
105
00:04:31,280 –> 00:04:32,080
یک
106
00:04:32,080 –> 00:04:34,800
مدل است، بنابراین ما فقط مدل شبکه عصبی خود را در شبکه عصبی ایجاد کردیم،
107
00:04:34,800 –> 00:04:36,560
108
00:04:36,560 –> 00:04:38,160
109
00:04:38,160 –> 00:04:39,919
همانطور که می بینید چند لایه
110
00:04:39,919 –> 00:04:41,520
وجود دارد، لایه های ورودی وجود دارد، لایه خروجی
111
00:04:41,520 –> 00:04:43,759
وجود دارد و ممکن است بیش از یک وجود داشته باشد.
112
00:04:43,759 –> 00:04:47,840
لایه های پنهان بسیار خوب است، بنابراین ما
113
00:04:47,840 –> 00:04:52,800
یک شبکه عصبی با یک لایه ورودی می سازیم،
114
00:04:53,919 –> 00:04:57,919
بنابراین به این ترتیب می توانید یک لایه اضافه کنید و
115
00:04:57,919 –> 00:05:01,759
لایه ورودی صاف می شود
116
00:05:02,080 –> 00:05:03,919
و شکل ورودی
117
00:05:03,919 –> 00:05:06,880
28 در 28 است، زیرا می دانید اندازه تصویر ما
118
00:05:06,880 –> 00:05:09,840
28 در 28
119
00:05:09,840 –> 00:05:11,440
120
00:05:11,440 –> 00:05:13,440
است. در حال تبدیل آرایه دو بعدی
121
00:05:13,440 –> 00:05:15,280
به آرایه یک بعدی است و
122
00:05:15,280 –> 00:05:16,720
123
00:05:16,720 –> 00:05:18,160
اشکالی ندارد،
124
00:05:18,160 –> 00:05:21,840
بنابراین لایه ورودی ما آماده است
125
00:05:21,840 –> 00:05:24,479
لایه دوم ما
126
00:05:24,479 –> 00:05:25,520
127
00:05:25,520 –> 00:05:28,880
یک لایه متراکم نامیده می شود
128
00:05:29,120 –> 00:05:30,400
و
129
00:05:30,400 –> 00:05:32,639
این لایه پنهان ما است که اکنون در لایه مخفی
130
00:05:32,639 –> 00:05:34,320
131
00:05:34,320 –> 00:05:36,240
می خواهید چند نورون را به خوبی مشخص کنید
132
00:05:36,240 –> 00:05:38,560
که این یک نوع آزمایش است. و خطای
133
00:05:38,560 –> 00:05:41,120
من با 20 شروع می کنم و سپس می توانیم
134
00:05:41,120 –> 00:05:44,240
آزمایش کنیم تا ببینیم کدام یک بهترین است
135
00:05:44,240 –> 00:05:46,479
136
00:05:47,360 –> 00:05:49,840
و همانطور که از اولین آموزش ما می بینید
137
00:05:49,840 –> 00:05:53,199
که این نورون ها
138
00:05:53,199 –> 00:05:55,520
یک تابع فعال سازی دارند تابع فعال سازی
139
00:05:55,520 –> 00:05:57,199
می تواند
140
00:05:57,199 –> 00:05:59,840
سیگموید باشد و می تواند مقدار باشد.
141
00:05:59,840 –> 00:06:01,440
چند
142
00:06:01,440 –> 00:06:04,080
تابع فعال سازی وجود دارد که ما در اینجا از مقدار استفاده می
143
00:06:04,080 –> 00:06:07,199
کنیم
144
00:06:07,199 –> 00:06:09,759
زیرا محبوب ترین آنهاست
145
00:06:09,759 –> 00:06:12,880
و آخرین لایه لایه خروجی است که
146
00:06:12,880 –> 00:06:15,840
اکنون لایه خروجی 10 نورون دارد، چرا که 10
147
00:06:15,840 –> 00:06:19,440
نورون دارد زیرا می دانیم که
148
00:06:19,440 –> 00:06:21,520
دسته بندی
149
00:06:21,520 –> 00:06:24,720
ما دسته بندی های ما را به عنوان 10 برچسب گذاری می کند، شما می
150
00:06:24,720 –> 00:06:27,759
دانید که ممکن است 10 نوع مقاله مختلف لباس وجود داشته باشد
151
00:06:27,759 –> 00:06:30,000
152
00:06:30,000 –> 00:06:31,919
، به همین دلیل است که در
153
00:06:31,919 –> 00:06:33,360
اینجا 10 است
154
00:06:33,360 –> 00:06:35,680
و تابع فعال سازی ما در اینجا
155
00:06:35,680 –> 00:06:37,039
156
00:06:37,039 –> 00:06:39,520
تابع softmax softmax است.
157
00:06:39,520 –> 00:06:44,240
158
00:06:44,240 –> 00:06:46,080
159
00:06:46,080 –> 00:06:49,680
کلاسهای طبقهبندی موجود خوب است، بنابراین
160
00:06:49,680 –> 00:06:52,400
161
00:06:52,400 –> 00:06:56,000
اگر در ویکیپدیا مطالعه
162
00:06:57,120 –> 00:06:59,199
کنید، تابع فعالسازی softmax اساساً یک بردار ورودی
163
00:06:59,199 –> 00:07:01,759
از k اعداد واقعی را دریافت میکند و
164
00:07:01,759 –> 00:07:04,639
آن را به مجموعهای از احتمالات عادی میکند،
165
00:07:04,639 –> 00:07:06,160
اکنون اگر علاقه دارید، میتوانید
166
00:07:06,160 –> 00:07:08,160
وارد ریاضیات شوید
167
00:07:08,160 –> 00:07:08,960
اما
168
00:07:08,960 –> 00:07:11,120
این کار را نکنید.
169
00:07:11,120 –> 00:07:13,840
بیش از حد نگران این ریاضی باشید، می دانم که ترسناک به نظر می رسد، اما
170
00:07:13,840 –> 00:07:16,560
لازم نیست نگران آن باشید، تنها
171
00:07:16,560 –> 00:07:17,840
کاری که انجام می دهد این
172
00:07:17,840 –> 00:07:19,440
است که
173
00:07:19,440 –> 00:07:21,280
مجموعه ای از اعداد را فقط به
174
00:07:21,280 –> 00:07:23,360
احتمالات کلاس های موجود شما
175
00:07:23,360 –> 00:07:26,639
تقسیم می کند، خوب
176
00:07:28,639 –> 00:07:31,520
حالا این مدل تابعی به نام
177
00:07:31,520 –> 00:07:32,720
خلاصه دارد،
178
00:07:32,720 –> 00:07:35,120
بنابراین بعد از مدل ساخته شده است، ما می
179
00:07:35,120 –> 00:07:37,520
توانیم خلاصه را در اینجا ببینیم، بنابراین در خلاصه می
180
00:07:37,520 –> 00:07:40,240
گوید که لایه ورودی من دارای 784
181
00:07:40,240 –> 00:07:41,599
نورون
182
00:07:41,599 –> 00:07:45,039
پنهان است و 20 نورون دارد و خروجی دارای 10
183
00:07:45,039 –> 00:07:47,360
نورون است و yo شما می توانید همان چیزی را
184
00:07:47,360 –> 00:07:49,440
در تصویر در اینجا ببینید، این است که چگونه
185
00:07:49,440 –> 00:07:50,400
186
00:07:50,400 –> 00:07:53,520
شبکه عصبی ما از نظر بصری به نظر می رسد
187
00:07:53,520 –> 00:07:56,479
، مرحله بعدی این است
188
00:07:56,479 –> 00:08:00,240
که مدل را کامپایل کنیم،
189
00:08:00,240 –> 00:08:01,919
بنابراین در اینجا من
190
00:08:01,919 –> 00:08:04,000
از روش کامپایل از مدل به
191
00:08:04,000 –> 00:08:05,919
همراه این پارامترها استفاده می کنم،
192
00:08:05,919 –> 00:08:07,840
حالا اجازه دهید به این موارد بپردازیم. پارامترها
193
00:08:07,840 –> 00:08:09,599
یکی یکی،
194
00:08:09,599 –> 00:08:10,800
بنابراین
195
00:08:10,800 –> 00:08:13,199
از آموزش شیب مناسب
196
00:08:13,199 –> 00:08:15,759
ما در سری یادگیری ماشین ما،
197
00:08:15,759 –> 0