در این مطلب، ویدئو آموزش عمیق با SC2 Intro – Python AI in StarCraft II tutorial p.7 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,920 –> 00:00:03,210
چه اتفاقی برای همه می افتد و
2
00:00:03,210 –> 00:00:07,620
به قسمت 7 هوش مصنوعی در Starcraft 2 با
3
00:00:07,620 –> 00:00:10,710
سری پایتون خوش آمدید در این ویدیو در
4
00:00:10,710 –> 00:00:11,940
ویدیوهای آینده ما
5
00:00:11,940 –> 00:00:13,590
به آنچه می دانم که همه منتظر آن بوده اند
6
00:00:13,590 –> 00:00:18,199
و یادگیری عمیق
7
00:00:18,199 –> 00:00:20,850
تا قبل از آن در این نقطه، ما فقط یک
8
00:00:20,850 –> 00:00:23,189
قانون ساده مبتنی بر هوش مصنوعی داریم، حتی اگر
9
00:00:23,189 –> 00:00:24,600
عباراتی که برخی افراد به نظر
10
00:00:24,600 –> 00:00:27,390
میرسند اشتباه میگیرند، همچنان هوش مصنوعی است، اما
11
00:00:27,390 –> 00:00:29,220
کاری که اکنون انجام میدهیم این است که
12
00:00:29,220 –> 00:00:31,650
یادگیری عمیق را در حال حاضر درست خارج از دروازه اجرا کنیم.
13
00:00:31,650 –> 00:00:33,000
فقط می خواهم بگویم اول از همه این
14
00:00:33,000 –> 00:00:35,190
یک مشکل کاملا حل نشده است که هیچ کس آن را حل نکرده است
15
00:00:35,190 –> 00:00:37,230
شما می دانید Starcraft تنظیم شده توسط حل شده است
16
00:00:37,230 –> 00:00:39,989
منظورم این است که شما بازیکنان متخصص شکست خورده را می شناسید
17
00:00:39,989 –> 00:00:42,840
بگذارید بگوییم هیچ کس این کار
18
00:00:42,840 –> 00:00:45,510
را انجام نداده است که در بازی های ساده تر انجام داده است.
19
00:00:45,510 –> 00:00:48,090
میتوانیم
20
00:00:48,090 –> 00:00:50,879
پیچیدگیهای زیادی را از بازی حذف کنیم، ما
21
00:00:50,879 –> 00:00:52,500
قطعاً میتوانیم بازیکنان انسانی را شکست دهیم،
22
00:00:52,500 –> 00:00:55,320
اما تا اینجای کار خود بازی واقعی و در
23
00:00:55,320 –> 00:00:59,010
کل آن را میدانید که اجازه میدهیم بگوییم
24
00:00:59,010 –> 00:01:01,379
eat eh step برای ساخت انواع
25
00:01:01,379 –> 00:01:03,660
واحدهای مختلف، ساختمانهای مختلف بسازیم.
26
00:01:03,660 –> 00:01:05,549
بهروزرسانیهای مختلف
27
00:01:05,549 –> 00:01:07,080
و موارد مشابه را جستجو کنید که
28
00:01:07,080 –> 00:01:09,320
شکست نخوردهاند، زیرا بسیار
29
00:01:09,320 –> 00:01:13,950
پیچیده است، بنابراین اول از همه اجازه
30
00:01:13,950 –> 00:01:15,900
31
00:01:15,900 –> 00:01:18,210
32
00:01:18,210 –> 00:01:19,590
دهید آن را از سر راه برداریم.
33
00:01:19,590 –> 00:01:22,790
تلاش من برای حل
34
00:01:22,790 –> 00:01:30,000
استارکرافت 2 یادگیری عمیق است، خوب، پس
35
00:01:30,000 –> 00:01:32,009
چگونه میخواهیم آن را انجام دهیم، بنابراین اولین
36
00:01:32,009 –> 00:01:34,200
چیز مخصوصاً با یک کار حل نشده
37
00:01:34,200 –> 00:01:36,270
مانند این است که هیچ آموزشی وجود ندارد
38
00:01:36,270 –> 00:01:38,700
که بگوید آه از این شبکه استفاده کنید
39
00:01:38,700 –> 00:01:41,729
یا هر چیز دیگری که باید بفهمیم. ببینیم چطور
40
00:01:41,729 –> 00:01:43,619
میخواهیم آن را حل کنیم،
41
00:01:43,619 –> 00:01:45,420
بنابراین وقتی من با چنین مشکلی روبرو میشوم
42
00:01:45,420 –> 00:01:47,280
، اولین چیزی که باید به آن فکر کنیم این است
43
00:01:47,280 –> 00:01:49,890
که میدانید به چه چیزی امیدواریم برسیم،
44
00:01:49,890 –> 00:01:52,110
اما چگونه میتوانیم آن را انجام دهیم تا بدانیم
45
00:01:52,110 –> 00:01:55,829
ما میخواهیم از یادگیری عمیق استفاده کنیم، اما ابتدا
46
00:01:55,829 –> 00:01:59,070
باید
47
00:01:59,070 –> 00:02:01,829
آنچه را که در اینجا میگذرد سادهتر کنیم و
48
00:02:01,829 –> 00:02:05,189
حداقل برای من فکر میکنم ضعیفترین نقطه
49
00:02:05,189 –> 00:02:08,389
در رباتهای ما در حال حاضر و یک
50
00:02:08,389 –> 00:02:11,099
کار نسبتاً آسان،
51
00:02:11,099 –> 00:02:13,430
روش حمله در اینجا است تا
52
00:02:13,430 –> 00:02:17,090
بتوانم ساده کردن
53
00:02:17,090 –> 00:02:21,290
حمله نکنید از پایگاه ما دفاع نکنید به
54
00:02:21,290 –> 00:02:23,470
پایگاه دشمن حمله کنید یا به ساختمان های
55
00:02:23,470 –> 00:02:26,540
دشمن حمله کنید به واحدهای دشمن حمله کنید، بنابراین من می توانم آن
56
00:02:26,540 –> 00:02:29,840
را به چهار گزینه بسیار ساده تقسیم
57
00:02:29,840 –> 00:02:31,340
کنم و سپس می توانیم آن
58
00:02:31,340 –> 00:02:33,080
انتخاب ها را انجام دهیم و می توانیم آنها را واحد اعمال کنیم.
59
00:02:33,080 –> 00:02:37,959
شما بر اساس واحد یا کل ارتش
60
00:02:37,959 –> 00:02:41,930
یا کل ارتش بیکار می دانید، بنابراین کل ارتش
61
00:02:41,930 –> 00:02:43,700
که قبلاً اهدافی را انجام نمی
62
00:02:43,700 –> 00:02:47,540
دهد، بنابراین فکر می کنم بهترین
63
00:02:47,540 –> 00:02:49,940
نقطه شروع این است که آن را برای کل
64
00:02:49,940 –> 00:02:55,489
ارتش بیکار اعمال کنید، سپس شاید بعداً آن
65
00:02:55,489 –> 00:02:57,350
را به صورت هر واحد اعمال کنید. من فکر میکنم
66
00:02:57,350 –> 00:02:59,569
که این به چیزهای واقعاً جالبی منجر میشود، اما
67
00:02:59,569 –> 00:03:01,340
فکر میکنم که شروع کردن به خوبی کارها را بیش از حد پیچیده میکند،
68
00:03:01,340 –> 00:03:07,160
بنابراین ما از
69
00:03:07,160 –> 00:03:08,989
مسیری که میخواهیم
70
00:03:08,989 –> 00:03:10,970
میخواهیم خروجی شبکه عصبیمان باشد
71
00:03:10,970 –> 00:03:12,950
، خارج شدیم.
72
00:03:12,950 –> 00:03:15,709
شبکه عصبی خوب می دانم که بسیاری از مردم
73
00:03:15,709 –> 00:03:17,540
مانند بسیاری از یادگیری های تقویتی خواهند بود
74
00:03:17,540 –> 00:03:19,130
و تنها یادگیری تقویتی
75
00:03:19,130 –> 00:03:20,480
که به نظر می رسد همه درباره آن می دانند
76
00:03:20,480 –> 00:03:22,850
77
00:03:22,850 –> 00:03:23,570
78
00:03:23,570 –> 00:03:26,390
یادگیری نشانه ای است. آرنینگ
79
00:03:26,390 –> 00:03:28,070
برای این نوع چالش بسیار پیچیده خواهد بود
80
00:03:28,070 –> 00:03:30,500
که در آن
81
00:03:30,500 –> 00:03:32,810
میدانید مسیری را انتخاب میکنید و سپس اگر پاداشی را دریافت
82
00:03:32,810 –> 00:03:35,209
کردید، آن پاداش را در بین
83
00:03:35,209 –> 00:03:37,280
تمام مراحلی که در مسیر خود برداشتهاید تقسیم
84
00:03:37,280 –> 00:03:39,489
کنید.
85
00:03:39,489 –> 00:03:41,660
اول از همه این منجر به
86
00:03:41,660 –> 00:03:43,609
حجم عظیمی از دادههای آموزشی میشود،
87
00:03:43,609 –> 00:03:46,040
اما واقعاً معنیدار نیست،
88
00:03:46,040 –> 00:03:49,310
فقط فوقالعاده پر سر و صدا میشود، اما در عین حال
89
00:03:49,310 –> 00:03:51,859
این واقعاً بهترین راهحل نیست،
90
00:03:51,859 –> 00:03:53,600
من فکر نمیکنم در اینجا به غیر از
91
00:03:53,600 –> 00:03:55,609
صرف چای کلیک کنید. فکر نمیکنم یادگیری
92
00:03:55,609 –> 00:03:57,170
نشانه در واقع این است که چگونه میخواهیم دوباره این مشکل را حل کنیم،
93
00:03:57,170 –> 00:03:58,850
من پاسخی ندارم فقط
94
00:03:58,850 –> 00:04:01,549
فکر نمیکنم
95
00:04:01,549 –> 00:04:03,230
اشکال دیگری از تعجب یادگیری تقویتی وجود داشته باشد،
96
00:04:03,230 –> 00:04:05,690
اما فکر میکنم چیزی که
97
00:04:05,690 –> 00:04:07,930
میخواهم انجام دهم این است بیشتر شبیه یک
98
00:04:07,930 –> 00:04:12,230
روش یادگیری تکاملی است، من فکر
99
00:04:12,230 –> 00:04:14,630
میکنم که در اینجا نیز مناسبتر است، بنابراین ایده
100
00:04:14,630 –> 00:04:17,539
این است که یک هوش مصنوعی داشته باشیم که انتخاب کند و
101
00:04:17,539 –> 00:04:19,459
اگر انتخابهای خوبی انجام دهد و
102
00:04:19,459 –> 00:04:22,460
جنگ را به خوبی برنده شود، تبریک میگوییم که میتوانی به
103
00:04:22,460 –> 00:04:25,640
سمت خود حرکت کنی، به یک دارایی ادامه دار
104
00:04:25,640 –> 00:04:26,790
برای استخر ژن
105
00:04:26,790 –> 00:04:28,470
و اگر نبرد را به خوبی
106
00:04:28,470 –> 00:04:30,720
ببازید، در تاریخ فراموش شده اید، نمی توانید
107
00:04:30,720 –> 00:04:33,660
در آینده بازتولید کنید، بنابراین فکر می
108
00:04:33,660 –> 00:04:35,340
کنم در اینجا کمی منطقی تر است و
109
00:04:35,340 –> 00:04:36,960
به خصوص اگر بتوانیم به
110
00:04:36,960 –> 00:04:38,880
یک واحد به واحد بشناسیم. یا چیزی
111
00:04:38,880 –> 00:04:41,760
شبیه به آن که می تواند به نوعی جالب باشد، اما
112
00:04:41,760 –> 00:04:43,980
واقعاً الگوریتم پیروز
113
00:04:43,980 –> 00:04:47,760
در کل یا برنده یا می بازد، بنابراین به
114
00:04:47,760 –> 00:04:50,490
هر حال من می خواهم این کار را انجام دهم،
115
00:04:50,490 –> 00:04:52,710
بنابراین این ساختاری است
116
00:04:52,710 –> 00:04:54,870
که می خواهم کارهایی را انجام دهم که هنوز داریم.
117
00:04:54,870 –> 00:04:56,880
صحبت کردن در مورد خوب شبکه عصبی
118
00:04:56,880 –> 00:04:58,320
ای که قرار است استفاده کنیم
119
00:04:58,320 –> 00:05:00,510
چیست زیرا اساساً چه نوع ورودی می خواهیم
120
00:05:00,510 –> 00:05:02,010
زیرا اساساً وقتی یک شبکه عصبی را انتخاب می
121
00:05:02,010 –> 00:05:02,970
کنید باید به این فکر کنید
122
00:05:02,970 –> 00:05:04,710
که چه نوع ورودی قرار خواهیم داد پس
123
00:05:04,710 –> 00:05:06,240
دوباره ما آیا ما
124
00:05:06,240 –> 00:05:10,110
از آخر به جلو می رویم با شروع با شما می
125
00:05:10,110 –> 00:05:11,460
دانید چه چیزی می خواستیم شبکه عصبی ما
126
00:05:11,460 –> 00:05:14,940
آن را خروجی دهد. ما به دنبال
127
00:05:14,940 –> 00:05:16,740
128
00:05:16,740 –> 00:05:18,860
آن هستیم. و
129
00:05:18,860 –> 00:05:21,930
بله، اساساً اکنون یاد بگیرید که ما به چه چیزی می
130
00:05:21,930 –> 00:05:23,070
رویم برای قرار دادن در این شبکه عصبی
131
00:05:23,070 –> 00:05:25,500
و این اساساً دست ما را مجبور می کند این
132
00:05:25,500 –> 00:05:27,120
بود که از چه نوع شبکه عصبی
133
00:05:27,120 –> 00:05:30,750
استفاده خواهیم کرد و مشکل اینجا در مورد
134
00:05:30,750 –> 00:05:34,050
Starcraft 2 این است که متغیرهای زیادی
135
00:05:34,050 –> 00:05:35,550
وجود دارد که می دانید تقریباً یک
136
00:05:35,550 –> 00:05:37,110
عدد متغیر وجود دارد.
137
00:05:37,110 –> 00:05:40,860
تعداد متغیرهای متغیر است و حتی
138
00:05:40,860 –> 00:05:43,020
متغیرهای ما دارای متغیر هستند، بنابراین شما می دانید که
139
00:05:43,020 –> 00:05:44,940
هر واحد یک متغیر است، اما
140
00:05:44,940 –> 00:05:48,030
نوع واحد و کجای آن واحد است،
141
00:05:48,030 –> 00:05:49,740
همه چیزهایی که
142
00:05:49,740 –> 00:05:51,870
بسیار پیچیده هستند، وارد کردن آن به یک عصبی بسیار سخت است.
143
00:05:51,870 –> 00:05:54,150
شبکه بنابراین بلافاصله
144
00:05:54,150 –> 00:05:55,980
ما به چند شبکه بسیار پیچیده نگاه
145
00:05:55,980 –> 00:05:59,520
می کنیم، بنابراین به نظر من ساده ترین
146
00:05:59,520 –> 00:06:01,920
شبکه ای که می توانید هر مقدار
147
00:06:01,920 –> 00:06:04,950
داده و هر داده متغیری را به آن منتقل کنید، یک
148
00:06:04,950 –> 00:06:07,110
شبکه عصبی کانولوشن است زیرا می
149
00:06:07,110 –> 00:06:09,810
توانید همه چیز را تجسم کنید، بنابراین اول از
150
00:06:09,810 –> 00:06:11,910
همه می توانید واحد را تجسم کنید، می توانید
151
00:06:11,910 –> 00:06:13,770
واحدها را بر اساس نوع آنها کد رنگ
152
00:06:13,770 –> 00:06:17,250
کنید، می توانید آنها را اندازه کنید، همچنین می توانید
153
00:06:17,250 –> 00:06:20,070
مواردی مانند مواد ما را تجسم کنید، مانند
154
00:06:20,070 –> 00:06:22,290
مقدار مواد معدنی در گازی که
155
00:06:22,290 –> 00:06:24,570
داریم شما می توانید تصور کنید که
156
00:06:24,570 –> 00:06:26,190
با یک نوار یا چیزی شبیه به آن
157
00:06:26,190 –> 00:06:27,900
و با اعتماد به نفس باید بتوانید
158
00:06:27,900 –> 00:06:32,330
آن را بفهمید، بنابراین این برنامه من است
159
00:06:32,330 –> 00:06:34,440
و اولین کاری که باید انجام دهیم این است که
160
00:06:34,440 –> 00:06:37,080
اساساً دو چیز وجود دارد که باید انجام
161
00:06:37,080 –> 00:06:38,669
دهیم. کمی این را اصلاح کنید،
162
00:06:38,669 –> 00:06:40,680
ما میخواهیم سادهتر کنیم، زیرا
163
00:06:40,680 –> 00:06:42,509
شما بچهها همه چیز را تا
164
00:06:42,509 –> 00:06:44,789
حد امکان ساده میکنید تا اگر موفق باشید
165
00:06:44,789 –> 00:06:47,820
، آن را کمی پیچیدهتر کنید، بنابراین
166
00:06:47,820 –> 00:06:50,460
اولین کاری که میخواهم انجام دهم این است که
167
00:06:50,460 –> 00:06:52,169
من نمیخواهم استالکرها دیگر
168
00:06:52,169 –> 00:06:54,360
بعداً با پرتوهای خالی استفاده خواهیم کرد،
169
00:06:54,360 –> 00:06:57,570
احتمالاً به استالکر نیاز خواهیم داشت،
170
00:06:57,570 –> 00:07:00,330
زیرا اگر فقط پرتوهای خالی را انجام دهیم، واقعاً
171
00:07:00,330 –> 00:07:01,919
نمی توانیم از خود در برابر عجله های اولیه دفاع کنیم،
172
00:07:01,919 –> 00:07:05,270
بنابراین فقط این را در ذهن داشته باشید، در
173
00:07:05,270 –> 00:07:07,680
غیر این صورت فکر می کنم من هستم
174
00:07:07,680 –> 00:07:10,979
روش حمله را یکسان میگذاریم زیرا
175
00:07:10,979 –> 00:07:13,050
دیگر قرار نیست استالکر بسازیم،
176
00:07:13,050 –> 00:07:14,849
ما فقط به یک دروازه نیاز نداریم و
177
00:07:14,849 –> 00:07:16,440
برای ساختن
178
00:07:16,440 –> 00:07:18,690
هسته سایبرنتیک که برای Stargate به آن نیاز داریم فقط به آن دروازه نیاز داریم،
179
00:07:18,690 –> 00:07:24,539
بنابراین به جای این منطق
180
00:07:24,539 –> 00:07:26,550
من. من فقط میخواهم خلاص شوم این را و آن یکی را بسازیم،
181
00:07:26,550 –> 00:07:28,320
بنابراین اگر کمتر از یک
182
00:07:28,320 –> 00:07:30,660
دروازه داریم، بیایید یکی بسازیم در غیر این صورت
183
00:07:30,660 –> 00:07:32,460
چه کسی اهمیت می دهد و بعد نمی خواهیم نیمی از آن را انجام
184
00:07:32,460 –> 00:07:35,820
دهیم، دوست داریم فقط خوب بسازیم، بیایید
185
00:07:35,820 –> 00:07:37,470
از تقسیم بر دو خلاص شویم و
186
00:07:37,470 –> 00:07:40,949
سپس این پرانتزهای اضافی اینجا
187
00:07:40,949 –> 00:07:46,830
خیلی خوب است، پس بیایید ببینیم و سپس
188
00:07:46,830 –> 00:07:48,449
نیروی تهاجمی بسازیم، ما فقط میخواهیم
189
00:07:48,449 –> 00:07:54,120
فضای خالی را بسازیم. Ray مشکلی ندارد، بنابراین
190
00:07:54,120 –> 00:07:56,400
منطق سادهشده این است، بنابراین اکنون برای حمله
191
00:07:56,400 –> 00:07:59,580
ما فقط یک نوع واحد داریم و همه
192
00:07:59,580 –> 00:08:01,229
چیزهایی که دوباره میتوانیم آن را بیشتر کنیم.
193
00:08:01,229 –> 00:08:04,229
پیچیده من هیچ دلیلی نمی بینم وقتی
194
00:08:04,229 –> 00:08:05,849
از این اطمینان استفاده می کنیم که نمی توانیم
195
00:08:05,849 –> 00:08:08,099
کد رنگ و اندازه استاکرها را کمی
196
00:08:08,099 –> 00:08:10,889
متفاوت کنیم، مشکلی در این مورد نمی بینم
197
00:08:10,889 –> 00:08:12,539
، فقط در حال حاضر می خواهم
198
00:08:12,539 –> 00:08:14,250
همه چیز را تا حد امکان ساده نگه دارم. به نظر من
199
00:08:14,250 –> 00:08:16,860
این موفقیت آمیز است، ما می توانیم سعی کنیم
200
00:08:16,860 –> 00:08:19,409
متغیرهای دیگری را اضافه کنیم و ببینیم که آیا می دانید
201
00:08:19,409 –> 00:08:22,139
قابل قبول است یا خیر که
202
00:08:22,139 –> 00:08:23,880
همه چیز را دور می زند و نمی تواند آن را
203
00:08:23,880 –> 00:08:25,800
بفهمد یا هر چیز دیگری، بنابراین اولین کاری که
204
00:08:25,800 –> 00:08:27,659
همیشه می خواهیم در یک برنامه انجام دهیم. موردی مانند این
205
00:08:27,659 –> 00:08:29,729
فقط اجازه دهید این کار را تا حد امکان آسان کنیم e
206
00:08:29,729 –> 00:08:33,059
برای یادگیری یک شبکه عصبی تا حالا
207
00:08:33,059 –> 00:08:34,110
که متوجه شدیم کار بعدی که
208
00:08:34,110 –> 00:08:36,870
باید انجام دهیم این است که
209
00:08:36,870 –> 00:08:39,270
روش حمله را برای حمله بر اساس برخی
210
00:08:39,270 –> 00:08:42,029
قوانین تغییر دهیم تا از آنجا شروع کنیم که
211
00:08:42,029 –> 00:08:44,450
تصادفی باشد و سپس ما بهطور تصادفی به
212
00:08:44,450 –> 00:08:47,339
شما اطلاع میدهیم که فقط با اجرای تعداد زیادی بازی
213
00:08:47,339 –> 00:08:49,800
و هر زمانی که تصادفی به خوبی برنده
214
00:08:49,800 –> 00:08:51,990
شود، مجموعه اقداماتی را انجام
215
00:08:51,990 –> 00:08:53,490
میدهیم که تصادفی انجام شده است و میخواهیم بگوییم
216
00:08:53,490 –> 00:08:54,060
217
00:08:54,060 –> 00:08:55,860
اینها اقدامات خوبی بودند ارتش کار خوب
218
00:08:55,860 –> 00:08:57,510
و ما ما از آن به عنوان داده آموزشی استفاده خواهیم کرد که
219
00:08:57,510 –> 00:08:59,310
هر یک از ارتش هایی که به
220
00:08:59,310 –> 00:09:02,220
طور تصادفی شکست می خورند، از آن استفاده خواهیم کرد که
221
00:09:02,220 –> 00:09:04,770
اکنون داده های آموزشی نخواهد بود، اگر کاری که می خواهیم انجام دهیم
222
00:09:04,770 –> 00:09:08,040
در برابر ربات آسانی است که شما می توانید به
223
00:09:08,040 –> 00:09:10,680
طور تصادفی بدون هیچ دلیل موجهی