در این مطلب، ویدئو نوشتن برنامههای پایتون برای نمونهبرداری از زنجیرههای مارکوف با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:12:59
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,839 –> 00:00:04,080
سلام، در این ویدیو ما می خواهیم یاد بگیریم
2
00:00:04,080 –> 00:00:05,359
که چگونه
3
00:00:05,359 –> 00:00:07,520
واحد اصلی برنامه ای را بنویسیم که به ما امکان می دهد
4
00:00:07,520 –> 00:00:09,599
یک زنجیره مارکوف را نمونه برداری
5
00:00:09,599 –> 00:00:11,519
کنیم، خواهیم دید که نوشتن یک تابع برای
6
00:00:11,519 –> 00:00:12,719
نمونه برداری از
7
00:00:12,719 –> 00:00:15,839
زنجیره مارکوف زمانی گسسته ساده است
8
00:00:15,839 –> 00:00:17,359
اگر از قبل می دانید چگونه بنویسید.
9
00:00:17,359 –> 00:00:20,480
برنامه ای برای تولید یک آزمایش چند جمله ای
10
00:00:20,480 –> 00:00:22,640
ما این ایده تولید آزمایش های
11
00:00:22,640 –> 00:00:23,519
چند جمله ای چندگانه را
12
00:00:23,519 –> 00:00:25,840
در تمرین های قبلی پوشش داده
13
00:00:25,840 –> 00:00:27,519
ایم، اما این ویدئو را
14
00:00:27,519 –> 00:00:29,519
با تجدید نظر در این الگوریتم شروع می کنیم تا
15
00:00:29,519 –> 00:00:30,640
بتوانیم آن را
16
00:00:30,640 –> 00:00:32,880
در زمینه نمونه برداری از یک زنجیره مارکوف از
17
00:00:32,880 –> 00:00:35,120
18
00:00:36,719 –> 00:00:39,040
هر متغیر تصادفی گسسته اعمال کنیم. دارای
19
00:00:39,040 –> 00:00:40,800
تابع جرم احتمالی
20
00:00:40,800 –> 00:00:44,079
مانند آنچه در اینجا نشان داده شده است، ارتفاع
21
00:00:44,079 –> 00:00:44,559
22
00:00:44,559 –> 00:00:47,600
میله های نمودار در اینجا نشان دهنده
23
00:00:47,600 –> 00:00:49,440
احتمال به دست آوردن نتایجی است
24
00:00:49,440 –> 00:00:51,280
که در محور x در نمودار نشان داده شده است، در
25
00:00:51,280 –> 00:00:52,480
26
00:00:52,480 –> 00:00:54,960
نتیجه اگر ارتفاع
27
00:00:54,960 –> 00:00:56,640
همه میله های احتمال را اضافه کنیم. تابع جرم
28
00:00:56,640 –> 00:00:57,120
29
00:00:57,120 –> 00:01:01,359
با هم 1 بدست می آوریم.
30
00:01:03,120 –> 00:01:05,360
اگر بدانیم که تابع جرم احتمال
31
00:01:05,360 –> 00:01:06,240
32
00:01:06,240 –> 00:01:09,920
برای متغیر تصادفی است، می توانیم
33
00:01:09,920 –> 00:01:13,920
یک متغیر تصادفی از توزیع
34
00:01:13,920 –> 00:01:16,640
با استفاده از الگوریتمی که در اینجا بحث
35
00:01:16,640 –> 00:01:18,159
36
00:01:18,159 –> 00:01:20,159
خواهم کرد همانطور که در
37
00:01:20,159 –> 00:01:22,400
ویدیوهای قبلی در توضیح این الگوریتم توضیح
38
00:01:22,400 –> 00:01:24,960
دادم، دوست دارم تصور کنم که
39
00:01:24,960 –> 00:01:26,000
میلههای تابع جرم احتمال را میگیریم
40
00:01:26,000 –> 00:01:29,200
و آنها را در کنار هم قرار میدهیم
41
00:01:29,200 –> 00:01:32,479
تا یک پاره خط با
42
00:01:32,479 –> 00:01:35,360
طول کل یک ایجاد کنیم.
43
00:01:35,840 –> 00:01:38,720
در ترسیم این پاره خط، من هر
44
00:01:38,720 –> 00:01:40,000
نوار از تابع جرم احتمال را
45
00:01:40,000 –> 00:01:43,119
با رنگ دیگری رسم می کنم،
46
00:01:43,119 –> 00:01:45,600
سپس می بینید که قسمت آبی این
47
00:01:45,600 –> 00:01:47,840
پاره که از صفر شروع می شود و با احتمال صفر به پایان می رسد،
48
00:01:47,840 –> 00:01:48,640
49
00:01:48,640 –> 00:01:51,520
قسمت نور سبز
50
00:01:51,520 –> 00:01:52,479
این قطعه
51
00:01:52,479 –> 00:01:53,920
شروع می شود. با احتمال به دست آوردن یک
52
00:01:53,920 –> 00:01:55,520
صفر و به احتمال به
53
00:01:55,520 –> 00:01:57,119
دست آوردن یک صفر به پایان می رسد به اضافه احتمال به
54
00:01:57,119 –> 00:01:58,799
دست آوردن یک
55
00:01:58,799 –> 00:02:00,399
و سپس تنها سه
56
00:02:00,399 –> 00:02:02,320
نتیجه ممکن وجود دارد که قسمت قرمز
57
00:02:02,320 –> 00:02:06,719
خط در یک نقطه به پایان می رسد
58
00:02:06,880 –> 00:02:09,520
مهم است که بخش آبی
59
00:02:09,520 –> 00:02:10,399
یک خط
60
00:02:10,399 –> 00:02:12,000
دارای طولی است که متناسب با
61
00:02:12,000 –> 00:02:13,760
احتمال به دست آوردن صفر است
62
00:02:13,760 –> 00:02:15,840
، قسمت سبز خط دارای طولی است
63
00:02:15,840 –> 00:02:17,360
که متناسب با
64
00:02:17,360 –> 00:02:18,480
احتمال به دست آوردن یک است
65
00:02:18,480 –> 00:02:21,120
و قسمت قرمز خط دارای
66
00:02:21,120 –> 00:02:22,239
67
00:02:22,239 –> 00:02:24,560
احتمال طولی است که متناسب با
68
00:02:24,560 –> 00:02:26,319
احتمال به دست آوردن
69
00:02:26,319 –> 00:02:30,720
2 است. در کد ما برای تولید یک
70
00:02:30,720 –> 00:02:32,720
متغیر تصادفی از این توزیع،
71
00:02:32,720 –> 00:02:36,319
با تولید یک
72
00:02:36,319 –> 00:02:38,319
متغیر تصادفی پیوسته یکنواخت که
73
00:02:38,319 –> 00:02:39,200
بین
74
00:02:39,200 –> 00:02:43,760
0 و 1 است شروع می کنیم. متغیر توزیع یکنواختی
75
00:02:43,760 –> 00:02:44,640
دارد
76
00:02:44,640 –> 00:02:46,400
، احتمال اینکه در
77
00:02:46,400 –> 00:02:47,840
قسمت آبی خط قرار
78
00:02:47,840 –> 00:02:49,120
گیرد متناسب با طول
79
00:02:49,120 –> 00:02:51,599
قطعه آبی است که احتمال
80
00:02:51,599 –> 00:02:53,920
صفر گرفتن است،
81
00:02:53,920 –> 00:02:56,000
بنابراین بررسی می کنیم که آیا متغیر تصادفی یکنواخت ما
82
00:02:56,000 –> 00:02:57,599
کمتر از احتمال به
83
00:02:57,599 –> 00:02:58,800
دست آوردن یک است. صفر است
84
00:02:58,800 –> 00:03:02,159
و اگر
85
00:03:02,159 –> 00:03:07,440
باشد مقدار متغیر تصادفی را صفر برمی گردانیم
86
00:03:08,000 –> 00:03:09,599
، احتمال اینکه متغیر تصادفی
87
00:03:09,599 –> 00:03:11,680
در قسمت سبز
88
00:03:11,680 –> 00:03:12,080
89
00:03:12,080 –> 00:03:14,000
خط، متناسب با طول آن
90
00:03:14,000 –> 00:03:16,959
پاره خط باشد
91
00:03:17,200 –> 00:03:18,720
، طول آن پاره
92
00:03:18,720 –> 00:03:20,000
خط متناسب است. با توجه به احتمال به
93
00:03:20,000 –> 00:03:21,920
دست آوردن یک
94
00:03:21,920 –> 00:03:24,319
در تابع ما می توانیم بررسی کنیم که آیا
95
00:03:24,319 –> 00:03:25,040
96
00:03:25,040 –> 00:03:28,959
u کمتر از p0 به اضافه p1 است
97
00:03:28,959 –> 00:03:32,799
تا بررسی کنیم که آیا در بخش سبز هستیم
98
00:03:32,799 –> 00:03:35,680
و آیا ما آیا میتوانیم 1 را در این مورد برگردانیم،
99
00:03:35,680 –> 00:03:38,000
100
00:03:38,159 –> 00:03:40,319
توجه کنید که این عبارت دوم
101
00:03:40,319 –> 00:03:41,440
بررسی میکند که آیا u
102
00:03:41,440 –> 00:03:44,799
بزرگتر از p0 است و کمتر از p0
103
00:03:44,799 –> 00:03:48,959
به اضافه p1 اگر u کمتر از p0
104
00:03:48,959 –> 00:03:50,879
بود، قبلاً از
105
00:03:50,879 –> 00:03:53,280
کد برمیگشتیم و هرگز حقیقت را ارزیابی نمیکردیم.
106
00:03:53,280 –> 00:03:55,280
مقدار این
107
00:03:55,280 –> 00:03:56,640
گزاره دوم در این گزاره
108
00:03:56,640 –> 00:04:00,000
ثانوی if اگر
109
00:04:00,000 –> 00:04:03,840
هیچ یک از این دو دستور if
110
00:04:03,840 –> 00:04:07,360
راه اندازی نشده باشد، پس باید u
111
00:04:07,360 –> 00:04:10,640
در قسمت قرمز خط قرار بگیرد،
112
00:04:10,640 –> 00:04:13,519
این قطعه دارای طولی است که
113
00:04:13,519 –> 00:04:14,400
متناسب
114
00:04:14,400 –> 00:04:16,720
با احتمال به دست آوردن یک 2 است، بنابراین می توانیم
115
00:04:16,720 –> 00:04:17,680
برگردانیم.
116
00:04:17,680 –> 00:04:21,519
2 در این مورد نهایی
117
00:04:26,320 –> 00:04:28,960
، کد موجود در اسلاید قبلی که در
118
00:04:28,960 –> 00:04:30,479
اینجا تکرار میشود،
119
00:04:30,479 –> 00:04:33,360
تنها در صورتی کار میکند که سه نتیجه
120
00:04:33,360 –> 00:04:35,680
برای آزمایش ما وجود داشته باشد،
121
00:04:35,680 –> 00:04:37,840
در آن کد در اسلاید قبلی،
122
00:04:37,840 –> 00:04:38,880
دو
123
00:04:38,880 –> 00:04:42,320
اسکالر را به تابع ارسال میکنیم، این دو
124
00:04:42,320 –> 00:04:44,000
اسکالر احتمال دریافت یک هستند
125
00:04:44,000 –> 00:04:44,800
126
00:04:44,800 –> 00:04:49,919
و احتمال به دست آوردن صفر
127
00:04:49,919 –> 00:04:52,560
میتوان از نیاز به پاس دادن دو اسکالر اجتناب کرد
128
00:04:52,560 –> 00:04:53,680
129
00:04:53,680 –> 00:04:55,600
و میتوانیم
130
00:04:55,600 –> 00:04:57,120
با
131
00:04:57,120 –> 00:04:59,759
ارسال اطلاعات احتمال در یک
132
00:04:59,759 –> 00:05:01,039
آرایهی کمرنگ،
133
00:05:01,039 –> 00:05:04,080
همانطور که در اینجا نشان داده شده است، تعمیم تابع خود را آغاز کنیم. ما در اینجا یک آرایه numpy داریم
134
00:05:04,080 –> 00:05:04,639
135
00:05:04,639 –> 00:05:08,840
که کل تابع جرم احتمال را در خود نگه می دارد،
136
00:05:08,840 –> 00:05:10,160
137
00:05:10,160 –> 00:05:13,120
این کد هنوز فقط برای متغیرهای تصادفی کار می کند
138
00:05:13,120 –> 00:05:14,080
که دارای
139
00:05:14,080 –> 00:05:18,000
دو یا سه نتیجه احتمالی هستند،
140
00:05:18,000 –> 00:05:21,199
اگرچه ما از دستورات if استفاده می کنیم، اگر نتایج
141
00:05:21,199 –> 00:05:22,080
142
00:05:22,080 –> 00:05:24,160
بیشتری برای متغیرهای تصادفی ما وجود دارد، می توانیم دستورات if بیشتری اضافه
143
00:05:24,160 –> 00:05:26,240
کنیم.
144
00:05:26,240 –> 00:05:28,080
اما با توجه به اینکه فلسفه ما
145
00:05:28,080 –> 00:05:30,000
همیشه اجتناب از نوشتن
146
00:05:30,000 –> 00:05:32,800
کدهای طولانی است، باید راه بهتری برای
147
00:05:32,800 –> 00:05:33,680
148
00:05:33,680 –> 00:05:36,840
دستیابی به همان نتیجه با خطوط کد کمتر وجود
149
00:05:36,840 –> 00:05:39,840
150
00:05:42,160 –> 00:05:45,280
داشته باشد، تابع نشان داده شده در اینجا
151
00:05:45,280 –> 00:05:48,240
راه بهتری برای تولید یک
152
00:05:48,240 –> 00:05:49,919
متغیر تصادفی چندجمله ای
153
00:05:49,919 –> 00:05:52,960
یک بار دیگر برای تابع ارائه می دهد.
154
00:05:52,960 –> 00:05:54,880
یک بردار است که حاوی
155
00:05:54,880 –> 00:05:56,560
عناصر تابع جرم احتمال
156
00:05:56,560 –> 00:05:59,840
برای متغیر تصادفی مورد علاقه است،
157
00:05:59,840 –> 00:06:00,639
اما
158
00:06:00,639 –> 00:06:02,960
این بردار مقادیر جرم احتمالی
159
00:06:02,960 –> 00:06:04,240
می تواند هر طولی داشته باشد
160
00:06:04,240 –> 00:06:07,680
زیرا ما از این حلقه while در
161
00:06:07,680 –> 00:06:10,000
داخل تابع استفاده
162
00:06:10,000 –> 00:06:13,199
می کنیم تا بفهمیم چرا این حلقه while کار می کند،
163
00:06:13,199 –> 00:06:15,520
بیایید قطعه بندی شده را در نظر بگیریم. خط از
164
00:06:15,520 –> 00:06:16,400
165
00:06:16,400 –> 00:06:20,960
اسلاید قبلی یک بار
166
00:06:20,960 –> 00:06:23,039
دیگر تابع با ایجاد یک con یکنواخت شروع می شود
167
00:06:23,039 –> 0