در این مطلب، ویدئو آموزش تقویتی در پایتون: شروع به کار با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,380
خوب پس ما امروز یک پروژه جدید را شروع می کنیم
2
00:00:01,380 –> 00:00:04,950
من یک بازی اینجا بازی می کنم به نام
3
00:00:04,950 –> 00:00:07,680
slithery اوه این یکی از بازی هایی است
4
00:00:07,680 –> 00:00:09,780
که بچه های من دوست دارند شخصاً آن را
5
00:00:09,780 –> 00:00:12,780
کمی دیوانه کننده می دانم اما ایده ای که
6
00:00:12,780 –> 00:00:14,639
در پشت این پروژه کوچک جدید وجود دارد
7
00:00:14,639 –> 00:00:15,990
. شروع این است که میخواهم
8
00:00:15,990 –> 00:00:18,000
کمی با یادگیری تقویتی آزمایش کنم.
9
00:00:18,000 –> 00:00:20,550
یادگیری تقویتی
10
00:00:20,550 –> 00:00:21,900
فناوری است که برای نیرو دادن به
11
00:00:21,900 –> 00:00:26,279
ماشینهای خودران استفاده میشود و چیزهایی مانند
12
00:00:26,279 –> 00:00:29,760
آلفاگوی گوگل را تقویت میکند، این همان هوش مصنوعی است
13
00:00:29,760 –> 00:00:33,450
که گوگل برای بازی ساخته است تا به
14
00:00:33,450 –> 00:00:36,239
موفقیت بزرگی در هیاهو برسد و اساساً
15
00:00:36,239 –> 00:00:38,360
ایده این است که شما یک عامل را برنامه ریزی کنید که
16
00:00:38,360 –> 00:00:42,989
یاد می گیرد یک بازی را انجام دهد تا مقداری
17
00:00:42,989 –> 00:00:45,329
تابع ارزش و پاداش و غیره را به حداکثر برساند،
18
00:00:45,329 –> 00:00:48,510
بنابراین من به هیچ وجه یک
19
00:00:48,510 –> 00:00:51,090
متخصص یادگیری تقویتی نیستم در واقع من قبل از این
20
00:00:51,090 –> 00:00:52,469
پروژه هرگز واقعاً هیچ کاری با آن انجام نداده بودم.
21
00:00:52,469 –> 00:00:56,969
بنابراین هدف من در
22
00:00:56,969 –> 00:01:00,090
اینجا ساختن یک پروژه سرگرم کننده کوچک است که
23
00:01:00,090 –> 00:01:02,190
به من کمک می کند برخی از آنها را یاد بگیرم، بنابراین این
24
00:01:02,190 –> 00:01:04,500
یک راه خوب
25
00:01:04,500 –> 00:01:08,760
برای انجام آن نقطه لغزنده است IO یک
26
00:01:08,760 –> 00:01:10,470
g بسیار ساده است. تو این
27
00:01:10,470 –> 00:01:14,939
کرم کوچک هستی و در این دریای
28
00:01:14,939 –> 00:01:18,210
این نقاط کوچک اینجا شنا می کنی و ایده این است
29
00:01:18,210 –> 00:01:20,040
که نقطه ها را جمع کنی و با جمع آوری این
30
00:01:20,040 –> 00:01:23,250
نقاط طولانی تر و طولانی تر می شوی و
31
00:01:23,250 –> 00:01:25,320
اگر با کرم دیگری برخورد کنی یا اگر
32
00:01:25,320 –> 00:01:27,530
از لبه نقشه خارج شوید سپس می میرید و
33
00:01:27,530 –> 00:01:31,049
اگر کرم دیگری به شما برخورد کند
34
00:01:31,049 –> 00:01:33,780
می میرد و وقتی می میرید
35
00:01:33,780 –> 00:01:35,520
تعداد زیادی از این
36
00:01:35,520 –> 00:01:38,520
نقاط کوچک را پشت سر می گذارید و افراد دیگر می توانند آنها را جمع کنند
37
00:01:38,520 –> 00:01:40,560
و غیره بنابراین شما می خواهید از آن اجتناب کنید.
38
00:01:40,560 –> 00:01:42,420
کرمهای دیگر و همزمان میخواهید
39
00:01:42,420 –> 00:01:45,860
بردارید، همه این نقاط کوچک را میشناسید،
40
00:01:45,860 –> 00:01:48,329
بنابراین میتوانید ببینید که این مرد در اینجا مرده است
41
00:01:48,329 –> 00:01:51,540
و خیلی از شما
42
00:01:51,540 –> 00:01:53,850
جواهرات را میدانید، نقاط کوچک براق
43
00:01:53,850 –> 00:01:56,340
کمی پشت سر گذاشتهاند و این هیجانانگیز است، بنابراین من
44
00:01:56,340 –> 00:01:57,810
متوجه شدم. گرفتن او و هورای
45
00:01:57,810 –> 00:02:00,180
که واقعاً فوقالعاده است
46
00:02:00,180 –> 00:02:03,740
، انواع استراتژیهای پیچیده زیادی
47
00:02:03,740 –> 00:02:07,049
برای این بازی وجود دارد، بسیاری از
48
00:02:07,049 –> 00:02:09,419
مارهای بزرگ سعی میکنند دور شما بچرخند و
49
00:02:09,419 –> 00:02:10,979
اگر توسط یک مار احاطه
50
00:02:10,979 –> 00:02:13,890
شوید، تقریباً محکوم به فنا هستید.
51
00:02:13,890 –> 00:02:15,780
بنابراین جالب است که ببینیم چگونه
52
00:02:15,780 –> 00:02:19,230
عاملی که ما کدنویسی می کنیم در
53
00:02:19,230 –> 00:02:22,950
نهایت از این نوع استراتژی ها استفاده می کند یا
54
00:02:22,950 –> 00:02:25,080
شاید حتی استراتژی های جدیدی را
55
00:02:25,080 –> 00:02:29,160
برای خوب شدن در این بازی ابداع می کند، بنابراین همانطور که گفتم
56
00:02:29,160 –> 00:02:30,480
من چیز زیادی در مورد یادگیری تقویتی نمی دانم
57
00:02:30,480 –> 00:02:33,960
اما می خواستم فقط با آن شروع کنم.
58
00:02:33,960 –> 00:02:36,150
نوشتن کدی که به
59
00:02:36,150 –> 00:02:39,210
شما امکان می دهد بازی را به صورت تصادفی و درست انجام دهید، بنابراین
60
00:02:39,210 –> 00:02:43,380
فقط یک عامل کاملاً ساده لوح و سپس
61
00:02:43,380 –> 00:02:44,580
از آنجا بروید،
62
00:02:44,580 –> 00:02:46,050
بنابراین این یک نوع چالش برای
63
00:02:46,050 –> 00:02:49,620
جامعه علم داده است، آیا
64
00:02:49,620 –> 00:02:51,209
می توانید یک الگوریتم یادگیری تقویتی بسازید
65
00:02:51,209 –> 00:02:54,900
که به خودی خود آموزش می دهد. برای بازی
66
00:02:54,900 –> 00:02:58,230
slither die اوه اکنون اکثر مواردی که
67
00:02:58,230 –> 00:03:01,800
در یوتیوب می بینید یوتیوب هایی هستند
68
00:03:01,800 –> 00:03:03,810
که شبیه سازها را درست می سازند، بنابراین اولین قدم
69
00:03:03,810 –> 00:03:05,580
در این فرآیند برای افراد دیگر ممکن
70
00:03:05,580 –> 00:03:08,400
است نوشتن یک شبیه ساز باشد که در
71
00:03:08,400 –> 00:03:10,800
واقع به شما امکان می دهد بازی را انجام دهید اما
72
00:03:10,800 –> 00:03:12,510
شما اگر به درستی قلاب های API در آن وجود داشته
73
00:03:12,510 –> 00:03:14,310
باشد، می توانید امتیاز را به دست آورید و می
74
00:03:14,310 –> 00:03:15,720
توانید بگویید که نقطه ها کجا هستند و
75
00:03:15,720 –> 00:03:17,910
مواردی از این قبیل و این در واقع می
76
00:03:17,910 –> 00:03:23,040
تواند بازی را آسان تر کند، بنابراین من
77
00:03:23,040 –> 00:03:24,510
این کار را نکردم می خواهم این کار را انجام دهم من میخواستم
78
00:03:24,510 –> 00:03:27,180
آن را به جایی برسانم که در واقع
79
00:03:27,180 –> 00:03:30,630
کامپیوتر را به آن برنامهنویسی میکنیم تا واقعاً
80
00:03:30,630 –> 00:03:33,660
بازی مبتنی بر مرورگر وب را بازی کند و بنابراین
81
00:03:33,660 –> 00:03:36,830
اینجا را با نوشتن
82
00:03:36,830 –> 00:03:40,590
کمی کد شروع کردم که اساساً
83
00:03:40,590 –> 00:03:45,090
یک بازی تصادفی از Slytherin IO را انجام میدهد و
84
00:03:45,090 –> 00:03:46,830
اینجاست که ما شروع می کنیم این کد
85
00:03:46,830 –> 00:03:49,620
در github در دسترس است، می
86
00:03:49,620 –> 00:03:52,290
توانید پیوند را در اینجا ببینید، بنابراین اگر می خواهید وارد شوید
87
00:03:52,290 –> 00:03:54,690
و خودتان آن را امتحان کنید، دوست دارم
88
00:03:54,690 –> 00:03:56,430
ببینم چه چیزی می توانید پیدا
89
00:03:56,430 –> 00:03:59,880
کنید. برای شبیه سازی این مرد و
90
00:03:59,880 –> 00:04:01,830
در واقع شروع به کار، من همه کارها را
91
00:04:01,830 –> 00:04:06,060
در یک نوت بوک مشتری انجام دادم، بنابراین چه چیزی به دست آوردیم،
92
00:04:06,060 –> 00:04:08,060
بنابراین این کد در اینجا اساساً برای
93
00:04:08,060 –> 00:04:10,280
این است که عاملی را که ما کدگذاری می کنیم
94
00:04:10,280 –> 00:04:13,320
اساساً یک بازی تصادفی از IO لغزنده بازی کند،
95
00:04:13,320 –> 00:04:16,048
بنابراین این فقط پایتون
96
00:04:16,048 –> 00:04:17,548
من فقط دسته ای از چیزهایی را وارد
97
00:04:17,548 –> 00:04:19,380
می کنم که بعداً از آنها استفاده خواهم کرد، اجازه دهید
98
00:04:19,380 –> 00:04:20,459
تمام توابع مختلفی را که
99
00:04:20,459 –> 00:04:22,590
نوشته ام مرور کنم، اولین مورد فقط
100
00:04:22,590 –> 00:04:25,260
باز کردن یک پنجره مرورگر است تا این تابع
101
00:04:25,260 –> 00:04:27,840
یک پنجره مرورگر را باز کند. اندازه
102
00:04:27,840 –> 00:04:30,870
و موقعیتی را که می خواهید تنظیم کنید این کار را انجام دهید و
103
00:04:30,870 –> 00:04:33,060
سپس به وبسایت sliver dot
104
00:04:33,060 –> 00:04:35,820
IO مراجعه میکند. این تابع تودرتو برای
105
00:04:35,820 –> 00:04:37,770
کنترل ماوس است.
106
00:04:37,770 –> 00:04:40,710
107
00:04:40,710 –> 00:04:42,360
108
00:04:42,360 –> 00:04:43,980
109
00:04:43,980 –> 00:04:45,960
من می گویم این فقط کپی/پیست کردن است،
110
00:04:45,960 –> 00:04:48,060
بیشتر ما از تابع حرکت
111
00:04:48,060 –> 00:04:51,780
در داخل این کلیک کلاس ماوس استفاده می کنیم
112
00:04:51,780 –> 00:04:54,180
که برخی از موقعیت ها برای
113
00:04:54,180 –> 00:04:55,710
فهمیدن اینکه دقیقاً در کجا چیزهای روی
114
00:04:55,710 –> 00:04:57,530
صفحه قرار گرفته اند بسیار مفید است تا بتوانیم آن را در
115
00:04:57,530 –> 00:05:00,090
این تابع بعدی بخوانیم. فقط گرفتن
116
00:05:00,090 –> 00:05:01,860
اسکرین شات از صفحه است، همانطور که گفتم،
117
00:05:01,860 –> 00:05:03,330
همه چیز در اینجا بر اساس
118
00:05:03,330 –> 00:05:05,250
چیزی است که در واقع روی صفحه نمایش داده می شود، بنابراین
119
00:05:05,250 –> 00:05:07,220
این به شما امکان می دهد یک مستطیل را
120
00:05:07,220 –> 00:05:11,460
برای گرفتن صفحه تعیین کنید و سپس می
121
00:05:11,460 –> 00:05:12,990
توانید تنها با پرش، وضوح را کاهش دهید.
122
00:05:12,990 –> 00:05:15,900
پیکسل ها، بنابراین این به طور پیش فرض
123
00:05:15,900 –> 00:05:17,520
فقط هر پیکسل را می گیرد، اما اگر آن را روی 5 تنظیم کنید
124
00:05:17,520 –> 00:05:20,820
، همه
125
00:05:20,820 –> 00:05:24,060
پیکسل ها به جز پنجمین پیکسل به درستی حذف می شوند، بنابراین پیکسل های 5 10 15 و غیره
126
00:05:24,060 –> 00:05:27,450
و این به شما امکان می دهد
127
00:05:27,450 –> 00:05:28,919
وضوح تصویری را که می گیرید کاهش دهید.
128
00:05:28,919 –> 00:05:31,020
sc من متوجه شدم که
129
00:05:31,020 –> 00:05:33,120
راههای پاکتری برای انجام این کار وجود دارد، اما این فقط
130
00:05:33,120 –> 00:05:36,240
یک راه بسیار ساده و فوقالعاده آسان برای رسیدن به جایی است
131
00:05:36,240 –> 00:05:38,580
که میخواهیم برویم، همچنین میتوانید
132
00:05:38,580 –> 00:05:41,190
آن را به مقیاس خاکستری تبدیل کنید و این کار
133
00:05:41,190 –> 00:05:44,370
ابعاد را حتی بیشتر کاهش
134
00:05:44,370 –> 00:05:46,470
میدهد. برای به دست آوردن امتیاز شما، همانطور که
135
00:05:46,470 –> 00:05:47,880
گفتم ما قلاب هایی در لغزش نداریم،
136
00:05:47,880 –> 00:05:50,400
من مدیون API هستم،
137
00:05:50,400 –> 00:05:53,070
شاید وجود داشته باشند، نمی دانم من
138
00:05:53,070 –> 00:05:55,080
ندیدم، نگاه نکردم، فقط می خواستم بتوانم به صفحه نگاه کنم و بگیرم
139
00:05:55,080 –> 00:05:56,220
140
00:05:56,220 –> 00:05:58,229
این اطلاعات در واقع با استفاده از یک
141
00:05:58,229 –> 00:06:02,310
کتابخانه OCR برای گرفتن اسکرین شات از
142
00:06:02,310 –> 00:06:04,050
موقعیت درست صفحه که در آن
143
00:06:04,050 –> 00:06:06,300
امتیاز چاپ می شود و سپس به
144
00:06:06,300 –> 00:06:08,910
یک مقدار عددی تبدیل می شود و آن را به سمت راست کاربر برمی گرداند
145
00:06:08,910 –> 00:06:09,270
146
00:06:09,270 –> 00:06:10,860
و بنابراین فقط یک
147
00:06:10,860 –> 00:06:13,680
حلقه پیوسته در اینجا انجام می دهد.
148
00:06:13,680 –> 00:06:15,660
OCR صد در صد
149
00:06:15,660 –> 00:06:18,090
دقیق نیست و بنابراین شما می خواهید
150
00:06:18,090 –> 00:06:20,490
در داده های هدف خود در اینجا مقداری نویز در داده های
151
00:06:20,490 –> 00:06:22,350
پاداش خود دریافت کنید زیرا به این فکر
152
00:06:22,350 –> 00:06:24,120
می کنید که امتیاز شما چقدر است و چگونه تغییر کرده است،
153
00:06:24,120 –> 00:06:26,729
اما می دانید که اینطور است.
154
00:06:26,729 –> 00:06:30,000
پس این حلقه پیوسته در اینجا چیست فقط
155
00:06:30,000 –> 00:06:31,320
تا زمانی که یک
156
00:06:31,320 –> 00:06:33,240
اسکرین شات دریافت کند که بتواند واقعاً بخواند به کار ادامه می دهد
157
00:06:33,240 –> 00:06:34,770
و معمولاً در اولین حرکت یک عکس خوب دریافت
158
00:06:34,770 –> 00:06:37,200
می کند، گاهی اوقات اگر یک نقطه یا چیزی در آن کوچک باشد، عدد خوانده می شود
159
00:06:37,200 –> 00:06:39,539
و اشتباه می شود،
160
00:06:39,539 –> 00:06:41,730
161
00:06:41,730 –> 00:06:44,040
اما این همان چیزی است که این تابع بعدی است که
162
00:06:44,040 –> 00:06:45,930
اساساً به شما امکان میدهد ماوس خود را حرکت دهید،
163
00:06:45,930 –> 00:06:49,410
بنابراین به یاد خواهید آورد که وقتی
164
00:06:49,410 –> 00:06:51,750
یک بازی را شروع میکنید که ماوس شما در آن قرار دارد،
165
00:06:51,750 –> 00:06:54,660
مشخص میکند که کرم کوچک شما به کدام سمت
166
00:06:54,660 –> 00:06:57,420
میرود، بنابراین من فقط
167
00:06:57,420 –> 00:07:03,510
شعاع 50 پیکسل را تعیین میکنم. و سپس می توانید
168
00:07:0