در این مطلب، ویدئو کدگذاری یک شبکه عصبی از ابتدا با پایتون خالص – قسمت 1 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:19:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:10,860 –> 00:00:13,900
بسیار خب سلام به همه، امروز ما
2
00:00:13,900 –> 00:00:14,620
یک کار کمی
3
00:00:14,620 –> 00:00:15,940
متفاوت انجام می دهیم، یک
4
00:00:15,940 –> 00:00:19,740
شبکه عصبی از ابتدا با استفاده از پایتون
5
00:00:19,740 –> 00:00:22,810
بدون استفاده از
6
00:00:22,810 –> 00:00:24,250
کتابخانه های یادگیری ماشینی مانند tensorflow یا هر چیزی
7
00:00:24,250 –> 00:00:25,779
شبیه به آن ایجاد می کنیم، ما فقط از انجام آن استفاده می کنیم
8
00:00:25,779 –> 00:00:27,160
فقط با
9
00:00:27,160 –> 00:00:29,019
برنامه نویسی خالص، تنها چیزی که ما از آن
10
00:00:29,019 –> 00:00:32,140
استفاده می کنیم مانند آرایه های ناتوان است، اما این فقط
11
00:00:32,140 –> 00:00:34,870
برای این است که ضرب
12
00:00:34,870 –> 00:00:36,090
برخی از ریاضیات را کمی آسان تر
13
00:00:36,090 –> 00:00:39,070
کنیم، این یک نوع ذخیره سازی داده ها است، بنابراین خیلی خوب است،
14
00:00:39,070 –> 00:00:42,719
بنابراین بدون بحث بیشتر بیایید دریافت کنیم. اکنون شروع شده است
15
00:00:42,719 –> 00:00:45,579
آنچه من در اینجا روی صفحه نمایش دارم
16
00:00:45,579 –> 00:00:49,180
فقط یک شبکه عصبی اولیه است و
17
00:00:49,180 –> 00:00:51,760
فقط به نوعی به ما کمک می کند تا
18
00:00:51,760 –> 00:00:52,809
برنامه را درست توسعه دهیم زیرا ما
19
00:00:52,809 –> 00:00:54,520
از حلقه های for و مواردی از این قبیل استفاده
20
00:00:54,520 –> 00:00:55,350
21
00:00:55,350 –> 00:00:58,239
خواهیم کرد. آیا
22
00:00:58,239 –> 00:01:01,300
ورودیهای خود را در سمت چپ داشته باشیم، بنابراین میتوانید
23
00:01:01,300 –> 00:01:07,000
ببینید که اکنون یک ok 10 و 5 داریم که
24
00:01:07,000 –> 00:01:10,570
معمولاً مرحله اول سمت راست است، بنابراین مرحله اول یک
25
00:01:10,570 –> 00:01:12,909
شبکه عصبی معمولاً
26
00:01:12,909 –> 00:01:16,540
محاسبه اولین نورون در اینجا است، خوب راست، بنابراین
27
00:01:16,540 –> 00:01:18,189
معمولاً نمیتوانیم مقدار Z درست نامیده می شود،
28
00:01:18,189 –> 00:01:20,560
پس چگونه این کار را انجام دهیم تا
29
00:01:20,560 –> 00:01:23,049
ورودی خود یا 10 را بگیریم و من در واقع می
30
00:01:23,049 –> 00:01:28,180
دانم که چه چیزی درست است، بنابراین اکنون اگر
31
00:01:28,180 –> 00:01:30,460
سریال شبکه های عصبی من را ندیده اید
32
00:01:30,460 –> 00:01:31,689
، مطمئن شوید که آن را بررسی کنید زیرا در
33
00:01:31,689 –> 00:01:32,770
آن زمان شما این را متوجه خواهید شد و این
34
00:01:32,770 –> 00:01:34,689
واقعاً بیمعنا خواهد بود، اما من فقط
35
00:01:34,689 –> 00:01:37,030
میخواهم با شبکههای عصبی صحبت کنم،
36
00:01:37,030 –> 00:01:38,470
بنابراین میتوانیم آن را در
37
00:01:38,470 –> 00:01:40,630
پایتون برنامهنویسی کنیم، زیرا این زبانی است که ما از آن استفاده میکنیم،
38
00:01:40,630 –> 00:01:42,729
بنابراین ابتدا در اینجا چه کاری انجام میدهیم.
39
00:01:42,729 –> 00:01:44,200
مرحله این است که ما باید
40
00:01:44,200 –> 00:01:47,170
اولین نورون خود را در لایه پنهان خود محاسبه کنیم،
41
00:01:47,170 –> 00:01:50,229
البته درست است، بنابراین
42
00:01:50,229 –> 00:01:52,149
برای اولین بار می خواهیم Z را برای
43
00:01:52,149 –> 00:01:55,869
آن نورون محاسبه کنیم که سمت راست برابر با 10 است که
44
00:01:55,869 –> 00:02:00,579
اولین ورودی ما ضربدر وزن ما است یا w1
45
00:02:00,579 –> 00:02:01,659
به یاد داشته باشید که در حال محاسبه هستیم. اولین
46
00:02:01,659 –> 00:02:03,909
نورون، جایی که این خطوط
47
00:02:03,909 –> 00:02:06,909
قرمز قرار است بنویسند، بنابراین 10 برابر
48
00:02:06,909 –> 00:02:08,889
وزن ما
49
00:02:08,889 –> 00:02:15,160
w1 0.25 به علاوه یا ورودی به ورودی دوم ما
50
00:02:15,160 –> 00:02:20,470
5 برابر W ما به وزن دوم ما
51
00:02:20,470 –> 00:02:21,890
0.15 خواهد بود
52
00:02:21,890 –> 00:02:24,610
و سپس در اینجا ما برای این گفتیم. لایه
53
00:02:24,610 –> 00:02:28,010
ما فقط از یک سوگیری 1 so plus استفاده می کنیم
54
00:02:28,010 –> 00:02:34,490
1 بسیار خوب پس Z است حالا نتیجه
55
00:02:34,490 –> 00:02:37,780
آن مقدار Z به تابع سیگموئید ما منتقل می شود
56
00:02:37,780 –> 00:02:42,200
و من نوشته ام که در زیر می
57
00:02:42,200 –> 00:02:47,570
توانید ببینید اینجا آن را
58
00:02:47,570 –> 00:02:49,160
در گوشه ای فقط برای مرجع درست نوشته ام اما
59
00:02:49,160 –> 00:02:50,720
دوباره فعال سازی های مختلف وجود دارد.
60
00:02:50,720 –> 00:02:53,180
توابع و توابع
61
00:02:53,180 –> 00:02:54,680
مورد استفاده ما برای این کار سیگموئید است و
62
00:02:54,680 –> 00:02:56,780
به نوعی شبیه به Plug and Play هستند، این
63
00:02:56,780 –> 00:02:59,090
بستگی به کاری دارد که می خواهید انجام دهید، بنابراین
64
00:02:59,090 –> 00:03:00,620
برای این کار ما می توانیم از sigmoid درست استفاده کنیم، بنابراین
65
00:03:00,620 –> 00:03:01,850
کاری که شما انجام می دهید این است که این را انتخاب کنید.
66
00:03:01,850 –> 00:03:04,640
نتیجه Z ok است
67
00:03:04,640 –> 00:03:07,459
و سپس آن را به تابع سیگموئیدی خود
68
00:03:07,459 –> 00:03:11,930
1 بر روی 1 به علاوه e YZ به
69
00:03:11,930 –> 00:03:17,780
نمایی راست Z منفی می دهید بله و سپس
70
00:03:17,780 –> 00:03:19,400
این نتیجه آن
71
00:03:19,400 –> 00:03:22,250
سیگموید فعال سازی شما برای اولین
72
00:03:22,250 –> 00:03:26,030
گره درست خواهد بود، بنابراین این اولین قدم است.
73
00:03:26,030 –> 00:03:27,830
ما این کار را انجام می دهیم،
74
00:03:27,830 –> 00:03:30,170
این کار را با برنامه نویسی در پایتون انجام می
75
00:03:30,170 –> 00:03:31,100
دهیم، پس بیایید ادامه دهیم و این کار را انجام دهیم، بیایید ببینیم
76
00:03:31,100 –> 00:03:32,620
که چه شکلی است،
77
00:03:32,620 –> 00:03:38,780
بنابراین خوب اینجا ما فقط
78
00:03:38,780 –> 00:03:40,700
یک فایل پایتون جدید ایجاد می کنیم، ویرایشگری که من استفاده می کنم. این
79
00:03:40,700 –> 00:03:42,290
pycharm اما شما می توانید از هر چیزی که می خواهید استفاده کنید
80
00:03:42,290 –> 00:03:45,170
خوب است اولین کاری که
81
00:03:45,170 –> 00:03:49,239
میخواهیم انجام دهیم این است که دوباره numpy را بهعنوان MP وارد میکنیم
82
00:03:49,239 –> 00:03:52,760
، این همان چیزی است که دادههای ما را نگه میدارد،
83
00:03:52,760 –> 00:03:54,760
همچنین پانداها را
84
00:03:54,760 –> 00:04:02,660
به عنوان PD وارد میکنیم، اکنون پانداها همان چیزی است که ما از آن
85
00:04:02,660 –> 00:04:06,739
برای وارد کردن دادههای خود به درستی استفاده میکنیم، بنابراین 5
86
00:04:06,739 –> 00:04:09,440
و 10 که در صفحه قبلی دیدید،
87
00:04:09,440 –> 00:04:11,959
من در آنجا داشتم
88
00:04:11,959 –> 00:04:13,640
که دادههای ما هستند، لایه ورودی
89
00:04:13,640 –> 00:04:17,298
ما است، مجموعه دادههای ما خوب است، بنابراین
90
00:04:17,298 –> 00:04:19,399
اکنون اولین کاری که میخواهم انجام دهم این است که
91
00:04:19,399 –> 00:04:24,290
دوست دارم توابع کمکی ایجاد کنم. بنابراین یک
92
00:04:24,290 –> 00:04:27,190
نظر کوچک در
93
00:04:29,650 –> 00:04:31,509
اینجا بگذارید اولین موردی که به آن نیاز داریم بدیهی است که
94
00:04:31,509 –> 00:04:35,310
ما به آن تابع سیگموئیدی نیاز داریم
95
00:04:36,270 –> 00:04:40,210
که در مورد آن صحبت کردم، بنابراین
96
00:04:40,210 –> 00:04:43,150
مقدار Z را درست می گیرد و دلیل
97
00:04:43,150 –> 00:04:44,620
اینکه من تابع کمکی را ایجاد می کنم این است که شما
98
00:04:44,620 –> 00:04:46,509
یک کار انجام می دهید. بسیاری از این مراحل را بارها و بارها بر
99
00:04:46,509 –> 00:04:47,680
خلاف راست میخواهید، بنابراین میخواهید
100
00:04:47,680 –> 00:04:49,150
توابعی برای انجام آن داشته باشید که فقط میتوانید آنها را
101
00:04:49,150 –> 00:04:52,090
فراخوانی کنید، به همین دلیل است، اما در صورتی
102
00:04:52,090 –> 00:04:53,470
که واضح نبود،
103
00:04:53,470 –> 00:04:56,289
خیلی سیگموید بود و
104
00:04:56,289 –> 00:05:11,889
دوباره 1 به 1 به علاوه MP را برمیگردانیم. exp و سپس
105
00:05:11,889 –> 00:05:16,419
منفی Z ok این تابع سیگموئید ما
106
00:05:16,419 –> 00:05:18,819
اکنون f بعدی است unction که
107
00:05:18,819 –> 00:05:21,280
میخواهیم ایجاد کنیم این است که آن پاس رو به جلو را انجام دهیم که
108
00:05:21,280 –> 00:05:22,629
دقیقاً در آنجا به شما نشان دادم که در آن
109
00:05:22,629 –> 00:05:24,280
ضربدر ورودی خود را ضربدر وزنهای
110
00:05:24,280 –> 00:05:26,469
ارسالی به سیگموید خود میکنیم که فعال شدن آنها را نشان میدهد
111
00:05:26,469 –> 00:05:28,000
و سپس همان کار را
112
00:05:28,000 –> 00:05:29,560
در لایه بعدی درست انجام میدهیم، بنابراین میخواهیم
113
00:05:29,560 –> 00:05:31,240
بنویسیم که درست
114
00:05:31,240 –> 00:05:35,349
جایی که ما از وزنهای خود استفاده
115
00:05:35,349 –> 00:05:37,630
میکنیم و آنها را ضرب
116
00:05:37,630 –> 00:05:40,990
میکنیم و خروجی نهایی خود را به جلو میدهیم، بنابراین
117
00:05:40,990 –> 00:05:43,150
چه تابعی برای درست انجام دادن آن وجود دارد
118
00:05:43,150 –> 00:05:46,449
و فقط برای تکرار درست،
119
00:05:46,449 –> 00:05:48,490
یک تابع در اینجا برای محاسبه مینویسیم.
120
00:05:48,490 –> 00:05:50,710
درست است، ما یک
121
00:05:50,710 –> 00:05:52,810
تابع برای انجام این کار می نویسیم، بنابراین برای
122
00:05:52,810 –> 00:05:56,740
هر وزن اساساً برای هر
123
00:05:56,740 –> 00:05:58,240
نورون و نورون حلقه می زند و این کار را انجام می دهیم،
124
00:05:58,240 –> 00:06:01,289
بنابراین اجازه دهید آن را بنویسیم، بنابراین
125
00:06:01,289 –> 00:06:03,639
اولین چیزی که نیاز داریم و اجازه دهید
126
00:06:03,639 –> 00:06:13,289
این را بنویسیم. این feed-forward feed-forward را صدا بزنید
127
00:06:13,289 –> 00:06:18,550
، ما خوب میرویم، بنابراین این ورودی ما
128
00:06:18,550 –> 00:06:21,190
را درست میگیرد و نه و وقتی میگویم ورودی
129
00:06:21,190 –> 00:06:22,870
ورودی به تابع،
130
00:06:22,870 –> 00:06:24,460
لزوماً منظور لایه ورودی نیست که
131
00:06:24,460 –> 00:06:27,099
درست است، از این استفاده میشود و دادهها را
132
00:06:27,099 –> 00:06:28,960
از شما لایه ورودی r اما همچنین
133
00:06:28,960 –> 00:06:31,150
برای هر محاسبه درست هر لایه استفاده می شود،
134
00:06:31,150 –> 00:06:34,210
بنابراین ما آن را یک حق می نامیم و
135
00:06:34,210 –> 00:06:37,029
چیزی که من آن را a می نامیم، زیرا این
136
00:06:37,029 –> 00:06:40,659
درست فعال سازی است، بنابراین لایه ورودی ما
137
00:06:40,659 –> 00:06:42,190
10 و 5 در امتحان هستند
138
00:06:42,190 –> 00:06:43,720
که فقط دادههای ما درست است، اما
139
00:06:43,720 –> 00:06:47,470
با آنها مانند خروجیهای
140
00:06:47,470 –> 00:06:51,070
لایه بعدی درست رفتار میشود، بنابراین فقط برای توضیح
141
00:06:51,070 –> 00:06:52,720
درست این موضوع و دوباره اگر
142
00:06:52,720 –> 00:06:54,070
سریهای من را ندیدهاید، بررسی میکنیم که اوه
143
00:06:54,070 –> 00:06:57,190
این درست است، بنابراین ورودی ده خود را گرفتیم.
144
00:06:57,190 –> 00:07:01,000
درست است و ورودی های پنج سمت راست ما
145
00:07:01,000 –> 00:07:03,010
ضرب در وزن ها
146
00:07:03,010 –> 00:07:06,010
با هم جمع می شوند تا خروجی یا Z را درست به دست
147
00:07:06,010 –> 00:07:08,620
آوریم سپس Z را به سیگموید خود منتقل می
148
00:07:08,620 –> 00:07:12,730
کنیم که خروجی یا فعال سازی ما را در حال حاضر به ما می دهد.
149
00:07:12,730 –> 00:07:17,410
بگذارید فقط بگوییم a هر چه باشد نمی
150
00:07:17,410 –> 00:07:18,820
دانم چیست این است اما بیایید فقط بگوییم a است
151
00:07:18,820 –> 00:07:27,240
من نمی دانم 99 درست فرض کنیم a ما
152
00:07:27,240 –> 00:07:30,070
برابر است با 99 درست فرض کنیم این یک هفته است
153
00:07:30,070 –> 00:07:31,390
بیایید حرکت کنیم نتیجه
154
00:07:31,390 –> 00:07:32,770
سیگموئید ما چیست نمی دانم
155
00:07:32,770 –> 00:07:34,270
در این مورد چه می شود اما مهم نیست که چه
156
00:07:34,270 –> 00:07:39,970
کسی به درستی اهمیت می دهد، این یک سپس برای
157
00:07:39,970 –> 00:07:41,380
محاسبه بعدی استفاده می شود بنابراین، حالا وقتی
158
00:07:41,380 –> 00:07:44,140
میخواهیم این لایه را محاسبه
159
00:07:44,140 –> 00:07:52,180
کنیم خوب است، باید 99 برابر وزن ما
160
00:07:52,180 –> 00:07:57,940
W 5 از 0.1 به اضافه هر مقدار بعدی باشد،
161
00:07:57,940 –> 00:08:00,790
بگذارید بگوییم که اجازه میدهیم بگوییم
162
00:08:00,790 –> 00:08:02,680
نورون بعدی پایین فعالسازی بوده است،
163
00:08:02,680 –> 00:08:06,190
نمیدانم 100 درست به علاوه 100 برابر وزن ما
164
00:08:06,190 –> 00:08:10,870
0.2 به اضافه بایاس ما دوباره 1 و این
165
00:08:10,870 –> 00:08:14,230
برابر با Z ما برای این لایه درست است،
166
00:08:14,230 –> 00:08:16,750
بنابراین تکرار می شود امیدواریم
167
00:08:16,750 –> 00:08:20,919
که کاملاً خوب باشد، بنابراین دوباره یک
168
00:08:20,919 –> 00:08:22,630
ورودی ما خواهد بود و سپس واضح است که وزن های ما
169
00:08:22,630 –> 00:08:25,480
و سپس سوگیری ما اینها هستند. مقادیری را
170
00:08:25,480 –> 00:08:28,770
که باید محاسبه کنیم بسیار خوب است، بنابراین
171
00:08:28,770 –> 00:08:34,419
بیایید چیز بعدی را که نیاز داریم ببی