<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های هانیه مهدوی</title>
        <link>https://virgool.io/feed/@haniehmahdavi26</link>
        <description>من هانیه‌ام. مدتیه شروع کردم به تولید محتوا در قالب متن و به زبان فارسی، از روی دوره‌هایی که می‌گذرونم. اگر دوست داشتین برام قهوه بخرید: https://coffeete.ir/honio</description>
        <language>fa</language>
        <pubDate>2026-06-15 22:30:27</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/842808/avatar/Jw17OI.jpeg?height=120&amp;width=120</url>
            <title>هانیه مهدوی</title>
            <link>https://virgool.io/@haniehmahdavi26</link>
        </image>

                    <item>
                <title>از داستان‌های شاهنامه - آفریدون و اَژدِهاک</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%A7%D8%B2-%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%B4%D8%A7%D9%87%D9%86%D8%A7%D9%85%D9%87-%D8%A2%D9%81%D8%B1%DB%8C%D8%AF%D9%88%D9%86-%D9%88-%D8%A7%D9%8E%DA%98%D8%AF%D9%90%D9%87%D8%A7%DA%A9-sopiswtqzfks</link>
                <description>منبع اصلی این پست، پلی‌لیست شاهنامه از کانال یوتیوب جناب رشید کاکاوند هست. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. دوست داشتم که یک پست منحصر به فرد از داستان‌های شاهنامه لابه‌لای بقیه پست‌هام باشه، برای همین هم این بلاگ‌پست رو نوشتم. شاید در آینده باز هم لابه‌لای پست‌هام، گریزی به داستان‌های شاهنامه بزنم.خِرَد بهتر از هرچه ایزد بداد / ستایش خِرَد را به از راه دادخِرَد رهنمای و خِرَد دلگشای/ خِرَد دست گیرد به هر دو سرایازو شادمانی وزویَت غمی است / وزویَت فزونی وزویَت کمی استپایان جمشید، شروع اژدهاک!داستان ضحاک به نحوی از پایان دوره جمشید شروع میشه. جمشید پادشاه خیلی بزرگی بوده و حتی به سلیمان و نوح هم تشبیه شده! در دوران جمشید، رفاه و امنیت و شادی در جهان (ایران) رشد می‌کنه، علم پیشرفت میکنه و هر روز اتفاقات و اکتشافات تازه‌ای رخ میده! حتی اکسیر جوانی هم ساخته میشه! تمامی این اتفاقات باعث میشه که جمشید دچار تکبر و خودبزرگ‌بینی خیلی شدیدی بشه و حتی به اینجا برسه که حیات و مرگ بقیه در دستان منه! این رفتار و غرور بیش از حد، باعث آزرده شدن همه مردم و بزرگان از جمشید میشه. مهم‌تر از اون، باعث میشه که فَر ایزدی از سر جمشید کنار بره و دوره بدبختی جمشید شروع بشه! جمشید، اهورا که مظهر نور هست رو فراموش می‌کنه و خودشو جای اهورا میزنه و در نهایت روزگارش تیره و تار میشه!موازی با داستان جمشید، در یک جای دیگه‌ای از دنیا (سرزمین عربستان) یک پادشاه دیگه‌ای به اسم مَرداس در حال حکومت بوده که به شدت عادل، درستکار و بخشنده بوده و کلاً انسان خیلی شریف و خوبی بوده. برخلافِ خودِ مرداس، پسرش، ضحاک (یا به زبان فارسی اژدهاک) اصلاً آدم نیک سرشتی نبوده. یک روزی از روزها ابلیس میره پیش ضحاک و بهش میگه که چرا نمیری جای پدرت رو بگیری و پادشاه بشی؟ چرا اصلاً کسی به غیر از تو باید پادشاه باشه؟ خلاصه با این حرف‌ها ضحاک رو به این فکر فرو می‌بره که آره! من باید بر تخت بشینم و پادشاهی کنم! در عمل چه اتفاقی می‌افته؟ یک چاه خیلی عمیق در باغ مرداس کنده میشه. یکی از شب‌ها که مرداس برای قدم زدن شبانگاهی به باغش میره، در این چاه میفته و کشته میشه. به این صورت تاج و تخت از مرداس به ضحاک میرسه.ابلیسِ ماجرا همچنان ول کن ضحاک نمیشه. این دفعه در قالب یک آشپز ظاهر میشه و در دربار ضحاک آشپزی می‌کنه. قراره از طریق شکم، فکر و مغز ضحاک رو به کنترل خودش در بیاره و شروع میکنه به پختن غذاهای لذیذ و خوش‌مزه! روزی از روز‌ها یک غذای خیلی لذیذ و معطر از گوشت گوساله، گلاب، زعفران و شراب درست میکنه و به خورد ضحاک میده. ضحاک به شدت از این غذا خوشش میاد و آشپز رو اظهار می‌کنه و ازش میخواد تا پاداشی از او طلب کنه. آشپز هم میگه من هیچ چیزی نمی‌خوام جز اینکه از سر عشق و علاقه‌م به شما، دو بوسه بر دو کتف شما بزنم! بوسه زدن بر کتف ضحاک همان و ناپدید شدن آشپز از زمین و زمان همان! طولی نمیکشه که از جای دو بوسه دو مار سیاه سر بیرون میارن و هرچی ضحاک تلاش میکنه که با خنجرش سر مارهارو ببره، شدنی نیست و هر دفعه که سر مارها قطع میشه سر جدیدی جایگزین سر قبلی میشه!خلاصه، پزشکان دور هم جمع میشن تا دوایی بر درد ضحاک پیدا کنن تا اینکه دوباره ابلیس در پوشش پزشک در جمع حاضر میشه! راه حلی که پزشک ارائه میده آرام نگه داشتن مارها از طریق غذا دادن به اون‌هاست با این امید که بالاخره یک روز نابود میشن و از بین میرن! اما نه هر غذایی! فقط و فقط مغز آدمیزاد میتونه خوراک مارهای ضحاک بشه! حالا چرا مغز؟ ابلیس با این همه نقشه در نهایت دنبال چی بوده؟ آفرین! نابودی نسل بشر! مغز و فکر و اندیشه مردم هدف بوده و باید نابود میشده تا ضحاک بتونه در آسایش به حکومت خودش ادامه بده!برگردیم به جمشید و ببینیم در ایران چه اتفاقاتی داره میفته! اوضاع ایران خیلی ناآرومه و همه از جمشید ناامید شدن و هرکسی از هر طرف ادعای پادشاهی میکنه. اوضاع واقعاً خرابه! در این حین یه عده از ایرانیان که به دنبال پادشاه بودن و از عدالت و درستکاری مَرداس شنیده بودن، به امید اینکه هنوز مَرداس در قدرته به عربستان میرن و غافل از همه جا، از ضحاک می‌خوان که پادشاه ایران زمین بشه! ضحاک هم از خدا خواسته قبول میکنه و پادشاه ایران میشه! جمشید از ترس مقابله با ضحاک فرار میکنه و تاج و تخت رو رها می‌کنه. حدود صد سال هیچ کس از جمشید هیچ خبری نداره. در نهایت بعد از این صد سال ضحاک جمشید رو پیدا می‌کنه و با اَره اون رو به دو قسمت تقسیم می‌کنه. جمشید بعد از 700 سال زندگی، در نهایت با این سرنوشت شوم به کام مرگ میره.دوران پادشاهی ضحاک چطور می‌گذرد؟اجازه بدین جواب این سوال رو از زبان خود فردوسی بشنویم:چو ضحاک شد بر جهان شهریار / برو سالیان انجمن شد هزارسراسر زمانه بدو گشت باز / برآمد برین روزگار درازنهان گشت کردار فرزانگان / پراگنده شد کام دیوانگانهنر خوار شد جادویی ارجمند / نهان راستی آشکارا گزندشده بر بدی دست دیوان دراز / به نیکی نرفتی سخن جز به رازخلاصه که کار به دست حاکمان دیو مسلک میفته! بدی رواج پیدا می‌کنه و نیکی ممنوع میشه و این روال تا هزار سال ادامه پیدا می‌کنه.جمشید دو دختر داشت، یکی به اسم شهرناز و دیگری ارنواز. این دو دختر پیش ضحاک آورده میشن و ضحاک با طلسم و جادو اون‌هارو به خدمت خودش در میاره و شستشوی مغزی‌شون میده و اون‌هارو دو بانوی حرمسرای خودش می‌کنه. به جز این دو دختر، کلاً هرجایی دختر زیبارویی میدید، به زور اون‌هارو به حرم‌سرای خودش میاورد و با جادو و طلسم اون‌هارو به خدمت خودش در میاورد.خلاصه، به توصیه ابلیس و دستور ضحاک قرار شده بود که هر روز دو تن کشته بشن و مغزشون خوراک مارهای ضحاک بشه. تو این بین دو نفر بودن به نا‌م‌های اَرمایل و گَرمایل که دغدغه جوان‌های ایران زمین رو داشتن. راه حلی که بهش رسیده بودن این بود که آشپزی یاد بگیرن و به آشپزخانه دربار ضحاک نفوذ کنن تا بتونن به طریقی مانع کشتن آدم‌ها بشن و بعضی جان‌هارو نجات بدن. همین کار رو هم می‌کنن و از زمانی که وارد آشپزخانه دربار میشن هر روز جان یکی از دو نفر رو نجات میدن و به جای مغز اون فردِ نجات یافته از مغز گوسفند استفاده میکنن و اینطوری میتونن از مرگ 30 نفر در ماه جلوگیری کنن. وقتی اولین نفر رو نجات میدن، بهش میگن که از شهر فرار کنه و خودش رو از دید همه مخفی نگه داره. همین منوال ادامه پیدا میکنه، تا زمانی که تعداد افراد نجات یافته به 200 نفر میرسه. وقتی 200 نفر میشن بهشون تعدادی گاو و گوسفند میدن و ازشون میخوان که برن تو صحرا و دشت و طبیعت زندگی کنن تا وقتی که زمان موعود فرا برسه. گفته میشه که این افراد به قوم کُرد ایران اشاره دارن.وقتی که 40 سال از حکومت ضحاک باقی مونده، شبی از شب‌ها، ضحاک که کنار ارنواز خوابیده بود خواب عجیب و ترسناکی می‌بینه. توی خواب می‌بینه که سه نفر، که وسطی‌شون کوتاه‌قدتره و دستش گرزی هست به شکل کله گاو به همراه دو نفر کناریش که بلندقدترن بهش حمله می‌کنن و دور گردنش طناب میندازن و کشان کشان ضحاک رو تا دل کوه دماوند میبرن. به اینجای خواب که میرسه با وحشت از خواب میپره و نعره می‌زنه. ارنواز هم که از خواب بیدار شده ضحاک رو اول دلداری میده و بعد بهش پیشنهاد میکنه که تعدادی دانشمند و منجم و معبر رو دور هم جمع کنه و خوابش رو باهاشون در میون بذاره و ازشون بخواد که معنای خوابشو بهش بگن و راه حلی پیدا کنن! ضحاک از این پیشنهاد خوشش میاد و همین کار رو هم میکنه.این افراد به دستور ضحاک دور هم جمع میشن و سه روز تمام فقط باهم دیگه حرف می‌زنن و کسی از بینشون جرئت نمی‌کنه در مورد تعبیر واقعی خواب با ضحاک حرف بزنه. تا اینکه بعد از سه روز بالاخره یکیشون عزمش رو جزم میکنه و میره پیش ضحاک و اینطور بحث رو شروع می‌کنه که: ای ضحاک! ای پادشاه! همه برای مردن به این دنیا میان! هم قبل از تو کلی پادشاهِ دیگه وجود داشتن که الان مردن و دیگه نیستن و هم بعدِ تو کلی پادشاهِ دیگه وجود خواهند داشت که اون‌ها هم روزی از دنیا خواهند رفت و دیگر زنده نخواهند بود! سرنوشت تو هم مثل بقیه پادشاهان خواهد بود! فریدون نامی خواهد آمد و تخت پادشاهی را از تو خواهد گرفت. اما نگران نباش، چرا که هنوز این فرد به دنیا نیامده است، هرچند در آینده‌ای نه چندان دور به دنیا خواهد آمد و با گرز سر گاوی شکلش به سر تو ضربه خواهد زد و تو را در بند و خوار خواهد کرد!ضحاک بعد از شنیدن این حرف‌ها به طرز احمقانه‌ای سوال می‌کنه که من چه کردم که این فرد با من دشمنی خواهد کرد؟! که در جواب بهش میگن تو پدر فریدون رو خواهی کشت و مغزش را خوراک مارهایت خواهی کرد! همچنین، فریدون دایه‌ای دارد که یک گاو است به اسم برمایه. تو حتی گاو برمایه را هم میکشی به همین دلیل هم هست که فریدون با گرزی به شکل سر گاو به سر تو ضربه خواهد زد! آیا این دلایل برای دشمنی و انتقام گرفتن از تو کافی نیست؟ ضحاک که این حرف‌هارو میشنوه از حال میره و بیهوش میشه! بعد از مدتی، به هوش میاد و دستور میده که بگردن دنبال فریدون. این بخش از داستان شباهت خیلی زیادی به داستان فرعون داره زمانی که دستور داده دنبال موسی بگردن.و اینک آفریدون ...چند سالی میگذره. فریدون به دنیا میاد. همزمان که فریدون به دنیا اومده و داره بزرگ میشه، یک جای دیگه‌ای از دنیا گاو برمایه هم به دنیا میاد. این گاو خیلی موجود عجیبیه. هر موی بدنش یک رنگ خاصه و تماماً رنگارنگه و از نظر رنگارنگ بودن به طاووس تشبیه شده. ضحاک همچنان داره دنبال فریدون میگرده و پدر فریدون که آبتین نام داره در طی یک حادثه با نیروهای ضحاک درگیر میشه و دستگیر میشه. ضحاک هم آبتین رو میکشه و مغزش رو خوراک مارهاش می‌کنه، بدون اینکه بدونه آبتین، پدر فریدون بوده.گاو برمایهمادر فریدون، فرانک، وقتی می‌بینه که چنین بلایی سر شوهرش میاد، آشفته‌حال فریدون رو در آغوش میگیره و به سمت مزرعه‌ای میره که گاو برمایه اونجا زندگی می‌کرده. فرانک، مزرعه‌دار رو ملاقات میکنه و شروع به گریه کردن می‌کنه و فریدون رو به دست مزرعه‌دار به امانت می‌سپره و ازش می‌خواد تا براش پدری کنه و از شیر گاو برمایه فریدون رو تغذیه کنه.سه سال به همین منوال میگذره و فریدون بزرگ میشه و هر روز از شیر گاو برمایه می‌نوشه. در عین حال ضحاک هم همچنان به دنبال فریدون داره همه جا رو می‌گرده. گاو برمایه کم کم معروف میشه. در این زمان فرانک که احساس خطر کرده به مزرعه برمی‌گرده فریدون رو پس می‌گیره و قصد داره که به البزر کوه بره. فرانک و فریدون به البرز کوه می‌رسن و اونجا فردی رو ملاقات می‌کنن که کلاً در گیر و دار این دنیا نیست! فرانک رو به اون فرد میگه که من ایرانی‌ام و این پسرم فریدونه که روزی آدم مهمی میشه. ازت درخواست می‌کنم که نگهبان بچه من باشی و مثل یک پدر ازش مراقبت کنی! اون فرد درخواست فرانک رو می‌پذیره و از فریدون مراقبت می‌کنه.بالاخره ضحاک از وجود گاو برمایه باخبر می‌شه و گاو رو می‌کشه. البته نه فقط گاو برمایه، بلکه همه حیوانات اون مزرعه رو از بین می‌بره. اما هرچی می‌گرده فریدون رو پیدا نمی‌کنه که نمی‌کنه. در نهایت هم کل مزرعه رو به آتیش میکشه و نابود می‌کنه.روزگار به همین منوال میگذره تا اینکه فریدون 16 ساله میشه. روزی از روزها فریدون میره نزد فرانک و ازش می‌خواد تا بهش در مورد پدرش بگه. اینکه چه اتفاقاتی افتاده و برای فریدون سوال شده که از چه نژادیه. فرانک در جواب میگه که پدرت آبتین بود. ایرانی بود و از نسل پادشاهان بود. خردمند بود و نژادش به طهمورث (پدر جمشید) می‌رسید و شوهر خوب من بود و من فقط زمانی که پدرت زنده بود معنای خوشبختی رو تجربه کردم. ضحاک برای کشتن تو آمد اما من تو رو از ضحاک مخفی کردم تا جونت رو حفظ کنم. پدرت بخاطر تو کشته شد. رو کتف‌های ضحاک دو مار روییده و دمار از روزگار مردم ایران درآورده! سر پدرت رو از مغز خالی کردن و مغز آبتین خوراک مارهای ضحاک شد. فریدون تمام این داستان‌هارو میشنوه و پر از خشم و ناراحتی و حس انتقام میشه. تصمیم می‌گیره که به جنگ با ضحاک بره اما فرانک جلوشو می‌گیره و بهش میگه که نه! الان وقت این کار نیست! صبر کن تا زمان موعود فرا برسه.منم کاوه دادخواه!ضحاک همچنان روز و شب به فریدون فکر میکرد و هر روز بیشتر از دیروز احساس خطر می‌کرد. روزی از روزها دانشمندان و حکیمان رو دور هم جمع می‌کنه و ازشون می‌پرسه که با توجه به وضعیت موجود چه کنم؟ چه خاکی بر سرم بریزم؟ دشمنی پنهانی دارم که پهلوانی است بدنژاد و شجاع. نگرانم که این دشمن خُرد برام دردسر ایجاد کنه و باعث بشه که روزگار با من بد تا کنه! من نه از این دشمن، بلکه از بدِ روزگار می‌ترسم! راه چاره چیست؟راه چاره پیشنهادی، جمع کردن استشهاد و امضا کردن اون توسط افراد زیاد و مختلف بود. حالا چه استشهادی! گواهی اینکه ضحاک پادشاه عادلی است، در این مدت هیچ ظلم نکرده، هیچ آدم نکشته، هیچ ستم نکرده و همواره عادل و درستکار و بخشنده بوده و عدالت برقرار کرده! فرض بر این بود که اگر تعداد افراد زیادی این گواهی‌نامه رو امضا کنن، ضحاک از گزند فریدون در امان خواهد موند! همه از ترس موافقت می‌کنن و امضا کردن استشهاد شروع میشه. یکی از ترس جان، یکی از ترس نان، یکی از ترس موقعیت، دیگری از ترس خانواده. دونه دونه ترس‌ها وجود آدمی رو فرا می‌گرفتن و باعث می‌شدن حتی با دیدن ظلم آشکارا، چشم بر حقیقت ببندن و امضاها یکی پس از دیگری بر پایین گواهی‌نامه نشست.در این میان، ناگهان از دربار صدای فریاد کسی شنیده شد. در باز شد و نزد ضحاک آوردنش و ضحاک رو به او پرسید که چه خبره؟ تو چه کسی هستی؟ چه اتفاقی افتاده؟ فرد رو کرد به ضحاک و فریاد کشید: که شاها منم کاوه دادخواه! به من ظلم شده! از توی ضحاک به من ستم وارد شده! من آهنگری بیش نیستم و به هیچکس تا به حال ظلم نکردم! اما توی شاه اژدها پیکر به من ظلم کردی! حالا یک نفر قضاوت کند که چه بر سر من آمده!کاوه چند فرزند داشت و تمامی فرزندانش کشته شده و مغزشان خوراک مارهای ضحاک شده بودند و این بار نوبت فرزند آخر بود که جانش پیشکش ضحاک شود که همین باعث لبریز شدن صبر کاوه و دادخواهی‌اش شده بود.ضحاک که این حرف‌هارو از کاوه می‌شنوه و از طرفی در حال جمع کردن امضا برای استشهاد بوده، یکهو رنگ عوض می‌کنه! که آره، راست میگه! حق داره! بچه‌ش رو بهش برگردونید! حالا می‌بینی کاوه که من چه پادشاه عادلی هستم؟ تو هم بیا و این نامه رو امضا کن!امضای کاوه برای ضحاک خیلی مهم بود، چون نماینده مردم عادی به حساب میومد و امضای کاوه معادل بود با مقبولیت ضحاک در میان مردم عادی جامعه.کاوه نامه رو می‌خونه. رو به تمام درباریان و کسانی که نامه رو امضا کردن و بهشون میگه آیا شما همکار دیو شدین؟ دیگر از خداوند جهانیان نمی‌ترسید؟ همه می‌خواهید دوزخی بشید؟ من هیچ ترسی از پادشاه ندارم و این نامه رو امضا نمی‌کنم! کاوه فریاد کشان و در حالیکه از خشم می‌لرزه نامه رو پاره می‌کنه، تیکه‌هاشو زیر پاش میندازه و از روش رد میشه.کاوه به همراه پسرش از دربار خارج میشه و همینطور که داره فریاد کشان حرکت می‌کنه راهی کوچه و بازار میشه و توجه مردم رو یکی پس از دیگری به خودش جلب می‌کنه. همه مردم دورش جمع میشن و می‌خوان بدونن که چه اتفاقی افتاده. کاوه که صبرش تموم شده همه مردم رو به داد و عدالت‌خواهی و اعتراض دعوت می‌کنه. همون جا و در همون لحظه تکه چرم پشت پاش رو باز می‌کنه، سر نیزه میزنه و هیاهویی به پا می‌کنه:کسی کاو هوای فریدون کند / دل از بند ضحاک بیرون کندبپویید کاین مهتر آهرمنست / جهان آفرین را به دل دشمن استبدان بی‌بها ناسزاوار پوست / پدید آمد آوای دشمن ز دوستهمی رفت پیش اندرون مردگرد / جهانی برو انجمن شد نه خردبه این ترتیب همه مردم رو دعوت به جنبش می‌کنه و میگه که بله! پادشاه سرزمین ما اهریمن است. بجنبید، بپاخیزید! خلاصه، تعداد خیلی خیلی زیادی از مردم دور کاوه جمع میشن و از اونجایی که کاوه خودش می‌دونست فریدون کجاست به همراه سیل جمعیت به سراغ فریدون می‌رن. فریدون که چرم سر نیزه رو می‌بینه اون رو کمی با زر و گوهر و رنگ‌های سرخ و زرد و بنفش آراسته‌تر می‌کنه و این میشه که درفش (پرچم) کاویانی که نماد ایران و ایران زمین بوده به وجود میاد.درفش کاویانیفریدون وقتی این سیل جمعیت کنونی و گروه دیگه‌ای از افراد که توسط اَرمایل و گَرمایل جان‌هاشون هر روز از دست ضحاک نجات داده میشد رو می‌بینه، دیگه متوجه میشه که زمان موعود فرا رسیده و دیگه دوره ضحاک تموم شده. اولین کاری که می‌کنه اینکه میره پیش فرانک، مادرش، و ازش می‌خواد که براش دعا کنه که تو جنگ با ضحاک پیروز شه. فرانک در عین حال که داره اشک میریزه برای پیروزی فرزندش دعا می‌کنه.بعد به همراه دو برادر بزرگ‌ترِ دیگرش، به نام‌های کیانوش و پُرمایه که از نظر جثه از فریدون درشت‌اندام‌تر و قدبلندتر بودن راهی دربار ضحاک میشن. در این راه، اول فریدون تعدادی آهنگر چیره‌دست و ماهر رو فرا می‌خونه و ازشون می‌خواد که براش یک گرز آهنین با طرحی که خودش قراره بکشه درست کنن. اون‌ها هم گرز رو که سری به شکل گاومیش داشته رو براش درست می‌کنن و فریدون وقتی گرز رو ازشون می‌گیره بهشون قول میده که اگر ضحاک رو نابود کنه بهشون جاه و مقام بده.بِبُردند ضحاک را بسته خوارسه برادر به همراه جمعیت به سمت دربار ضحاک راهی میشن. وقتی که به اروندرود می‌رسن، نگهبانان بهشون اجازه نمیدن که از روی پل رد بشن، برای همین عرض کل اروندرود رو شنا می‌کنن و ازش می‌گذرن. به کاخ ضحاک می‌رسن. ضحاک یک نماد اهریمنی بر سر در کاخ آویزون کرده. فریدون در قدم اول اون نماد رو به پایین می‌کشه. وقتی این کارو می‌کنه نگهبانان کاخ که یه مشت اهریمن و شیطان صفت بودن همگی به سمت فریدون حمله‌ور میشن که فریدون با گرز آهنینش همه رو تار و مار می‌کنه. بعد وارد دربار میشه و روی تخت جای ضحاک می‌شینه. ضحاک در حال حاضر تو کاخ نیست و در ادامه می‌بینیم که کجاست و چطور خبردار میشه و چه می‌کنه.بعد، فریدون میره سراغ حرمسرای ضحاک، تمام دختران رو از جادو و طلسم ضحاک پاکیزه می‌کنه و همه رو به خانه‌هاشون بر میگردونه. دو دختر جمشید، شهرناز و ارنواز هم از طلسم ضحاک نجات پیدا می‌کنن و وقتی که متوجه میشن چه اتفاقی افتاده شروع به گریه کردن می‌کنن. فریدون هم داستان خودش رو تعریف میکنه و از دو دختر درخواست می‌کنه که جای ضحاک رو به فریدون بگن تا بتونه دستگیرش کنه. مشخص میشه که ضحاک به هند رفته.یکی از افراد نزدیکِ ضحاک به نام کُندرو (اسمش کندرو بوده چون در مقابل ظلم هیچ کاری نمی‌کرده و آرام گام برمی‌داشته) که وظیفه حفاظت از گنج‌ها و دارایی‌های ضحاک رو داشته به کاخ میاد و می‌بینه که فریدون روی تخت نشسته، یه سمتش شهرناز حضور داره و یه سمت دیگه‌ش ارنواز و کل کاخ پر شده از سینه چاکان فریدون. با بررسی وضعیت صلاح می‌بینه که بدون اینکه سوالی بپرسه یا اعتراضی کنه به درگاه فریدون بره و جلوش تعظیم کنه و خودشو بعنوان وزیر دربار به فریدون بشناسونه. فریدون از کندرو می‌خواد تا یک جشن حسابی برای همگی و بخاطر به تخت نشستنش برپا کنه و تمام دستورات فریدون بدون هیچ کم و کاستی انجام میشه.بعد از برگزاری جشن، کندرو بی سر و صدا از کاخ خارج میشه و خودشو به ضحاک می‌رسونه و بهش میگه که ای ضحاک کجایی که تاج و تختت رو بردند! توصیف می‌کنه که بله سه نفر هستن دو تاشون قدبلندتر و یکی قدکوتاه‌تر که گرزی به شکل صورت گاو و خیلی بزرگ همراه خودش داره. ضحاک که از روی توضیحات متوجه تعبیر شدن خوابش شده، با یک حالت بی‌اهمیتی پاسخ میده که میهمان هستن! به زودی می‌روند!کندرو که می‌بینه حرفاش تاثیر آنچنانی نداشته، حرف از شهرناز و ارنواز به میون میاره که بله یکی از دختران سمت راست او و دیگری سمت چپش نشسته است! وقتی حرف از دختران جمشید میشه ضحاک عصبی میشه و خونش به جوش میاد. از اونجایی که نمی‌تونه هیچ کاری کنه تمام عصبانیتش رو بر سر کندرو خالی میکنه و بهش میگه که از این لحظه به بعد تو عزل شدی و هیچ گونه مقام و منصبی در دستگاه من نداری! کندرو هم با تلخی پاسخ میده که اصلاً مگه دستگاه و تخت و تاجی برات مونده که بخوای من رو ازش عزل کنی؟! اینجاست که ضحاک تصمیم می‌گیره به فریدون حمله کنه تاج و تختش رو پس بگیره. اگرچه که ضحاک ته دلش به خوبی آگاه بود که خوابش قراره به حقیقت بپیونده اما غرور و تکبر، مخصوصاً در آخرین روزهای در اوج بودن، بهش اجازه پذیرش نمیداد.ضحاک سپاهی رو از یارانش جمع می‌کنه و به طرف کاخ فریدون میره اما نه از راه‌های اصلی، بلکه از راه‌های فرعی و مخفیانه. حتی از طریق راه‌های مخفی هم ضحاک و یارانش متوجه شدن که چطور هواداران فریدون کل کاخ رو پر کردن. در اینجا به دلایل مختلف، مثل ترس یا همرنگ جماعت شدن یا هر مورد دیگه‌ای عده‌ای از سپاهیان ضحاک ازش روی گردان میشن و به یاران فریدون می‌پیوندن و ضحاک رو تنها میذارن. در نهایت، ضحاک با یک کلاه‌خود و زره و پوشش چهره وارد کاخ میشه.وقتی ضحاک وارد کاخ میشه، می‌بینه که شهرناز در حال گفتگو با فریدون و در حال لعن و نفرین ضحاکه. بعد از دیدن این صحنه و فهمیدن این واقعیت که طلسم از بین رفته، انقدر خشمگین میشه که خونش به جوش میاد و دیگه نمی‌تونه تحمل کنه و به قصد کشتِ شهرناز و ارنواز خنجرش رو بیرون می‌کشه. به محض اینکه ضحاک با خنجر به این دو دختر نزدیک میشه فریدون متوجه میشه و با گرز ضربه‌ای چنان به سر ضحاک وارد می‌کنه که کلاه خودش خرد میشه. در این حین فریدون تصمیم می‌گیره تا ضربه دوم رو به سر ضحاک وارد نکنه و اون رو نکشه. در یک چشم بهم زدنی دست و پای ضحاک رو می‌بنده و اون رو کشون کشون به غاری در دماوندکوه می‌بره و به بند می‌کشه. بعد از این کار فریدون رسماً اعلام می‌کنه که جنگ با ضحاک به پایان رسید و دوران آزادی فرا رسیده و دیگر نیازی به جنگیدن نیست. حالا من رسماً به تخت می‌نشینم و پادشاه ایران زمین می‌شوم.ضحاک تا سال‌های سال در بند و در دل کوه دماوند زندانی می‌مونه، تا اینکه روزی می‌رسه که بندها از فرط پوسیدگی پاره میشن و ضحاک آزاد میشه. ضحاک که پر از حس خشم و تنفر و انتقام و کینه‌ست به جامعه انسانی وارد میشه و خون به پا می‌کنه. در این زمان کیخسرو و یارانش به نحوی وارد ماجرا میشن و ضحاک رو برای همیشه از بین می‌برند. اینجاست که داستان ضحاک به پایان می‌رسه.بزرگی که فرجام او تیرگی‌ست / بر آن مهتری بر بباید گریستسپهر بلندار کشد زین تو / سرانجام خشتست بالین توامیدوارم که از این پست لذت برده باشید! برای من، به شخصه خوندن شاهنامه و دونستن در مورد داستان‌های اسطوره‌ای و اساطیری ایرانِ کهن به شدت لذت بخشه. من دو بار این داستان رو با روایت جناب رشید کاکاوند گوش کردم و واقعاً بیانشون اون‌قدر شیوا و شیرینه که آدم با اینکه داستان رو می‌دونه، اما باز هم دلش می‌خواد دوباره و چندباره بشنوه!لازم به ذکره محتوایی که من نوشتم صرفاً برگرفته از روایتی بوده که جناب کاکاوند از این داستان داشتن و به این معنی نیست که سخنان یا روایت ایشون رو عیناً کپی کرده باشم. سعی کردم اصل داستان رو با زبان خودم روایت کنم و این پست ابداً جایگزین ویدیوهای ایشون نمی‌تونه باشه؛ اما منبعی که استفاده کردم، ویدیوهای ایشون از پلی‌لیست شاهنامه بوده.</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Sat, 21 Feb 2026 21:47:29 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره NLP استنفورد (CS224N) - جلسه چهارم - Syntactic Structure &amp; Dependency Parsing</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-nlp-%D8%A7%D8%B3%D8%AA%D9%86%D9%81%D9%88%D8%B1%D8%AF-cs224n-%D8%AC%D9%84%D8%B3%D9%87-%DA%86%D9%87%D8%A7%D8%B1%D9%85-syntactic-structure-dependency-parsing-wgpbfifdyn4m</link>
                <description>منبع اصلی این پست، دوره NLP استنفورد (CS224N) از کانال یوتیوب Stanford Online است. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به صورت کاملاً رایگان به اشتراک بذارم. کل ویدیوها 23 تاست که سعی می‌کنم ماهی حداکثر یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم. لازم به ذکره که برای فهم بهتر مباحث این دوره، دونستن مفاهیم پایه‌ای در یادگیری ماشین، جبر خطی و آمار و احتمال پیشنهاد می‌شه.تو این جلسه قراره چی یاد بگیریم؟این جلسه بر خلاف جلسات گذشته که بیشتر از جنس ریاضی و مفاهیم پایه‌ای یادگیری ماشین و شبکه‌های عصبی بود، از جنس مباحث linguistic و زبانی خواهد بود. به صورت خاص قراره در مورد ساختار نحوی و تحلیل وابستگی صحبت کنیم.تو این جلسه می‌بینیم که آدما چطور در مورد ساختار یک جمله فکر می‌کنن و چطور زبان انسان معنا و مفهوم رو منتقل می‌کنه.می‌دونیم که جملات از کنار هم قرار گرفتن کلمات (البته نه به صورت رندوم، بلکه به صورت معنادار) ساخته میشن و معنای هر کلمه نقش مهمی تو رسوندن معنای کل جمله داره. کوچیک‌ترین ساختار قابل فهمی که میشه یک جمله رو بهش شکست کلمه‌ست. تو این مرحله می‌تونیم بگیم که هر کلمه چه نقشی رو در جمله ایفا می‌کنه. مثلاً عبارت &quot;گربه گوگولیِ کنارِ در&quot; رو در نظر بگیرید. تو این عبارت کلمه‌ای مثل &quot;گربه&quot; و &quot;در&quot; اسمه، یا کلمه &quot;گوگولی&quot; صفته، یا کلمه &quot;کنار&quot; تو این جمله نقش حرف اضافه داره.اگه یه سطح از کلمه بالاتر بیایم و چند تا کلمه رو کنار هم قرار بدیم می‌تونیم عبارت بسازیم. مثلاً &quot;گربه‌ گوگولی&quot; یا &quot;کنار در&quot; خودشون به تنهایی یک عبارت هستن. حتی می‌تونیم عبارت‌های کوچیک کوچیک رو باهم ترکیب کنیم و عبارات بزرگ‌تری رو بسازیم. مثل همین عبارت &quot;گربه گوگولیِ کنارِ در&quot; که یکم بالاتر دیدیم.این ساختار سلسله مراتبی‌ زبانی که میاد از کلمه به عبارت و از عبارت به عبارت‌های بزرگ‌تر می‌رسه رو میشه با Context-Free Grammar (CFG) مدل کرد.Context-Free Grammar (CFG) چیه؟قرار نیست وارد جزییات CFG بشیم، فقط یک مثال ازش می‌بینیم که بفهمیم کلیاتش به چه صورته.قضیه از این قراره که ما یک سری قانون و گرامر و یک سری lexicon یا واژگان برای عبارات تعریف می‌کنیم. مثلاً عبارت the cat شامل دو واژه the و cat هست از طرفی یک noun phrase عه که تشکیل شده از دو واژه یکی با نقش determiner و دیگری با نقش noun. پس برای گرامر و واژگان به ترتیب داریم:Rules:NP -&gt; Det NLexicon:N -&gt; catDet -&gt; theحالا اگه عبارت a dog رو هم اضافه کنیم گرامر که ثابته ولی واژگانمون به این صورت آپدیت میشه:Rules:NP -&gt; Det NLexicon:N -&gt; cat, dogDet -&gt; the, aحالا اگه گرامرهای زیر رو به قوانینمون اضافه کنیم:NP -&gt; Det (Adj)* N (PP)PP -&gt; P NPبه کمکش می‌تونیم عباراتی مثل a large barking dog on the table رو هم بسازیم. منظور از PP در واقع prepositional phrase هست، عباراتی مثل on the table یا by the door از این جنس هستن (حرف اضافه + noun phrase). پرانتزها در گرامر نشون میدن که اون نقش در عبارت میتونه باشه یا نباشه و علامت ستاره به این معنیه که صفر بار یا بیشتر اون عبارت تکرار بشه. مثلاً گرامری که بالا تعریف کردیم هم می‌تونه a dog on the table رو ساپورت کنه، هم a large brown barking dog رو هم حتی a dog رو.حالا اگه بخوایم دو تا عبارت فعل دار talk to و walked behind رو اضافه کنیم، باید قوانین رو هم آپدیت کنیم:VP -&gt; V PPو اگه بخوایم جمله‌ای مثل the cat walked behind the dog رو ساپورت کنیم برای گرامر داریم:S -&gt; NP VPپس گرامر و واژگانی که برای عبارت‌ها و ساختارهایی که تا اینجا بررسی کردیم به صورت زیر در میاد:Rules:NP -&gt; Det (Adj)* N (PP)PP -&gt; P NPVP -&gt; V PPS -&gt; NP VPLexicon:N -&gt; cat, dogDet -&gt; the, aP -&gt; in, on, byV -&gt; talk, walkedعبارات بالا از اسلاید زیر انتخاب شدن:بررسی دیدگاه Dependency Structureبه صورت کلی، ساختار وابستگی نشون میده که کدوم واژه‌ها به کدوم واژه‌های دیگه وابستگی دارن. به عبارتی دیگه، یعنی اون‌ وا‌ژه‌هارو توصیف می‌کنن، بهشون متصلن، یا جزءهای معنایی اون‌ها هستن.برای مثال اسلاید زیر رو در نظر بگیرید. مثلاً تو عبارت large crate واژه large توصیف‌کننده واژه crate عه. یا واژه the توصیف‌کننده crate عه. تو این مثال واژه look ریشه یا head جمله‌ست. به این دلیل که تمامی کلمات به یه طریقی به crate وابسته‌ن و خود واژه crate به look وابسته‌ست.چی شد که اصلاً این دیدگاه‌های زبانی شکل گرفتن؟در یک کلمه، نیاز داشتیم درک و فهمی که خودمون بعنوان انسان از زبان داریم رو به نحوی مدل کنیم (مدل‌های زبانی بسازیم) تا در نهایت کامپیوترها بتونن زبان ما رو بفهمن.بعضی ساختارها در زبان انسان‌ وجود داره که پیچیدگی خاصی دارن، شاید مغز انسان به صورت خودکار بتونه این پیچیدگی‌هارو تشخیص بده و اصلاً حتی بهشون فکر هم نکنه، ولی درکشون برای سیستم‌ها و کامپیوترها دشواره. در ادامه قراره تعدادی از این ابهامات و پیچیدگی‌هارو بررسی کنیم که از نظر نحوی و صرف کاملاً درست هستن، اما از نظر معنایی ممکنه نادرست باشن.جمله زیر رو در نظر بگیرید:San Jose cops kill man with a knifeیک معنایی نه چندان صحیح که میشه از این عبارت داشت به این صورته که San Jose cops فاعل و کننده کار باشه و man رو با knife کشته باشه. ساختار وابستگی تو این حالت به صورت زیر در میاد:معنای صحیح‌تر این عبارت به این صورته که San Jose cops همچنان فاعل و کننده‌ی کاره و یک نفر رو هم کشته، اما کسی که کشته مردی بوده که چاقو داشته، نه اینکه San Jose cops با چاقو مرد رو کشته باشه. یعنی عبارت with knife توصیف کننده‌ی کلمه man به حساب میاد. به صورت صحیح‌تر noun modifier برای man به حساب میاد.مثال دیگه‌ای رو ببینیم:Scientists count whales from spaceاین جمله هم می‌تونه ابهام آمیز باشه. معنای ناصحیحش به این صورته که دانشمندان نهنگ‌هایی که از فضا اومدن رو میشمرن و معنای صحیحش به این صورته که دانشمندان نهنگ‌هارو از فضا و مثلاً به کمک ماهواره‌ها میشمرن.این مثال‌ها و ابهاماتی که بررسی کردیم به صورت خاص در زبان انگلیسی وجود داره، شاید تو زبان چینی یا ژاپنی دقیقاً چنین ابهامی از نظر زبانی و ساختار زبانی نداشته باشیم، ولی هر زبان انسانی، قطعاً ساختارهای ابهام‌گونه داره. منظور ساختارهایی هست که از نظر صرف و نحو کاملاً صحیحن، اما از نظر معنایی ایراد دارن.حتی عباراتی وجود دارن که میشه براشون چندین ساختار وابستگی و تحلیل نحوی مختلف داشت. مثلاً عبارت زیر رو در نظر بگیرید:The board approved [its acquisition] [by Royal Trustco Ltd.] [of Toronto] [for $27 a share] [at its monthly meeting].تو این عبارت چهارتا prepositional phrases داریم و هر کدوم از این گروه‌ها ممکنه به اجزای مختلفی در جمله وابسته باشن. یکی از روش‌ها برای نشون دادن نحوه ارتباط و اتصال بینشون اینکه به صورت زیر عمل کنیم:از اونجایی که هر PP می‌تونه به اجزای مختلفی وصل بشه تعداد ترکیب‌های ممکن برای تفسیر جمله هم خیلی زیاد میشه. منظور از خیلی زیاد واقعاً خیلی زیاده. به صورت نمایی زیاد میشه. زبان‌شناس‌ها به این نتیجه رسیدن که این تعداد از دنباله اعداد کاتالان پیروی می‌کنه. در نتیجه، تحلیل نحوی (parsing) در زبان طبیعی (زبان انسان) از نظر محاسباتی واقعاً پیچیده است.خبر بد اینه که در عمل هیچ راهی وجود نداره تا این ابهام‌ها رو به‌طور کامل برطرف کنیم. مثلاً نمی‌تونیم زبان طبیعی رو شبیه زبان‌های برنامه‌نویسی طراحی کنیم، چون زبان‌های برنامه‌نویسی عمداً طوری ساخته شدن که چنین ساختارهای ابهام‌آمیزی در اون‌ها وجود نداشته باشه و همیشه فقط یک تحلیل نحوی ممکن باشه. به خاطر همینه که پردازش و درک زبان طبیعی برای ماشین‌ها چالش‌برانگیزه، چون باید از بین چندین تفسیر ممکن یکی رو انتخاب کنن.بریم مثال دیگه‌ای رو با ابهام دیگه‌ای بررسی کنیم.جمله اسلاید زیر رو در نظر بگیرید. دو برداشت متفاوت میشه از این جمله داشت. معنای ناصحیح اینکه انگار دو نفر به هیئت مدیره منصوب شده باشن. در حالیکه معنای صحیح به این صورته که یک نفر که دو عنوان مختلف داشته به عنوان هیئت مدیره منصوب شده.یه مثال دیگه که باز هم از تیتر‌های روزنامه‌های واقعی انتخاب شده رو بررسی کنیم.Doctor: No heart, cognitive issuesیک معنی می‌تونه این باشه که مشکل قلبی وجود نداره، تنها مشکلی که وجود داره مشکلات cognitive (شناختی) است. معنی دیگه می‌تونه این باشه که هیچ‌گونه مشکل قلبی و شناختی وجود نداره. تو این حالت انقدر ابهام زیاده که حتی نمیشه تشخیص داد کدوم معنی صحیح‌تره.ابهام دیگه‌ای در زبان انگلیسی می‌تونه به وجود بیاد وقتی که چند صفت پشت سر هم قرار می‌گیرن. مثلاً عبارت زیر رو در نظر بگیرید:Students get first hand job experienceمعنای صحیح به این صورته که first و hand رو باهم در نظر بگیریم و معنای جمله بشه دانشجویان تجربه‌ی کاریِ دست‌اول (یا مستقیم) به‌دست میارن. معنای ناصحیح وقتی پیش میاد که hand و job باهم در نظر گرفته بشن (!) و معنای جمله بشه دانشجویان اولین تجربه‌ی چیز به دست میارن! حالا کی می‌دونه تو مغز نویسنده این مقاله چی میگذشته، شاید واقعاً منظورش مورد دوم بوده!یک مثال دیگه رو هم ببینیم که باز هم از یک تیتر خبری واقعی انتخاب شده!Mutilated body washes up on Rio beach to be used for Olympics beach volleyballاز نظر نحوی میشه دو حالت مختلف برای جمله‌ای که اومده در نظر گرفت. یک بار به این صورت که عبارت to be used به فعل washes up بستگی داشته باشه، یک بار هم به این صورت که عبارت to be used به اسم Rio beach بستگی داشته باشه. که هیچ ایرادی هم بهشون وارد نیست، اما از نظر معنایی بینشون زمین تا آسمون فرق هست. معنای نادرست عبارت به صورت میشه که بدن تکه‌تکه‌شده‌ای در ساحل ریو پیدا شد تا برای والیبال ساحلی المپیک استفاده شود. در حالیکه معنای درست جمله به این صورته که بدن تکه‌تکه‌شده‌ای در ساحل ریو پیدا شد، همان ساحلی که قراره برای والیبال ساحلی المپیک استفاده شود.یک مثال دیگه ببینیم که چطور با استفاده از dependency parsing (تجزیه نحوی) می‌شه بدون نیاز به درک معنای کلی متن، و فقط از روابط نحوی بین کلمات روابط معنایی مثل تعامل بین پروتئین‌ها رو استخراج کرد. جمله‌ای که آورده شده اینه:The results demonstrated that KaiC rhythmically interacts with SasA, KaiA and KaiB.به کمک تجزیه نحوی میشه نشون داد که KaiC فاعل interacts هست و SasA مفعول غیر مستقیم interacts که با حرف اضافه with اومده. همچنین اینکه چطور حرف ربط and دیگر مفعول‌ها رو مثل KaiA , KaiB بهم متصل کرده.در زبان شناسی فرض dependency syntax اینکه ساختار نحوی جملات صرفاً از روابط بین کلمات تشکیل شده. یک کلمه head در نظر گرفته میشه، و کلمه بعدی وابسته به head و با یک پیکان از head به کلمه وابسته بهش این ارتباط نمایش داده میشه. در واقع نمایش جملات در نهایت به صورت یک درخت بین واژه‌ها در میاد. منظور از درخت اینکه حلقه نداریم و برای هر جمله فقط یک head یا کلمه اصلی وجود داره که بعنوان ریشه درخت در نظر گرفته میشه.تاریخچه‌ی دستور وابستگی (Dependency Grammar) و تحلیل وابستگی (Dependency Parsing) به خیلی وقت پیش بر می‌گرده. اولین بار این ایده 5 قرن قبل از میلاد توسط Panini که یک زبان شناس هندی بود مطرح شد.نسخه‌ی مدرن دستور وابستگی به یک زبان‌شناس فرانسوی به اسم لوسین تسنی‌یر (Lucien Tesnière) نسبت داده میشه که در سال 1959 مطرح شد. این نوع دستور در کشورهایی مثل روسیه و چین خیلی محبوب شد، چون برای زبان‌هایی که ترتیب کلمات درشون آزادتره (مثل روسی یا حتی فارسی) خیلی بهتر جواب می‌ده.دو مدل برای مشخص کردن کلمات ریشه یا head و کلمات وابسته بهشون وجود داره. در مدل اول که یکم بالاتر هم مشخص کردیم یک فلش از سمت کلمه head به کلمه وابسته بهش رسم میشه. در مدل دوم هر دو طرف پیکان فلش داره. مدل اول مرسوم‌تره و ازش یک مثال هم در اسلاید پایین آورده شده.از خیلی سال‌ها قبل زبان شناسان و متخصصان NLP شروع کردن به برچسب زدن نقش جملات مختلف در جملات انگلیسی و یه پیکره خیلی بزرگ رو شامل میلیون‌ها کلمه درست کردن که بهشون treebank گفته میشه. یه قسمت خیلی کوچیک ازش بعنوان مثال تو اسلاید پایین آورده شده. تو هر جمله کلمه head با رنگ سبز و بقیه کلمات وابسته با رنگ آبی مشخص شدن. اینکه هر کلمه چه نقشی داره یا با چه رابطه‌ای به کلمات دیگه متصل میشه هم مشخص شده.ممکنه سوال پیش بیاد که چرا اصلاً نیازه این همه وقت و انرژی بذاریم و به صورت دستی این treebankها رو بسازیم؟ اصلاً چه مزایایی برامون دارن؟اول اینکه وقتی یک بار ساخته بشن، می‌تونیم بارها و بارها برای کاربردهای متفاوت ازشون استفاده کنیم. دوم اینکه به کمک treebank‌ها (که شامل میلیون‌ها کلمه و جمله هستن) مثال‌های واقعی و بیشتری داریم که می‌تونیم تو موارد مختلف ازشون استفاده کنیم. سوم اینکه منبع خیلی مهمی برای اطلاعات آماری ان. مثلاً به کمکشون می‌تونیم بفهمیم که بعد از هر کلمه، کلمه بعدی با چه احتمالی ممکنه بیاد و به صورت کلی الگوهای توزیع واژه‌هارو تحلیل کنیم. و در نهایت می‌تونیم ازشون برای ارزیابی سیستم‌های NLP استفاده کنیم. مثلاً مدل‌های زبانی یا parser‌های مختلف رو باهاشون بسنجیم و خروجی‌شونو مقایسه کنیم.اگه بخوایم یه parser یا تحلیل‌گر نحوی بسازیم با این هدف که به کامپیوترها کلمات head و وابسته‌هاشونو بشناسونیم چجوری عمل می‌کنیم؟ به عبارتی دیگه، برای ساختن parser از چه نشانه‌هایی در جمله استفاده می‌کنیم؟ در واقع چهار مورد هست که parser‌ها از اون‌ها برای شناسایی کلمات head و وابسته‌‌هاشون استفاده می‌کنن:مورد اول - وابستگی دو کلمه‌ای: یک سری کلمات هستن که معمولاً باهم دیگه میان و بعد از دیدن تعداد زیادی نمونه و جمله قابل تشخیص میشن. مثلاً دو کلمه &quot;discussion&quot; و &quot;issues&quot; اینطورن که بعنوان مثال تو اسلاید پایین آورده شده.مورد دوم - فاصله‌ی وابستگی: هرچی فاصله بین کلمات کمتر باشه معمولاً وابستگی بینشون بیشتره. مثلاً تو زبان انگلیسی فاعل بعد از فعل میاد و از این نزدیکی بین دو کلمات میشه وابستگی بینشون رو تشخیص داد.مورد سوم - intervening material یا به فارسی مواد بینابینی: به این معنیه که کلماتی که بهم وابسته هستن معمولاً از روی فعل‌های دیگه یا punctuationها رد نمیشن. به عبارتی دیگه، اگه بین دو تا کلمه یک فعل یا یک علامت نگارشی مثل ویرگول قرار بگیره، احتمال اینکه اون دو کلمه بهم وابستگی داشته باشن کمتره.مورد چهارم - ظرفیت نحوی head: به این معنیه که هر head می‌تونه تعداد محدودی کلمات وابسته در سمت چپ یا راستش داشته باشه. مثلاً یک فعل نمی‌تونه چند تا فاعل داشته باشه! معمولاً فقط یک فاعل داره.یک مثال رو بررسی کنیم. تو جمله‌ی زیر:I&#039;ll give a talk tomorrow on neural networksفعل give ریشه یا head جمله‌ست و بقیه کلمات به نحوی بهش وابستگی دارن. مثلاً کلمه talk به give وابسته‌ست یا کلمه I&#039;ll هم به give وابسته‌ست. کلمه tomorrow هم به کلمه give وابستگی داره. حالا کلمه talk خودش head کلمات a و networks به حساب میاد و کلمه network هم head کلمات on و neural حساب میشه.قبل‌تر گفتیم که روابط بین کلمات به صورت یک درخت نمایش داده میشه که گرافی هست که دور نداره. به این معنی که دو تا کلمه نمی‌تونن هم head باشن هم وابسته باشن. مثلاً تو ترکیب neural network که تو جمله پایین اومده network ریشه کلمه‌ست و neural بهش وابسته‌ست. این رابطه نمی‌تونه به صورت برعکس هم برقرار باشه. همواره فقط یکی از کلمات head به حساب میاد.هر جمله همواره فقط یک root داره. نمی‌تونیم جمله‌ای داشته باشیم که شامل بیشتر از rootباشه.حالا سوال ممکنه پیش بیاد اگه این فلش‌هایی که تو جملات روابط رو مشخص می‌کنه از هم رد بشن ایراد داره یا نداره؟ مثلاً تو جمله‌ای که مثال زدیم این اتفاق یک بار افتاده و تو اسلاید پایین هم مشخصه. جواب اینکه اگه از رو هم رد نشن جمله‌ای که داریم projective به حساب میاد و ساده‌تر و منظم‌تره. اگر رد بشن جمله non-projective به حساب میاد و وابستگی‌ها بیشتر در هم تنیده شدن.گفتیم اگر پیکان‌هایی که روابط بین کلمات رو در جملات مشخص می‌کنن از روی هم رد بشن یعنی جمله non-projective عه و اگر از روی هم رد نشن، جمله projective عه. به عبارتی دیگه، این ساختارها برای نشون دادن عناصر جابجا شده (displaced constituents) یا وابستگی‌های از راه دور (long-distance dependencies) در جمله ضروری هستن. مثلاً تو مثال اسلاید پایین، who و from وابستگی از راه دور دارن.روش‌های مختلفی برای ساختن یک parser وجود داره. منتها در ادامه فقط یک مورد که به صورت حریصانه عمل می‌کنه رو قراره با جزییات بررسی کنیم و با بقیه روش‌ها خیلی کاری نداریم.تجزیه‌گر Greedy Transition-Basedیکی از روش‌ها برای تحلیل نحوی (پارسر - parser) جمله (تشخیص اینکه کدوم کلمه‌ها به کدوم کلمه‌ها وابستگی دارن) استفاده از تجزیه‌گر Transition-Based است که به صورت حریصانه عمل می‌کنه. به صورت کلی، این روش دنبال اینکه هر دفعه برای هر کلمه بهترین ارتباط وابستگی رو در همون لحظه بسازه.از چهار جز اصلی ساخته شده:یک - استک که با σ نشون داده میشه و یه جور حافظه‌ست و برای نگه داشتن کلمات در حال بررسی ازش استفاده میشه. اول کار فقط شامل کلمه‌ ROOT هست.دو - بافر که با β نشون داده میشه و شامل تمام کلمات پردازش نشده‌ست. اول کار تمام کلمات رو در بر می‌گیره.سه - مجموعه‌ای از وابستگی‌ها که با A نشون داده میشه و اول کاری خالیه. در واقع روابط رو در خودش نگه می‌داره.چهار - یک مجموعه از اکشن‌هایی که تو هر مرحله میشه انجام داد. مثل shift یا کاهش (reduce). در ادامه بیشتر باهاشون آشنا میشیم.همه چیزایی که بالاتر گفتیم به صورت نمادین تو اسلاید پایین نشون داده شده. اول کار استکمون فقط حاوی ROOT هست و بافر هم شامل تمام کلمات متن. از اونجایی که هنوز هیچ رابطه‌ای رو مشخص نکردیم، مجموعه A هم خالیه. سه تا اکشن داریم، که هر دفعه برای هر کلمه یکی از اکشن‌ها انتخاب میشن:اکشن اول - shift که میاد کلمه بعدی رو داخل استک می‌ذاره.اکشن دوم - کاهش left-arc که میاد کلمه چپی رو وابسته کلمه سمت راستی می‌کنه.اکشن سوم -  کاهش right-arc که میاد کلمه راستی رو وابسته کلمه سمت چپی می‌کنه.اکشن کاهش هر دفعه میاد دو تا کلمه رو از استک بر می‌داره و یکی‌شو head در نظر می‌گیره و یکی دیگه رو وابسته head.بعد اینکه اکشن کاهش انجام شد و رابطه وابستگی بین دو کلمه در اومد، کلمه head از استک حذف میشه و رابطه وابستگی داخل مجموعه A قرار می‌گیره.بریم یک مثال ببینیم که این روش چطور در عمل کار می‌کنه. جمله‌ای که داریم I ate fish هست. اکشن اولی که استفاده می‌کنیم شیفته. اولین کلمه یعنی I رو به استک اضافه می‌کنیم. اکشن دوم هم باز شیفته و کلمه دوم هم به استک اضافه میشه.اکشن سوم کاهش left-arc هست و باعث میشه که کلمه I وابسته کلمه ate بشه. بعد از اینکه رابطه وابستگی (به این صورت که I فاعل ate هست) به مجموعه A اضافه شد، کلمه I از استک حذف میشه و میریم سراغ اکشن بعدی که شیفته و باعث میشه کلمه آخر یعنی fish به استک اضافه بشه.اکشن پنجم کاهش right-arc عه و باعث میشه کلمه fish وابسته کلمه ate بشه. بعد اینکه رابطه وابستگی بین fish و ate به مجموعه A اضافه شد (به این صورت که کلمه fish مفعول کلمه ate هست)، کلمه fish از استک حذف میشه.در نهایت دو کلمه ROOT و ate رو تو استک داریم که اکشن کاهش right-arc روش اعمال میشه و رابطه وابستگی‌شون به مجموعه A اضافه میشه و به این معنیه که ROOT جمله کلمه ate هست.ممکنه سوال پیش بیاد که این اکشن‌ها در هر مرحله چطور انتخاب میشن؟ مثلاً توی همین مثال بالا چرا اکشن دوم به جای شیفت کاهش نبود؟ یکی از به صرفه‌ترین روش‌ها برای انتخاب اکشن‌ها در هر مرحله اینکه بیایم به کمک یادگیری ماشین یک کلاسیفایر بنویسیم و مواردی مثل POS (اینکه کلمه در جمله چه نقشی داره، اسمه، صفته، فعله و ...) یا آخرین کلمه استک به همراه POSش یا اولین کلمه بافر به همراه POSش رو بعنوان فیچر بدیم بهش و در نهایت ازش بخوایم که بهترین اکشن رو برامون انتخاب کنه. با این کار پیچیدگی زمانی به صورت خطی میشه (از حالت نمایی در میاد) و می‌تونیم در کوتاه‌ترین زمان ممکن بهترین خروجی رو از پارسر داشته باشیم!فیچرهارو به صورت بردارهای باینری میسازن. معمولاً هم ابعاد خیلی بزرگی دارن و هم اینکه خیلی اسپارس هستن (یعنی تعداد خیلی زیادی صفر دارن). مثلاً یکی از فیچرها می‌تونه این باشه که ایا بین دو کلمه‌ای که تو استک داریم رابطه فعل و فاعلی برقرار هست؟ اگر باشه اون فیچر مربوطه 1 میگیره و اگر نه 0 میگیره.خیلی بالاتر اشاره کردیم به این موضوع که به صورت دستی یک سری treebankهایی رو افراد متخصص تو حوزه NLP طی سال‌های مختلف ساختن و یکی از جاهایی که میشه از این treebankها استفاده کرد برای ارزیابی parserهایی هست که نوشته میشن.از اونجایی که تصمیم گیری برای اکشن‌ها در هر مرحله توسط یک مدل اتفاق میفته، نیازه که در نهایت مدلمون رو ارزیابی کنیم و ببینیم که نتیجه‌ای که ازش می‌گیریم چقدر به خروجی کار آدم‌ها نزدیک بوده. مثلاً تو اسلاید پایین سمت چپ داره انواع وابستگی که توسط آدم‌ها انجام شده رو نشون میده در حالیکه سمت راست خروجی یک پارسره که حاوی یک مدل هوش مصنوعیه. میشه معیارهای مختلف رو برای مقایسه نتایج مثل Accuracy تعریف کرد و دید که عملکرد پارسر در نهایت به چه صورت بوده.خلاصه مباحث این جلسهبا تحلیل نحوی جملات آشنا شدیم و دیدیم که چقدر تحلیل‌های نحوی زبان حتی برای انسان‌ها می‌تونه دشوار و چالش برانگیز باشه. مثال‌های مختلفی از ابهامات زبان طبیعی رو بررسی کردیم و دیدیم که چطور حتی با ساختار نحوی درست، معنای جملات می‌تونه کاملاً متفاوت باشه. دیدیم که چطور کامپیوتر‌ها میتونن تحلیل نحوی انجام بدن و با یکی از پارسرها که به صورت حریصانه عمل میکنه هم آشنا شدیم.اگر جایی ایراد یا مشکلی بود، حتماً بهم بگید تا تصحیح کنم. اگر هم پست رو دوست داشتید و محتواش به دردتون خورد، می‌تونید یه قهوه مهمونم کنید!ویدیو این جلسهاسلاید این جلسهجزوه جلسه قبلی (جلسه سوم)جزوه جلسه بعدی (جلسه پنجم) - به زودی</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Sun, 19 Oct 2025 20:20:39 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره NLP استنفورد (CS224N) - جلسه سوم - Backprop &amp; Neural Networks</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-nlp-%D8%A7%D8%B3%D8%AA%D9%86%D9%81%D9%88%D8%B1%D8%AF-cs224n-%D8%AC%D9%84%D8%B3%D9%87-%D8%B3%D9%88%D9%85-backprop-and-neural-networks-vdj9q7fwomvz</link>
                <description>منبع اصلی این پست، دوره NLP استنفورد (CS224N) از کانال یوتیوب Stanford Online است. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به صورت کاملاً رایگان به اشتراک بذارم. کل ویدیوها 23 تاست که سعی می‌کنم ماهی حداکثر یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم. لازم به ذکره که برای فهم بهتر مباحث این دوره، دونستن مفاهیم پایه‌ای در یادگیری ماشین، جبر خطی و آمار و احتمال پیشنهاد می‌شه.تو این جلسه قراره چی یاد بگیریم؟جنس این جلسه بیشتر ریاضی محور و تئوریه، البته مباحث غیر ریاضی هم داره. قراره در مورد شبکه‌های عصبی عمیق حرف بزنیم و بیایم دستی گرادیان حساب کنیم. شاید فکر کنید اصلاً نیازی به این همه دیتیل از ریاضیات نداریم و اصلاً چه نیازیه که این همه ریاضی بدونیم! ولی به نظر من اگه این مباحث مهم نبودن و نیاز به یادگیری‌شون نبود نمیومدن یک جلسه از این دوره رو به صورت خاص به این مباحث اختصاص بدن! اگه تا الان، همیشه از این مباحث فراری بودین، این بلاگ پست و این جلسه از دوره رو بعنوان یه فرصت جدید بهش نگاه کنید، شاید با دفعه‌های قبلی فرق داشت و خوشتون اومد!تسک Named Entity Recognition (NER) در NLPقراره با یک تسک NLP ساده این جلسه رو شروع کنیم. این تسک میاد یه متن تو ورودی می‌گیره و تو خروجی اسم افراد، مکان‌ها، تاریخ‌ها و ... رو مشخص می‌کنه. برای انجام این تسک قرار نیست بیایم از دیکشنری استفاده کنیم. مثلاً بگیم من کلمه پاریس رو داخل دیکشنری دارم، می‌دونم اسم مکانه، پس هر جا پاریس دیدی با تگ LOC مشخص کن. ممکنه کلمه پاریس اسم فرد هم باشه و همیشه در نقش شهر پاریس نباشه. پس قراره با توجه به متن و context بیایم این تسک رو انجام بدیم.چجوری با استفاده از شبکه‌های عصبی می‌تونیم این تسک رو انجام بدیم؟ روش‌های زیادی وجود داره اما یکی از روش‌های خیلی ساده برای انجام این تسک اینکه بیایم از یک کلسیفایر باینری استفاده کنیم. قراره یک جمله حاوی کلمه پاریس بهش بدیم و بهمون بگه آیا کلمه پاریس اسم مکان هست یا خیر.در گام اول میایم طول پنجره مشخص می‌کنیم تا بدونیم چه تعداد از کلمات راست و چپ کلمه &quot;پاریس&quot; رو قراره بعنوان context در نظر بگیریم. اینجا فرض کنید معادل با 2 هست. یعنی با خود کلمه پاریس مجموعاً 5 تا کلمه داریم. بعد با استفاده از word2vec یا GloVe می‌دونیم که word embedding این کلماتی که داریم چی هستن. در نهایت embedding‌های پنج تا کلمه رو میدیم به باینری کلسیفایرمون و ازش می‌خوایم که بهمون بگه آیا کلمه پاریس اسم مکان هست یا خیر.حالا این کلسیفایری که داریم ازش حرف می‌زنیم جزییاتش به چه شکله؟ تو اسلاید زیر اومده. اینطوره که تو لایه اول حاوی ورودی‌مونه (embedding پنج تا کلمه متفاوت). بعد یک لایه شبکه عصبی داریم. این لایه میاد ورودی رو در یک ماتریس به اسم W ضرب می‌کنه، بعد با یک بایاس جمع می‌کنه و نتیجه رو میده به یک تابع غیر خطی به اسم f. نتیجه این عملیات‌ها که با h مشخص میشه تو مرحله بعدی ضرب داخلی میشه با یک ماتریس دیگه به اسم u. خروجی این مرحله یک عدد حقیقیه. در نهایت این عدد حقیقی رو میدیم به یک کلسیفایر که قراره بگه هر کلمه در ورودی با چه احتمالی متعلق به &quot;اسم مکان&quot; هست.برای اینکه جزییات کلاسیفایر رو بهتر درک کنیم، باید بتونیم گرادیان هم حساب کنیم. برای محاسبه گرادیان هم از دو راه می‌تونیم استفاده کنیم، یا بشینیم خودمون دستی گرادیان حساب کنیم، یا از یک الگوریتم به اسم backprop استفاده کنیم. تو این جلسه قراره اول ببینیم اگه بخوایم دستی گرادیان بگیریم چطور میشه و بعد با الگوریتم backprop که یکی از مهم‌ترین الگوریتم‌ها در شبکه‌های عصبی هست آشنا بشیم.برای روش اول، یعنی محاسبه گرادیان به صورت دستی، باید با یک سری ماتریس و بردار و محاسبات ماتریسی سر و کله بزنیم که برای خیلیا این مباحث خیلی ترسناکه. اگه قرار باشه از ماتریس‌ها استفاده نکنیم، باید از مشتق‌های زنجیره‌ای استفاده کنیم که یک مثال رو هم ازش در جلسه اول دیدیم. ولی کار با ماتریس‌ها و بردارها کار محاسبات رو خیلی برامون سریع‌تر و آسون‌تر می‌کنه، پس برای همین بهتره که یادشون بگیریم!بریم از صفر شروع کنیم و ببینیم در انتهای این جلسه چند درصد از مباحث ریاضی ترسناک برامون قابل فهم میشه!فرض کنید تابعی مثل f(x) که تو اسلاید زیر اومده داریم. تابع یک ورودی و یک خروجی داره. تو این حالت گرادیان معادل با همون (شیب) یا مشتق تابع‌ست. به عبارتی دیگه وقتی گرادیان حساب می‌کنیم می‌خوایم ببینیم اگه ما ورودی رو یکم تغییر بدیم خروجی تابع چقدر تغییر می‌کنه؟ چرا این برامون مهمه؟ چون تو شبکه‌های عصبی مخصوصاً تو تسکای supervised که دیتا و لیبلشون رو داریم، به کمک همین تغییرها می‌فهمیم که وزن‌ها و پارامترهای مدل رو چجوری تغییر بدیم که بتونیم خروجی تابع هزینه رو کم کنیم.تو همین مثال ساده اگه ورودی تابع 1 باشه، گرادیان میشه 3. این یعنی اگه ورودی رو نسبت به 1 یه ذره تغییر بدیم (مثلاً 1.01 در نظر بگیریم)، خروجی از 1 میشه حدود 1.03. یعنی تغییر خروجی تقریباً 3 برابر تغییر ورودی بوده (0.03 در برابر 0.01). ولی وقتی ورودی تابع 4 باشه، گرادیان برابر میشه با 48. این یعنی اگه ورودی رو نسبت به 4 یه ذره تغییر بدیم (مثلاً 4.01 در نظر بگیریم)، خروجی از 64 میشه حدود 64.48. یعنی تغییر خروجی تقریباً 48 برابر تغییر ورودی بوده (0.48 در برابر 0.01).یک قدم جلوتر بریم و ببینیم اگر تابع چند ورودی و یک خروجی داشته باشه گرادیان چطور میشه. تو این حالت گرادیان به جای یک عدد یک برداره که هر مولفه‌ش مشتق‌های جزیی تابع نسبت به هر ورودیه. مثلاً مولفه‌ی اول بردار گرادیان، مشتق جزیی تابع نسبت به ورودی x1 هست و همینطور الی آخر. منظور از مشتق جزیی هم همون مشتق عادیه که تو مثال قبلی دیدیم.حالا اگه تابع n ورودی و m خروجی داشته باشه چی؟ تو این حالت گرادیان دیگه یک عدد یا یک بردار نیست، بلکه به صورت یک ماتریس در میاد. به این ماتریس، ماتریس ژاکوبین گفته میشه و m سطر و n ستون داره. در هر سطر هم مشتق‌های خروجی اون سطر نسبت به همه‌ی ورودی‌ها نوشته میشه (سطر اول خروجی اول تابع، سطر دوم خروجی دوم تابع، الی آخر).حالا بریم سراغ مشتق زنجیره‌ای و ببینیم اگه ترکیبی از توابع داشته باشیم گرادیان چطور میشه. اسلاید زیر رو ببینید. فرض کنید z تابعی از y باشه و y هم تابعی از x. تو این حالت اگه بخوایم از تابع z نسبت به x مشتق بگیریم باید از قاعده مشتق زنجیری استفاده کنیم. انگار که میایم از توابع جدا جدا مشتق می‌گیریم و بعد در هم ضربشون می‌کنیم. یعنی اول میایم از تابع z نسبت به y مشتق می‌گیریم، بعد از y نسبت به x مشتق می‌گیریم و در نهایت دو مشتق رو در هم ضرب می‌کنیم و میشه مشتق z نسبت به x.حالا اگر توابعی که داریم به جای یک متغیر چند متغیره هم باشن باز در اصل ماجرا فرقی نمی‌کنه. مثل این می‌مونه که بیایم ماتریس‌های ژاکوبین رو در هم ضرب کنیم.در ادامه قراره برگردیم به همون مثال کلسیفایرمون که قبلا دیدیم و ببینیم که چطور می‌تونیم برای توابعی که داشت گرادیان حساب کنیم.توابع h و z هر کدوم شامل n ورودی و n خروجی هستن، پس ماتریس ژاکوبینی که برای محاسبه مشتق h نسبت به z ساخته میشه یک ماتریس n در n خواهد بود.حالا اگه بیایم مشتق هر مولفه تابع h رو نسبت به هر مولفه تابع z محاسبه کنیم در نهایت یه یک ماتریس قطری خواهیم داشت. دلیلش هم اینکه فقط وقتی روی قطرها هستیم تغییر ورودی باعث تغییر خروجی میشه، تو بقیه مواقع اینا هیچ تاثیری رو هم ندارن و مشتقشون صفر میشه. (تابع h یک تابع غیر خطی مثل سیگمویده).حالا اسلاید زیر رو در نظر بگیرید. قراره از Wx+b یکبار نسبت به x و یک بار نسبت به b مشتق بگیریم. تو حالت اول جواب میشه ماتریس W و تو حالت دوم جواب میشه ماتریس همانی. دقت کنید که اینجا با تک متغیر طرف نیستیم. چند ورودی و چند خروجی داریم برای همین ماتریس‌های ژاکوبینی هم که ساخته میشه به این صورت در میاد.برگردیم به شبکه عصبی‌ای که این جلسه رو باهاش شروع کردیم. قراره از تابع s نسبت به b مشتق بگیریم و گرادیان حساب کنیم.برای اینکه محاسبات ساده‌تر و تمیز‌تر بشه، اول میایم متغیری به اسم z تعریف می‌کنیم:حالا سه تا تابع از هم دیگه داریم با ورودی x. با استفاده از قانون زنجیره‌ای می‌تونیم مشتق بگیریم و گرادیان حساب کنیم.حالا با توجه به همه مطالبی که تا اینجا دیدیم، طبق اسلاید زیر برای هر قسمت ماتریس ژاکوبین رو محاسبه می‌کنیم و در نهایت تمامی مقادیر رو در هم ضرب می‌کنیم (دقت کنید اینجا ضربی که انجام میشه ضرب معمولی ماتریس نیست فرق داره).از اونجایی که uT برداره و داره در یک ماتریس قطری ضرب میشه، می‌تونیم بیایم اول ماتریس قطری رو به صورت یک بردار (که ابعادش با بردار uT مطابقت داره) در نظر بگیریم، بعد از ضرب Hadamard یا element-wise product استفاده کنیم. جواب نهایی که به دست میاد یک برداره که حاوی گرادیان s نسبت به پارامتر b عه.اگه نمی‌دونید ضرب hadamard چیه شرح مختصری ازش اینجا آورده شده. فرض کنید دو تا بردار یا ماتریس با ابعاد یکسان داشته باشیم می‌تونیم روش ضرب hadamard رو به صورت زیر اعمال کنیم. یعنی هر المنت رو با المنت متناظرش ضرب کنیم.تا اینجا گرادیان s رو نسبت به b حساب کردیم. در ادامه قراره گرادیان s رو نسبت به W محاسبه کنیم. شاید این سؤال پیش بیاد که چرا اصلاً گرادیان s رو نسبت به b و W حساب می‌کنیم؟ دلیلش اینه که b و W همون پارامترهای مدل هستن، یعنی چیزایی که قرار توی فرآیند یادگیری تنظیم بشن. مدل با تغییر این پارامترها یاد می‌گیره که پیش‌بینی‌هاشو بهتر کنه. به همین دلیل لازمه بدونیم تغییر هرکدوم از این پارامترها چه اثری روی خروجی و در نهایت روی خطا داره. این در واقع همون اطلاعاتیه که از گرادیان به دست میاد.برای محاسبه گرادیان s نسبت به W هم مشابه مراحل قبلی از مشتق زنجیره‌ای و ضرب مشتق‌ها در هم استفاده می‌کنیم. دو بخش اول عیناً مشابه چیزی هست که قبلاً محاسبه کردیم. فقط می‌مونه مشتق z نسبت به W که جدیده و باید محاسبه کنیم.همونطور که گفتیم دو بخش اول مشتق‌ها مشابه چیزیه که قبلاً دیدیم و از قبل محاسباتشو انجام دادیم. حالا میایم یک تغییر متغیر می‌زنیم. متغیری به اسم دلتا تعریف می‌کنیم و این دو بخش از مشتق‌هارو که در هم ضرب میشن دلتا می‌نامیم.حالا اگه بخوایم گرادیان s نسبت به b و نسبت به W رو بازنویسی کنیم، برای گرادیان s نسبت به b جواب نهایی برابر با همون دلتا میشه. برای محاسبه گرادیان s نسبت به W داریم دلتا در مشتق z نسبت به W. بخش دلتاش که هیچی مشخصه، بخش دوم رو باید حساب کنیم. اگه براتون سواله که چرا اومدیم دلتا تعریف کردیم و تغییر متغیر انجام دادیم بخاطر اینکه از محاسبات تکراری جلوگیری کنیم. یکبار دلتا رو حساب می‌کنیم و هر دفعه که بخوایم ازش استفاده می‌کنیم.یک بار دیگه گرادیان s نسبت به W رو بررسی کنیم. اگه از ریاضیات محض برای محاسبات استفاده کنیم، ماتریس ژاکوبینِ گرادیان s نسبت به W حاوی یک سطر و n*m ستون خواهد بود. منتها این ماتریس رو نمی‌تونیم با بردار W که ابعادش n در m هست ضرب ماتریسی کنیم برای همین باید ابعادش رو تغییر بدیم به ماتریسی با n سطر و m ردیف. چرا این موضوع برامون مهمه؟ چون قراره در نهایت وزن‌های مدل رو با استفاده از گرادیان کاهشی آپدیت کنیم و لازمه گرادیان هم‌شکل خود وزن‌ها باشه.گفتیم که برای محاسبه گرادیان s نسبت به W داریم: دلتا در مشتق z نسبت به W. بخش دلتاش که هیچی مشخصه، بخش دوم رو باید حساب کنیم. می‌دونیم که z در واقع تابعی از W و x عه. پس اگه ازش نسبت به W مشتق بگیریم، جواب میشه x. پس برای جواب نهایی گرادیان s نسبت به W داریم دلتا در x.ممکنه سوال پیش بیاد چرا داریم ترانهاده حساب می‌کنیم بعد ضرب می‌کنیم؟ فقط برای حفظ ابعاد ماتریس خروجیه، دلیل خاصی نداره. توضیحات بیشتر رو بالاتر در موردش خوندیم. خروجی نهایی این گرادیان باید ابعادش n در m باشه.بالاتر گفتیم که برای محاسبه گرایان s نسبت به W نیاز داریم که از shape convention استفاده کنیم و ریاضیات محض رو کنار بذاریم و ابعاد ماتریس ژاکوبین رو تغییر بدیم. به صورت مشابه برای محاسبه گرادیان s نسبت به b هم نیاز داریم این کار رو بکنیم. چون اگه با ریاضیات محض پیش بریم خروجی فقط یک ماتریس سطری میشه در حالیکه برای محاسباتمون چیزی که در نهایت نیاز داریم یک ماتریس ستونیه.به طور کلی به دو صورت می‌تونیم از این قاعده تغییر ابعاد (shape convention) استفاده کنیم.اول اینکه بیایم با استفاده از ریاضیات محض تمام محاسبات رو در قالب ژاکوبین انجام بدیم و در نهایت ابعاد خروجی رو به اون چیزی که می‌خوایم تبدیل کنیم.یا هم اینکه از اول قانون شکل رو دنبال کنیم و تو هر مرحله ببینیم ابعاد چه‌طوری باید باشه، یعنی مرحله‌به‌مرحله ابعاد رو رعایت کنیم و هرجا لازم بود transpose یا reshape انجام بدیم.روش دوم معمولاً عملی‌تره چون هم‌زمان با پیش‌روی محاسبات، تضمین می‌کنه که نتیجه نهایی هم‌شکل پارامترهای مدل (مثلاً W) میشه.در ادامه قراره با backpropagation, forward propagation و گراف محاسباتی آشنا شیم، و ببینیم که چی هستن.اگر ادامه مطالب رو خوندین و تو یک حالت گنگی به سر بردین و خیلی براتون ملموس نبود، باید بگم کاملاً طبیعیه و نگران نباشید! مباحث واقعاً تخصصی ان و این حس عدم فهمیدن خیلی طبیعیه! منتها اگر دانشجوی کامپیوتر یا هوش مصنوعی هستین، یا تو این حوزه مشغول به کارید، اگه رک بخوام بگم، حقیقتاً زشته که این چیزارو بلد نباشید، انقدر گیر بدین تا متوجه بشین! ولی اگه صرفاً خواننده مشتاقید و می‌خواید یه دید کلی از این مباحث پیدا کنید، حتی اگه خیلی هم متوجه داستان نشدید اهمیتی نداره!الگوریتم Backpropagationتا به اینجای کار یه جورایی با این الگوریتم آشنا شدیم. ایده‌ش اینکه بیاد مشتق‌ها و گرادیان‌هایی رو که تو لایه‌های بالاتر گرفتیم نگه داره و بعد تو لایه‌های پایینی اگه دوباره نیاز به اون مقادیر داشتیم از همونا مجدد استفاده کنه، به جای اینکه بیاد دوباره از اول مشتق حساب کنه. یه جورایی سرعت انجام کار رو با کمتر کردن تعداد محاسبات بیشتر می‌کنه. در ادامه جزییات بیشتری ازش رو می‌بینیم.گراف محاسباتی - Computational Graphاگر بخوایم توابع ریاضی رو با استفاده از نمودار نشون بدیم، در واقع یک گراف محاسباتی رسم کردیم. برای مثال گراف زیر داره تابعی رو نشون میده که از اولِ این جلسه مورد بررسی قرار دادیم. روی یال‌ها ورودی و خروجی مشخص میشه و هر نود هم نشون دهنده‌ی عملیات‌های ریاضیه.الگوریتم Forward Propagationبا یک مثال توضیح راحت‌تری داره. گراف محاسباتی اسلاید قبل رو در نظر بگیرید. اگر به ازای ورودی‌های مختلف شروع کنیم از چپ به راست بیایم و جواب نهایی رو برای s حساب کنیم، در واقع داریم forward propagation انجام میدیم.حالا اگر مراحلی رو که از چپ به راست اومدیم، از راست به چپ بریم و تو هر مرحله مشتق بگیریم، داریم backward propagation انجام میدیم.هر نودی که تو گراف محاسباتی داریم، خودش هم شامل یک گرادیان محلیه. بالاتر دیدیم که چطور می‌تونیم با استفاده از قاعده مشتق زنجیری از s نسبت به z مشتق بگیریم. دقیقاً همون مراحل با استفاده از گراف محاسباتی اینجا هم آورده شده.مثالی که بالا هست فقط یک ورودی و یک خروجی داره، حالا اگر دو تا ورودی داشته باشیم محاسبه گرادیان‌ها به چه شکل میشه؟ در واقع اینجا هم همونه. با این تفاوت که چون دو تا ورودی داریم، باید دو تا هم گرادیان محلی حساب کنیم.ممکنه گیج شده باشین که چرا داریم این کارا رو می‌کنیم؟ اصلاً هدف چیه؟ فهمیدیم که گراف محاسباتی و forward propagation و backward propagation چی هستن به خودی خود، ولی خب قراره در نهایت چیکارشون کنیم؟ این جلسه رو با یه شبکه عصبی ساده شروع کردیم و تا همین‌جا هم داریم روی همون صحبت می‌کنیم. کل کار الگوریتم‌های یادگیری ماشین و شبکه‌های عصبی اینه که میان بر اساس داده‌های ورودی (تو مثال ما x)، یه سری وزن یا پارامتر (تو مثال ما W و b) برای مدل یاد می‌گیرن. توی هر مرحله اول یه بار forward propagation انجام می‌شه و خروجی مدل محاسبه میشه، بعد از اینکه مقدار تابع خطا مشخص شد (یعنی فهمیدیم که مقدار واقعی چقدر با چیزی که مدل محاسبه کرده و خروجی داده فرق داره)، مدل باید وزن‌ها رو آپدیت کنه و backward propagation بزنه. وزن‌ها به کمک گرادیان‌ها و مشتق گرفتن آپدیت می‌شن و این چرخه همین‌طور ادامه پیدا می‌کنه تا جایی که مدل به بهترین مقدار برای پارامترهاش برسه.در ادامه باهم یک مثال خیلی ساده رو بررسی می‌کنیم. تو دنیای واقعی شبکه‌های عصبی به این شکل ساده نیستن و خیلی خیلی پیچیده‌ترن. هدف اینجا صرفاً اینکه بفهمیم الگوریتم‌های backpropagation, forward propagation دقیقاً چجوری کار می‌کنن.فرض کنید تابعی داریم به شکل زیر (دو متغیر x و y رو باهم جمع می‌کنه، حاصلش رو ضرب می‌کنه در مقدار بیشینه بین y و z) که مقادیر اولیه هم براش تعیین شده:اول میایم گراف محاسباتی‌شو رسم می‌کنیم که بعدا کار مشتق گرفتن برامون راحت‌تر بشه:برای مرحله forward propagation فقط کافیه بیایم با مقادیر اولیه‌ای که برای ورودی‌ها داریم همه چیز رو حساب کنیم بریم جلو:از اینجا به بعد قراره ببینیم backward propagation به چه صورت میشه. قراره از عقب به جلو مشتق بگیریم و پیش بریم. قبل از هرچیزی باید اول مشتق‌های محلی رو حساب کنیم.اول بریم سراغ عبارت a. مشتق a نسبت به x میشه 1 و مشتق a نسبت به y هم میشه 1.حالا بریم سراغ عبارت b. اگر از b نسبت به y مشتق بگیریم حاصل میشه:= 1(y &gt; z) = 1چون تو این حالت مقدار اولیه y و z به صورتی هست که مقدار y از مقدار z بیشتره (y=2 , z=0)، پس شرط داخل پرانتز true میشه و جواب نهایی میشه یک.اگر از b نسبت به z مشتق بگیریم میشه:= 1(z &gt; y) = 0بخاطر مقدار اولیه y و z شرط داخل پرانتز false میشه و جواب نهایی میشه صفر.حالا بریم سراغ نود آخر که معادله با عبارت f. اگر از f نسبت به a مشتق بگیریم، جواب میشه b و اگر از f نسبت به b مشتق بگیریم جواب میشه a. چون مقادیر رو برای a و b حساب کردیم و از قبل می‌دونیم، پس به ترتیب جواب نهایی برای مشتق‌ها میشه 2 و 3.حالا، که مشتق‌های محلی رو محاسبه کردیم، میریم سراغ مشتق گیری از آخر به اول. اولین مشتقی که باید حساب کنیم، مشتق f نسبت به خودشه که میشه 1.بعد میریم سراغ مشتق زنجیره‌ای حساب کردن. تو هر مرحله مشتق لایه بالایی در مشتق‌های محلی ضرب میشه. مشتق لایه بالایی تو این مرحله میشه مشتق f نسبت به خودش که برابر هست با 1 و مشتق‌های محلی برای هر یال که تو مراحل قبلی حساب کردیم (مشتق f نسبت به a و مشتق f نسبت به b) برابره با 2 و 3. وقتی دو تا مشتق محلی و لایه بالاتر رو در هم ضرب کنیم (در واقع استفاده از همون قاعده زنجیری) جواب‌های نهایی برای این لایه به ترتیب میشه 2 و 3.حالا یک لایه دیگه برمیگردیم عقب‌تر. اول محاسبات رو برای نود max انجام میدیم. تو این مرحله مشتق لایه بالایی در واقع همون مشتق‌های زنجیری هست که تو مرحله قبلی حساب کردیم. یک سری مشتق محلی هم داریم که از قبل حساب کردیم (مشتق b نسبت به y و مشتق b نسبت به z). حالا باید مشتق‌های محلی رو در مشتق یک لایه بالاتر ضرب کنیم تا مشتق نهایی این لایه هم به دست بیاد.به صورت مشابه محاسبات رو برای نود + هم باید انجام بدیم.این همه مشتق گرفتیم و حساب کتاب کردیم تا اینکه در نهایت باید بیایم مشتق خروجی (f) رو نسبت به ورودی‌هامون (x, y, z) حساب کنیم:حالا این گرادیان‌هایی که حساب کردیم داره چیو نشون میده؟ داره نشون میده که تغییرات کوچیک هر متغیر ورودی چه اثری روی خروجی تابع f داره. مثلاً مشتق f نسبت به z شده 0. این یعنی چی؟ یعنی اینکه اگه ما بیایم مقدار z رو از مقدار اولیه 0 یکم تغییر بدیم به یه مقدار دیگه، بخاطر اینکه مشتق (گرادیان) f نسبت بهش 0 شده، تاثیر خاصی روی خروجی تابع f نمی‌ذاره. به عبارت دیگه، گرادیان‌ها بهمون می‌گن کدوم ورودی‌ها مهم‌ترن و چقدر تغییرشون خروجی رو تکون می‌ده.برگردیم به ادامه مثال. اما قبلش باید یک قانون کلی رو بررسی کنیم.اگه از یک نود دو تا یال خارج شده باشن، موقع انجام backward propagation و محاسبه گرادیان‌ها در واقع دو تا یال به اون نود وارد شدن. پس در نهایت باید گرادیان‌هایی که برای اون نود داریم رو باهم دیگه جمع کنیم.برگردیم به مثالی که داشتیم و از یه زاویه دیگه نودها و گرادیان‌هارو بررسی کنیم. چرا؟ برای اینکه اگه نخوایم تو هر مرحله دستی گرادیان‌هارو حساب کنیم با دونستن این قوانین می‌تونیم گرادیان‌هارو خودمون از لایه‌های بالاتر به لایه‌های پایین‌تر انتقال بدیم.نودی که علامت جمع داره گرادیان لایه بالایی رو (گرادیان با رنگ آبی روی یالی که ازش خارج شده آورده شده) روی یال‌های ورودی توزیع می‌کنه.نودی که max داره مقدار گرادیان لایه بالاتر رو به یالی که عدد ورودی بیشتری داره اساین می‌کنه و یال دیگه مقدار گرادیانش 0 میشه.یالی که علامت ضربدر (یا ستاره) داره گرادیان لایه‌های پایین‌ترش میشه برعکس مقدار ورودی‌شون. مثلاً ورودی یال بالا 3 بوده و ورودی یال پایین 2، گرادیان یال بالایی میشه 2 و گرادیان یال پایینی میشه 3.گفتیم دلیل معرفی الگوریتم backward propagation این بوده که باعث بشه دیگه محاسبات تکراری رو برای گرادیان‌ها بارها و بارها انجام ندیم. قراره تو سه تا اسلاید پایین با شکل ببینیم که این حرف یعنی چی!فرض کنید برای محاسبه گرادیان s نسبت به b بیایم مسیر آبی رنگ رو که تو اسلاید زیر آورده شده از راست به چپ طی کنیم.بعد برای محاسبه گرادیان s نسبت به W هم مجدداً بیایم مسیر قرمز رنگ رو از سمت راست طی کنیم به سمت چپ بریم و گرادیان حساب کنیم. این کار درستی نیست! چون داریم یک سری محاسبات رو بارها و بارها تکرار می‌کنیم و استفاده نادرست از منابعمون می‌کنیم.برای اینکه چند بار چند بار گرادیان تکراری حساب نکنیم، میایم برای هر مرحله یک بار گرادیان حساب می‌کنیم و گرادیان حساب شده رو داخل یک متغیر دیگه نگه می‌داریم (مثلاً خیلی بالاتر اومدیم متغیر دلتا رو معرفی کردیم). با این کار دیگه نیاز نیست هر دفعه گرادیان حساب کنیم. یک بار محاسبات انجام میشه، دفعه‌های بعدی از مقدار استفاده شده فقط استفاده می‌کنیم.به صورت کلی اگر یک گراف عمومی داشته باشیم، اول از نودهای ورودی شروع می‌کنیم و به سمت نودهای خروجی می‌ریم و تو هر مرحله، مقداری که هر نود داره رو محاسبه می‌کنیم. تا اینجا میشه فاز forward propagation.بعد برای فاز backward propagation از ته گراف (خروجی) شروع می‌کنیم و به سمت سر گراف (ورودی) میایم. اولین مقداری که برای گرادیان حساب میشه، همیشه 1 هست، چون مشتق یک تابع نسبت به خودش برابر با یکه. داریم از ته به سر میایم و گرادیان هر نود رو محاسبه می‌کنیم. اگر از یک نود چند یال خارج شده باشه، در واقع موقع برگشت چند یال بهش وارد میشه (خط‌چین‌های صورتی)، پس همه‌ی مشتق‌های مربوط به اون نود رو با هم جمع می‌کنیم.اگر تمام این کارها رو به درستی انجام بدیم، از نظر پیچیدگی زمانیِ محاسبات، الگوریتم f-prop با الگوریتم b-prop یکی میشه و هر دو از مرتبه‌ی O(n) خواهند بود.توی سیستم‌ها و فریم‌ورک‌هایی که توسعه داده شدن، دیگه نمیان دستی گرادیان حساب کنن. کاری که اینجا انجام میشه به این صورته که یک بار f-prop انجام میشه و خروجی هر نود محاسبه میشه. بعد، رابطه‌ی ریاضی بین ورودی و خروجی اون نود هم به دست میاد. در نهایت، از روی همین روابط و بدون اینکه نیاز باشه خودمون کاری برای محاسبه‌ی گرادیان‌ها انجام بدیم، سیستم به‌صورت خودکار فرمول‌های گرادیان رو استخراج می‌کنه.تمام چیزی که هر نود در یک گراف باید بتونه حساب کنه اینه که:چطوری خروجی خودش رو از روی ورودی‌ها به دست بیاره.وقتی گرادیان خروجی (مشتق نسبت به خروجی) بهش داده شد، چطوری گرادیان نسبت به ورودی‌هاش رو حساب کنه.توی فریم‌ورک‌هایی مثل PyTorch یا TensorFlow که برای کار با شبکه‌های عصبی ساخته شدن، کل فرآیند b-prop به‌صورت خودکار انجام میشه. تنها کاری که لازمه دولوپر بکنه اینه که وقتی یه نود جدید اضافه می‌کنه، حواسش باشه مشتق محلی (local derivative) اون نود رو هم مشخص کنه. بقیه‌ی فرآیند خودش انجام میشه.برای مثال یه تیکه کد در اسلاید پایین آورده شده که نشون میده چطور باید از گراف محاسباتی استفاده کرد برای انجام f-prop و b-prop. مثلاً تو مرحله f-prop نیازه که ورودی‌های گراف رو خودمون مشخص کنیم. اما بقیه مراحل به کمک توابع از قبل تعریف شده قابل انجام هستن.فرض کنید نود ضرب (یا ستاره) داریم با دو تا ورودی x و y و خروجی z. تابع f-prop مشخصاً میاد ورودی‌هارو می‌گیره و ضرب می‌کنه تو هم و خروجی‌شو میریزه داخل z. حالا برای قسمت b-prop باید حواسمون باشه که مشتق‌های محلی رو باید خودمون دستی تعریف بکنیم. تا در نهایت بتونیم مشتق خروجی رو نسبت به ورودی‌ها داشته باشیم.از طرفی دیگه از اونجایی که به خود مقادیر x و y هم نیاز داریم، باید حواسمون باشه که همون اول یه جایی ذخیره‌شون بکنیم.تمام این پروسه محاسبه گرادیان‌ها و نودها که تو کل این جلسه بررسی کردیم همشون به صورت automated انجام میشن، هیچوقت به صورت دستی نمیایم تو یک شبکه عصبی واقعی این موارد رو محاسبه کنیم. اما نیازه که جزییات محاسبات رو بلد باشیم و بدونیم که اگر بخوایم دستی محاسبه‌شون کنیم روند به چه صورت خواهد بود. گاهی نیازه به صورت دستی محاسبات رو چک کنیم و گرادیان بگیریم تا مطمئن بشیم چیزی که پیاده سازی کردیم داره درست کار می‌کنه.خلاصه مباحث این جلسهبا ساز و کار شبکه‌های عصبی آشنا شدیم و دیدیم که چطور کار می‌کنن و چه ارتباطی با مشتق و گرادیان حساب کردن دارن. دیدیم که گراف محاسباتی، backward propagation و forward propagation چی هستن.اگر جایی ایراد یا مشکلی بود، حتماً بهم بگید تا تصحیح کنم. اگر هم پست رو دوست داشتید و محتواش به دردتون خورد، می‌تونید یه قهوه مهمونم کنید!ویدیو این جلسهاسلاید این جلسهجزوه جلسه قبلی (جلسه دوم)جزوه جلسه بعدی (جلسه چهارم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Sun, 05 Oct 2025 10:30:34 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره NLP استنفورد (CS224N) - جلسه دوم - Neural Classifiers</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-nlp-%D8%A7%D8%B3%D8%AA%D9%86%D9%81%D9%88%D8%B1%D8%AF-cs224n-%D8%AC%D9%84%D8%B3%D9%87-%D8%AF%D9%88%D9%85-neural-classifiers-u33h1nfdpdg6</link>
                <description>منبع اصلی این پست، دوره NLP استنفورد (CS224N) از کانال یوتیوب Stanford Online است. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به صورت کاملاً رایگان به اشتراک بذارم. کل ویدیوها 23 تاست که سعی می‌کنم ماهی حداکثر یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم. لازم به ذکره که برای فهم بهتر مباحث این دوره، دونستن مفاهیم پایه‌ای در یادگیری ماشین، جبر خطی و آمار و احتمال پیشنهاد می‌شه.تو این جلسه قراره چی یاد بگیریم؟به صورت خیلی کلی، پرونده word2vec رو می‌بندیم و همچنین با مدل GloVe آشنا میشیم. خلاصه که بعد این جلسه می‌تونید برید هرچی مقاله و پیپر در مورد word embedding هست بخونید و بفهمید! (ایشالا که همینطور باشه!)خب برگردیم به word2vec. همونطور که در جلسه قبل دیدیم، اینطور بود که یک پیکره از تعداد خیلی زیادی کلمه داشتیم. برای شروع مقدار رندومی رو واسه بردار کلمات در نظر می‌گرفتیم. قرار بود احتمال کلمات context رو به طوری که کلمه center رو بهمون داده بودن حساب کنیم. به کمک ضرب داخلی شباهت بین کلمات رو حساب می‌کردیم و در نهایت تابع softmax بهمون کمک می‌کرد که این احتمالات رو محاسبه کنیم. هر دفعه بردار کلمات رو با وزن‌های جدید آپدیت می‌کردیم و بهترین جواب وقتی بود که تابع هزینه مقدارش مینیمم بشه.گفتیم که الگوریتم word2vec شامل دو الگوریتم داخل خودش هست، یکی skip-gram و یکی continuous bag of words (CBOW). در حقیقت word2vec نسخه‌ی یکم پیشرفته‌تر مدل bag of word هست، به این دلیل که برای این مدل‌ها و حتی word2vec ترتیب کلمات اهمیتی نداره. درسته که تو word2vec یک فاز یادگیری برای شباهت بین کلمات داریم و تو bag of words نداریم، اما چون تو جفتشون ترتیب کلمات مهم نیستن، پس ذاتاً شبیه هم دیگه‌ن. خلاصه که در مقایسه با الگوریتم‌های دیگه‌ی پردازش زبان طبیعی word2vec خیلی ابتدایی داره عمل می‌کنه.تو اسلاید زیر به کمک روش PCA خروجی word2vec از 300 بعد به 2 بعد کاهش پیدا کرده. اگه نمی‌دونید PCA چیه تو این پست می‌تونید در موردش بخونید. همونطور که مشخصه کلمات شبیه به هم خیلی نزدیک بهم قرار گرفتن. مثلاً سامسونگ و نوکیا کنار هم دیگه‌ن یا یاهو و گوگل هم همینطور. تو مثال زیر چون پیکره‌ای که word2vec روش train شده قدیمی بوده، کلماتش اینطورن و شامل کلمات جدید نمیشن.حالا چجوری قراره بردارهای U و V رو به بهترین شکل یاد بگیریم؟ جلسه قبل محاسبات ریاضی و اینکه چطور گرادیان تابع هزینه رو محاسبه کنیم دیدیم. به صورت کلی در مرحله اول یک سری عدد رندوم کوچیک به بردارهای U و V اختصاص می‌دیم و بعد به کمک الگوریتم گرادیان کاهشی در خلاف جهت گرادیان گام برمی‌داریم، تا در نهایت به نقطه کمینه تابع هزینه برسیم. مقادیری که در این نقطه برای U و V به دست میان، همون چیزی هست که دنبالش هستیم.مراحلی که گفتیم تو اسلاید زیر آورده شده. اما این نسخه از الگوریتم گرادیان کاهشی خیلی بیسیک و اولیه‌ست و عملاً هیچکسی از این روش در واقعیت استفاده نمی‌کنه. چون خیلی طول می‌کشه تا محاسبات انجام بشه و اصلاً بهینه نیست.در عوض، از الگوریتم تغییریافته گرادیان کاهشی استفاده میشه که در اسلاید زیر بهش اشاره شده. ایده الگوریتم اینکه به جای اینکه بیایم کل پیکره و کلمات رو در نظر بگیریم، یک سمپلی از کلمات برداریم هر دفعه و محاسبات رو به جای کل کلمات فقط با اون تعداد محدود کلمه پیش ببریم تا سرعت محاسباتمون افزایش پیدا کنه. اگر دوست دارید که جزییات بیشتری در مورد الگوریتم گرادیان کاهشی بدونید و با انواع مختلفش به صورت دقیق‌تر آشنا بشید، پیشنهاد می‌کنم نگاهی به این پست بندازید.از جلسه پیش تا الان چندین بار تکرار کردیم که الگوریتم word2vec قراره دو تا احتمال حساب کنه و به دنبال مقدار ماکسیمم این احتمال باشه:احتمال اول: اگر کلمه center یا target رو داشته باشیم کدوم کلمات بعنوان context و کلمات همسایه محتمل‌تر خواهند بود؟ (ایده کلی الگوریتم Skip-Gram)احتمال دوم: اگر کلمات context یا کناری رو داشته باشیم کدوم کلمه با احتمال بیشتری میتونه target باشه؟ (ایده کلی الگوریتم CBOW)از جلسه پیش تا الان هرچی توضیح دادیم همه‌ش در مورد الگوریتم Skip-Gram بوده. منتها خودِ همین الگوریتم هم دو تا ورژن داره! ورژن اول دقیقاً همون چیزیه که تا اینجا دیدیم، یعنی اومدیم از تابع softmax برای محاسبه تابع هزینه استفاده کردیم. اما این روش در عین سادگی مشکلی که داره اینکه انجام محاسباتش برامون پر هزینه‌ست. برای حل این مشکل اومدن تکنیکی رو معرفی کردن به اسم Negative Sampling که در ادامه می‌بینیم چطور کار می‌کنه. صرفاً چون با این روش، تابع هزینه محاسباتش ساده‌تر انجام میشه بهش اسم جدید دادن با عنوان SGNS (یعنی الگوریتم Skip-Gram با تکنیک Negative Sampling). مقاله اصلی word2vec رو هم ببینید همینجوری بهش اشاره شده.الگوریتم Skip-Gram با Negative Samplingچرا تابع softmax محاسباتش زیاده؟ از اونجایی که تو اسلاید زیر هم مشخصه، تو مخرج کسر داریم بین تمام کلماتی که داریم ضرب داخلی (شباهت) حساب می‌کنیم و در نهایت همه رو با هم جمع می‌زنیم. یعنی اگه 100 هزارتا کلمه داشته باشیم از نظر محاسباتی میشه 100 هزارتا ضرب داخلی! خب این خیلی زیاده.برای حل این مشکل، الگوریتم Negative Sampling میگه بیا کاری که من میگم رو بکن! به جای اینکه بیای تمام کلمات رو در نظر بگیری، دو گروه از کلمات رو صرفاً در نظر بگیر. گروه اول میشه جفت‌های واقعی یا مثبت (هر جفت از کلمه center با کلمات context تو این گروهه، مثلاً کلمه center با یک کلمه کناریش یا کلمه center با دو تا کلمه کناریش، بسته به window ای که در نظر گرفتیم) و گروه دوم میشه جفت‌های تصادفی یا منفی یا نویز (هر جفت از کلمه center با کلمات غیر context تو این گروهه).در نهایت، روی این دو گروه کلمه یک مدل رگرسیون لاجیستیک ساده آموزش بده تا مدل یاد بگیره به گروهِ جفت‌های مثبت یا واقعی احتمال بالاتر و به گروه جفت‌های منفی یا تصادفی یا نویز احتمال پایین‌تر تخصیص بده.از اونجایی که این کورس ماشین لرنینگ نیست و انتظار میره که از قبل با مدلbinary logistic regression آشنایی داشته باشید، اگر به هر دلیلی نمی‌دونید این مدل چیه و چطوری کار می‌کنه می‌تونید نگاهی به این پست بندازید.برگردیم به Negative Sampling. با این چیزایی که گفتیم، باید تابع objective رو مجدداً بازنویسی کنیم و به صورت زیر در میاد و حواستون باشه این تابع objective عه با تابع هزینه فرق داره و در نهایت می‌خوایم مقدارش رو ماکسیمم کنیم.قسمت اول (قبل از بعلاوه) برای گروه مثبته و گفتیم می‌خوایم شباهت بین کلمه center و کلمات context رو زیاد کنیم (نزدیک کردن کلمات مرتبط). پس اول میایم شباهت بین کلمات رو به کمک ضرب داخلی حساب می‌کنیم. بعد جواب رو میدیم به تابع سیگموید. تابع سیگموید میاد نتیجه ضرب داخلی رو می‌بره بین 0 تا 1. چرا؟ چون در نهایت دنبال احتمالیم و برای همین از سیگموید استفاده می‌کنیم تا یک نرمال سازی انجام بدیم.قسمت دوم (بعد از بعلاوه) برای گروه منفیه و می‌خوایم شباهت بین کلمه center و کلمات غیر center رو کمینه کنیم (دور کردن کلمات غیر مرتبط). پس میایم شباهت بین کلمات رو با ضرب داخلی حساب می‌کنیم، بعد پشتش یه منفی می‌ذاریم. چرا؟ برای اینکه اگه شباهت بین کلمه center و کلمه نویزی که انتخاب شده زیاد بود، مدل رو جریمه کنیم و بفهمه که باید کلمات غیر مشابه به center رو انتخاب کنه. در نهایت، این مقدار رو میدیم به تابع سیگموید تا برامون ببره تو فضای بین 0 تا 1.حالا می‌تونیم به جای تابع objective و ماکسیمم کردنش تابع هزینه داشته باشیم و مقدارش رو مینمم کنیم. پس یه منفی پشت چیزی که تا اینجا تعریف کردیم می‌ذاریم و از این به بعد دنبال مینمم کردنش هستیم.حالا سوال اینکه چطور کلمات نویز رو سمپل برداری کنیم؟ یکی از روش‌ها اینکه بیایم از توزیع یکنواخت استفاده کنیم. یعنی بیایم فراوانی هر کلمه رو بر فراوانی کل کلمات متن حساب کنیم. اما این توزیع به این صورت یه ایرادی داره. اونم اینکه هرچی یک کلمه بیشتر تکرار شده باشه احتمال انتخابش هم بیشتر میشه. مثلاً کلمه‌ای مثل and یا of احتمال انتخاب شدنش بیشتره، چون تعداد دفعات تکرارش بیشتره و از طرفی کمکی هم به یادگیری مدل نمی‌کنن. چجوری مشکل رو حل کنیم؟ تصویر زیر رو در نظر بگیرید. فرض کنید برای توزیع یکنواخت توانی مثل آلفا در نظر بگیریم (که مقدارش میتونه بین 0 تا 1 باشه). اگه آلفا برابر با 1 باشه همون توزیع یکنواخت عادی رو داریم. اگر آلفا رو 0.75 در نظر بگیریم مشکلی که بهش اشاره کردیم رو میتونیم تا حد خوبی حل کنیم.تو تصویر زیر یک مثال هم آوردم که صرفاً شهود بهتری ازش داشته باشید. فرض کنید یه متن داریم با دو تا کلمه. یکی از کلمات 99 بار تکرار شده و یکی دیگه فقط یک بار اومده. اگه با آلفای برابر با 1 مقادیر رو حساب کنیم، احتمال انتخاب کلمه پر تکرار 99 صدمه و احتمال انتخاب اون یکی کلمه فقط 1 صدم. حالا اگه بیایم آلفا رو به جای 1 بکنیم 0.75، باعث میشه که احتمال کلمه پر تکرار به 97 صدم کاهش پیدا کنه و از طرفی دیگه احتمال کلمه پر تکرار به 3 صدم افزایش پیدا کنه.خلاصه که برای سمپل برداشتن کلمات تو الگوریتم word2vec هم چنین کار مشابهی میکنن و به این طریق می‌تونن احتمال انتخاب کلماتی که کمتر تکرار شدن رو افزایش بدن و احتمال انتخاب کلمات پر تکرار رو کمتر کنن.در ادامه قراره ببینیم چه دلایلی باعث شده که اصلاً الگوریتمی مثل word2vec به وجود بیاد و قبل از اون با چه روش‌هایی کارهای مشابه رو انجام میدادن و روش‌های کلاسیک چه ایراداتی داشتن. (به نظرم منطقی‌تر بود که با روش‌های کلاسیک دوره شروع میشد و بعدش می‌رسید به word2vec ولی خب تصمیم گرفتن که برعکس پیش برن و منم به ترتیب مطالب احترام گذاشتم و جابجا نکردم.)چرا به جای استفاده از word2vec، از شمارش مستقیم کلماتِ مجاور استفاده نمی‌کنیم؟بریم از شمارش مستقیم کلمات مجاور استفاده کنیم ببینیم چی میشه! برای انجام این کار می‌تونیم بیایم یک ماتریسی مثل X بسازیم که بهش میگن ماتریس co-occurrence یا هم‌وقوع. برای ساخت این ماتریس هم دو تا روش داریم:روش اول اینکه به صورت window-based عمل کنیم (یه چیزی شبیه word2vec). یک پنجره مثلاً با طول 1 یا 2 یا 3 یا ... اطراف هر کلمه در نظر بگیریم، هر موقع اون تعداد کلمه رو باهم دیدیم یکی به تعدادش اضافه کنیم. با این روش می‌تونیم syntactic (شباهت نحوی) و semantic (شباهت معنایی) رو حفظ کنیم.روش دوم اینکه بیایم ماتریسمونو بر اساس کلمات و document ها بسازیم. این روش بیشتر موضوعات کلی رو در بر می‌گیره.بریم یک مثال از روش اول (window-based) ببینیم. تو مثال زیر طول پنجره 1 در نظر گرفته شده. فرض کنید پیکره‌مون شامل 3 تا جمله‌ست:I like deep learning.I like NLP.I enjoy flying.برای ساخت ماتریس میایم کلمات یونیک پیکره رو در میاریم و تو سطر و ستون میذاریم. بعد باید ماتریس رو با مقادیر مورد نظر پر کنیم:سطر اول و ستون اول:چند بار تو پیکره‌مون کلمه I بعد از I اومده؟ 0 بار.سطر اول و ستون دوم:چند بار تو پیکره‌مون کلمه like بعد از I اومده؟ 2 بار.سطر اول و ستون سوم:چند بار تو پیکره‌مون کلمه enjoy بعد از I اومده؟ 1 بار.خلاصه به همین ترتیب کل ماتریس رو پر می‌کنیم.این روش همونطور که تو مثال هم مشخصه اول اینکه خیلی اسپارسه (مقادیر 0 خیلی زیاد داره) و دوم هم اینکه با بزرگ‌تر شدن پنجره خیلی ابعادش بزرگ‌تر و همینطور اسپارس‌تر میشه.چطور این ایرادات رو حل کنیم؟ یه روش اینکه بیایم از همون اول سعی کنیم اطلاعات رو تو فضای کوچیک‌تری ذخیره کنیم (مثل ایده‌ی word2vec). یه روش دیگه هم اینکه می‌تونیم بیایم ابعاد ماتریسمون رو با روش‌های جبر خطی مثل SVD کمتر کنیم.در ادامه، قرار نیست وارد جزییات روش SVD بشیم، ولی قراره ایده کلی این روش رو ببینیم که چطور کار میکنه.فرض کنید یه ماتریس خیلی بزرگ داریم به اسم X. به کمک روش SVD میایم ماتریس X رو می‌شکنیم به سه تا ماتریس دیگه که دارن در هم ضرب میشن. ماتریس U (برای سطرها) و ماتریس ∑ و ماتریس V (برای ستون‌ها) که وقتی در هم دیگه ضرب میشن به جای ماتریس V، ترانهاده‌ش رو در نظر می‌گیریم. ماتریس ∑ یک ماتریس قطریه و ویژگی‌ای که داره اینکه مقادیرش ترتیب دارن. یعنی سطر اول بزرگ‌ترین مقدار رو داره، سطر دوم از سطر اول مقدارش کمتره، سطر سوم از سطر دوم مقدارش کمتره و همینطور به ترتیب مقادیرش در هر سطر قرار گرفتن و کمتر از سطر قبلی‌شون هستن (دایره‌های صورتی در اسلاید پایین به همین موضوع اشاره داره).در نهایت به کمک ماتریس ∑ می‌فهمیم که اطلاعات مهمِ ماتریس X چطور پراکنده شده و چون ترتیب داره می‌تونیم تصمیم بگیریم که به جای کل سطرها و ستون‌ها، k سطر و ستون اول و مهم رو برداریم و به این صورت ابعاد ماتریس رو کاهش بدیم در عین حال اطلاعات مهم رو هم حفظ کنیم.حالا اگه قرار باشه صرفاً کلمات رو بشمریم و یه ماتریس تشکیل بدیم و روی این ماتریس SVD بزنیم خروجی جالبی نخواهیم داشت. برای اینکه یک سری کلمات غیر مهم (مثلاً کلمات ربط) داریم که تعداد تکرارشون بالاست و شمارش خالی کلمات باعث میشه معنای بین کلمات گم بشه.به همین دلیل بعد از اینکه ماتریس X رو از روی تعداد کلمات ساختیم باید اول یه پیش پردازش روش انجام بدیم، بعد روش SVD بزنیم. چجوری پیش پردازش کنیم؟ مثلاً:به جای خود فراوانی کلمات از لگاریتم فراوانی کلمات استفاده کنیم.مقادیر خیلی بزرگ رو محدود کنیم.کلمات ربط و stopword‌ها رو حذف کنیم.به کلمات نزدیک به کلمه مورد نظرمون وزن بیشتری بدیم تا کلمات دورتر.اگه مقدار منفی داشتیم به صفر تبدیلش کنیم.خلاصه اگه بعد از این بلاهایی که سر ماتریس X آوردیم، SVD بزنیم یه خروجی شبیه اسلاید زیر خواهیم داشت. کم‌کم بین بردارهای کلمات، ارتباط معنایی شکل می‌گیره.در ادامه قراره با مدل GloVe آشنا بشیم و ببینیم اصلاً چرا چنین مدلی به وجود اومد.تا اینجا دیدیم که روش‌های مبتنی بر شمارش (مشابه همین چیزی که یکم بالاتر دیدیم، اینکه ماتریس co-occurrence تشکیل بدیم و تعداد کلمات رو بشمریم و ...) و روش‌های مبتنی بر پیش‌بینیِ مستقیم (مثل مدل word2vec) برای word embedding‌ها چطور کار می‌کنن.هر کدوم از این روش‌ها یک سری مزایا و معایب دارن. مثلاً روش‌های مبتنی بر شمارش چون فقط تعداد کلمات رو میشمرن، فاز training خیلی سریع‌تری دارن اما فقط برای پیدا کردن شباهت بین کلمات خوبن و دیگه ارتباطات پیچیده‌تر رو نمیشه باهاشون تشخیص داد.از طرفی دیگه در روش‌های مبتنی بر پیش‌بینی مستقیم به جای شمارش کلمات میان از یادگیری مدل برای پیش‌بینی کلمات استفاده می‌کنن. به همین دلیل می‌تونن روابط پیچیده‌تر از شباهت بین کلمات رو هم تشخیص بدن اما فاز training براشون می‌تونه خیلی زمانبرتر باشه.حالا آیا می‌تونیم بیایم یه روش جدید بسازیم و نقاط مثبت این دو روش رو ترکیب کنیم و درِش پیاده کنیم؟ بله. می‌تونیم. بچه‌های استنفورد سال 2014 این کارو کردن و اسم الگوریتمشون رو هم GloVe گذاشتن.ایده کلی الگوریتم GloVe به این صورته که میاد از نسبتِ احتمالاتِ co-occurrenceها (بالاتر دیدیم یعنی چی، همین که ترکیباتی که باهم میان رو بشمریم و ...) استفاده می‌کنه تا ارتباطات معنادار بین کلمات رو تشخیص بده (مثل ارتباط کلمات زن و مرد یا پادشاه و ملکه). جدولی که تو اسلاید پایین اومده رو در نظر بگیرید. از ردیف اول شروع می‌کنم به توضیح دادن. احتمال اینکه کلمه solid با کلمه ice ارتباط داشته باشه زیاده، در حالیکه احتمال ارتباط کلمه gas با ice کمه. به صورت مشابه، احتمال ارتباط کلمه water با ice بالاست، اما احتمال ارتباط کلمه random با ice کمه (منطقی هم هست، ارتباط یخ با آب و حالت جامد بیشتره تا حالت گاز). ردیف دوم هم به همین صورت مشابه داره تکرار میشه اما به جای ice کلمه steam رو در نظر گرفتیم. تو ردیف سوم هم اومدیم از نسبت احتمالاتی که حساب کردیم استفاده کردیم. هرچی کلمه مد نظر با ice (که تو صورت کسره) ارتباط بیشتری داشته باشه، نسبت احتمالاتی بزرگ‌تره و هرچی با steam (که تو مخرج کسره) ارتباط بیشتری داشته باشه، نسبت احتمالاتی کوچیک‌تره.برای اینکه نشون بدن ادعایی که تو اسلاید قبلی کردن به واقعیت نزدیکه، اومدن یک پیکره بزرگ رو در نظر گرفتن، تعداد کلمات رو طبق جدول زیر توش شمردن (مثلاً برای سطر و ستون اول اومدن تعداد ترکیب‌هایی که ice و solid کنار هم اومدن رو شمردن بدون اهمیت ترتیب) و واقعاً نتیجه نهایی با چیزی که انتظار می‌رفته، (از نظر بزرگ یا کوچیک بودن عدد یا نزدیک بودن عدد به یک) یکسان بوده.حالا سوال اینکه چجوری با این روش می‌تونیم معنای بین کلمات رو به صورت خطی مدل کنیم؟ مثلاً بیایم از کلمه king کلمه man رو حذف کنیم و نتیجه معادل بشه با کلمه queen. نیازه که یک سری رابطه که تو اسلاید زیر اومده رو تعریف کنیم. مثلاً اگر از احتمالی که محاسبه می‌کنیم log بگیریم مثل این می‌مونه که انگار اومدیم بین دو تا بردار کلمه ضرب داخلی حساب کردیم. یا اگر از نسبت احتمالات لگاریتم بگیریم مثل این می‌مونه که اول دو تا بردار کلمه رو از هم کم کنیم و بعد ضرب داخلی‌شو با بردار کلمه سوم محاسبه کنیم (یا اینجوری هم میشه بهش نگاه کرد، مثلاً یک ویژگی معنایی مشترک رو بین دو کلمه جدا کنیم بعد ببینیم چقدر تو کلمه سوم وجود داره). به کمک این نگاشت‌ها می‌تونیم یه جورایی فضای آماری و شمارش کلمات رو به فضای برداری مپ کنیم.یه نگاهی هم به تابع هزینه بندازیم و ببینیم چطور تعریف شده.اول اینکه یه تابع f داره که روی تعداد هم‌وقوع‌ کلمات (co-occurrenceها) اعمال می‌شه و در واقع تعیین می‌کنه هر جفت کلمه چه وزنی توی یادگیری داشته باشه. ایده‌ش اینه که کلمات خیلی نادر (که معمولاً نویز دارن) یا خیلی پرتکرار (مثل stopword‌ها) زیاد روی مدل اثر نذارن. در عوض، مدل بیشتر روی هم‌وقوع‌های میانه تمرکز کنه، چون معمولاً اطلاعات معنایی بیشتری دارن و برای ساختن embeddingها مهم‌ترن.خود تابع هزینه هم کل کاری که داره می‌کنه اینه که اختلاف بین دو تا چیز رو کم می‌کنه:اولی پیش‌بینی مدله. یعنی ضرب داخلی دو تا embedding (دو تا بایاس هم داریم که میتونیم برای سادگی نادیده بگیریم). در واقع همون برداریه که مدل یاد می‌گیره در نهایت برای هر کلمه بسازه.دومی هم اطلاعاتیه که از داده‌ها می‌گیریم، یعنی log تعداد هم‌وقوع واقعی دو تا کلمه توی متن.حالا تابع هزینه میاد این دوتا رو با هم مقایسه می‌کنه. هرچی پیش‌بینی مدل (یعنی همون ضرب داخلی embeddingها) بیشتر شبیه به log هم‌وقوع واقعی کلمات بشه، خطا کمتر می‌شه. به‌ عبارتی دیگه، مدل داره یاد می‌گیره که رابطه‌ی آماری بین کلمات رو طوری توی فضای برداری ذخیره کنه که بشه با یه ضرب داخلی دوباره بهش رسید.مدل GloVe نتایج قابل قبولی هم داشته. برای مثال بهش گفتن کلمات نزدیک به غورباقه رو بهمون بده و خروجی‌ای که داده اکثراً به خانواده غورباقه‌ها و وزغ‌ها ارتباط داشته!چطور می‌تونیم Word Vectorها رو ارزیابی کنیم؟معمولاً این ارزیابی توی تسک‌های NLP به دو صورت درونی و بیرونی انجام میشه. روش درونی معمولاً سر راست‌تر، سریع‌تر و کم‌هزینه تره، به این صورت که میشه یک سری معیار تعریف کرد و همون‌هارو اندازه گیری کرد و فهمید آیا مدلمون خوبه یا نه، مثل perplexity. در حالیکه روش بیرونی پیاده‌سازیش پیچیده‌تر و زمانبرتره و با دنیای واقعی سر و کار داریم. مثلاً بیایم از کاربر ورودی واقعی بگیریم و ببینیم آیا خروجی مدلمون قابل قبوله یا نه. در ادامه با جزییات بیشتری از هر دو روش آشنا میشیم.یکی از روش‌های درونی برای ارزیابی مدل اینکه بیایم یک سری analogy یا رابطه بین کلمات تعریف کنیم و ببینیم مدلمون چطور پیش‌بینی می‌کنه. مثلاً به مدل بگیم نسبت مرد به زن مثل نسبت پادشاه هست به کدوم کلمه؟ و ببینیم خروجی مدل چه کلمه‌ای خواهد بود و به این طریق بسنجیم که آیا مدل خوبی داریم یا نه.تو اسلاید زیر بخش کوچیکی از خروجی مدل GloVe به تصویر کشیده شده و میشه به وضوح دید که چطور میشه به صورت خطی (با جمع و تفریق بین word embedding‌ها) از یک کلمه به کلمه دیگه رسید. مثلاً از کلمه خواهر به برادر رسید یا از کلمه زن به مرد و همینطور برعکس. همینطور میشه analogy‌های دیگه هم تعریف کرد. مثلاً چطور از کلمه slow اول به slower و بعد به slowest رسید.یک روش درونی دیگه اینکه بیایم ببینیم شباهت بین کلمات از نظر مدل چقدر به شباهت کلمات از نظر آدم‌های واقعی شبیه هست. برای مثال، دیتاست WordSim353 دیتاستی هست که میزان شباهت بین جفت کلمات مختلف رو از نظر آدما گرد آوری کرده. میشه میزان این شباهت رو با شباهتی که مدل برای جفت کلمات تعیین میکنه مقایسه کرد و دید چقدر به نظر آدم‌ها نزدیکه.جدول زیر نشون می‌ده مدل‌های مختلف روی دیتاست‌هایی که میزان شباهت بین جفت کلمات رو از نظر آدم‌ها ثبت کردن، چه عملکردی داشتن. یکی از دلایلی که مدل GloVe نسبت به بقیه مدل‌ها تونسته نتایج بهتری بگیره به دیتاستی برمی‌گرده که موقع آموزش مدل ازش استفاده کردن.یکی از روش‌های بیرونی برای ارزیابی مدل اینکه ببینیم چقدر مدل می‌تونهName Entity Recognition انجام بده، به این صورت که بتونه اسم آدم‌ها، سازمان‌ها یا مکان‌ها رو تشخیص بده. تو جدول زیر، مقایسه‌ای از مدل‌های مختلف روی همین تسک ارائه شده که میشه دید مدل GloVe نتایج بهتری داشته نسبت به بقیه مدل‌ها.حالا یک سوال، اگر یک کلمه بیشتر از یک معنی داشته باشه سر word embedding‌ش چی میاد؟ آیا میشه همه معانی‌شو صرفاً با یک بردار نشون داد یا باید راه حل دیگه‌ای داشته باشیم؟یکی از کلمات با چندین معنی مختلف کلمه pike عه. یک لیست از معانی مختلفی که داره تو اسلاید زیر آورده شده.یکی از راه‌حل‌هایی که چندین سال قبل ارائه شد ولی خیلی پرکتیکال نبود این بود که بیان برای هر کلمه به جای یک وکتور، به ازای تعداد معانی‌ای که داره وکتور در نظر بگیرن و بعد مدل رو آموزش بدن به صورتی که بتونه تمامی معانی هر کلمه رو ببینه. مثلاً کلمه bank که با رنگ سبز تو اسلاید زیر مشخص شده دو بار اومده. bank1 به معنی بانک کنار کلماتی مثل مالی و تراکنش آورده شده و bank2 به معنی کناره‌ی رود و دریا کنار کلماتی مثل مرز و جهت آورده شده.منتها این روش دو تا ایراد داره. اول اینکه چون به ازای هر کلمه داریم چند تا بردار در نظر می‌گیریم کار خیلی پیچیده‌تر میشه. دو هم اینکه چون داره به صورت دیکشنری‌وار به هر کلمه و معنیش نگاه می‌کنه انعطاف نداره. ما دنبال روشی هستیم که اول اینکه پیچیدگی کمتری داشته باشه و دو اینکه بتونه انعطاف‌پذیر‌تر باشه.در عوض، اومدن گفتن ما بیایم تعداد بردارها برای هر کلمه رو همون یک در نظر بگیریم (هر کلمه یک بردار معنایی) ولی اگه کلمه‌ای هست که چند تا معنی داره، بیایم میانگین وزن‌دار از معانی مختلف همون کلمه رو براش در نظر بگیریم. ممکنه به نظر برسه که این کار باعث گیج شدن مدل بشه، اما حقیقت اینکه مدل می‌تونه از روی این میانگین‌های وزن‌دار و ترکیب خطی معانی مختلف رو جدا کنه. مثلاً یکی از معانی کلمه pike به یه گونه‌ای از ماهی‌ها اشاره می‌کنه. مدل وقتی میاد بردار کلمه pike رو (هرچند که میانگین وزنی از چند معنی رو داره) با بردار کلمه fish مقایسه می‌کنه خودش متوجه شباهت‌ معنایی بین این دو کلمه میشه.خلاصه مباحث این جلسهپرونده word2vec رو بستیم و با مدل SVD و GloVe آشنا شدیم و دیدیم که چرا اصلاً نیاز بود تا این الگوریتم‌ها به وجود بیان و روش‌های کلاسیک و قدیمی چه ایراداتی داشتن. با روش‌های ارزیابی مدل‌های متنی آشنا شدیم و دیدیم که چطور اومدن چالش چند معنی بودن کلمات رو حل کردن.اگر جایی ایراد یا مشکلی بود، حتماً بهم بگید تا تصحیح کنم. اگر هم پست رو دوست داشتید و محتواش به دردتون خورد، می‌تونید یه قهوه مهمونم کنید!ویدیو این جلسهاسلاید این جلسهجزوه جلسه قبلی (جلسه اول)جزوه جلسه بعدی (جلسه سوم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Fri, 12 Sep 2025 12:45:08 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره NLP استنفورد (CS224N) - جلسه اول - Intro &amp; Word Vectors</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-nlp-%D8%A7%D8%B3%D8%AA%D9%86%D9%81%D9%88%D8%B1%D8%AF-cs224n-%D8%AC%D9%84%D8%B3%D9%87-%D8%A7%D9%88%D9%84-intro-word-vectors-vf8cgaxqmbpp</link>
                <description>منبع اصلی این پست، دوره NLP استنفورد (CS224N) از کانال یوتیوب Stanford Online است. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به صورت کاملاً رایگان به اشتراک بذارم. کل ویدیوها 23 تاست که سعی می‌کنم ماهی حداکثر یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم. لازم به ذکره که برای فهم بهتر مباحث این دوره، دونستن مفاهیم پایه‌ای در یادگیری ماشین، جبر خطی و آمار و احتمال پیشنهاد می‌شه.این دوره در مورد چیه؟به صورت کلی تو این جلسه قراره با زبان آدمیزاد و معنای کلمات، word2vec، مقدمات بهینه‌سازی و word vector ها آشنا بشیم. تو یک جمله اگه بخوام بگم، قراره ببینیم که چطور معنا و مفهومِ کلماتِ زبان آدمیزاد در قالب بردار با اعداد حقیقی نمایش داده می‌شه.انتظار داریم چه مباحثی رو تو این دوره پوشش بدیم؟اول از همه، قراره یک سری موضوعات و مفاهیم کلیدیِ پردازش زبان طبیعی از جمله word vector ها، شبکه‌های feed-forward، شبکه‌های recurrent یا بازگشتی، attention، ترنسفرمرها، مدل‌های encoder-decoder، تفسیرپذیری مدل‌ها و ... رو مورد بررسی قرار بدیم. بعد یک شِمای کلی از درک زبان آدمیزاد و چالش‌های فهموندن زبان آدمیزاد به کامپیوتر رو بررسی کنیم. در نهایت، ببینیم که این ابزارهای زبان طبیعی که خودمون هم در روزمره ازش استفاده می‌کنیم مثل ChatGPT و امثالهم چطور ساخته میشن و اگر شد خودمون هم یکی شبیهشو به کمک PyTorch بسازیم!خب، بریم با زبان آدمیزاد شروع کنیم ...پدیده‌ای به اسم زبان و ارتباط بین انسان‌ها حدود یک میلیون سال پیش به وجود اومده؛ که در مقایسه با قدمت حیات روی زمین، تقریباً هیچ به حساب میاد. بعدتر، حدود پنج هزار سال قبل، انسان‌ها خط رو اختراع کردن تا بتونن ارتباطات زبانی‌شون رو به شکل موندگارتر و به نقاط دورتر منتقل کنن.زبان انسان از این جهت پیچیده‌ست که کلمات می‌تونن در جاهای مختلف استفاده بشن و در کانتکست‌های مختلف معانی متفاوتی رو برسونن. از وقتی که مفاهیم هوش مصنوعی و شبکه عصبی معرفی شدن، دانشمندان و محققان سعی کردن یه راهی پیدا کنن تا زبان انسان رو به نحوی به کامپیوتر بفهمونن. از خیلی سال پیش این کارها شروع شده و همچنان ادامه داره.از اولین ابزارها تو حوزه پردازش زبان طبیعی میشه به گوگل ترنسلیت اشاره کرد. درسته که هیچوقت ترجمه‌هاش بی ایراد و کامل نبودن مخصوصاً برای زبان‌هایی که کمتر در دنیا رایج هستن، ولی یکی از اولین ابزارها بوده و هنوز هم در حال توسعه دادن و بهتر کردنش هستن.یکی از مهم‌ترین دستاوردهای بشر تو حوزه پردازش زبان طبیعی مدل GPT-3 بوده که توسط Open AI توسعه داده شده. الان قرار نیست در مورد جزییات این مدل‌ها بدونیم ولی خوبه در این حد بدونیم که کلیات این مدل به چه صورت کار میکنه.قبل‌ترها، برای هر تسکی باید میومدن یه مدل جدا و یه کلاسیفایر جدا میساختن. مثلاً یه مدل جدا برای تشخیص متن‌های اسکم از غیر اسکم، یا یه مدل جدا برای تشخیص محتوای پورن از محتوای غیر پورن. ولی با اومدن مدل GPT-3 دیگه نیازی نبود برای هر تسک یه مدل و کلاسیفایر به صورت جدا جدا تعریف کرد. دلیلش هم این بود که این مدل دانش و آگاهی لازم رو نسبت به زبان، کلمات، ساختار، انواع تسک‌ها و ... داشت. حتی تو نسخه‌های بعدترِ GPT این مدل‌ها میتونستن تسک‌های پیچیده‌تری هم انجام بدن. مثلاً بعنوان ورودی عکس بگیرن و بعنوان خروجی برای عکس کپشن بزنن و بفهمن که تو یه عکس چه اتفاقاتی داره میفته.خلاصه که پردازش زبان طبیعی از ورژن اولیه گوگل ترنسلیت با کلی ایراد و خطا شروع شد، با مدل‌های GPT به اوج خودش رسید و هنوز هم در حال پیشرفته و هر روز کلی مدل جدید معرفی میشن که میشه باهاشون کلی کارای خفن و جدید کرد.منظور از معنای کلمات چیست و چطور به کامپیوتر فهمونده میشن؟طبق تعریف دیکشنری، معنای یک کلمه، یعنی مفهومی (idea) که اون کلمه میخواد بهمون برسونه! ولی این بیشتر از بعد زبان شناسیه و فهموندنش به کامپیوتر کار سختیه.یک راه حل برای فهموندن کلمات و معناشون به کامپیوتر این بوده که اومدن یک سری دیکشنری تعریف کردن مثل WordNet که توش برای کلمات مترادف‌ها و hypernym ها رو نگهداری میکنه. ترادف که مشخصه چیه. منظور از hypernym کلمه‌ای هست که معناش کلی تره و چندین کلمه دیگه رو در بر میگیره. مثلاً واژه &quot;حیوان&quot; hypernym (فرارده) هست برای کلمات &quot;اسب&quot; و &quot;روباه&quot; و &quot;خرس&quot; که به این کلمات جزئی تر hyponym (زیررده) میگن.اما ... این روش یک سری ایرادات داره. سه تا از مهم‌تریناشو در ادامه بهش اشاره می‌کنیم.اول اینکه نمیشه بین کلماتِ مترادف تمایز قائل شد. دو کلمه‌ی خوب و خفن می‌تونن مترادف باشن، ولی ما بعنوان انسان می‌فهمیم که باهم دیگه فرق دارن، ولی این تفاوت رو نمیشه توی این مدل دیکشنری‌ها مشخص کرد.دوم اینکه کلماتش محدود و قدیمی هستن و زبان یک چیز داینامیکه و هر روز یک سری کلمات جدید به وجود میان، ولی این مدل دیکشنری‌ها کلمات جدید رو در بر نمی‌گیرن و نمیشه حتی به روزش هم کرد.سوم هم اینکه نمیشه با این روش به صورت دقیق تشابه بین کلمات رو محاسبه کرد. در ادامه این مورد رو بیشتر توضیح می‌دیم.خب مشکل چیه؟ خیلی قبل‌تر یکی از تکنیک‌ها برای مدل کردن کلمات از زبان آدمیزاد به زبان کامپیوتر، استفاده از بردارهای one-hot بود. به این صورت که به ازای هر کلمه داخل دیکشنری یک بُعد در نظر می‌گرفتن، برای تمام بُعدهای دیگه صفر و برای بعدی که متناظر با کلمه‌ای بود که می‌خواستن یک در نظر می‌گرفتن. یک روش گسسته کلاسیک صرفاً برای مدل کردن کلمات.این روش چه ایرادی داره؟ اول از همه سایزش! گفتیم که به ازای هر کلمه یک بُعد در نظر می‌گرفتن، پس منطقاً نمیشه باهاش تمام کلمات یک زبان رو نمایش داد!مشکل بعدی اینکه نمیشه باهاش شباهت بین کلمات رو نشون داد. چرا؟ چون با این تکنیک همیشه فقط یکی از ابعاد مقدارش یکه و بقیه صفر، یعنی اینکه تمام بردارها به هم دیگه عمودن! عملاً بین بردارهای عمود هم شباهتی نداریم! پس نمیشه با این روش شباهت بین کلمات رو تعریف کنیم. راه حل چیه؟ بیایم بردارهایی رو تعریف کنیم که شباهت بین کلمات رو خودشون بفهمن و یاد بگیرن!چجوری این کارو انجام بدیم؟ از distributional semantic استفاده کنیم.به این معنی که بیایم به جای خود کلمه، از کلمات مجاور کلمه‌ای که دنبالش هستیم استفاده کنیم تا معنای کلمه مورد نظر رو در بیاریم. به کلمات مجاور context میگیم و خود کلمه اصلی رو target می‌نامیم. مثلاً کلمه banking رو که تو اسلاید پایین آورده شده در نظر بگیرید. با توجه به اینکه کلمات context چی هستن، می‌تونیم بفهمیم که معناش در هر جمله چیه.همین جا نیازه که دو تا تعریف داشته باشیم از type و token چون در ادامه هی قراره بهشون اشاره کنیم. پس بهتره که بدونیم چی هستن. مثلاً همین کلمه banking رو در نظر بگیرید. تو سه جمله متفاوت با سه معنی مختلف اومده، پس کلمه banking یه جور type به حساب میاد. از طرفی دیگه، هر جمله رو می‌تونیم به کلمات تشکیل دهنده‌ش تجزیه کنیم، به این کلمات token گفته میشه.بالاتر دیدیم که برای مدل کردن معنای کلمات در ابتدا اومدن از بردارهای گسسته با محتوای 0 و 1 استفاده کردن و گفتیم که این روش خوبی نیست. در ادامه اومدیم گفتیم ازdistributional semantic استفاده می‌کنیم که میاد از کلمات context استفاده میکنه تا معنای کلمه target رو مدل کنه. در نهایت قراره به چجور برداری برسیم؟ بردارهایی که به جای گسسته بودن و شامل 0 و 1 بودن، قراره شامل اعداد حقیقی باشن و به نحو بهتری معنای کلمات رو نمایش بدن. به عبارتی دیگه، به جای اینکه معنی هر کلمه فقط در یک بعد قرار بگیره (یک بعد 1 بقیه ابعاد 0)، تو کل ابعاد قراره پخش بشه. تو مثال پایین برداری که برای نشون دادن معنی کلمات اومده فقط 8 بعد داره، در حالیکه، در مثال‌ها و کاربردهای واقعی این بردارها 300 بعد دارن. به این بردارها word embedding هم گفته میشه.با این روش معنای کلمات بهتر با اعداد و بردارها تعریف میشه. از اونجایی که مغز انسان درکی از 300 بعد یا حتی 8 بعد نداره، برای اینکه بفهمیم آیا واقعا معنای کلمات به درستی با این روش تعریف میشن یا نه، اومدیم صرفاً از دو بعد استفاده کردیم و چند تا از کلمات مختلف رو که با این روش امبد شده بودن رو تو اسلاید پایین نمایش دادیم. وقتی از 300 بعد فقط دو بعد رو نگه می‌داریم در واقع درصد خیلی زیادی از اطلاعات رو داریم دور می‌ریزیم، اما با این حال باز هم تا حد خوبی میشه تمایز بین کلمات رو دید. مثلاً تو اسلاید زیر افعال had و has و have تو یک گروه کنار هم قرار گرفتن یا اینکه افعال need و help هم نزدیک هم هستن. این مثال نشون میده که با این روش چطور کامپیوترها می‌تونن تا حد خیلی خوبی معنای کلمات رو به همون صورتی که انسان‌ها درک می‌کنن درک کنن.الگوریتم word2vecالگوریتم word2vec سال 2013 توسط Mikolov معرفی شد. شامل دو تا الگوریتم داخل خودش میشه به اسم‌های Skip-Gram و CBOW (Continuous Bag of Words). در ادامه جزییات بیشتری رو در موردش خواهیم دید.در نهایت کاری که word2vec می‌خواد بکنه همین چیزیه که تا اینجای کار دیدیم. قراره معنای کلمات رو با استفاده از اعداد حقیقی در قالب یک سری بردار نمایش بده. به عبارتی دیگه، قراره معنای کلمات رو با توجه به جمله‌ای که اون کلمه توش اومده یاد بگیره. چجوری؟به این صورت که اول یک پیکره داریم (منظور از پیکره تعداد زیادی متن و نوشته‌ست). یک لیست از کلمات داریم و هر کلمه رو با یک بردار نمایش می‌دیم. به ازای هر کلمه، target (یا center) و context تعریف می‌کنیم. اگر کلمه‌ای رو بعنوان center در نظر بگیریم، منظور از context کلمات همسایه و کناریش هستن. در ادامه کلمه‌ی target رو با c و کلمات context رو با o نمایش میدیم. کل الگوریتم قراره دو تا احتمال حساب کنه و به دنبال مقدار ماکسیمم این احتمال باشه:احتمال اول: اگر کلمات context یا کناری رو داشته باشیم کدوم کلمه با احتمال بیشتری میتونه target باشه؟ (ایده کلی الگوریتم CBOW)احتمال دوم: اگر کلمه center یا target رو داشته باشیم کدوم کلمات بعنوان context و کلمات همسایه محتمل‌تر خواهند بود؟ (ایده کلی الگوریتم Skip-Gram)در نهایت به ازای هر کلمه دو تا بردار احتمالاتی محاسبه میشه، اولیش اینکه اگر کلمه در نقش target باشه و دومیش هم اینکه اگر کلمه در نقش context باشه.بریم در ادامه یکی دو تا مثال ببینیم تا مطالب بهتر جا بیفته.فرض کنید یه متنی داریم مثل اسلاید پایین و کلمه into رو بعنوان center با اندیس t انتخاب کردیم. خود کلمه into رو به صورت w_t نشون میدیم. (منظورمون از اندیس صرفاً شماره‌ایه که به اون کلمه دادیم، مثلا 0، 1، 2 و ... تا رسیدیم به شماره‌ی t. وقتی میگیم t-1 یعنی اندیس یک کلمه قبل از کلمه با اندیس t، وقتی میگیم t+1 یعنی اندیس یک کلمه بعد از اون و همینطور برای t-2 و t+2 که یعنی اندیس دو کلمه قبل و اندیس دو کلمه بعد و الی آخر. خود کلمات رو با w نشون میدیم. مثلاً w_t-1 یعنی یک کلمه قبل از w_t و یا w_t+1 یعنی یک کلمه بعد از w_t).بالاتر گفتیم دو مدل کلمه در نظر میگیریم. یا target / center یا context. تو مثال پایین کلمه into بعنوان target در نظر گرفته شده و کلمات کناریش بعنوان context. حالا یه سوال. چند تا کلمه بعد و قبل از target رو بعنوان context در نظر بگیریم؟ اینجاست که میایم و window تعریف می‌کنیم برای کلمات کناری که مشخص بشه چقدر دورتر قراره بریم و چند تا کلمه کناری رو قراره در نظر بگیریم. تو مثالی که داریم پنجره یا window برابر با 2 هست. به این معنی که دو تا کلمه بعد و دو تا کلمه قبل از target رو بعنوان context در نظر گرفتیم.حالا قراره بیایم و به صورت خاص تو این مثال 4 تا احتمال محاسبه کنیم. (چرا 4 تا؟ چون پنجره رو 2 در نظر گرفتیم، 2 تا کلمه قبل و 2 تا کلمه بعد از کلمه target پس میشه 4 تا احتمال!) احتمالاتی که قراره حساب کنیم به شرح زیره:احتمال P(w_t+1 | w_t): اگر کلمه into رو بعنوان target داشته باشیم، با چه احتمالی کلمه banking بعد از into میاد؟احتمال P(w_t-1 | w_t): اگر کلمه into رو بعنوان target داشته باشیم، با چه احتمالی کلمه turning قبل از into میاد؟احتمال P(w_t+2 | w_t): اگر کلمه into رو بعنوان target داشته باشیم، با چه احتمالی کلمه crises دو تا بعد از into میاد؟احتمال P(w_t-2 | w_t): اگر کلمه into رو بعنوان target داشته باشیم، با چه احتمالی کلمه problems دو تا قبل از into میاد؟این محاسبات انجام میشه. تو گام بعدی میایم کلمه target رو به banking تغییر می‌دیم و دوباره احتمالات بالا رو با کلمات context و target جدید محاسبه می‌کنیم.حالا سوال پیش میاد که این احتمالات چجوری حساب میشن؟ در ادامه قراره جزییات این محاسبات رو ببینیم!تا اینجا گفتیم چی؟ گفتیم هر دفعه میایم یک کلمه رو بعنوان target در نظر می‌گیریم و بعد یک پنجره برای تعداد کلمات context در نظر می‌گیریم. بعد احتمال کلمات context رو با توجه به اون کلمه target محاسبه می‌کنیم. در نهایت احتمالاتی که به دست آوردیم رو در هم ضرب می‌کنیم و میریم سراغ کلمه‌ی بعدی و دوباره همین پروسه رو تکرار می‌کنیم. تعریف ریاضی این چیزایی که گفتیم میشه likelihood که تو اسلاید پایین آورده شده.اول کار گفتیم که کل کار الگوریتم word2vec اینکه یاد بگیره. پروسه یادگیری همیشه با یک تابع loss یا cost یا objective یا تابع هزینه همراهه که قراره طی فرایند یادگیری مقدارش رفته رفته هی کمتر و کمتر بشه (به عبارتی دیگه، قراره که مقدار likelihood بیشینه بشه). تابع هزینه تو الگوریتم skip-gram به صورتی که تو اسلاید پایین آورده شده محاسبه میشه.حالا یک سوال! چرا تابع هزینه یهو اینقدر متفاوت از تابع likelihood شد؟ اصلاً چه رابطه‌ای بین تابع likelihood و تابع هزینه یا objective هست؟ مگه ما نگفتیم می‌خوایم likelihood رو بیشینه کنیم، پس چرا مستقیم نمیایم از خود likelihood برای بیشینه کردن احتمال استفاده کنیم و نیازه که بیایم تابع objective تعریف کنیم و اون رو کمینه کنیم؟قضیه اینکه تو تابع likelihood ما میایم یه سری احتمال که اعداد بین 0 تا 1 هستن رو هر دفعه در هم ضرب می‌کنیم. وقتی تعداد این ضرب‌ها زیاد و زیادتر بشه، عدد نهایی به 0 میل می‌کنه! این چیزی نیست که ما دنبالش باشیم! پس میایم چیکار می‌کنیم؟ به جای اینکه مستقیم از خود likelihood استفاده کنیم و بخوایم اون رو بیشینه کنیم، میایم اول از likelihood لگاریتم می‌گیریم. پس ضرب‌هارو تبدیل به جمع می‌کنیم تا مشکل صفر شدن رو حل کنیم. بعد میایم یه منفی پشتش میذاریم. چرا؟ چون تو تسک‌های ماشین لرنینگ همیشه دنبال نقطه کمینه هستیم دلیل خاصی نداره! به جای اینکه بخوایم تو تابع likelihood دنبال ماکسیمم بگردیم (بدون منفی)، اسمشو عوض می‌کنیم میذاریم تابع هزینه، یه منفی پشتش می‌ذاریم و دنبال مینیمم می‌گردیم.حالا الان تابع هزینه داریم و دنبال این هستیم که تا اونجایی که می‌تونیم این مقدار منفی و هزینه رو کمینه کنیم.حالا یک سوال دیگه، اون ضریب 1 بر روی T (تعداد کل کلمات پیکره) که قبل از جمع‌ها اومده چیه؟ چرا اصلاً نیازه که داشته باشیمش؟در یک کلمه، برای نرمال سازی اومده. فرض کنید نباشه، چه اتفاقی می‌افته؟ قبول دارید که داریم یک سری احتمال رو باهم جمع می‌کنیم دیگه؟ هرچی تعداد کلمات متن بیشتر باشه، حاصل این جمع‌ها عدد بزرگ‌تری میشه. این خوب نیست! چجوری این مشکل رو حل کنیم و تابع هزینه رو مستقل از تعداد کلماتِ متن کنیم؟ بیایم بر تعداد کلمات متن تقسیم کنیم و یه جور میانگین‌گیری و نرمال‌سازی کنیم. به همین سادگی!خب، تونستیم از روی تابع likelihood تابع هزینه رو به صورتی که تو اسلاید پایین آورده شده بسازیم و قراره دنبال مقدار کمینه براش باشیم. حالا سوال! چجوری قراره اصلاً این احتمالات (احتمال کلمات context رو وقتی هر دفعه کلمه target رو داریم) رو حساب کنیم که اصلاً بخوایم باهم دیگه جمعشون کنیم؟خیلی بالاتر گفتیم که تو الگوریتم word2vec هر کلمه دو تا نقش داره، یا target هست یا context. پس دو تا بردار در نظر می‌گیریم، یکی برای وقتی که کلمات نقش target یا center دارن و یکی هم برای وقتی که کلمات نقش context دارن. در ادامه خواهیم دید که قراره از این دو بردار چه استفاده‌ای بکنیم.وقتی میگیم بردار، منظورمون چنین چیزیه مثلاً (9 تا کلمه و 1 بعد داشته باشیم):قراره احتمال حساب کنیم، احتمالِ چی؟ احتمال P(o | c). به این معنی که اگر یک کلمه‌ای مثل c بعنوان target یا center بهمون داده باشن، با چه احتمالی کلمه (یا کلمات o) در مجاورت کلمه c قرار می‌گیرن؟ (به زبان ساده، کلمه وسطی رو بهمون دادن، قراره بیایم احتمال کلمات همسایه رو حساب کنیم.) قراره بیایم از تابع softmax استفاده کنیم. اگه از قبل آشنایی با مباحث ماشین لرنینگ یا دیپ لرنینگ داشته باشید می‌دونید softmax چیه، ولی اگر نمی‌دونید، خیلی چیز عجیب غریبی نیست، کل کاری که می‌کنه اینکه هر عددی رو تو بازه حقیقی بعنوان ورودی می‌گیره و میبرتش تو بازه‌ی 0 تا 1.به صورت دقیق‌تر محاسباتی که انجام میده سه مرحله داره:اول: می‌خوایم ببینیم کلمه وسطی c و کلمات مجاور o چقدر بهم شبیه هستن. چجوری این شباهت رو حساب کنیم؟ از ضرب داخلی کمک می‌گیریم. هر چقدر عدد حاصل به سمت مثبت بی‌نهایت نزدیک‌تر باشه و بزرگ‌تر باشه یعنی شباهت بیشتره. هر چقدر عدد حاصل کوچیک‌تر و منفی‌تر باشه، یعنی شباهت کمتره.دوم: خروجی مرحله قبل رو بعنوان ورودی می‌دیم به تابع نمایی. چرا؟ برای اینکه تو مرحله قبلی، هر عددی می‌تونیم داشته باشیم، حتی اعداد منفی! ولی وقتی می‌خوایم احتمال حساب کنیم نمی‌تونیم اعداد منفی داشته باشیم که! پس باید به طریقی همه اعداد مرحله قبل رو مثبت کنیم و اعداد منفی رو از بین ببریم.سوم: مرحله اول و دوم رو به ازای تمام واژگانی که داریم تکرار می‌کنیم و حاصل هر مرحله رو جمع می‌کنیم. یک کسر تعریف می‌کنیم عدد حاصل از این جمع رو می‌ذاریم تو مخرج. صورت کسر هم میشه خروجی مرحله دوم. چرا نیاز بود این کسر رو تعریف کنیم؟ یه جور نرمال سازیه. به این دلیل که می‌خوایم عددی که برای هر کلمه حساب می‌کنیم در نهایت جمع همشون باهم به 1 برسه و بین 0 تا 1 باشه. (قراره در نهایت احتمال حساب کنیم دیگه.)کل مراحلی که توضیح دادیم به زبان ریاضی تو اسلاید پایین آورده شده.حالا چرا به این تابع (و محاسباتی که دیدیم) میگن softmax؟ چرا max؟ چون هرچی x_i (ورودی) بزرگ‌تر باشه، احتمالی هم که بهش اختصاص داده میشه (خروجی) بیشتره. چرا soft؟ چون حتی مقادیر خیلی کوچیک هم همچنان یک احتمالی بهشون تخصیص داده میشه و احتمال مقادیر خیلی کوچیک معادل صفر نیست.گفتیم که برای هر کلمه دو تا وکتور در نظر می‌گیریم. به صورت دقیق‌تر، کل این دو تا وکتور با تتا نمایش داده میشن و ابعاد تتا برابره با 2 (چون دو تا وکتور داریم برای هر کلمه) در d در V. منظور از d ابعادی هست که داریم و منظور از V تعداد کلماتی که در نظر گرفتیم. هدف این بود که بیایم بهترین مقدار این پارامتر تتا رو حساب کنیم به صورتی که تابع هزینه کمینه بشه. به زبان ریاضی برای پیدا کردن مینمم تابع هزینه باید بیایم از گرادیان کاهشی استفاده کنیم. اینکه گرادیان کاهشی چیه و چه جزییاتی داره تو این پست بهش پرداخته شده. در ادامه خواهیم دید که چطور از مشتق زنجیره‌ای استفاده می‌کنیم تا بتونیم گرادیان رو حساب کنیم.به صورت خیلی کلی، گرادیان یک تابع یعنی بیایم از تمام پارامترهای اون تابع نسبت به متغیر خودشون مشتق بگیریم (یعنی هر پارامتر تابع رو جداگانه در نظر می‌گیریم و نسبت به همون پارامتر مشتق می‌گیریم، نه نسبت به یک متغیر ثابت برای همه) و همه‌ی این مشتق‌ها رو کنار هم در قالب یک بردار داشته باشیم. حالا ما قراره چیکار کنیم؟ قراره بیایم از تابع هزینه (که بالاتر تعریف کردیم) نسبت به تتا (دو برداری که برای کلمات در نظر گرفتیم) مشتق بگیریم و ببینیم که چطور میشه!در ادامه قراره یکم جزییات ریاضی ببینیم!از ابتدای این جلسه یک تابع likelihood داشتیم که قرار بود ببینیم به ازای کدوم مقادیر تتا بیشینه میشه! با جزییاتی که قبلاً مفصلاً توضیح دادیم، اومدیم از روی likelihood تابع هزینه رو ساختیم و قرار بود ببینیم که به ازای کدوم مقادیر تتا کمینه میشه! بعد تر هم دیدیم که چطور قراره به کمک تابع softmax احتمالی که دنبالش هستیم رو حساب کنیم. ترجمه ریاضی همه چیزایی که تا اینجا گفتیم تو عکس پایین اومده:گفتیم که قراره بیایم از تابع هزینه نسبت به پارامتر تتا مشتق بگیریم. پارامتر تتا خودش حاوی دو بردار U و V است. پس یعنی باید بیایم یک بار از تابع هزینه نسبت به بردار V مشتق بگیریم و یک بار از تابع هزینه نسبت به بردار U مشتق بگیریم و در نهایت همه‌ی این مشتق‌ها رو در قالب یک بردار کنار هم داشته باشیم.اول از همه بریم جزییات مربوط به مشتق گرفتن از تابع هزینه نسبت به بردار V رو بررسی کنیم. تو تصویر زیر جزییات محاسبات در هر مرحله آورده شده. تو تصویر زیر می‌بینیم که چطور مشتق صورت کسر محاسبه میشه.برای مشتق گرفتن از مخرج کسر (عبارت b تصویر بالا)، باید بیایم از قوانین مشتق زنجیره‌ای استفاده کنیم. فرض کنید دو تا تابع f و g رو داریم (تابع g داخل تابع f) و قراره که از تابع f(g(v_c)) نسبت به v_c مشتق بگیریم. تابع f تابع لگاریتمه و تابع g بعد از کمی تغییر، همون تابع softmax عه که بالاتر باهاش آشنا شدیم. جزییات محاسبات در هر مرحله تو تصویر زیر آورده شده. در نهایت، داریم از مقدار واقعی (observed) مقدار expected (پیش بینی مدل) رو کم می‌کنیم و دنبال این هستیم که این اختلاف رو کمتر و کمتر کنیم. به عبارتی دیگه، مقدار پیش بینی مدل رو به مقادیر واقعی نزدیک کنیم.تا اینجا اومدیم مشتق تابع هزینه رو نسبت بهcenter vector محاسبه کردیم. همچنین نیاز داریم که از تابع هزینه نسبت به context vector هم مشتق بگیریم تا بتونیم تابع هزینه رو در نهایت نسبت به پارامتر تتا کمینه کنیم. از اونجایی که محاسباتش خیلی شبیه چیزهایی هست که تا اینجا دیدیم از آوردنش صرف نظر شده و می‌تونید خودتون هم محاسبه کنید. (این مورد رو بعنوان یادداشت اضافه انجام می‌دم و تو کانال تلگرامم به اشتراک می‌ذارم.)کتابخانه پایتون Gensimیکی از کتابخونه‌های پردازش زبان طبیعی تو پایتون که الگوریتم word2vec رو پیاده‌سازی کرده، اسمش Gensim عه. میشه باهاش کارهای جالبی کرد. مثلاً شباهت بین کلمات مختلف رو محاسبه کرد یا حتی outlier بین یه گروه کلمه رو پیدا کرد. (مثلاً بین کلمات آتش، آب، زمین، دریا، هوا و ماشین، کلمه ماشین outlier به حساب میاد.) یا حتی میشه ازش برای word analogy یا قیاس بین کلمات استفاده کرد. برای مثال کلمه queen معادل هست با اینکه بیایم از کلمه king کلمه man رو حذف کنیم و بهش کلمه woman رو اضافه کنیم. خلاصه از اونجایی که برای هر کلمه embedding داریم، می‌تونیم با یک سری عملیات جمع و تفریق بین کلمات کارای جالبی بکنیم و به جواب‌های درستی هم برسیم!خلاصه مباحث این جلسهدیدیم که زبان انسان چطور می‌تونه پیچیده باشه و چقدر پیچیده‌تر میشه وقتی که می‌خوایم زبان و معانی‌ای رو که خودمون ازش درک انسانی داریم به کامپیوتر بفهمونیم. با الگوریتم word2vec آشنا شدیم و دیدیم که به صورت کلی چطور کار می‌کنه. البته این الگوریتم جزییات دیگه‌ای هم داره که در جلسات آینده قراره بهش پرداخته بشه.اگر جایی ایراد یا مشکلی بود، حتماً بهم بگید تا تصحیح کنم. اگر هم پست رو دوست داشتید و محتواش به دردتون خورد، می‌تونید یه قهوه مهمونم کنید!ویدیو این جلسهاسلاید این جلسهجزوه جلسه بعدی (جلسه دوم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Tue, 19 Aug 2025 17:06:11 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وهفتم - استنباط بیزی و روش Maximum a Posteriori</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA-%D9%88%D9%87%D9%81%D8%AA%D9%85-%D8%A7%D8%B3%D8%AA%D9%86%D8%A8%D8%A7%D8%B7-%D8%A8%DB%8C%D8%B2%DB%8C-%D9%88-%D8%B1%D9%88%D8%B4-maximum-a-posteriori-dzfus8qc795h</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.تا به این جلسه با مکتب Frequentist ها در آمار آشنا شدیم که میگفتن:اگر X یک متغیر تصادفی باشه که از توزیع نرمال با پارامترهای µ و sigma2 اومده باشه، هر دو پارامتر یک تک عدد هستن که قراره تخمین زده بشن.ولی این دیدگاه یک ایرادی داره. مثلاً فرض کنید ما می‌دونیم که نسبت تعداد خانم‌ها به کل جمعیت یک توزیع نرمالی داره با میانگین 0.5. میریم تو یک دهکده‌ای که فقط 10 نفر جمعیت داره و 8 تاشون خانم هستن. با دیدگاه Frequentist ها در نهایت به این نتیجه می‌رسیم که توزیع نسبت خانم‌ها به کل جمعیت میانگینش برابر با 0.8 خواهد شد و این غلطه. از قبل یه دانشی داشتیم، پس اون چی میشه؟ اینجا هست که باید با مکتب جدیدی از آمار آشنا بشیم و اسمش هست مکتب Bayesian.استنباط بیزیتو مکتب Bayesian پارامترهای توزیع رو یک تک عدد نمی‌بینیم، بلکه یک متغیر تصادفی می‌بینیمشون که یک توزیعی دارن. قبل از اینکه بریم سراغ نمونه‌گیری یک دانش اولیه یا prior knowledge ای داریم در مورد پارامترهای توزیعمون. ممکن هم هست چنین حدسی رو از قبل نداشته باشیم ولی نکته ماجرا اینکه هیچ کدوم از پارامترها رو به صورت یک عدد ثابت در نظر نمی‌گیریم. همچنین، یک توزیع پسین یا posterior distribution هم وجود داره که بعد از نمونه‌گیری و دیدن دیتا به دست میاد.حالا چجوری از روی توزیع prior میشه توزیع posterior رو به دست آورد؟ روابط زیر رو در نظر بگیرید:برای به دست آوردن توزیع posterior کافیه که تابع likelihood رو در توزیع prior ضرب کرد و بعد یک نرمال سازی انجام داد و حاصل رو تقسیم کرد بر توزیع کلی دیتا که یک عدد ثابت بهمون میده.برای حالت پیوسته هم روابط زیر رو داریم:به صورت کلی رابطه زیر برقراره:در ادامه، یکی دو تا مثال رو باهم بررسی می‌کنیم تا بهتر متوجه جزییات روابط ارائه شده بشید.روش Maximum A Posteriorفرض کنید تعدادی متغیر تصادفی داریم که دارن قد افراد رو نشون میدن و می‌دونیم که از یک توزیع نرمال به صورت زیر اومدن و دنبال پارامتر µ هستیم:اگر بخوایم با روش MLE عمل کنیم برای تخمین µ داریم:حالا فرض کنید یک دانش پیشینی داریم در مورد µ و می‌دونیم که از یک توزیع نرمال و با پارامترهای زیر اومده:حالا اگر بخوایم posterior رو محاسبه کنیم چه باید کنیم؟ از قبل می‌دونیم که روابط زیر برقراره:می‌دونیم که prior برابر هست با f(µ) و توزیعش برابر هست با:برای محاسبه f(Data | µ) داریم:حالا فرض کنید تو رابطه اول مخرج رو معادل با یک عدد ثابت در نظر بگیریم و C بنامیم. در نهایت اگر توزیع prior رو در likelihood ضرب کنیم داریم:فرض کنید میایم نقاطی که در توزیع بالا صدق می‌کنن رو به دست میاریم و در نهایت توزیع posterior به صورت زیر در میاد:تو این توزیع ما دنبال اون نقطه‌ای هستیم که داره توزیع posterior رو بیشینه میکنه و برابر هست با پارامتر µ توزیعمون که دنبالش بودیم. چجوری پیداش کنیم؟ با روش Maximum A Posterior یا MAP. این روش خیلی شبیه روش MLE هست که در جلسات گذشته بررسی کردیم ولی تفاوت‌هایی داره:تو روش MAP به ما دیتا رو دادن و دنبال تتای بیشینه هستیم و این کاملاً برعکس چیزی هست که تو MLE داشتیم بررسی می‌کردیم.حالا برگردیم به مثالی که داشتیم. قراره رابطه زیر رو ماکسیمم کنیم:مخرج اهمیتی برامون نداره و صرفاً یک سری عدد ثابت هستن. فقط کافیه صورت رو بیشینه کنیم. برای اینکه صورت بیشینه بشه باید توان e بیشینه بشه. پس باید رابطه زیر رو بیشینه کنیم:میایم از رابطه بالا نسبت به µ مشتق می‌گیریم:حاصل رو برابر با صفر میذاریم و داریم:و در نهایت مقداری که برای u به دست میاد برابر هست با:حالا اگر n برابر با 0 باشه مقداری که برای µ به دست میاد برابر هست با پیک توزیع prior و عملاً مقداری که برای u با این روش تخمین می‌زنیم خیلی بستگی به تعداد نمونه‌هایی داره که می‌بینیم. هرچقدر تعداد نمونه‌ها کمتر باشه مقداری که تخمین زده میشه نزدیک‌تره به مقداری که در prior به دست اومده.در آمار بیزی یکی از چالش‌هایی که وجود داره همین انتخاب prior هست و تو جواب نهایی خیلی می‌تونه تاثیر بذاره. برای یک سری توزیع‌ها prior هایی رو ارائه دادن که در ادامه اون‌هارو بررسی خواهیم کرد.اگر نیاز به یک prior داشتیم که می‌دونستیم پارامتر توزیع توش صرفا بین یک بازه‌ای هست و هیچ چیز دیگه‌ای ازش نمی‌دونستیم، می‌تونیم بیایم از توزیع یکنواخت استفاده کنیم. مثلاً اگه می‌دونستیم که اون عدد بین 0 تا 7 هست می‌تونیم از توزیع زیر برای prior استفاده کنیم:حالا اگر نیاز به prior ای باشه که بدونیم مثلاً با یک احتمالی نزدیک یک سری اعداد هست، می‌تونیم از توزیع نرمال براش استفاده کنیم. مثلاً اگر بدونیم که با احتمال زیادی حدود عدد 150 هست و با احتمال‌های کمتری حدود اعداد 140 و 160 و همینطور الی آخر توزیع prior به صورت زیر در میاد:حالا اگر نیاز به prior ای باشه که توزیع بین 0 تا 1 داره ولی توزیعش هر شکلی بتونه داشته باشه:تو این حالت، می‌تونیم بیایم از توزیع جدیدی با عنوان توزیع بتا استفاده کنیم. توزیع بتا توزیعی هست که اکیداً بین صفر و یکه و دو تا پارامتر آلفا و بتا داره. رابطه‌ش هم به صورت زیره:عددی که تو مخرج هست یک عدد ثابته و باعث میشه که انتگرال صورت بین بازه 0 و 1 برابر با یک بشه.در ادامه مقادیر مختلف رو برای آلفا و بتا در توزیع بتا در نظر می‌گیریم و نمودارش رو رسم می‌کنیم.اگر آلفا و بتا جفتش یک باشه نمودار توزیع بتا به صورت زیر میشه:اگر آلفا 0.5 باشه و بتا 1 باشه:اگر آلفا و بتا هر دو برابر با 0.5 باشن داریم:اگر آلفا 0.5 باشه و بتا برابر با 2 باشه داریم:اگر آلفا و بتا هر دو برابر با 2 باشن داریم:اگر آلفا برابر با 2 و بتا برابر با 2.5 باشه داریم:اگر توزیع prior با توزیع posterior باهم هم خانواده بشن، به عبارتی دیگه، یعنی هر دو از یک توزیع مشابه با پارامترهای مختلف بیان، تو این حالت گفته میشه که conjugate prior داریم و تو این حالت تحلیل توزیع posterior خیلی برامون ساده‌تر میشه تا حالتی که توزیع posterior خیلی توزیع عجیب غریبی باشه و نشناسیمش.یک مثال رو در ادامه باهم بررسی خواهیم کرد.فرض کنید یک سکه‌ای رو n بار انداختیم و k بار رو اومده. احتمال رو اومدن سکه رو هم با تتا مشخص می‌کنیم. فرض کنید یه prior با توزع بتا به صورت زیر براش در نظر گرفتیم:میایم likelihood رو هم محاسبه می‌کنیم و داریم:حالا اگه posterior رو محاسبه کنیم داریم:می‌بینیم که توزیع posterior هم خانواده توزیع prior هست و از توزیع بتا تبعیت می‌کنه.در ادامه، می‌خوایم با روش MAP تتایی رو پیدا کنیم که توزیع posterior رو بیشینه کنه. چون مشتق گرفتن از توزیع posterior سخته، میایم اول ازش لگاریتم می‌گیریم و بعد مشتق لگاریتمش رو نسبت به تتا محاسبه کرده و برابر با صفر قرار میدیم. اگر ازش لگاریتم بگیریم داریم:حالا باید نسبت به تتا از تابع بالا مشتق بگیریم و برابر با صفر بذاریم:حالا اگر صورت رو برابر با 0 قرار بدیم داریم:در نهایت اگر تتا رو تنها کنیم جواب زیر به دست میاد:جمع‌بندی مطالب ارائه شدهتو این جلسه با استنباط بیزی و روش MAP آشنا شدیم و یکی دو تا مثال رو بررسی کردیم.مباحثی که در این جلسه و چند جلسه گذشته دیدیم، مباحث اولیه‌ای بودن از بحث یادگیری ماشین. اگر علاقه‌مند هستین که جزییات بیشتری در خصوص مباحث یادگیری ماشین بدونید، یکی از دوره‌هایی که هم در مکتب‌خونه موجوده و هم من در ویرگول محتوای متنی مربوط بهش رو منتشر کردم، دوره یادگیری ماشین دکتر سلیمانی از دانشگاه شریف هست. اگر دوست داشتید می‌تونید مباحث رو دنبال کنید و در مورد یادگیری ماشین هم جزییات بیشتری رو کسب کنید.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیست‌وششم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 27 Jul 2023 19:17:46 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وششم - رگرسیون خطی</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%E2%80%8C%D9%88%D8%B4%D8%B4%D9%85---%D8%B1%DA%AF%D8%B1%D8%B3%DB%8C%D9%88%D9%86-%D8%AE%D8%B7%DB%8C-tj1alvn9byrs</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.این جلسه قراره با یکی از پرکاربردترین مباحث در یادگیری ماشین آشنا بشیم.رگرسیون خطیفرض کنید که یک داده‌ای رو بهمون دادن و قراره که از روی دیتای داده شده بیایم یه پیش‌بینی‌ای انجام بدیم. مثلاً قراره قیمت خونه رو بر اساس مساحت خونه پیش‌بینی کنیم. دیتایی هم که بهمون دادن برابر هست با مساحت خونه‌های مختلف و قیمت متناظرشون. حالا قراره از روی این ورودی‌ها و خروجی‌ها یه فرمولی رو در بیاریم که مساحت هر خونه‌ای رو تو ورودی بهمون دادن بتونیم بگیم قیمت متناظرش چقدر میشه. چیزی که ما پیش‌بینی می‌کنیم (یعنی y^) با مقدار واقعی (یعنی y) هم یه خطایی داره که با e مشخص می‌کنیم و از توزیع نرمال استاندارد میاد:می‌خوایم این مسئله رو با رویکرد احتمالاتی حل کنیم. یعنی بیایم beta0 و beta1 رو به صورتی انتخاب کنیم که احتمال دیدن دیتای داده شده رو ماکسیمم می‌کنه. به عبارتی دیگه قراره یک تابع MLE رو به دست بیاریم که احتمال دیدن y ها رو به ازای پارامترهای beta0 و beta1 و xi و sigma^2 بیشینه بشه:تا اینجا MLE رو به دست آوردیم. حالا باید ازش مشتق بگیریم و برابر با صفر بذاریم. چون مشتق گرفتن از خودش سخته اول ازش لگاریتم می‌گیریم و بعد از لگاریتمش مشتق می‌گیریم و برابر با صفر میذاریم. اگر ازش لگاریتم بگیریم به صورت زیر در میاد:حالا میایم اول نسبت به beta0 ازش مشتق می‌گیریم و برابر با صفر میذاریم:میایم طرفین رو تقسیم بر n می‌کنیم و داریم:حالا اگر نسبت به beta1 مشتق بگیریم و برابر با صفر بذاریم داریم:جواب نهایی که برای beta1 به دست اومده مثل این می‌مونه که انگار کواریانس رو تقسیم بر واریانس کنیم:در نهایت هم میایم نسبت به واریانس مشتق می‌گیریم و برابر با صفر می‌ذاریم و داریم:این واریانسی که محاسبه کردیم در واقع برابر هست با همون Mean Squared Error. این خطا، خطای بین مقدار پیش‌بینی شده و مقدار واقعی رو مشخص می‌کنه.همه فرمول‌هایی که تا اینجا به دست آوردیم رو در قالب یک تابع با R پیاده‌سازی می‌کنیم و داریم:حالا فرض کنید دیتاست iris رو داریم. قراره از روی petal_width بیایم petal_length رو به دست بیاریم. یعنی قراره از روی مدلی که ساختیم و x هامون که همون petal_width هست، y^ رو که همون petal_length هست رو پیش‌بینی کنیم:اگه بیایم خروجی پیش‌بینی‌مون (با خط زرد مشخص شده) با خروجی واقعی (با خط قرمز مشخص شده) رو پرینت کنیم داریم:اگه نمودارش رو هم رسم کنیم خواهیم داشت:نقاط قرمز نقاطی هست که مدل پیش‌بینی کرده و نقاط سیاه نقاط واقعی هست.جمع‌بندی مطالب ارائه شدهرگرسیون خطی رو به کمک MLE به صورت احتمالاتی به دست آوردیم و در R پیاده‌سازی کردیم.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیست‌وپنجم)جزوه جلسه بعدی (جلسه بیست‌وهفتم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 20 Jul 2023 19:25:34 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وپنجم - آزمون‌های ناپارامتری، تست جایگشت، اصلاح مقدار P</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%E2%80%8C%D9%88%D9%BE%D9%86%D8%AC%D9%85---%D8%A2%D8%B2%D9%85%D9%88%D9%86%E2%80%8C%D9%87%D8%A7%DB%8C-%D9%86%D8%A7%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%DB%8C%D8%8C-%D8%AA%D8%B3%D8%AA-%D8%AC%D8%A7%DB%8C%DA%AF%D8%B4%D8%AA%D8%8C-%D8%A7%D8%B5%D9%84%D8%A7%D8%AD-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-P-zqnnjc7hwizk</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.در جلسات گذشته با انواع تست‌های آماری آشنا شدیم و دیدیم که به چه صورت تعریف میشن. نکته خوبی که در مورد این تست‌های آماری وجود داره اینکه قرار نیست هر دفعه این تست‌هارو از صفر خودمون بنویسیم و در زبان‌های برنامه نویسی مختلف از قبل پیاده‌سازی شدن و فقط کافیه که ازشون روی دیتای ورودی مد نظرمون استفاده کنیم.برای مثال دیتاست Iris رو که در چند جلسه گذشته باهاش آشنا شدیم در نظر بگیرید. فرض کنید می‌خوایم این رو بررسی کنیم که آیا sepal length گروه Setosa از گروه Versicolor بیشتر هست یا نه.فرض کنید میایم به ازای هر گونه میانگین sepal length رو محاسبه می‌کنیم و داریم:و سوالی که بوجود میاد اینکه آیا تفاوت در میانگین گونه‌ها تفاوت معناداری هست یا نه.اگر بیایم نمودار جعبه‌ای رو به ازای sepal length در هر گونه رسم کنیم به صورت زیر در میاد:نمودار دیگه‌ای هست که بهش نمودار violin گفته میشه و اگر به ازای sepal length رسم کنیم خواهیم داشت:این نمودار در واقع میاد توزیع sepal length رو به ازای هر گونه رسم می‌کنه. مثلاً بیشترین مقادیر sepal length برای گونه setosa حدود 5 بوده.می‌تونیم بیایم حتی دو نموداری که تا اینجا کشیدیم رو باهم ترکیب کنیم و داشته باشیم:حالا در ادامه میایم یک t-test می‌زنیم روی sepal length دو گونه تا ببینیم تفاوتی که در توزیع‌هاشون وجود داره تفاوت معناداری هست یا صرفاً رندوم به این صورت در اومده.میایم دو گروه نمونه در نظر می‌گیریم. یکی sepal length گونه setosa رو داره و گروه دیگه sepal length گونه versicolor رو:و در ادامه فقط کافیه تابع t.test رو از R روی دو گروهی که داریم صدا بزنیم تا مقادیر p-value رو برامون حساب کنه:نتیجه به صورت زیر در میاد و چون مقدار p-value خیلی کوچیک میشه، فرض H0 رو می‌تونیم رد کنیم و به این معنی هست که تفاوت بین میانگین و توزیع‌های دو گونه setosa و versicolor در sepal length معنی دار هست و به صورت رندوم توزیع‌هاشون به اون صورت در نیومده:در جلسه گذشته دیدیم که برای اینکه بتونیم t-test رو روی دیتای ورودی اعمال کنیم یک سری فرض‌ها وجود دارن و اگر اون فرض‌ها نقض بشن نمی‌تونیم از t-test استفاده کنیم. حالا اگر دیتای ورودی ما به صورتی باشه که فرض‌های در نظر گرفته شده رو نقض کنه، در این صورت آیا دیگه نمی‌تونیم تست آماری انجام بدیم؟ اگر بخوایم تست آماری انجام بدیم باید چه کنیم؟ در ادامه این جلسه قراره با تست‌هایی در آمار آشنا بشیم که در این شرایط می‌تونیم ازشون استفاده کنیم.آزمون‌های ناپارامتریتا الان هرچی تست دیدیم و باهاشون آشنا شدیم آزمون‌های پارامتری بودن. یک دسته دیگه از آزمون‌های آماری وجود داره که بهشون آزمون‌های ناپارامتری گفته میشه که محدودیت‌ها و فرض‌های آزمون‌های پارامتری رو ندارن و دستمون رو خیلی بازتر می‌ذارن. ممکنه سوال پیش بیاد که وقتی تست‌های ناپارامتری رو داریم پس اصلاً چرا میریم سراغ تست‌های پارامتری که یکم محدودترن؟ دلیلش اینکه در یک سری مواقع نتیجه‌ای که از t-test به دست میاد خیلی معنادار تره نسبت به نتیجه‌ای که میشه از تست‌های ناپارامتری گرفت.تست رنکیک دسته از آزمون‌های ناپارامتری به این صورت هستن که میان شبیه t-test عمل می‌کنن با این تفاوت که با خود اعداد کار داشته باشن با رنکشون کار میکنن. در قالب یک مثال توضیح میدیم.فرض کنید دو دسته عدد داریم به صورت زیر هستن:در گام بعدی برای این اعداد رنک تعریف میشه. به این صورت که کوچیک‌ترین عدد رو به عدد 1 مپ می‌کنن و به ترتیب از کوچیک به بزرگ بقیه اعداد رو با رنگ 2 و 3 و 4 و ... مشخص می‌کنن. تو این مثالی که زدیم، فارغ از اینکه اعداد تو کدوم دسته هستن اول از کوچیک به بزرگ مرتب میشن و بعد از 1 تا n (تعداد عددها) رنگ بهشون تعلق می‌گیره. رنک هر عدد با مارکر آبی کنارش مشخص شده:در گام بعد میان اعداد رو به ترتیب رنک در نظر می‌گیرن، به گروه اول یک رنگ (مثلاً آبی) و به گروه دوم یک رنگ دیگه (مثلاً قرمز) اختصاص میدن و در نتیجه نمودار زیر به دست میاد:مثلاً عددی که رنک 7 داشته برابر بوده با عدد2.8 که در گروه دوم قرار داشته و رنگش هم قرمز بوده.حالا در نهایت، اگر نقاط آبی و قرمز خیلی در هم باشن، به این معنی هست که این دو گروه تفاوتی باهم ندارن ولی اگر پراکندگی نقاط به صورت زیر بود، در اون صورت می‌تونستیم با قاطعیت بیشتری بگیم که تفاوت معناداری بین دو گروه قرمز و آبی وجود داشت:و در ادامه میشه روی رنک‌ها آماره تعریف کرد و p-value محاسبه کرد.دسته دیگری از تست‌های ناپارامتری وجود داره که بهش آزمون جایگشت گفته میشه. در ادامه جزییات بیشتری از این تست رو بررسی خواهیم کرد.تست جایگشتعلی و حسن رو در نظر بگیرید. هر دو خیلی به قهوه علاقه دارن و تصمیم گرفتن که تعداد فنجون قهوه‌هایی که خوردن رو در طی شیش روز متوالی ثبت کنن تا در نهایت ببینیم کدوم یکی‌شون بیشتر قهوه خورده. فرض کنید تعداد فنجون قهوه‌ای که در طی شیش روز متوالی توسط این دو نفر خورده شده به صورت زیر باشه:می‌خوایم این مسئله رو با تست جایگشت حل کنیم و حالا گام‌هایی که پیش رو داریم به شرح زیره:حالا این گام‌هایی که تعریف کردیم به صورت دقیق‌تر یعنی چی؟ اول اینکه آماره یک تابع هست که خودمون تعریف می‌کنیم. فرض کنید دو دسته نمونه داشته باشیم، دسته A و دسته B. آماره رو تعریف کنیم میانگین داده‌های دسته A منهای میانگین داده‌های دسته B. بعد میایم اعدادی که از هر دسته داریم رو بهم می‌ریزیم و مجدداً آماره رو براش حساب می‌کنیم (یعنی ممکنه دسته نمونه‌ها بهم بریزه و هر دفعه تقسیم نمونه‌ها در دسته‌ها متفاوت باشه). این کار رو 10000 بار انجام میدیم. در نهایت هم p-value حساب می‌کنیم و می‌‎تونیم نتیجه بگیریم.بیایم برای همین مثال علی و حسن گام‌هارو به کمک R جلو ببریم.اول از همه میایم داده‌های دو دسته و بعد آماره رو تعریف می‌کنیم:با توجه به همین دسته‌بندی اولیه اگر آماره رو حساب کنیم عدد 0.7833 رو خواهیم داشت.حالا در ادامه قراره بیایم به تعداد دفعات خیلی زیادی یک کاری رو انجام بدیم. در مجموع 12 تا عدد داریم، هر دفعه بیایم این 12 تا عدد رو به طور تصادفی در دسته یک و دسته دو قرار بدیم و به ازای اعداد موجود در هر دسته، آماره رو محاسبه کنیم:حالا اومدیم آماره رو هر دفعه محاسبه کردیم و اگر نمودار هیستوگرامش رو بکشیم داریم:در ادامه میایم یه نمودار دیگه می‌کشیم:نمودار بالا چی رو نشون میده؟ نمودار داره توزیع آماره رو به ازای 1000 دفعه‌ای که تکرارش کردیم نشون میده (شبیه همون نمودار هیستوگرام) و خط عمودی هم مشخص کننده شروع مقدار p-value هست. یعنی از جایی که خط عمودی رسم شده تا چپ معادل هست با مقدار p-value. همونطور که واضحه مقدار p-value خیلی بزرگه. بزرگ بودن p-value به این معنیه که حسن و علی هیچ کدوم نسبت به اون یکی بیشتر قهوه نخورده و هر دو تقریباً شبیه هم بودن.اگر بیایم ورودی رو تغییر بدیم و نمونه‌های دسته اول رو بیشتر کنیم (نه از نظر تعداد، بلکه خود ارقام رو عوض کنیم) و همه محاسبات رو انجام بدیم، نمودار نهایی به صورت زیر در میاد:مقدار p-value به شدت کمتر میشه نسبت به حالت قبل و به این معنی خواهد بود که مثلاً علی نسبت به حسن بیشتر قهوه خورده.انجام تست چندگانهتا اینجا هرچی تست دیدیم به این صورت بوده که می‌خواستیم یک فرضیه رو بسنجیم. اگر بخوایم چند تا فرضیه رو باهم بسنجیم نیازه که تست چندگانه انجام بدیم. در ادامه با جزییاتش بیشتر آشنا میشیم.فرض کنید m فرد سالم داریم و w فرد بیمار. در بدن هر فردی چه سالم و چه بیمار n ژن وجود داره. یه ویژگی از این ژن‌هارو اندازه گرفتیم و در نهایت به دو تا جدول رسیدیم. جدول اول نشون دهنده ویژگی ژن‌های افراد سالمه (یک جدول m در n) و جدول دوم نشون دهنده ویژگی ژن‌های افراد بیمار (یک جدول w در n).حالا، اینجا میشه تعداد زیادی فرضیه رو برای تست در نظر گرفت. مثلاً:مثلاً برای فرضیه 1 میشه اومد سطرهای اول رو از هر جدول در نظر گرفت و باهم سنجید و روش t-test یا هر تست دیگه‌ای رو اعمال کرد. تا اینجا خیلی مشکلی وجود نداره و همه چیز رواله. قضیه سر alpha بوجود میاد.یک مقداری رو با عنوان alpha از جلسات گذشته تعریف کرده بودیم با عنوان احتمال خطای نوع اول و اگر مقدار alpha رو 0.05 در نظر بگیریم به این معنی هست که فقط می‌تونیم ژن‌هایی رو که p-value کمتر از alpha دارن در موردشون فرض صفر رو رد کنیم و بگیم تفاوتی که بین ژن‌های افراد سالم و بیمار وجود داره معنی دار هست.حالا وقتی در مورد یک ژن این فرضیه رو بررسی می‌کنیم احتمال خطای نوع اول 0.05 هست. اگه بیایم در مورد n ژن این فرضیه رو بررسی کنیم احتمال خطای نوع اول چقدر هست؟ چقدر ممکنه که در گزارش نهایی نتایجمون، حداقل یک بار دچار خطای نوع یک بشیم؟ این احتمال برابر هست با:فرض کنید n مقدارش 100 باشه، نمودار احتمالِ دست کم یک بار خطای نوع یک به صورت زیر میشه:نمودار بالا داره میگه از یه جایی به بعد با احتمال 1 دچار خطای نوع اول میشیم. یعنی چی این حرف؟ یعنی به احتمال نزدیک به 1 حتماً ژنی رو به اشتباه گزارش خواهیم کرد که بین نمونه‌های سالم و بیمار دچار تفاوت معنی دار هست در حالیکه در واقعیت چنین تفاوتی وجود نداره. (یعنی به اشتباه اومدیم فرض H0 رو رد کردیم در حالیکه برقرار بوده).حالا چطور میشه از این اشتباه جلوگیری کرد؟ یه راه اینکه به جای اینکه alpha رو به صورت ثابت معادل با 0.05 در نظر بگیریم، بیایم به صورت زیر در نظر بگیریم:حالا اگر داریم 100 تا فرضیه رو باهم در نظر می‌گیریم تو حالتی که n=100 هست، آلفا به جای اینکه 0.05 باشه، برابر میشه با 0.000005.حالا اگر تو این حالت بیایم نمودار خطارو بکشیم داریم:یعنی همواره خطا تو این حالت زیر 0.05 می‌مونه.اصلاح مقدار p-valueروش دیگه‌ای وجود داره برای این که مشکلی که در مورد خطا مطرح شد به وجود نیاد و اینکه بیایم آلفا رو ثابت نگه داریم اما هر دفعه به جای سنجیدن خود مقدار p-value و آلفا، بیایم p-value رو در n ضرب کنیم و حاصلش رو با 1 مینمم و بعد اون عدد به دست اومده رو با آلفا بسنجیم:بعنوان مثال فرض کنید می‌خوایم 6 تا فرضیه رو باهم بسنجیم و مقادیر p-value محاسبه شده به صورت زیر باشه:روشی که معرفی کردیم (ضرب n که در این مثال برابر با 6 هست در مقدار p-value و سپس مینمم گرفتن بین حاصل ضرب به دست اومده و 1) رو بهش bonferroni میگن. فرض کنید بیایم با این روش مقادیر p بالا رو اصلاح کنیم:مقادیر اصلاح شده p-value به صورت بالا در میاد و به این معنی هست که فرض H0 رو میشه در مورد 2 فرضیه اول رد کرد و گفت که تفاوت بین ژن‌ها معنی‌دار هست اما نشه در مورد 3 فرضیه آخر رد کرد.جمع‌بندی مطالب ارائه شدهبا آزمون‌های ناپارامتری آشنا شدیم و دیدیم که چگونه میشه ازشون استفاده کرد. فهمیدیم که چطور میشه روی n فرضیه باهم تست انجام داد و جلوی ایجاد خطای نوع اول رو هم گرفت.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیست‌وچهارم)جزوه جلسه بعدی (جلسه بیست‌وششم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Fri, 14 Jul 2023 19:18:39 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وچهارم - آزمون مربع کای و آزمون T</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%E2%80%8C%D9%88%DA%86%D9%87%D8%A7%D8%B1%D9%85---%D8%A2%D8%B2%D9%85%D9%88%D9%86-%D9%85%D8%B1%D8%A8%D8%B9-%DA%A9%D8%A7%DB%8C-%D9%88-%D8%A2%D8%B2%D9%85%D9%88%D9%86-T-jdgqthtdhhkh</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.از دو جلسه گذشته بحث آزمون فرض رو در آمار شروع کردیم و با تست Z و تست فیشر آشنا شدیم. تو این جلسه قراره با دو تست آماری دیگه آشنا بشیم و جزییات مربوط بهش رو ببینیم.تست مربع کای و تست T هر دو از مهم‌ترین از موضوعات در آمار هستن و اگر کسی این دو مفهوم رو در آمار بلد نباشه، انگار کلاً آمار بلد نیست!حالا در ادامه اول میریم سراغ بررسی تست مربع کای و جزییات مربوط بهش، سپس آزمون T رو مورد بررسی قرار خواهیم داد.تست مربع کای یا Chi-squaredمربع کای یک توزیع هست که به صورت X^2 مشخص میشه. فرض کنید یک متغیر تصادفی X1 داریم که از توزیع نرمال استاندارد تبعیت می‌کنه. در این صورت، توزیع X1^2 از توزیع مربع کای با پارامتر 1 تبعیت می‌کنه. به این پارامتر درجه آزادی یا degree of freedom گفته میشه. اگر n متغیر مستقل داشته باشیم که از توزیع نرمال استاندارد تبعیت کنن، در این صورت X2^2 + X1^2 از توزیع مربع کای با درجه آزادی 2 تبعیت می‌کنه. به صورت کلی تمام مواردی که گفتیم رو اگر به ریاضی بنویسیم داریم:توزیع مربع کای توابع CDF و PDF پیچیده‌ای داره که نیاز به حفظ کردن ندارن. اما اگر بیایم تابع چگالی توزیع مربع کای رو به ازای درجه آزادی‌های 1 تا 4 به کمک R رسم کنیم نمودارش به صورت زیر میشه:نمودار قرمز توزیع مربع کای با درجه آزادی 1 هست و نمودار بنفش توزیع مربع کای با درجه آزادی 4 رو داره نشون میده.حالا اصلاً این توزیع به چه دردی می‌خوره؟چند سال پیش، آقای پیرسون اومد از توزیع مربع کای استفاده کرد جهت اینکه یک تست آماری از توش در بیاره. در ادامه با جزییات این تست بیشتر آشنا میشیم.فرض کنید تعدادی نمونه داریم و  5 تا دسته که هر نمونه می‌تونه فقط در یکی از دسته‌ها قرار بگیره و احتمال قرار گرفتن نمونه‌ها در هر دسته هم با یک احتمالی از P1 تا P5 مشخص میشه:حالا اگر در کل m تا نمونه داشته باشیم، انتظار داریم بعد از توزیع نمونه‌ها در هر دسته تو هر دسته به تعداد mPi تا نمونه ببینیم و به هر کدوم از این mPi ها expected گفته میشه، یعنی مقادیری که انتظار داریم در هر دسته ببینیم:حالا اگر بریم یک نمونه‌گیری انجام بدیم و در هر دسته نمونه‌هارو توزیع کنیم، یک مقداری رو مشاهده خواهیم کرد که به اون مقادیر observed گفته میشه:پیرسون اومد با توجه به چیزایی که تا الان گفتیم، رابطه زیر رو اثبات کرد:تو رابطه بالا k تعداد دسته‌هارو مشخص می‎کنه. پیرسون اومد گفت که اگر شرط H0 برقرار باشه (یعنی مقادیر مشاهده شده با مقادیر مورد انتظار تفاوت چشم‌گیری نداشته باشن)، در اون صورت رابطه بالا از یک توزیع مربع کای با درجه آزادی k-1 تبعیت می‌کنه.اگه فرمول بالا رو برای مثالی که زدیم و 5 دسته داشت بنویسیم داریم:در ادامه یک مثال رو با هم بررسی خواهیم کرد.فرض کنید سه تا فروشنده کیف وجود دارن. یک نفر میاد ادعا میکنه که 70 درصد افراد جامعه کیف‌هاشونو از فروشنده اول، 20 درصد از فروشنده دوم و 10 درصد از فروشنده سوم خریداری می‌کنن. قراره بیایم درستی این ادعا رو بررسی کنیم.فرض کنید اومدیم از افراد جامعه نمونه‌گیری کردیم و 1000 تا سمپل گرفتیم. دیدیم که 650 نفر از فروشنده اول خریداری کردن، 230 نفر از فروشنده دوم و 120 نفر هم از فروشنده سوم.مقادیری که از نمونه گرفتیم برابر با مقادیر observed هست.برای محاسبه مقادیر expected هم باید بیایم تعداد نمونه‌هارو در احتمال هر دسته ضرب کنیم. برای فروشنده اول داریم 700، برای فروشنده دوم داریم 200 و برای فروشنده سوم داریم 100.یک آماره هم نیاز داریم که برابر هست با فرمول پیرسون و برای این مثال مقدار 12.07براش به دست میاد.تا به اینجا اگر تمام چیزهایی که گفتیم رو با R بنویسیم داریم:حالا، چون تعداد دسته‌ها سه تاست درجه آزادی مربع کای برابر میشه با 2 که نمودارش به صورت زیر رسم میشه (رنگ زرد):در جلسه گذشته با مفهوم p-value آشنا شدیم. اینجا p-value برابر با چه عددی هست؟ چون عددی که برای آماره به دست اومده برابر هست با 12.07، مقدار p-value هم برابر میشه با عدد 12 و مقادیر سخت‌تر از 12. اگر بخوایم رو نمودار p-value رو مشخص کنیم داریم (با خط زرشکی مشخص شده):اگر مقدار دقیقش رو هم محاسبه کنیم داریم:حالا، اومدیم مقدار p-value رو هم دقیق حساب کردیم و برابر شد با 0.002. این به این معنی هست که در صورت برقرار بودن فرض H0 فقط 0.2 درصد احتمال وجود داشته که به صورت رندوم چنین مشاهده‌ای رخ بده (یعنی 70 درصد از فروشنده اول خرید کنن، 20 درصد از فروشنده دوم و 10 درصد از فروشنده سوم).حالا چون 0.002 از 0.05 (مقدار خطای نوع اول) کوچیک‌تر هست، فرض H0 رد میشه و می‌تونیم اعلام بکنیم که ادعای فرد نادرسته.اگر نمونه‌ای که از جامعه می‌گرفتیم به صورت زیر می‌بود:680 نفر از فروشنده اول خرید کردن210 نفر از فروشنده دوم خرید کردن110 نفر از فروشنده سوم خرید کردنو میومدیم همه مراحل رو برای این مقادیر نمونه پیش می‌بریم، مقدار p-value برابر میشد با 0.35. تو این حالت چون 0.35 از 0.05 بزرگ‌تر هست، نمی‌تونیم فرض صفر رو رد کنیم و ادعای فرد درست بوده.این مثالی که دیدیم یکی از کاربردهای توزیع مربع کای رو نشون میده. در ادامه کاربرد دیگه‌ای از این توزیع رو بررسی خواهیم کرد.جدول وقوعدر جلسه گذشته با آزمون فیشر آشنا شدیم و در مثالی که در مورد داروها زدیم دیدیم که چطور میشه یک جدول 2 در 2 تشکیل داد و فرض H0 و H1 رو براش نوشت. در آزمون مربع کای، می‌تونیم جدول 2 در 2 رو به تعداد بیشتری سطر و ستون تعمیم بدیم و فرض H0 و H1 رو بنویسیم. مثلاً فرض کنید می‌خوایم بررسی کنیم که آیا سطح فشار خون به قومیت بستگی داره یا خیر. میشه جدولی رو به صورت جدول زیر تشکیل داد:و فرض H0 رو معادل گرفت با مستقل بودن سطرها و ستون‌ها از هم. به عبارتی دیگه یعنی قومیت در فشار خون هیچ اثری ندارد و به همین ترتیب بقیه محاسبات رو پیش برد و در نهایت دید که آیا فرض صفر رد میشه یا خیر. در ادامه این مثال رو با جزییات بیشتری بررسی خواهیم کرد.یک نکته‌ای در رابطه با تست فیشر و تست مربع کای وجود داره. اگر جدولی که تشکیل میدیم 2 در 2 باشه و اعدادش کوچیک باشن، تست فیشر تست بهتری هست. اما اگر جدول 2 در 2 باشه یا تعداد بیشتری سطر و ستون داشته باشه و اعداد جدول هم اعداد بزرگی باشن، تست مربع کای گزینه بهتری هست.برگردیم به مثال فشار خون.اول از همه بیایم جمع حاشیه‌ای رو برای هر سطر و ستون محاسبه کنیم. داریم:اگر همه نمونه‌هارو هم جمع بزنیم عدد 530 به دست میاد.مقادیری که داخل جدول هستن مقادیر observed هستن. برای محاسبه اعداد expectation باید به شیوه دیگه‌ای عمل کنیم.اگر فقط اعداد جمع حاشیه‌ای رو بهمون داده بودن، انتظار داشتیم که با توجه به تعداد کل نمونه‌ها در هر سلول چه عددی رو ببینیم؟به ازای هر سلول باید بیایم عدد جمع حاشیه‌ای سطرش رو در ستونش ضرب کنیم و بعد بر 530 تقسیم کنیم. مثلاً برای سلول اول از سمت چپ بالا داریم:cell 1 = (90 * 160) / 560 = 27به همین ترتیب اگر برای همه سلول‌ها محاسبات رو انجام بدیم، خواهیم داشت:حالا میایم مقدار آماره رو محاسبه می‌کنیم:تو این مثال مقدار آماره برابر میشه با 5.16.یک نکته‌ای هم اینجا وجود داره. برای محاسبه درجه آزادی تو مواقعی که جدول داریم به صورت زیر باید عمل کنیم:تو این مثال چون جدول 3 در 3 داریم، درجه آزادی برابر هست با 2 * 2 = 4.در ادامه میایم مقدار p-value رو محاسبه می‌کنیم و برابر هست با 0.27. این مقدار برای p-value به این معنی هست که انگار هیچ تفاوتی بین قومیت‌ها و سطح فشار خون وجود نداره و نمی‌تونیم فرض صفر رو رد کنیم.فرض کنید مقادیر برای قوم ترک به صورت زیر تغییر کنه و داشته باشیم:10 و 180 و 90 به جای 50 و 200 و 30.تو این حالت اگر بیایم همه محاسبات رو انجام بدیم، در نهایت برای p-value خواهیم داشت:تو این حالت چون مقدار p-value خیلی کوچیک شده، بنابراین میشه فرض H0 رو رد کرد و این ادعا رو پذیرفت که سطح فشار خون به قومیت ارتباط داره.تا اینجا با تست مربع کای آشنا شدیم و چند تا مثال ازش دیدیم. در ادامه قراره با یک تست آماری دیگه با عنوان t-test آشنابشیم.تست T یا t-testهرجایی که بحث مقایسه بیاد وسط، میشه از t-test استفاده کرد. فرض کنید بهمون گفتن میانگین طول عمر کالای A از میانگین طول عمر کالای B طولانی‌تره. می‌خوایم بیایم ببینیم آیا واقعاً اینطوره یا صرفاً بخاطر نمونه‌گیری‌ای که داشتیم این اختلاف در طول عمر به وجود اومده.فرض کنید سمپل‌هایی که از هر دو کالا گرفتیم به صورت زیر بوده. کالای A با رنگ نارنجی و کالای B با رنگ آبی مشخص شده:حالا هدف t-test  اینکه بیاد میانگین نمونه‌هارو در دو دسته بسنجه و در نهایت بهمون بگه آیا این نمونه‌ها از توزیع‌های یکسانی اومدن یا توزیع متفاوت داشتن. به عبارتی دیگه، آیا میانگین‌ واقعی توزیع طول عمر نمونه‌های کالای A و میانگین واقعی توزیع طول عمر نمونه‌های کالای B یکسان بودن یا با هم تفاوت داشتن؟ در ظاهر وقتی بیایم میانگین طول عمر نمونه‌هارو بگیریم و اون‌هارو مقایسه کنیم به این نتیجه می‌رسیم که میانگین نمونه طول عمر کالای A از میانگین نمونه طول عمر کالای B بیشتر بوده. اما با t-test می‌خوایم ببینیم در توزیع واقعی هم چنین چیزی صادق هست یا خیر.پس تا اینجا با یکی از اهداف t-test آشنا شدیم:دو دسته نمونه داریم. آیا نمونه‌های هر دسته از توزیع‌هایی با میانگین یکسان آمده‌اند یا خیر؟فرض کنید توزیع واقعی دو کالا به صورت زیر باشه:وقتی میایم به صورت تصادفی از هر دو توزیع نمونه می‌گیریم هر حالتی ممکنه رخ بده و سمپل‌ها از هر جای غیر صفر توزیع‌ها می‌تونن بیان. مثلاً نمونه گرفتیم و به صورت زیر شده:با وجود اینکه توزیع نارنجی و آبی تفاوت چندانی ندارن باهم و خیلی بهم شبیهن، اما بخاطر نمونه‌های رندومی که گرفتیم باعث شده که میانگین نمونه‌ها خیلی باهم اختلاف داشته باشن. این اختلاف بین میانگین‌ها فقط بخاطر تفاوت در نمونه‌گیری حاصل شده و اصلاً اختلاف معناداری نیست.با t-test این رو می‌سنجیم که آیا اختلاف به دست اومده بین میانگین‌ها معنی‌دار هست یا خیر.فردی به اسم ویلیام گاست اومده آماره‌ای رو ارائه داده که در t-test ازش استفاده می‌کنیم و از توزیعی تبعیت می‌کنه که اسمش T هست.اگر ما می‌خواستیم برای همین مثالی که زدیم یک آماره طراحی کنیم باید چه مواردی رو لحاظ می‌کردیم؟باید دنبال اختلاف میانگین بیشتر و اختلاف واریانس کمتر بین نمونه‌ها در دو دسته می‌بودیم تا می‌تونستیم با اطمینان بیشتری بگیم که توزیع نمونه‌های دسته اول با توزیع نمونه‌های دسته دوم تفاوت معناداری دارن.فرض کنید میایم با توجه به توضیحاتی که دادیم یک متغیری با عنوان t رو به صورت زیر تعریف می‌کنیم:متغیر Z از یک توزیع نرمال استاندارد میاد. متغیر V شبیه واریانس هست و از توزیع مربع کای با درجه آزادی n تبعیت می‌کنه (چون اگر بیایم n تا متغیر تصادفی از توزیع نرمال رو به توان 2 برسونیم و جمع کنیم در واقع یک توزیع مربع کای با درجه n داریم) و n هم برابر هست با اندازه نمونه‌ها. اگر متغیر t رو به صورت بالا تعریف کنیم، می‌تونیم مطمئن باشیم که t از توزیع T تبعیت می‌کنه.حالا اصلاً چجوری میشه از مواردی که تا اینجا باهاشون آشنا شدیم در عمل استفاده کنیم؟یک حالت از t-test وجود داره که بهش تک نمونه گفته میشه. تو این حالت یک سری داده داریم و فرض H0 تو این حالت میگه که داده‌های نمونه از توزیعی با میانگین µ اومدن. به عبارتی دیگه، بهمون در ورودی یک سری نمونه و میانگین µ رو میدن و ازمون میخوان این رو بررسی کنیم که آیا نمونه‌ها از میانگین µ تبعیت می‌کنن یا نه. متغیر t تو این حالت به صورت زیر تعریف میشه:تو رابطه بالا Xبار میانگین نمونه‌هاست و µ0 میانگینی هست که بهمون دادن. S برابر هست با تخمینی که برای واریانس داریم و n هم تعداد نمونه‌هارو مشخص می‌کنه.اگر بخوایم توزیع T رو با درجه آزادی 1 تا 4 بسازیم به چه صورت میشه؟ در ادامه این رو با R پیاده‌سازی خواهیم کرد.متغیر ss برابر با تعداد نمونه‌هاست و 1000 در نظر گرفته شده و متغیر Xi متغیری هست از توزیع مربع کای با درجه آزادی i و مقدار i از 1 هست تا 4. اگر بیایم نمودار توزیع T رو برای درجه آزادی‌های 1 تا 4 بکشیم به صورت زیر میشه:در نگاه اول توزیع Tخیلی شبیه توزیع نرماله ولی تفاوت‌هایی باهاش داره. اگر نمودار توزیع نرمال رو هم به نمودارهای بالا اضافه کنیم به صورت زیر در میاد:هرچقدر درجه آزادی توزیع T رو بیشتر کنیم باعث میشه شباهت بیشتری به توزیع نرمال پیدا کنه. مثلاً تو تصویر زیر نمودار توزیع T با درجه آزادی 30 و نمودار توزیع نرمال آورده شده:فرض کنید یک پیتزا فروشی هست که میگه به طور متوسط در عرض نیم ساعت سفارشات رو به مقصد میرسونه. حالا برای اینکه بفهمیم این ادعا درست هست یا نه میایم چند بار ازش پیتزا سفارش میدیم و مدت زمان رسیدن هر سفارش رو به دقیقه محاسبه می‌کنیم که به صورت زیر شده:اول از همه میایم آماره رو طبق فرمول t-test در حالت تک متغیره مینویسیم:مقدار آماره هم برابر هست با 8.79. در گام بعدی باید بیایم مقدار p-value رو محاسبه کنیم:در نهایت تو این مثال مقدار p-value برابر با عدد خیلی کوچیکی (0.0000000055) میشه که باعث میشه فرض H0 رد بشه و ادعای پیتزا فروش نادرست باشه. چون اگر میانگین زمان دلیوری پیتزا 30 دقیقه باشه، احتمال اینکه اعداد نمونه به دست اومده رو بتونیم ببینیم برابر هست با مقدار p-value که خیلی احتمال کوچیکی هست و نزدیک به صفره.تا اینجا آماره t-test رو تو حالت تک متغیره دیدیم. برای حالت دو متغیره آماره t-test به صورت زیر میشه:تو این حالت دو گروه داده داریم و فرض H0 میگه که این دو گروه داده از توزیع‌هایی با میانگین یکسان اومدن. درجه آزادی تو این حالت به صورت زیر محاسبه میشه:doff = 2n - 2حالا فرض کنید دو سری سمپل داریم که به صورت زیر هست:و اگر آماره رو طبق چیزی که بالاتر تعریف کردیم بنویسیم براش داریم:مقدار آماره هم برابر میشه با منفی 1.89. اگر هم مقدار p-value رو محاسبه کنیم این مقدار برابر میشه با 0.07 و چون از 0.05 بیشتر هست نمی‌تونیم فرض H0 رو رد کنیم.در نهایت، اگر می‌خواید از t-test استفاده کنید حواستون به نکات زیر باشه:تو t-test فرض بر این هست که میانگین نمونه‌ها (نه خود نمونه‌ها) از توزیع نرمال بیان. این به این معنی هست که اگر 100 بار بیایم نمونه بگیریم و میانگین نمونه‌هارو هر دفعه حساب کنیم و این میانگین‌هارو پلات کنیم از یک توزیع نرمال باید اومده باشن.تو حالتی هم که قراره از t-test دو متغیره استفاده کنیم، فرض بر این هست که توزیع واقعی نمونه‌ها در دو دسته باهم یکسان هستن و اگر تفاوتی بین دو دسته نمونه وجود داره، صرفاً تفاوت میانگین‌هاشون باشه. از اونجایی که واریانس توزیع واقعی نمونه‌هارو نداریم، می‌تونیم بیایم واریانس نمونه‌هارو حساب کنیم و اگر تفاوت زیادی ندیدیم از t-test استفاده کنیم.جمع‌بندی مطالب ارائه شدهبا تست مربع کای و t-test آشنا شدیم و فهمیدیم که چه کاربردی دارن و چند مثال ازشون دیدیم. به شدت پیشنهاد می‌کنم که حتماً حتماً ویدیو این جلسه رو یک بار ببینید، تا مطالب به خوبی براتون جا بیفته.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیست‌وسوم)جزوه جلسه بعدی (جلسه بیست‌وپنجم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 06 Jul 2023 19:18:20 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وسوم - آزمون فیشر و مقدار P</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%E2%80%8C%D9%88%D8%B3%D9%88%D9%85---%D8%A2%D8%B2%D9%85%D9%88%D9%86-%D9%81%DB%8C%D8%B4%D8%B1-%D9%88-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-P-ffnjhanuqrm3</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.در جلسه گذشته با آزمون فرض آشنا شدیم و دیدیم که چقدر مفهوم مهمی هست. از بین آزمون‌های فرضی هم که وجود دارن آزمون Z رو بررسی کردیم. این جلسه قراره با یک نوع آزمون فرض دیگه با عنوان آزمون فیشر آشنا بشیم.برگردیم به همون مثال شرکت دارویی که در جلسه گذشته دیدیم. دو گروه داریم، به 50 نفر یه دارویی رو دادیم و به 50 نفر یک داروی بی‌اثر دادیم و جدول زیر حاصل شده:قراره بررسی کنیم اگر افرادی که دارو بهشون دادیم و بهبود یافتن، اگر به جای 30 نفر، 29 نفر بودن چی؟ ترشلدمون روی چند نفر باشه که بتونیم بگیم دارو موثر بوده؟آزمونی وجود داره با عنوان فیشر که فرض صفرش میگه ستون‌ها از سطرها مستقل هستن و فرض یکش میگه ستون‌ها به سطرها وابسته هستن.با توجه به مثالی که زدیم، فرض صفر داره میگه که اگر بدونیم یک نفر دارو گرفته یا دارو نگرفته این هیچ تاثیری در بهبود یا عدم بهبود فرد نداره. یعنی انگار دارو بی‌اثره.حالا، بیایم فرض کنیم که فرض صفر برقراره. می‌تونیم تو این حالت مثالمون رو تبدیل کنیم به مثال کیسه و گوی‌های رنگی. یعنی انگار 50 تا گوی سبز داریم و 50 تا گوی قرمز. بعد میایم 40 تا گوی رو تصادفی از این کیسه خارج می‌کنیم (40 برابر هست با مجموع تعداد کسانی که بهبود یافتن چه اونایی که دارو گرفتن چه اونایی که داروی بی‌اثر گرفتن). حالا، می‌خوایم ببینیم چقدر احتمال داره که 30 تا گوی سبز ببینیم و 10 تا گوی قرمز.چون تعداد هر کدوم از گوی‌ها 50 تاست، احتمال میره که با رندوم برداشتن گوی‌ها در نهایت 20 تا گوی قرمز ببینیم و 20 تا گوی سبز. خیلی احتمالش کمتره که 30 تا گوی سبز ببینیم و 10 تا گوی قرمز. حالا در ادامه قراره این احتمال رو محاسبه کنیم.جدول زیر رو در نظر بگیرید:داره میگه در مجموع a+c تا گوی سبز داریم و b+d تا گوی قرمز. از این تعداد قراره a+b تا گوی رو بیرون بکشیم.می‌خوایم در کل a+c تا گوی رو بیرون بکشیم. به چند روش امکان داره که از a+c تا گوی سبز، دقیقاً a تارو بیرون بکشیم؟ این تعداد:حالا به چند روش می‌تونیم از b+d تا گوی قرمز دقیقاً b تارو بیرون بکشیم؟ این همه:کل تعداد حالاتی که میشه گوی بیرون بکشیم میشه ضرب دو تعداد به دست اومده:و تعداد کل حالاتی که وجود داره میشه بیرون کشیدن a+b تا گوی به صورت رندوم از a+b+c+d تا گوی:حالا اگه بخوایم احتمال رو محاسبه کنیم داریم:فرمولی که ارائه شده یکی از فرمول‌های فیشر هست.در ادامه مواردی که گفتیم رو با R پیاده‌سازی می‌کنیم و بعد به ازای تعداد گوی‌هایی که تو این حالت داریم احتمال رو محاسبه می‌کنیم.سه تا تابع داریم در کل. یکی فاکتوریل محاسبه می‌کنه، یکی ترکیب حساب می‌کنه و آخری رو احتمال فیشر رو حساب می‌کنه. برای اینکه اعداد فاکتوریل و ترکیب خیلی بزرگ میشن در خروجی به جای خودشون ازشون لاگ گرفته شده.حالا اگر بیایم با توجه به صورت مسئله‌ای که مطرح کردیم احتمال فیشر رو محاسبه کنیم داریم:همونطور که بالاتر هم گفتیم وقتی از دو رنگ 50 تا گوی داشته باشیم خیلی احتمالش کمه که به صورت رندوم 30 تا گوی سبز و 10 تا گوی قرمز خارج کنیم.مفهوم P-valueتا اینجا به کمک فرمول فیشر فهمیدیم که چقدر احتمال داره دقیقاً همون اعدادی که از تست به دست آوردیم رو ببینیم. حالا چقدر احتمال داره که با در نظر گرفتن فرض صفر، وضعیت‌های سخت‌تری رو ببینیم؟ منظورمون از وضعیت‌های سخت‌تر اینکه به جای اینکه به جای نسبت 30 به 20 (افرادی که بهشون دارو داریم) اعداد 31 و 19 یا اعداد 29 و 21 رو ببینیم. به این مقدار احتمال تو این حالت، p-value گفته میشه.به عبارتی دیگه برای تعریف p-value داریم:حالا فرض کنید اگر فرض H0 برقرار باشه توزیع آماره به صورت زیر در میاد:بعد شرایط سخت‌تر رو میشه به صورت زیر مشخص کرد:اون مساحتی که قرمز شده تو عکس بالا در واقع همون p-value هست. یعنی احتمال اینکه با فرض برقرار بودن H0، همون مقدار اولیه‌ای که آماره داشته یا شرایط سخت‌تر رو ببینیم. منظورمون از مقدار اولیه تو مثال دارو همون اعداد 30 و 20 هست.حالا اصلاً مفهوم p-value چیه؟ میگه چقدر احتمال داره اون تفاوتی که در اثر انجام یک کاری انجام شده (مثلاً دارو دادن به بیمار و بهبود یافتن) بخاطر شانس بوده باشه. مثلاً فرض کنید مقدار p-value برابر با 0.1 باشه. در حالتیکه فرض صفر برقرار باشه، به این معنی هست که چه به بیمار دارو بدیم چه داریم ندیم، 10 درصد احتمال بهبود وجود داره.یا فرض کنید مقدار p-value برابر با 0.001 باشه. تو این حالت چون 0.1 درصد احتمال داره که با برقرار بودن فرض H0، خوردن یا نخوردن دارو در بهبود بیماری اثر داشته باشه، میشه نتایج رو به صورت معنی‌دار یا significant گزارش کرد. یعنی تو این حالت حق داریم که فرض صفر رو رد کنیم.حالا چه حدی رو برای p-value در نظر بگیریم که اگر مقدار به دست اومده از اون کمتر بود بتونیم نتایج رو به صورت معنی‌دار گزارش کنیم و فرض صفر رو رد کنیم؟ معمولاً مقدار 0.05 یا 0.01 رو در نظر می‌گیرن و بهش p-value cutoff گفته میشه.چطور میشه مقدار p_value رو محاسبه کرد؟ برگردیم به همون فرمول فیشر. فرض کنید مقادیر زیر رو که از قبل تعریف کرده بودیم به صورت زیر داریم:X = a+c
Y = b+d
Z = a+b
W = c+dحالا فرض کنید a رو آماره در نظر گرفتیم و قراره تغییرش بدیم تا ببینیم چه وضعیتی پیدا می‌کنه. از طرفی مقادیر X و Y و Z و W رو هم بهمون دادن. با این فرضیات مقادیر b و d و c به صورت زیر به دست میاد:c = X-a
b = Z - a
d = Y - bبعد هم وقتی مقادیر مشخص بشن با فرمول فیشر می‌تونیم بیایم و احتمال رو محاسبه کنیم.همه این‌هارو با R پیاده‌سازی می‌کنیم و به ازای X=50 و Y=50 و Z=40 نتایج رو می‌بریم رو نمودار ببینیم چطور میشه:نمودار بالا داره چی میگه؟ داره میگه اگر 50 تا گوی سبز و 50 تا گوی قرمز رو داخل یک کیسه ریخته باشی و ازش 40 تا گوی رو بیرون کشیده باشی، توزیعی که خواهی داشت به صورت بالا در میاد. در واقع توزیع تحت برقرار بودن شرط صفر به صورت بالا میشه. در حالتیکه که مقدار a=20 هست، توزیع بیشترین مقدار احتمال رو داره.برای به دست آورد مقدار p-value چه کنیم؟ قراره یک a رو در نظر بگیریم بعد مقادیر احتمال کوچیک‌تر یا مساوی با a متناظر رو جمع بزنیم. اگه به R کدش رو بنویسیم به صورت زیر میشه:حالا همون مقادیری که تو مثال اول داشتیم رو به تابع میدیم تا مقدار p-value رو برامون محاسبه کنه:چه اتفاقی میفته؟ میاد میگه از اونجایی که a=30 شده به بعد رو مقادیر احتمال رو فیشر رو براش بگیر و جمع بزن و در نهایت بهم بده. حالا خود عدد به دست اومده چی داره میگه؟ داره میگه اگر دارویی که ساخته شده اثر نداشت، 0.0000415432 احتمال داشت که 30 نفر یا 31 نفر یا 29 نفر بهبود پیدا کنن. چون مقدار p-value خیلی کم شده اینجا میشه فرض صفر رو رد کرد و به این نتیجه رسید که دارو اثر داره.حالا فرض کنید اون دسته‌ای که بهشون دارو ندادیم و بهبود پیدا کردن (c) از 10 نفر بشن 20 نفر، اون موقع مقدار p-value برابر میشه با:با این کار مقدار p-value بزرگ‌تر میشه و نمیشه فرض صفر رو رد کرد.الان با این مقدار p-value می‌تونیم بگیم که دقیقاً چند تا بیمار بهبود پیدا بکنن میشه دارو رو تایید کرد و فروخت.جمع‌بندی مطالب ارائه شدهبا آزمون فیشر و p-value آشنا شدیم و دیدیم که چطور در رد کردن یا پذیرفتن فرضیه‌های آماری می‌تونن بهمون کمک کنن.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیست‌ودوم)جزوه جلسه بعدی (جلسه بیست‌وچهارم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 29 Jun 2023 19:19:14 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌ودوم - آزمون فرض و آزمون Z</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%E2%80%8C%D9%88%D8%AF%D9%88%D9%85---%D8%A2%D8%B2%D9%85%D9%88%D9%86-%D9%81%D8%B1%D8%B6-%D9%88-%D8%A2%D8%B2%D9%85%D9%88%D9%86-Z-cx974sx7kk5q</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.تست‌های آماری یکی از جدی‌ترین موضوعاتی هست که در آمار وجود داره و در طی این جلسه و تعدادی از جلسات آینده قراره به بررسی این موضوع بپردازیم.آزمون فرضفرض کنید یک شرکت داروسازی وجود داره و یک دارویی رو ساخته و دارو رو هم تست کرده، ولی نمی‌دونیم هنوز بهش مجوز فروش دارو رو بدیم یا نه. نتایج تست دارو توسط شرکت هم به شرح زیره:به 50 بیمار داروی ساخته شده داده شده و 50 بیمار یک دارو بی‌اثر. در نتیجه، از گروه اول 35 نفر بهبود یافتن و از گروه دوم 20 نفر.حالا چطور بفهمیم که داروی ساخته شده موثر هست یا نه؟اگر به جای نتایج به دست اومده، از گروه اول 34 نفر و از گروه دوم 21 نفر بهبود پیدا می‌کردن چی؟ اگر به جای این تعداد، از گروه اول 30 نفر و از گروه دوم 25 نفر حالشون خوب میشد چطور؟ چطور باید مرز رو تعیین کنیم؟بعنوان یک مثال دیگه، فرض کنید دو تا شرکت تاکسی اینترنتی داریم و ادعا شده که شرکت X از شرکت Y قیمت‌های گرون‌تری داره. میایم از توزیع قیمت در هر دو شرکت نمونه می‌گیریم و می‌بینیم که توزیع‌هاشون خیلی شبیه هم هستن و فقط کمی اختلاف دارن:نمونه‌هایی که گرفتیم متفاوت بوده. نمونه‌هایی که از توزیع آبی گرفته شده خیلی حول میانگین بوده در حالیکه نمونه‌هایی که از توزیع نارنجی گرفته شده خیلی پراکنده‌تر بوده از همه جای توزیع. اما در نهایت میانگین دو توزیع خیلی بهم نزدیکه. آیا صرفاً با همین اختلاف ناچیزی که بین دو میانگین وجود داره میشه ادعای ارائه شده رو پذیرفت؟ یا باید اصلاً معیار ارزیابی‌مون به صورت دیگه‌ای باشه؟قراره تو این قسمت درس به این سوالات پاسخ بدیم.وقتی که در مورد آزمون فرض صحبت می‌کنیم نیاز داریم که تعدادی فرض داشته باشیم. دو تا فرض در نظر می‌گیریم:فرض پوچ ← Null Hypothesis ← H0
فرض مقابل ← Alternative Hypothesis ← H1فرض پوچ داره میگه هیچ تفاوتی بین دو جمعیت وجود نداره. به عبارتی دیگه، هر جمعیت یک توزیعی داره و این توزیع جمعیت‌ها و پارامترهاشون باهم تفاوتی ندارن.فرض مقابل دقیقاً برعکس فرض پوچه و میگه بین دو جمعیت تفاوت وجود داره.تابعی هم داریم که بهش آماره یا Test Statistics گفته میشه و می‌تونه شبیه میانگین باشه یا شبیه میانگین تقسیم بر انحراف معیار یا هر تابع دیگه‌ای.در ادامه باید یک سری ترشلد بر اساس یک میزانی از confidence هم تعریف کنیم.برای مثال همون دو شرکت تاکسی رانی رو در نظر بگیرید. فرض کنید داده‌های 1000 تا سفر رو بهمون بدن و بعد بررسی کردن ببینیم میانگین قیمت در هر دو شرکت یکسان بوده. با این تعداد داده نه میشه ادعا کرد که توزیع‌هاشون یکسان بوده نه میشه ادعا کرد توزیع‌‌هاشون فرق داشته. تعداد داده‌ها به 100 هزارتا هم برسه باز فرقی نداره.ولی یک راهی وجود داره. می‌تونیم بیایم confidence تعریف کنیم. مثلاً سطح اطمینان رو 95 درصد در نظر بگیریم و بگیم که اگر آماره‌ای که داریم از این سطح اطمینان بالاتر رفت، با احتمال 95 درصد مطمئن هستیم که فرض صفر رد میشه.یعنی چی این حرف؟ فرض کنید ترشلد رو 7 در نظر بگیریم. حالا اگر بین قیمت سفرهای دو شرکت 7 هزار تومن اختلاف وجود داشته باشه، 95 درصد مطمئن هستیم که باید فرض صفر رد بشه. یعنی دیگه دو شرکت توزیع یکسانی ندارن و یکی داره گرون‌تر قیمت رو محاسبه می‌کنه.حالا چطور باید آماره رو تعریف کنیم؟ چطور باید از روی confidence داده شده ترشلد رو به دست بیاریم؟ در ادامه این جلسه به این سوالات پاسخ می‌دیم.مثال زیر رو در نظر بگیرید:فرض کنید علی به جای 4 سکه، یک سکه داشته باشه و قراره ببینیم آیا واقعاً سکه‌ای که داره fair هست یا نه؟خب، میایم دو تا فرض در نظر می‌گیریم. فرض صفر میگه احتمال شیر یا خط اومدن یکسانه و فرض یک میگه احتمال شیر یا خط اومدن یکسان نیست:حالا چطور میشه آزمایشی رو طراحی کرد که فهمید علی راست میگه یا نه؟می‌تونیم سکه رو 100 بار پرتاب کنیم و آماره رو تعداد دفعاتی که سکه رو میاد در نظر بگیریم. اگه تعداد دفعاتی که سکه رو میاد برابر با 50 باشه از 100 بار نمی‌تونیم فرض صفر رو رد کنیم. این تعداد دفعاتِ رو اومدن رو چند باید در نظر بگیریم تا بتونیم فرض صفر رو رد کنیم؟فرض کنید اگر ما 95 درصد مطمئن بشیم که سکه علی تقلبی بوده، اون موقع دادگاه علی رو محکوم میکنه.تا اینجا همه چیز شامل فرض‌ها، آماره و confidence مشخص شده و تنها چیزی که مونده ترشلده که بهمون میگه تعداد دفعاتی که سکه رو میاد چقدر باشه تا فرض صفر رو بتونیم رد کنیم.اگر ادعای علی درست باشه و سکه fair باشه، میتونیم بریم سراغ توزیع برنولی و میانگین و واریانس رو برای 100 بار پرتاب سکه حساب می‌کنیم.آماره رو می‌تونیم به صورت زیر حساب کنیم:و اگر فرض صفر برقرار باشه هر یک باری که سکه رو پرتاب می‌کنیم، میانگین و واریانس به صورت زیر میشه:حالا اگر سکه رو 100 بار بندازیم میانگین و واریانس 100 تا سکه به صورت زیر محاسبه میشه:برای ادامه حل می‌تونیم از قضیه حد مرکزی استفاده کنیم. قراره تعداد دفعات خیلی زیادی سکه رو 100 بار بندازیم و چون این متغیرهای تصادفی مستقل از هم هستن و قراره باهم جمعشون کنیم می‌دونیم که در نهایت به یک توزیع نرمال باید میل کنن:حالا ما تونستیم یک متغیر تصادفی X رو پیدا کنیم که از توزیع نرمال با میانگین 50 و واریانس 25 میاد.در ادامه میایم این متغیر تصادفی رو نرمال استاندارد می‌کنیم و اسم متغیر تصادفی جدید رو Z میذاریم:چون متغیر Z از توزیع نرمال میاد می‌تونیم بیایم از یک تست آماری به نام z-test استفاده کنیم. دلیل نام‌گذاری این تست هم اینکه همیشه اسم متغیر نرمال استاندارد رو Z در نظر گرفتیم.حالا، فرض کنید که فرض صفر برقرار باشه. یعنی احتمال رو اومدن سکه برابر با 1/2 باشه. Z با احتمال 95 درصد بین چه بازه‌ای قرار می‌گیره؟توزیع نرمال زیر رو در نظر بگیرید. مساحتی که هاشور خورده مساحت مد نظر ماست. باید بیایم مقدار تابع وارون Phi در نقطه یک منهای 0.025 رو محاسبه کنیم تا بتونیم اول و آخر بازه رو محاسبه کنیم.بعد از انجام محاسبات به کمک R بازه رو برای Z به دست میاریم و سپس X رو تنها می‌کنیم و در نهایت داریم:بازه نهایی که به دست اومده چی داره میگه؟ داره میگه میایم سکه رو 100 بار میندازیم اگه تعداد دفعاتی که سکه رو میاد از 41 بیشتر باشه و از 49 کمتر باشه نمی‌تونیم فرض صفر رو رد کنیم ولی اگر تعداد دفعاتی که سکه رو میاد از 41 کمتر باشه یا از 49 بیشتر بشه، می‌تونیم با احتمال 95 درصد فرض صفر رو رد کنیم.حالا یه سوالی. آیا ممکنه دچار خطا بشیم؟ یعنی مثلاً سکه‌ای که داریم واقعاً fair بوده باشه، ولی ما بیایم و به اشتباه فرض صفر رو رد کنیم. آیا چنین چیزی ممکنه؟بله چنین چیزی محتمله. وقتی میایم confidence رو 95 درصد در نظر می‌گیریم، به این معنی هست که با احتمال 5 درصد داریم فرض صفر رو رد می‌کنیم در حالیکه می‌تونه برقرار باشه.انواع خطابه صورت کلی دو نوع خطا داریم که بهشون خطای نوع اول و خطای نوع دوم گفته میشه. در ادامه بیشتر توضیح میدیم.برگردیم به مثال تاکسی اینترنتی. فرض کنید داریم میسنجیم که آیا قیمت شرکت X از شرکت Y متفاوت هست یا نه. جدول زیر رو در نظر بگیرید:در واقعیت یا فرض H0 تایید میشه یا رد میشه. در نتیجه تست هم یا فرض H0 تایید میشه یا رد میشه. در حالتی که فرض H0 در واقعیت و نتیجه تست رد بشن یا تایید بشن خطایی نداریم. در دو حالت خطا رخ میده.حالت اول که بهش خطای نوع یک هم گفته میشه وقتی هست که در واقعیت فرض H0 تایید میشده اما در نتیجه تست فرض H0 رد شده و مقدارش با آلفا مشخص میشه. تو مثال تاکسی رانی به این صورته که در واقعیت قیمت‌های دو شرکت هیچ تفاوتی نداشته اما ما به اشتباه اومدیم گفتیم تفاوت دارن.حالت دوم که بهش خطای نوع دو هم گفته میشه وقتی هست که در واقعیت فرض H0 رد میشده اما در نتیجه تست فرض H0 تایید شده و مقدارش با بتا مشخص میشه. تو مثال تاکسی رانی به این صورته که در واقعیت قیمت‌های دو شرکت متفاوت بوده اما ما به اشتباه اومدیم گفتیم تفاوتی ندارن.برای اینکه مفهوم خطای نوع یک و خطای نوع دو بهتر در ذهن بمونه تصویر زیر رو ببینید:جدولی که بالاتر ارائه شد رو میشه به صورت زیر تکمیل‌تر کرد:از مفاهیم TN و FN و FP و TP در مباحث یادگیری ماشین خیلی استفاده میشه. برای مثال دو تا مفهوم sensitivity و specificity در یادگیری ماشین وجود داره که در تشخیص افراد بیمار و غیر بیمار کاربرد دارن و به صورت زیر تعریف میشن:حساسیت یا sensitivity به این معنیه که از بین افرادی که مراجعه کردن و واقعاً بیمار بودن اگر یک نفر بیمار باشه، چقدر احتمال داره که به درستی تشخیص بدیم بیمار بوده.مفهوم specificity هم به این معنی هست که از بین افرادی که مراجعه کردن و واقعاً سالم بودن اگر یک نفر سالم باشه، چقدر احتمال داره که به درستی تشخیص بدیم سالم بوده.جمع‌بندی مطالب ارائه شدهفهمیدیم که چرا اصلاً نیاز داریم تست آماری داشته باشیم و با تست Z اشنا شدیم.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیستم‌و‌یکم)جزوه جلسه بعدی (جلسه بیست‌وسوم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 22 Jun 2023 19:18:54 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌ویکم - تخمین بازه‌ای</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%E2%80%8C%D9%88%DB%8C%DA%A9%D9%85---%D8%AA%D8%AE%D9%85%DB%8C%D9%86-%D8%A8%D8%A7%D8%B2%D9%87%E2%80%8C%D8%A7%DB%8C-g6poml0qinl0</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.در جلسه گذشته با تخمین‌گرهای نقطه‌ای آشنا شدیم و فهمیدیم تخمین‌گر Maximum Likelihood چیه.در ادامه قراره اول یک مثال از Maximum Likelihood رو ببینیم و بعد به مباحث این جلسه بپردازیم.فرض کنید دیتای زیر از X1 تا Xn از یک توزیع نرمال و مستقل از هم با پارامترهای تتا یک و تتا دو اومده باشه:قراره MLE (Maximum Likelihood Estimator) رو برای پارامتر تتا یک و تتا دو پیدا کنیم:حالا اگه MLE رو بنویسیم داریم:تو رابطه بالا منظورمون از P تابع چگالی توزیع نرمال هست و از اونجایی که تتا یک جای میانگین نشسته و تتا دو جای واریانس می‌تونیم رابطه بالا رو به صورت زیر بنویسیم و حاصل ضرب چگالی‌هارو محاسبه کنیم:اگر ما بتونیم برای پارامتر تتا یک و تتا دو مقداری رو پیدا کنیم که حاصل ضرب بالا رو بیشینه کنه، به این معنیه که اون مقادیر شانس بیشتری داشتن که اون دیتا رو تولید کنن. ممکنه حتی مقادیری که برای پارامترها پیدا می‌کنیم پارامترهای واقعی توزیع جامعه نباشن، اما از بین همه پارامترهای موجود با بیشترین احتمال دیتایی که داریم رو تولید کردن.تا اینجا ما تابع likelihood رو به دست آوردیم. دنبال مقداری از تتا هستیم که این تابع رو برامون بیشینه کنه. باید از تابع likelihood مشتق بگیریم و بعد برابر با صفر قرار بدیم.مشتق گرفتن از خود تابع likelihood سخته. برای همین میایم اول ازش لگاریتم می‌گیریم، بعد از تابع لگاریتمش مشتق می‌گیریم و مساوی 0 قرار می‌دیم.تابع likelihood که به صورت زیر تعریف میشه:حالا اگه از تابع بالا لگاریتم طبیعی بگیریم به صورت زیر در میاد:عبارت argmax(theta1, theta2) داره میگه به ازای چه تتا یک و تتا دویی تابع لگاریتم likelihood بیشینه میشه.حالا میایم از تابع بالا یک بار نسبت به تتا یک مشتق می‌گیریم، برابر با 0 قرار میدیم و مقدار پارامتر تتا یک رو به دست میاریم:الان تتا یک مقدارش برابر با چی هست؟ همون تخمین‌گر میانگین هست که در جلسات گذشته دیدیم.حالا، میایم از تابع likelihood این بار نسبت به تتا دو مشتق می‌گیریم، برابر با 0 قرار میدیم و مقدار پارامتر تتا دو رو به دست میاریم:مقداری که برای تتا دو به دست اومده تخمین‌گر تجربی واریانس هست. در جلسات گذشته دیدیم که این تخمین‌گر biased هست اما MLE خصوصیاتی داره که باعث میشه این تخمین‌گر unbiased بشه. در ادامه جزییات بیشتری رو در این خصوص توضیح خواهیم داد.خصوصیات تابع Maximum Likelihood در حالتیکه n به بی‌نهایت میل کنه ...ویژگی اول، unbiased بودن:ویژگی دوم، سازگار بودن:ویژگی سوم، تبعیت کردن MLE از یک توزیع نرمال در صورت نرمال شدن:در ادامه این جلسه جزییات بیشتری رو در خصوص ویژگی سوم خواهیم دید.در جلسه گذشته که داشتیم معیارهای یک تخمین‌گر خوب رو بررسی می‌کردیم به نحوی این سه معیار رو هم پوشش دادیم و همونطور که واضحه MLE هم این خصوصیات رو داره و به همین دلیل باعث میشه که تخمین‌گر خوبی به شمار بره.تخمین‌گر بازه‌ایاز جلسه گذشته تا به الان، با تخمین‌گر نقطه‌ای آشنا شدیم و دیدیم که به چه صورته. در ادامه، قبل از اینکه به جزییات این مبحث بپردازیم اول ببینیم که چی شد که اصلاً نیاز به داشتن تخمین‌گر بازه‌ای به وجود اومد و بعد جزییاتش رو باهم بررسی خواهیم کرد:پس، قضیه از این قراره که با تخمین‌گر نقطه‌ای فقط میشه یک عدد به دست آورد. حالا چقدر احتمال داره که پارامتر تخمین‌زده شده برابر باشه با پارامتر واقعی جمعیت؟ احتمالش صفره. چقدر احتمال داره که پارامتر تخمین‌زده شده نزدیک باشه به پارامتر واقعی؟ نمی‌دونیم.ولی اگر یک بازه داشته باشیم (به این شرط که خیلی از هم دور نباشن) که مطمئن باشیم پارامتر واقعی جمعیت با احتمال 95 درصد تو اون بازه قرار می‌گیره، اطلاعات بیشتری به ما میده و به درد بخورتره.در ادامه یک مثال رو باهم بررسی می‌کنیم.فرض کنید که دیتایی داریم که داره از توزیع نرمال با میانگین تتا و واریانس 1 میاد:دنبال این هستیم که یک بازه‌ای رو پیدا کنیم به طوری که احتمال قرار داشتن تتا توی اون بازه بیشتر از 95 درصد باشه:از اونجایی که تتا میانگین رو نشون میده، می‌دونیم که از قبل برای تخمین‌گر میانگین داریم:و واریانس هر کدوم از Xi ها برابر هست با:1/n^2و اگر بخوایم واریانس X بار رو محاسبه کنیم خواهیم داشت:طبق مباحثی که در جلسات مربوط به احتمال بررسی کردیم، می‌دونیم که جمع متغیرهای مستقلی که از یک توزیع نرمال میان در نهایت بهمون یک توزیع نرمال میده که با توجه به توزیعمون در اینجا میانگین تتا و واریانس 1/n داره:می‌تونیم توزیع X بار رو نرمال کنیم و داشته باشیم:حالا، بیاید توزیع نرمال استاندارد زیر رو در نظر بگیرید:یادمون هست که تابع Phi نشون‌دهنده تابع CDF توزیع نرمال بود و Phi(z_alpha) برابر بود با سطح زیر نمودار از منفی بی‌نهایت تا z_alpha. حالا چون سطح زیر نمودار از z_alpha به بعد رو می‌خوایم باید بیایم از 1 مقدار alpha رو کم کنیم. یعنی داریم:Phi(z_alpha) = 1-alphaو چون دنبال z_alpha هستیم، میایم از تابع بالا وارون می‌گیریم.تو صورت سوال گفته بودیم که دنبال بازه‌ای هستیم که احتمال قرار داشتن تتا توی اون بازه بیشتر از 95 درصد باشه (یعنی قسمت هاشور خورده زیر):حالا فقط کافیه z_alpha/2 رو محاسبه کنیم تا بازه رو به دست بیاریم.برای به دست آوردن بازه ابتدایی و انتهایی، اول باید بیایم Z رو جایگذاری کنیم و بعد تتا رو تنها کنیم:برای تنها کردن تتا اول میایم طرفین رو بر رادیکال n تقسیم می‌کنیم و بعد از طرفین X بار رو کم می‌کنیم و در نهایت در یک منفی ضرب می‌کنیم. داریم:مقدار alpha رو 0.05 در نظر گرفته بودیم.پس مقدار alpha تقسیم بر 2 میشه 0.025. به کمک R میایم مقدار z_0.025 رو محاسبه می‌کنیم که برابر هست با 1.96. پس بازه نهایی برابر میشه با:ʘ^_LOW = X-bar - (1.96/√n)
ʘ^_HIGH = X-bar + (1.96/√n)حالا این بازه‌ای که پیدا کردیم چه معنایی داره؟ اگر تعداد نمونه‌هایی که داریم 9 تا باشه میانگین با احتمال 95 درصد در بازه زیر قرار می‌گیره:اگه به جای 9 نمونه، 100 نمونه می‌داشتیم بازه میانگین به صورت زیر تغییر می‌کرد:یعنی هرچی تعداد نمونه‌ها بیشتر بشه، بازه اطمینان کوچیک‌تر میشه.توی این مثالی که بررسی کردیم، مقدار واریانس برابر بود با 1.حالا اگر یک توزیع ناشناخته داشته باشیم که واریانس شناخته شده سیگما دو داشته باشه و میانگین ناشناخته تتا داشته باشه و قرار باشه میانگین رو براش تخمین بزنیم چی؟اول از همه، می‌دونیم که برای میانگین، X بار تخمین‌گر خوبیه. از طرفی بازه بالا و پایینی که قراره به دست بیاریم در واقع به صورت زیر هست:P(theta ∈ [X-bar - ?, X-bar + ?]) ⩾ 1 - alphaبعد، می‌تونیم برای حل این مسئله از قضیه حد مرکزی استفاده کنیم.یعنی وقتی n بزرگ باشه می‌دونیم که توزیع استاندارد شده میانگین از توزیع نرمال استاندارد تبعیت می‌کنه. یعنی داریم:تو مثال قبلی هم دیدیم که اگر Z یک توزیع نرمال استاندارد باشه، حد بالا و پایین رو می‌تونیم به صورت زیر بنویسیم:و اگر بیایم Z رو جایگزین کنیم و X بار منهای تتا رو تنها کنیم خواهیم داشت:پس در نهایت بازه‌ای اطمینانی که دنبالش بودیم مستقل از توزیع با هر میانگین و واریانس دلخواه به صورت زیر در میاد:اگه یکم مطالب گنگ بوده ایرادی نداره. در ادامه یکی دو تا مثال عددی بررسی می‌کنیم و بهتر متوجه قضیه میشید.فرض کنید بهمون گفتن یک توزیعی داریم که واریانس 30 داره. قراره یک بازه اطمینان با احتمال 99 درصد براش پیدا کنیم. چه کنیم؟اول از همه چون بازه اطمینان با احتمال 99 درصد میخوایم، پس یعنی:confidence = 1 - alpha = 0.99
alpha = 0.01و چون دنبال z_alpha/2 هستیم پس:alpha/2 = 0.005در گام بعدی به کمک R میایم z_alpha/2 رو محاسبه می‌کنیم:z_alpha/2 = 2.57حالا با توجه به بازه‌هایی که در مثال قبلی محاسبه کردیم داریم:حالا یک سوالی پیش میاد.در اکثر مسائل مقدار واریانس رو نداریم. تو این مواقع چه کنیم؟فرض کنید دیتایی که داریم از یک توزیع ناشناخته با میانگین تتا یک ناشناخته و واریانس تتا دو ناشناخته میاد. تو این حالت بازه اطمینان رو چطور میشه پیدا کرد؟ دو تا راهکار داریم.روش اول اینکه بیایم یک حد بالا برای واریانس محاسبه کنیم به طوریکه مطمئن باشیم واریانس جامعه از اون حد بالا کوچیک‌تره. (روش‌های مختلفی وجود داره برای محاسبه این قسمت).روش دوم اینکه بیایم واریانس رو تخمین بزنیم و بعد بقیه کار رو طبق چیزایی که در دو مثال قبلی دیدیم جلو ببریم.جمع‌بندی مطالب ارائه شدهجزییات تابع MLE رو دیدیم و با تخمین‌گر بازه‌ای آشنا شدیم و فهمیدیم که چطور میشه به جای یک عدد یک بازه رو برای پارامترهای یک توزیع تخمین زد.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه بیستم)جزوه جلسه بعدی (جلسه بیست‌ودوم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Fri, 16 Jun 2023 19:19:13 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیستم - تخمین نقطه‌ای و تخمین‌گر Maximum Likelihood</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C---%D8%AC%D9%84%D8%B3%D9%87-%D8%A8%DB%8C%D8%B3%D8%AA%D9%85---%D8%AA%D8%AE%D9%85%DB%8C%D9%86-%D9%86%D9%82%D8%B7%D9%87%E2%80%8C%D8%A7%DB%8C-%D9%88-%D8%AA%D8%AE%D9%85%DB%8C%D9%86%E2%80%8C%DA%AF%D8%B1-Maximum-Likelihood-zctqtuplofej</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.در جلسه گذشته با مقدمات آمار آشنا شدیم و فهمیدیم که با احتمال چه تفاوتی داره.یکی از مواردی که تو بحث آمار برامون مهمه، تخمین پارامترهای توزیع جامعه هست. منظورمون از پارامتر چیه؟ مثلاً میانگین توزیع، واریانس توزیع یا حتی چیزای دیگه.تو بحث آمار دو تا موضوع مطرحه. یکی آمار پارامتری هست و یکی آمار غیر پارامتری. تو آمار پارامتری فرض می‌کنیم که نمونه‌هایی که داریم از یک توزیع مشخصی میان ولی نمی‌دونیم پارامترهاش چی ان و قراره اون پارامترهارو تخمین بزنیم. تو آمار غیر پارامتری فرضی روی توزیع اولیه نداریم و انتظار داریم که از روی نمونه‌ها به توزیع جامعه برسیم و انتظار هر توزیعی رو داریم. در جلسات آینده با جزییات بیشتر این موضوعات آشنا خواهیم شد.آمار پارامتری خودش به دو دسته تقسیم میشه:تخمین پارامتری نقطه‌ای: تو این نوع صرفاً یک عدد برای پارامتر توزیع تخمین زده میشه. مثلاً میگیم تخمین می‌زنیم که میانگین توزیع برابر با 15.4 هست. این روش خطای بالایی داره.تخمین پارامتری بازه‌ای: تو این نوع یک بازه برای پارامتر توزیع تخمین می‌زنیم و مطمئن هستیم که مثلاً با احتمال 95 درصد میانگین جامعه تو این بازه قرار می‌گیره. خطا توی این روش کمتره.در ادامه این جلسه قراره با تخمین پارامتری نقطه‌ای آشنا بشیم.تخمین پارامتری نقطه‌ایفرض کنید توزیع جامعه (یا جمعیت) که قراره پارامترهاشو تخمین بزنیم یه پارامتری داره با عنوان ʘ (بخونید تتا). ما هم یک سری داده داریم که قراره از روی اونا پارامتر ʘ^ (بخونید تتا هت) رو به دست بیاریم که تخمینی هست از پارامتر تتای توزیع جامعه. در واقع همون تخمین‌گر نقطه‌ای هست که تو جلسه گذشته با مقدماتش آشنا شدیم.حالا فرض کنید 10 تا نمونه داریم از X1 تا X10. قراره چند تا تخمین‌گر برای میانگین داشته باشیم و در نهایت ببینیم که کدومشون از همه بهتره.دو تا تخمین‌گر برای میانگین در نظر گرفتیم و به صورت زیر تعریف شدن:اگر بیایم امید ریاضی هر دو تخمین‌گر رو محاسبه کنیم می‌بینیم که برابر میشن با µ که برابر هست با میانگین جمعیت. حالا چجوری بفهمیم کدوم تخمین‌گر بهتره؟ چرا اصلاً میگیم تخمین‌گر دوم بهتره؟ کدوم ویژگی تخمین‌گر دوم بهتر از تخمین‌گر اوله؟معیارهای ارزیابی تخمین‌گر نقطه‌ایمی‌تونیم یک سری معیار تعریف کنیم جهت اینکه تخمین‌گر خوب و بد رو از هم تشخیص بدیم.اولین معیار کم بودن مقدار واریانس هست. تو همین مثال بالا چون تخمین‌گر دوم واریانس کمتری داره نسبت به تخمین‌گر اول، برای همین می‌تونه تخمین‌گر بهتری باشه.بعنوان یک مثال دیگه دو توزیع زیر رو جهت تخمین پارامتر ʘ در نظر بگیرید. کدوم توزیع تخمین بهتری هست؟توزیع قرمز رنگ. چرا؟ چون واریانس کمتری داره و میزان پراکندگی توش کمتره.معیار دوم برمی‌گرده به اریب (biased) یا نااریب (unbiased) بودن تخمین‌گرها. در جلسه گذشته با تعریف این ویژگی آشنا شدیم و یکی دو تا مثال ازش دیدیم. اگر با زیاد کردن تعداد نمونه‌ها مقدار تخمین‌گر به مقدار پارامتر جمعیت برسه و بهش نزدیک بشه میگیم تخمین‌گر نااریبه و اگر این اتفاق نیفته میگیم تخمین‌گر اریبه. تعریف زیر رو در نظر بگیرید:در صورتی که B(ʘ^) برابر با 0 بشه، به این معنیه که تخمین‌گر نااریب داریم و امید ریاضی ʘ^ برابر هست با ʘ که پارامتر واقعی جمعیت هست.تا اینجا گفتیم که تخمین‌گرهایی که واریانس کم و بایاس کم داشته باشن تخمین‌گرهای خوبی هستن. تصویر زیر حالت‌های مختلف از معیارهایی که تا اینجا تعریف کردیم رو نشون میده:آخرین معیار، متوسط مربع خطا یا Mean Squared Error هست که به صورت زیر تعریف میشه:حالا بین این سه معیار چه ارتباطی وجود داره؟از اونجایی که تتا یک عدد ثابته، می‌دونیم که رابطه زیر برقراره:Var(ʘ^ - ʘ) = Var(ʘ^)حالا اگر بیایم طبق فرمول واریانس، سمت چپ رو باز کنیم خواهیم داشت:Var(ʘ^ - ʘ) = E((ʘ^ - ʘ)^2) - (E(ʘ^ - ʘ))^2
Var(ʘ^ - ʘ) = MSE(ʘ^) - B(ʘ^)^2 = Var(ʘ^)
MSE(ʘ^) = Var(ʘ^) + B(ʘ^)^2برگردیم به همون مثال یکم بالاتر و بایاس و MSE رو براش بررسی کنیم.گفتیم که دو تا تخمین‌گر برای میانگین جمعیت در نظر گرفته شده و به صورت زیر هست:از نظر بایاس تفاوتی در دو تخمین‌گر نیست و هر دو یکسان عمل می‌کنن و مقدار بایاس در هر دو تخمین‌گر برابر با صفر میشه.از نظر واریانس مقادیر دو تخمین‌گر به صورت زیر به دست میان:که نشون میده تخمین‌گر دوم واریانس کمتری داره، پس بهتره.در مورد MSE هم، چون بایاس در هر دو یکسانه و برابر با 0 هست، پس هرچی واریانس کمتر باشه، میزان MSE هم کمتره. پس تخمین‌گر دوم MSE کمتری داره.البته یک نکته‌ی مهمی اینجا وجود داره. لزوماً تخمین‌گر دوم تخمین‌گر بهتری نیست. ممکنه در شرایطی با توجه به نیازمون تخمین‌گر اول بهتر به نیاز ما جواب بده. این موضوع خیلی بستگی داره به نوع مسئله‌ای که باهاش روبرو هستیم و نیازی که داریم.حالا یه سوال. تو همین مثالی که دیدیم آیا میشه یه تخمین‌گر سومی ارائه داد که واریانس صفر داشته باشه ولی بایاسش غیر صفر باشه؟بله. هر عدد ثابتی این ویژگی رو داره. مثلاً می‌تونیم تخمین‌گر سوم رو برابر با عدد 19 در نظر بگیریم.معیار چهارم، سازگاریتا به اینجا با سه معیار برای تخمین‌گرهای نقطه‌ای آشنا شدیم، اما یک معیار چهارمی هم وجود داره و عنوانش برابر هست با سازگاری.اگر یک دنباله از تخمین‌گرها داشته باشیم:ʘ^1, ʘ^2, ..., ʘ^nباید به ازای هر e &gt; 0 حد زیر برقرار باشه:lim P(|ʘ^n - ʘ| ⩾ e) = 0, when n→∞حد بالا چی داره میگه؟ داره میگه وقتی n به سمت بی‌نهایت میل می‌کنه (یعنی تعداد نمونه‌های تخمین‌گر بیشتر بشه)، باید فاصله تخمین‌گر از پارامتر واقعی جمعیت از خطای e کمتر بشه. به عبارتی دیگه، وقتی n رو داریم بیشتر می‌کنیم، انتظار داریم که تخمین‌گر به پارامتر جمعیت برسه.ممکنه سوال پیش بیاد که منظور از دنباله تخمین‌گرها چیه؟ یک مثال ازش در تصویر زیر آورده شده:در ادامه بریم یک مثال ببینیم و معیارهای مختلف رو براش بررسی کنیم.فرض کنید تخمین‌گری که داریم به صورت زیر تعریف شده و قراره باهاش پارامتر میانگین رو تخمین بزنیم:حالا بیایم معیارهای مختلف رو براش بررسی کنیم.در مورد بایاس داریم:چون برابر با صفر نیست پس نااریب نیست.در مورد سازگاری با استفاده از قانون اعداد بزرگ یا نامساوی چبیشف که در جلسات گذشته باهاشون آشنا شدیم میشه نشون داد که رابطه زیر در موردش برقراره و تخمین‌گر سازگار هست:lim P(|ʘ^n - ʘ| ⩾ e) = 0, when n→∞حالا یه سوالی. آیا میشه تخمین‌گری داشت که نااریب باشه ولی سازگار نباشه؟ دقیقاً برعکس این مثالی که دیدیم. بله:ʘ^n = Xnیک مثال دیگه رو در ادامه ببینیم.فرض کنید قراره پارامتر لامبدا از توزیع پوآسون رو تخمین بزنیم و سه تا تخمین‌گر به صورت زیر براش در نظر گرفتیم:تخمین‌گر اول میانگین همه نمونه‌هاست. تخمین‌گر دوم میانگین 5 تا نمونه اوله و تخمین‌گر سوم واریانس تجربی همه نمونه‌هاست. منظور از واریانس تجربی، واریانسی هست که تو مخرج تعداد نمونه‌هارو داریم نه تعداد نمونه‌ها منهای یک.نتیجه سه تخمین‌گر به صورت زیر در اومده و خط سبز هم نشون دهنده مقدار لامبدای جمعیت هست:دو تخمین‌گر اول و دوم بایاس ندارن ولی واریانس تخمین‌گر اول از تخمین‌گر دوم کمتره. تخمین‌گر سوم هم بایاس داره هم اینکه واریانسش نسبت به دو تخمین‌گر دیگه خیلی بیشتره.در جلسه گذشته دیدیم که تخمین‌گری که برای واریانس خوب کار می‌کنه به صورت زیر تعریف میشه:در ادامه این جلسه اثبات میشه که تخمین‌گر تجربی واریانس (همون تخمین‌گری که به جای n-1 در مخرج n داره) اریبه و میزان اریب بودنش هم به دست میاد. در جلسه گذشته به صورت شهودی این دو تخمین‌گر رو باهم مقایسه کردیم. از آوردن اثبات این بخش صرف نظر شده ولی اگر علاقه‌مند هستین که جزییات بیشتری در این خصوص به دست بیارید به دقیقه 49 تا 57 از ویدیو این جلسه مراجعه کنید.تخمین‌گر Maximum Likelihoodاگر به مباحث یادگیری ماشین علاقه‌مند هستین، از این جا به بعد رو خیلی جدی‌تر دنبال کنید. یکی از پایه‌ای‌ترین مباحث در یادگیری ماشین تخمین‌گر Maximum Likelihood هست که در ادامه این جلسه قراره جزییاتش رو بررسی کنیم.تا به اینجای این جلسه اومدیم در مورد معیارهای ارزیابی یک تخمین‌گر خوب صحبت کردیم، اما سوالی که پیش میاد اینکه اصلاً چطور میشه یک تخمین‌گر رو به دست آورد تا بعد این معیارهارو در موردش بررسی کرد؟فرض کنید یک سری دیتا داریم که می‌دونیم از توزیع پوآسون اومده ولی پارامترهای اون توزیع رو نمی‌دونیم و قراره تخمین بزنیم.قراره چیکار کنیم؟ قراره پارامتر تتایی رو به دست بیاریم که باعث بشه احتمال دیدن داده‌هایی که بهمون دادن با این پارامتر بیشینه بشه.داده‌های زیر رو در نظر بگیرید و فرض کنید که از یک توزیع پوآسون اومده:Data = [5, 7, 13, 2, 18]حالا دو تا لامبدا براش در نظر بگیرید:با توجه به داده‌هایی که بهمون داده شده، کدوم یکی از لامبداها می‌تونه پارامتر این توزیع باشه؟ لامبدایی که مقدارش برابر با 10 هست. چرا؟ چون با این مقدار لامبدا مقادیر 5 و 7 و 13و 2 و 18 با احتمال بیشتری دیده میشن.روش تخمین Maximum Likelihood هم در حالت گسسته هم در حالت پیوسته قابل استفاده است. تو حالت گسسته در واقع جرم احتمال توزیع رو می‌خوایم بیشینه کنیم و تو حالت پیوسته می‌خوایم چگالی احتمال توزیع رو بیشینه کنیم.برای حالت گسسته مثال زیر رو در نظر بگیرید. فرض کنید ضربدرها نمونه‌های ما هستن و دو تا توزیع رو از روشون رد کردیم. کدوم یکی از توزیع‌ها جرم احتمال رو بیشینه می‌کنه؟ همونطور که از نمودارها هم مشخصه توزیع پایینی این ویژگی رو داره و مساحت بیشتری رو در بر می‌گیره.تابع likelihood برای حالت گسسته به صورت زیر تعریف میشه:و برای حالت پیوسته به صورت زیر تعریف میشه:تو این تعریف ما دیتا رو داریم و دنبال تتا هستیم.در ادامه یک مثال رو بررسی می‌کنیم.فرض کنید دیتایی که بهمون دادن از توزیع پوآسون اومده و به صورت زیره:قراره چیکار کنیم؟ قراره بیایم مقادیر مختلف رو برای لامبدا در نظر بگیریم، بعد احتمال دیدن هر کدوم از دیتاپوینت‌هارو به ازای اون لامبدای خاص محاسبه کنیم و در نهایت چون دیتاپوینت‌ها از هم مستقل در نظر گرفته شدن، احتمال هر دیتاپوینت رو در خود دیتاپوینت ضرب کنیم و باهم جمع کنیم. این عددی که در نهایت به دست میاد برابره با likelihood به ازای اون لامبدا.برای لامبدا مقادیر 0 تا 30 رو در نظر گرفتیم و بعد از محاسبه likelihood به ازای هر لامبدا نمودار زیر به دست میاد:حالا likelihood کجا بیشینه شده؟ وقتی تتا (تو این مثال تتا برابر با پارامتر لامبدا بود) نزدیک 14 شده.اگر یه تابعی یه جا بیشینه بشه، لگاریتم اون تابع هم تو اون نقطه بیشینه میشه. پس اگر بیایم لگاریتم likelihood رو محاسبه کنیم نمودارش به صورت زیر میشه:در جلسه بعدی جزییات بیشتری در مورد تخمین‌گر Maximum Likelihood رو ارائه خواهیم داد.جمع‌بندی مطالب ارائه شدهبا تخمین پارامتری نقطه‌ای آشنا شدیم و جزییاتش رو دیدیم. همچنین، دیدیم که برای ارزیابی یک پارامتر نقطه‌ای چه معیارهایی وجود داره و در نهایت، تعریف تابع likelihood رو دیدیم و اینکه بیشینه شدنش چه مفهومی داره.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه نوزدهم)جزوه جلسه بعدی (جلسه بیست‌ویکم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 08 Jun 2023 19:24:27 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه نوزدهم - مقدمه‌ای بر آمار</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%D9%86%D9%88%D8%B2%D8%AF%D9%87%D9%85-%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%D8%A2%D9%85%D8%A7%D8%B1-jr3bb1fmvjae</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.تا به این جلسه مباحثی که داشتیم در خصوص احتمال بوده و از این جلسه به بعد قراره در مورد آمار صحبت کنیم.تفاوت احتمال و آماردر قالب یک مثال قراره این موضوع رو بررسی کنیم. فرض کنید یه سطل داریم که تعدادی سنگریزه سفید و سیاه توشه. دو تا حالت داریم:می‌دونیم که نسبت سنگ‌ریزه‌های سفید و سیاه به چه صورته، از داخل سطل یک سنگی رو برداشتیم و حالا می‌خوایم این رو حساب کنیم که چقدر احتمال داره سنگ سفید باشه، چقدر احتمال داره سنگ سیاه باشه.نمی‌دونیم که نسبت سنگ‌ریزه‌ها داخل سطل به چه صورته، فقط یه مشت سنگ‌ریزه داریم و می‌خوایم بفهمیم که داخل سطل چه خبره.تو حالت اول می‌خوایم از کل به جز برسیم. تو حالت دوم می‌خوایم از جز به کل برسیم.حالا، یه مثال دیگه.فرض کنید بهمون یه توزیعی رو دادن و گفتن که داره توزیع قد آدم‌هارو نشون میده. حالا چقدر احتمال داره که قد یک آدمی بین 170 تا 180 سانت باشه؟ اینجا بحث احتمالات مطرحه. قراره از کل به جز برسیم.ولی یه وقتی هست، مثلاً بهمون میگن که رفتیم قد 10 نفر رو به دست آوردیم، حالا چجوری بیایم از روی اینا میانگین قد کل جامعه رو به دست بیاریم؟ اینجا قراره از جز به کل برسیم و بحث آمار مطرحه.تو جلسات قبلی که در مورد قانون اعداد بزرگ خوندیم، دیدیم که مثلاً یکی از راه‌ها برای به دست آوردن میانگین جامعه اینکه بیایم تعداد نمونه‌ها رو خیلی زیاد کنیم. اون قانون چی میگفت؟ میگفت اگر تعداد نمونه‌ها به بی‌نهایت میل پیدا کنه میانگین نمونه‌ها با میانگین جامعه یکی میشه.حواستون باشه که دو تا میانگین داریم. یکی میانگین جامعه‌س و یکی میانگین نمونه. میانگین نمونه میانگینی هست که از روی سمپل‌ها به دست میاد و میانگین جامعه میانگینی هست که میانگین کله. این دو تا میانگین کاملا باهم فرق دارن.تخمین‌گرتو بخش قبلی در مورد قد آدم‌ها گفتیم که مثلاً قد 10 نفر رو دادن و میگن بیا از روی اون میانگین جامعه رو به دست بیار. روشی که برای محاسبه میانگینِ نمونه استفاده میشه می‌تونه یک تخمین‌گر از میانگین جامعه باشه. البته اگر بیایم تعداد نمونه‌هارو بیشتر کنیم. از طرفی اگر بیایم امید ریاضی میانگین نمونه رو هم محاسبه کنیم به میانگین جامعه می‌رسیم. چجوری؟ اینجوری:حالا اگر بخوایم برای واریانس یک تخمین‌گر معرفی کنیم چی؟ میشه از رابطه زیر استفاده کرد:در ادامه قراره یه آزمایشی رو انجام بدیم.فرض کنید یه توزیعی رو برای جامعه در نظر می‌گیریم. از این جامعه هر دفعه میایم تعدادی نمونه آماری تولید می‌کنیم و بر اساس این نمونه‌های آماری میایم تخمین‌گر میانگین و واریانس رو محاسبه می‌کنیم. بعد میایم از تخمین‌گرها میانگین می‌گیریم و می‌خوایم این رو بررسی کنیم که آیا با زیاد کردن نمونه‌ها امید ریاضی تخمین‌گرها به میانگین و واریانس جامعه میل می‌کنه یا خیر.فرض کنید توزیع جامعه یک توزیع نرماله با میانگین 7 و واریانس 11 (فرض می‌کنیم که نمی‌دونیم میانگین و واریانس جامعه چنده). در گام اول میایم از این جامعه 5 تا سمپل می‌گیریم و این کار رو 1000 بار انجام میدیم (1000 بار، هر دفعه اومدیم 5 تا سمپل گرفتیم). قراره میانگین و واریانس جامعه رو بر اساس میانگین و واریانس نمونه‌ها تخمین بزنیم.اول میایم این آزمایش رو روی تخمین‌گر میانگین انجام میدیم.یعنی هر بار میایم 5 نفر رو بر می‌داریم، میانگین نمونه رو براشون محاسبه می‌کنیم و این کار رو 1000 دفعه انجام میدیم و نتایج رو در قالب یک نمودار نمایش میدیم.نمودار بالا داره بهمون میگه که از این 1000 بار میانگین نمونه گرفتن، تو حالتی که میانگین نمونه برابر با هفت بوده بیش‌ترین تعداد دفعات رو داشته (اگه یادتون باشه میانگین جامعه هم برابر با 7 بود).از طرفی بازه میانگین‌هایی که به دست اومده از منفی 5 بوده تا حدود 20.حالا اگر بیایم از این میانگین‌هایی که به دست آوردیم میانگین بگیریم عددی که بهمون میده برابر هست با 7.053441 (میانگین جامعه هم برابر با 7 بود).حالا میایم تعداد رو از 5 نفر می‌کنیم 10 نفر و دوباره 1000 بار میانگین نمونه رو حساب می‌کنیم. نموداری که به دست میاد به صورت زیر میشه:همونطور که مشخصه با زیاد کردن تعداد نفرات بازه میانگین‌های به دست اومده از 0 تا 15 داره تغییر می‌کنه که نسبت به حالت قبلی بازه‌ش کوچیک‌تر شده و تو این حالت اگر بیایم از تخمین‌گر میانگین، میانگین بگیریم مقدارش برابر میشه با 7.14503.حالا فرض کنید میایم تعداد دفعات نمونه‌گیری رو از 1000 بار به 100000 بار افزایش می‌دیم. تو این حالت داریم:تو این حالت اگر بیایم امید ریاضی تخمین‌گرهارو محاسبه کنیم مقدارش برابر هست با 6.976826.اگه تعداد دفعات رو به یک میلیون بار برسونیم، امید ریاضی تخمین‌گرها برابر میشه با 6.992766 و نمودارش هم به صورت زیر در میاد:ممکنه سوال پیش بیاد چرا هرچی تعداد دفعات آزمایش بالا رفت بازه نمودار بزرگ‌تر شد. دلیلش اینکه توزیع نمونه رفته رفته به توزیع جامعه نزدیک‌تر میشه و چون تعداد دفعات تکرار بالا رفته احتمال اینکه اعداد دورتر از میانگین جامعه رو هم ببینیم بیشتر شده ولی احتمال رخدادشون کمه.حالا میایم این آزمایش رو روی تخمین‌گر واریانس انجام میدیم.در خصوص واریانس اتفاقی که میفته اینکه با زیاد کردن تعداد نمونه‌ها همواره یه اختلافی بین واریانس نمونه و واریانس جامعه وجود داره. چرا اینطور میشه؟ دلیلش اینکه تخمین‌گری که انتخاب کردیم، تخمین‌گر خوبی نیست.چیکار کنیم تخمین‌گر خوبی بشه؟ کافیه که مخرج رو به جای n بذاریم n-1. اینطوری با زیاد کردن تعداد نمونه‌ها و دفعات انجام آزمایش واریانس نمونه به واریانس جامعه میل پیدا می‌کنه.تخمین‌گر Unbiased و Biasedاگر تخمین‌گری داشته باشیم و ازش امید ریاضی بگیریم و باعث بشه که حاصلش برابر بشه با مقداری که جامعه داره، به اون تخمین‌گر unbiased یا نااریب گفته میشه. مثل تخمین‌گر میانگین.اگر تخمین‌گری داشته باشیم که با زیاد کردن نمونه‌ها همچنان امید ریاضی‌ش اختلاف داشته باشه از مقدار جامعه، بهش تخمین‌گر biased گفته میشه. مثل تخمین‌گر اولیه‌ای که برای واریانس در نظر گرفتیم و تخمین‌گر خوبی نبود.پیدا کردن بازه اطمینانفرض کنید که میایم به کمک یک تخمین‌گر میانگین یا واریانس یک جامعه رو تخمین می‌زنیم. حالا چه بازه‌ای می‌تونیم در نظر بگیریم که مطمئن باشیم با احتمال 95 درصد، میانگین یا واریانس واقعی جامعه تو اون بازه میفته؟تو مثال تخمین‌گر میانگین دیدیم که در نهایت میانگین نمونه‌ برابر شد با 6.992766. حالا، چه بازه‌ای رو در نظر بگیریم که مطمئن باشیم با احتمال 95 درصد میانگین واقعی جامعه تو اون بازه قرار می‌گیره؟ بازه اطمینان رو 6 تا 8 در نظر بگیریم یا 6.5 تا 7.5 بگیریم؟ اصلاً چجوری محاسبه میشه؟ در جلسات آینده به این سوال پاسخ خواهیم داد.تست‌های آماریمسئله دیگه‌ای که در بحث آمار مطرح هست، تست‌های آماریه. در جلسات آینده با جزییات انواع تست آشنا خواهیم شد. تو این جلسه صرفاً می‌خوایم ببینیم تست آماری چیه و به چه کاری میاد اصلاً؟فرض کنید یک دارویی ساخته میشه و قراره در نهایت ببینن که آیا اون دارو در درمان بیماری موثر بوده یا نه. دو تا گروه 50 تایی از آدم‌هایی رو میارن. به یک دسته همون دارو رو میدن، به دسته دیگه داروی بی‌اثر میدن. در نهایت به این اعداد می‌رسن:از 50 نفری که بهشون دارو داده شده، 35 نفر بهبود یافتن، 15نفر خیر.از 50 نفری که بهشون داروی بی‌اثر دادن 26 نفر بهبود یافتن، 24 نفر خیر.حالا، این دارو در درمان بیماری اثر داشته؟ چجوری بیایم تست کنیم؟ در جلسات آینده می‌تونیم به این سوال هم پاسخ بدیم.تخمین توزیعتا اینجا دیدیم که میشه میانگین یا واریانس جامعه رو از روی میانگین یا واریانس نمونه تخمین زد. حتی دیدیم میشه بازه اطمینان محاسبه کرد. بعضی وقتا به جای تخمین یک عدد یا یک بازه میشه یک توزیع رو تخمین زد.آمار بیزیدو تا مکتب مختلف در آمار وجود داره. یکی از این مکتب‌ها اسمش آمار بیزی هست. تو این مکتب چی میگن؟ میگن شما قبل اینکه برید سراغ نمونه‌ها یک توزیعی تو ذهنتون دارید. مثلاً در مورد قد جامعه یک توزیعی بر اساس داده‌های پیشین در نظر گرفتین. تو مرحله بعد میرید نمونه می‌گیرید، حالا بر اساس سمپل‌های به دست اومده فقط توزیعتون رو عوض می‌کنید (یعنی توزیع رو تخمین می‌زنید).آمار Frequentistتو این مکتب میان میگن که شما به هیچ عنوان حق ندارید از دانش پیشین خودتون در مورد یک موضوعی (مثلاً همون قد جامعه) استفاده کنید. تنها کاری که می‌تونید بکنید اینکه سمپل بگیرید و بعد بر اساس اون فقط یک عدد یا بازه رو تخمین بزنید. اصلاً تخمین توزیع در این مکتب تعریف نشده.در جلسات آینده با این دو مکتب هم آشنا میشیم و جزییات هر کدوم رو خواهیم گفت.جمع‌بندی مطالب ارائه شدهیا یک مقدمه کلی از مباحث آمار آشنا شدیم و فهمیدیم که در ادامه این جلسات به بررسی چه موضوعاتی خواهیم پرداخت.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه هجدهم)جزوه جلسه بعدی (جلسه بیستم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Tue, 23 May 2023 22:24:54 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه هجدهم - امیدریاضی شرطی، خطی‌بودن امیدریاضی و روش تبدیل معکوس</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%D9%87%D8%AC%D8%AF%D9%87%D9%85-%D8%A7%D9%85%DB%8C%D8%AF%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C-%D8%B4%D8%B1%D8%B7%DB%8C-%D8%AE%D8%B7%DB%8C-%D8%A8%D9%88%D8%AF%D9%86-%D8%A7%D9%85%DB%8C%D8%AF%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C-%D9%88-%D8%B1%D9%88%D8%B4-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%85%D8%B9%DA%A9%D9%88%D8%B3-wn9o3ty1zpov</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.خطی بودن امید ریاضیدر جلسات گذشته دیدیم که اگر دو متغیر X و Y داشته باشیم و هر کدوم امید ریاضی‌ خودشون رو داشته باشن، فارغ از اینکه نسبت بهم وابسته هستن یا مستقل‌اند، امید ریاضی X + Y برابر هست با جمع امید ریاضی X و Y. این مورد رو برای حالت گسسته اثبات هم کردیم. برای حالت پیوسته هم میشه به سادگی این قضیه رو اثبات کرد و داریم:متغیر نشان‌گریک متغیر نشان‌گر یک متغیر تصادفی هست که در یک سری شرایط مقدار 0 و در شرایطی دیگر مقدار 1 دارد.اگر احتمال 1 اومدن متغیر رو p در نظر بگیریم، احتمال 0 بودن متغیر برابر هست با یک منهای p و امید ریاضی این متغیر برابر هست با:همونطور که واضحه این متغیر خیلی شبیه متغیر برنولی هست، فقط به خاطر کاربرد خاصی که داره اسمش رو تغییر دادیم. در ادامه در قالب چند مثال با کاربرد متغیر نشان‌گر بیشتر آشنا میشیم.مثال اولدر یک جمع 50 نفره، به طور متوسط چند نفر وجود دارن که روز تولدشون با یک نفر دیگه یکسان باشه؟ به عبارتی دیگه، در یک جمع 50 نفره هر کسی که روز تولد مشابه با بقیه داره دستاشونو میبرن بالا، در نهایت امید ریاضی تعداد دست‌هایی که بالا رفته رو باید به دست بیاریم. اول از همه میایم یک متغیر نشان‌گر به صورت زیر تعریف می‌کنیم:در نهایت دنبال چی هستیم؟ دنبال اینکه جواب رابطه زیر رو پیدا کنیم:از اونجایی که می‌دونیم امید ریاضی خطیه و ربطی به وابستگی یا استقلال متغیرها از هم نداره (تو این مثال متغیرهامون نسبت بهم وابستن) می‌تونیم رابطه بالا رو به صورت زیر بنویسیم:حالا، از اونجایی که هر کدوم از Ii ها متقارن هستن می‌تونیم در ادامه رابطه بالا داشته باشیم:چیزی که بالا اومده یعنی اینکه بیایم احتمال اینکه 1 نفر دستش رو ببره بالا محاسبه کنیم در 50 ضرب کنیم و همین جواب مسئله ماست.حالا چطور بیایم احتمال اینکه 1 نفر دستش رو ببره بالا محاسبه کنیم؟ اینطوری:احتمال اینکه 1 نفر دستش رو ببره بالا معادل این هست که انگار بیایم احتمال اینکه هیچکسی دستشو نبره بالا رو محاسبه کنیم و از یک کم کنیم. حالا اینو چجوری محاسبه کنیم؟در یک جمع 50 نفره هستیم و هیچ دو نفری از افراد روز تولد مشابه ندارن. قراره احتمال این رو محاسبه کنیم و در نهایت از 1 کم کنیم. اولین نفر می‌تونه در هر روزی از سال به دنیا اومده باشه پس 365 حالت داره. بقیه افراد باقی‌مونده هم هر کدوم تو یک روز دیگه‌ای از سال به دنیا اومدن پس میشه 364 به توان 49. کل حالت‌هایی هم که وجود داره برابر هست با 365 به توان 50. پس در نهایت داریم:حالا کافیه 1 رو از جواب بالا کم کنیم و در 50 ضرب کنیم تا مسئله حل بشه. در نهایت برای جواب داریم 6.3.امید ریاضی شرطیمسئله انداختن تاس رو قبلاً دیدیم. به صورت کلی E(X) تو این مسئله برابر هست با 3.5. حالا اگر بهمون بگن که بیا امید ریاضی X رو محاسبه کن به شرطی که تاس زوج اومده باشه، اون موقع امید ریاضی چی میشه؟E(X | Y) = 1/3 * (2 + 4 + 6) = 4به صورت کلی برای محاسبه امید ریاضی شرطی داریم:یعنی انگار که میایم یک محدودیتی روی E(X) توسط Y اعمال می‌کنیم که باعث میشه جواب توی این حالت با حالت قبلی فرق کنه.رابطه خطی بودن امید ریاضی در حالت شرطی بودن هم صدق می‌کنه. یعنی داریم:همچنین، قبلاً با قانون احتمال کل آشنا شدیم. اگر اون قانون رو با حالت شرطی امید ریاضی ترکیب کنیم خواهیم داشت:اگر علاقه‌مند هستید که در مورد چگونگی اثبات رابطه بالا بدونید می‌تونید به دقیقه 35 از ویدیو این جلسه مراجعه کنید. در ادامه یک سری مثال رو با روابطی که تا اینجا یاد گرفتیم حل خواهیم کرد.مثال دوممسئله زیر رو در نظر بگیرید:خب برای شروع می‌تونیم X رو زمان خروج معدنچی از معدن در نظر بگیریم و Y رو هم دری در نظر بگیریم که اولین بار برای خروج انتخاب میشه، در نهایت هم قراره E(X) رو محاسبه کنیم. برای حل به سادگی می‌تونیم از قضیه زیر استفاده کنیم:در کل 3 تا در وجود داره. پس i می‌تونه مقادیر 1 و 2 و 3 رو داشته باشه و احتمال اینکه هر کدوم از درب‌هارو دفعه اول برای خروج انتخاب کنه برابر با 1/3 هست.برای حالتی که اولین دری که انتخاب میشه درب شماره 1 باشه اگر بخوایم امید ریاضی زمان خروج رو محاسبه کنیم داریم:if i = 1 -&gt; E(X | Y=y1) P(Y=y1) = 2 * 1/3در حالتی که درب شماره 2 بعنوان اولین در انتخاب بشه برای امید ریاضی زمان خروج داریم:if i = 2 -&gt; E(X | Y=y2) P(Y=y2) = (3 + E(X)) * 1/3ممکنه سوال پیش بیاد که چطور به 3 + E(X) رسیدیم. وقتی قراره درب شماره 2 رو انتخاب کنه، 3 ساعت علاف میشه بعد دوباره میرسه به نقطه اول. یعنی جایی که می‌تونه دوباره یکی از 3 درب رو انتخاب کنه. یعنی همون چیزی که دنبالش هستیم که برابره با E(X). پس در نهایت میشه 3 + E(X).و در حالتی که درب شماره 3 بعنوان اولین در انتخاب بشه به صورت مشابه با درب شماره 2 برای امید ریاضی زمان خروج داریم:if i = 3 -&gt; E(X | Y=y3) P(Y=y3) = (5 + E(X)) * 1/3حالا فقط کافیه جواب‌هایی که تا اینجا به دست آوردیم رو جمع بزنیم تا E(X) رو پیدا کنیم. داریم:E(X) = 2 * 1/3 +  (3 + E(X)) * 1/3 + (5 + E(X)) * 1/3
E(X) = 10روش تبدیل معکوسدر جلسات گذشته دیدیم که اگر یک تابعی مثل g(X, Y) داشته باشیم، با قانون LOTUS می‌تونیم به سادگی امید ریاضی g رو محاسبه کنیم.حالا فرض کنید Z و W و g به صورت زیر تعریف شدن:Z = g1(X, Y)
W = g2(X, Y)
g(X, Y) = (g1(X, Y), g2(X, Y))دنبال این هستیم که f_zw(Z, W) رو محاسبه کنیم. چطور میشه این کارو کرد؟مثال زیر رو در نظر بگیرید:اول از همه میایم X و Y رو برحسب Z و W می‌نویسیم. داریم:X = h1(Z, W),     h1 = Z + W
Y = h2(Z, W),     h2 = Z + 2Wبعد میایم ماتریس ژاکوپین تشکیل میدیم و دترمینانش رو محاسبه می‌کنیم:برای محاسبه f_ZW(Z, W) داریم:از اونجایی که X و Y از یک توزیع نرمال استاندارد میان در نهایت داریم:ممکنه سوال پیش بیاد که کلاً هدف از این کار چیه؟ اصلاً دنبال چی هستیم؟ قضیه اینکه داریم از روی یک توزیع یک توزیع دیگه رو به دست میاریم.مثلاً فرض کنید دو تا متغیر تصادفی مستقل X و Y داریم و قد و وزن آدم‌ها از روی این دو متغیر به دست میان.اگه نمودار قد و وزن رو بکشیم به این صورت در میاد:اومدیم چیکار کردیم؟ دو تا متغیر نرمال و مستقل از هم رو شبیه کردیم به توزیع قد و وزن آدم‌ها. به عبارتی دیگه، دو تا متغیر تصادفی قد و وزن رو که تابع چگالی‌شون رو نمی‌دونستیم و تحلیلش برامون سخت بود رو از دو تا متغیر تصادفی که از هم مستقل هستن و توزیعشون رو می‌دونیم و تحلیلشون برامون ساده‌ست به دست آوردیم. در نهایت هم به کمک روش تبدیل معکوس می‌تونیم تابع چگالی قد و وزن رو به دست بیاریم.جمع‌بندی مطالب ارائه شدهدر مورد خصوصیت خطی بودن امید ریاضی مثال‌هایی رو دیدیم و با متغیر نشان‌گر آشنا شدیم و دیدیم که چطور می‌تونه مسائل پیچیده رو به سادگی برامون حل کنه. فهمیدیم که چطور میشه از روی یک توزیع، تابع چگالی توزیع دیگه‌ای رو به دست آورد و روش تبدیل معکوس چیه و به چه دردی می‌خوره.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه هفدهم)جزوه جلسه بعدی (جلسه نوزدهم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 18 May 2023 13:25:48 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه هفدهم - نابرابری مارکُف، چبیشف و قانون اعداد بزرگ</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%D9%87%D9%81%D8%AF%D9%87%D9%85-%D9%86%D8%A7%D8%A8%D8%B1%D8%A7%D8%A8%D8%B1%DB%8C-%D9%85%D8%A7%D8%B1%DA%A9%D9%8F%D9%81-%DA%86%D8%A8%DB%8C%D8%B4%D9%81-%D9%88-%D9%82%D8%A7%D9%86%D9%88%D9%86-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D8%B2%D8%B1%DA%AF-sg2hjjumw7by</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.نابرابری مارکُفسوالی ذهن آقای مارکف رو مشغول کرده بود با این مضمون:&quot;اگر میانگین طول عمر آدم‌ها 60 سال باشه، چقدر احتمال داره که یک آدمی بیشتر از 300 سال عمر کنه؟&quot;در ادامه قراره این سوال رو با جزییات بیشتری بررسی کنیم و یه جوابی هم براش پیدا کنیم.فرض کنید یک توزیع ناشناخته‌ای داریم که هیچی ازش نمی‌دونیم. فقط میانگینش رو بهمون دادن و می‌دونیم که هر متغیر تصادفی که از این توزیع میاد قطعاً مثبته. عدد مثبتی هم مثل a وجود داره. می‌خوایم ببینیم که چقدر احتمال داره که P(X ⩾ a) باشه؟حالا با توجه به سوالی که مطرح شد، داریم a=300 و E(X)=60 و دنبال محاسبه احتمال P(X ⩾ 300) هستیم. چون توزیع رو نمی‌دونیم، نمی‌تونیم این احتمال رو دقیق محاسبه کنیم، ولی می‌تونیم براش یک حد بالا به دست بیاریم. از قبل می‌دونیم که این حد بالا از 1 کمتره، ولی می‌خوایم حد بالاتر دقیق‌تری براش پیدا کنیم. حالا، چرا حد پایین براش پیدا نمی‌کنیم؟ از اونجایی که a از میانگین بزرگ‌تره، ممکنه توزیعمون تو a صفر باشه، ما که نمی‌دونیم چه توزیعی داریم، برای همین نمیشه حد پایینی جز صفر رو در نظر گرفت.از اونجایی که دنبال محاسبه احتمال P(X ⩾ a) هستیم، می‌تونیم بیایم به کمک رابطه E(X) بهش برسیم. چون X همواره مثبته برای همین بازه انتگرال رو می‌تونیم از 0 تا مثبت بی‌نهایت در نظر بگیریم و چون دنبال P(X ⩾ a) هستیم می‌تونیم انتگرال رو بشکنیم به دو تا بازه:انتگرالی که بازه 0 تا a داره رو می‌دونیم که همواره مثبته. می‌تونیم حذفش کنیم و داشته باشیم:با توجه به بازه انتگرال x همیشه بزرگ‌تر یا مساوی a هست برای همین می‌تونیم انتگرال رو به صورت زیر بنویسیم:انتگرال بالا هم برابر هست با P(X ⩾ a) پس در نهایت داریم:E(X) ⩾ a P(X ⩾ a)
P(X ⩾ a) ⩽ E(X) / aبه نابرابری به دست اومده نابرابری مارکف گفته میشه.طبق صورت مسئله‌ای که داشتیم اگر یک انسانی بخواد بیشتر از 300 سال عمر کنه احتمالش هیچوقت از 0.2 بیشتر نمیشه:P(X ⩾ 300) ⩽ 60 / 300
P(X ⩾ 300) ⩽ 0.2نابرابری چبیشفاگر در مسئله داده شده به جز اطلاعات در مورد میانگین در مورد واریانس هم بهمون اطلاعاتی می‌دادن، اون موقع محاسباتمون چطور می‌تونست پیش بره؟ آیا ممکن بود حد بالایی که به دست میاریم دقیق‌تر بشه؟فرض کنید تو همون مسئله سن آدم‌ها انحراف از معیار رو هم بهمون داده باشن و برابر با 10 باشه، با این حساب واریانس میشه 100.یعنی همچنان هیچ اطلاعاتی در مورد توزیع نداریم و فقط می‌دونیم میانگین 60 عه و واریانس 100. الان اگر بخوایم حد بالا رو محاسبه کنیم به چه عددی می‌رسیم؟ نابرابری چبیشف قراره این رو بررسی کنه.تو نابرابری مارکف به رابطه زیر رسیدیم:فرض کنید یه متغیر Y و یک متغیر b داریم که به صورت زیر تعریف میشن:حالا طبق نابرابری مارکف برای Y و b داریم:بعد از جایگذاری مقادیر، رابطه به صورت زیر در میاد:حالا، عبارت سمت چپ برابر هست با:P(|X - E(X)| &gt; a)عبارت سمت راست هم که تعریف واریانس تقسیم بر a^2 عه، پس در نهایت داریم:P(|X - E(X)| &gt; a) ⩽ Var(X) / a^2به این نابرابری، نابرابری چبیشف گفته میشه.حالا برگردیم به مسئله‌ای که داشتیم و مقادیر رو جایگذاری کنیم:P(|X - E(X)| &gt; a) ⩽ Var(X) / a^2
P(|X - 60| &gt; 240) ⩽ 100 / 240 * 240
P(|X - 60| &gt; 240) ⩽ 0.0017همونطور که واضحه، حد بالایی که با این نابرابری به دست میاد خیلی دقیق‌تره نسبت به نابرابری مارکف. جوابی که به دست اومده به این معنیه که احتمال اینکه یک نفر بیشتر از 300 سال عمر کنه، از 0.0017 کمتره.ایراد نابرابری چبیشفایرادی که به این نابرابری وارده اینکه P(|X - E(X)| &gt; a) داره دو طرفه تخمین زده میشه. مثالی که اول جلسه زدیم رو به یاد دارید؟ اگر به جای اینکه دنبال P(X ⩾ 300) می‌بودیم، دنبال احتمال P(X ⩾ 90) بودیم، جواب نامساوی چبیشف چی میشد؟به کمک نابرابری چبیشف نمی‌تونستیم برای این سوال جوابی پیدا کنیم. چرا؟ چون تو این حالت نابرابری به صورت زیر در میاد:P(|X - 60| &gt; 30) = P(X &gt; 90 or X &lt; 30)حالا ایراد جواب به دست اومده چیه؟ ایراد اینکه ما صرفاً دنبال پیدا کردن احتمال P(X ⩾ 90) هستیم، ولی الان احتمال P(X ⩾ 30) هم قاطیش شده. حالا تکلیف چیه؟ تو این مواقع چه کنیم؟ میایم از یک نابرابری دیگه استفاده می‌کنیم!یک نابرابری جدید!دنبال پیدا کردن احتمال P(X ⩾ a) هستیم. میایم به طرفین یه b اضافه می‌کنیم و به توان دو می‌رسونیم و داریم:X ⩾ a ≡ X + b ⩾ a + b ≡ (X + b)^2 ⩾ (a + b)^2
P(X ⩾ a) ≡ P(X + b ⩾ a + b) ≡ P((X + b)^2 ⩾ (a + b)^2)حالا از نابرابری مارکف استفاده می‌کنیم برای رابطه‌ای که به دست آوردیم و داریم:P((X + b)^2 ⩾ (a + b)^2) ⩽ E((X + b)^2) / ((a + b)^2)
P(X ⩾ a) ⩽ E((X + b)^2) / ((a + b)^2)قبل از ادامه مراحل بیایم اول رابطه زیر رو باز کنیم ببینیم برابر با چیه:E((X + b)^2) = E(X^2 + b^2 + 2bX) = E(X^2) + b^2 + 2bE(X)حالا اگر فرض کنیم میانگین X برابر با 0 باشه داریم:E((X + b)^2) = E(X^2 + b^2 + 2bX) = E(X^2) + b^2 + 2bE(X) = Var(X) + b^2در ادامه با توجه به اطلاعاتی که به دست آوردیم اگر نامساوی زیر رو باز کنیم خواهیم داشت:P(X ⩾ a) ⩽ E((X + b)^2) / ((a + b)^2) ⩽ Var(X) + b^2 / (a + b)^2حالا، اگر فرض کنیم مقدار b برابر باشه با Var(X) / a و این فرض رو به رابطه بالا تزریق کنیم داریم:P(X ⩾ a)  ⩽ Var(X) + b^2 / (a + b)^2 ⩽ (Var(X) + (Var(X)^2 / a^2)) / ((a + (Var(X) / a))^2)در نهایت اگر روابط رو بنویسیم و ساده کنیم خواهیم داشت:P(X ⩾ a)  ⩽ Var(X) / (Var(X) + a^2)پس چی شد؟ دو تا شرط داریم. اگر E(X) برابر با 0 باشه و a هم عددی مثبت باشه احتمال P(X ⩾ a) همواره از Var(X) / (Var(X) + a^2) کوچیک‌تر مساویه.در ادامه می‌خوایم مثالی که اول جلسه زدیم رو با این نابرابری حل کنیم. فرض کرده بودیم که a=300 هست و میانگین 60 و واریانس 10. از اونجایی که تو این نابرابری میانگین باید برابر با 0 باشه پس یه متغیر جدید Y با میانگین صفر تعریف می‌کنیم و داریم:Y = X - E(X)
Y = X - 60واریانس Y با واریانس X برابره و برابر 100 هست و اگر به جای X متغیر Y رو بذاریم خواهیم داشت:P(X - E(X) ⩾ a - E(X))  ⩽ Var(X) / (Var(X) + (a - E(X))^2)
P(X - 60 ⩾ 300 - 60)  ⩽ 100 / (100 + 240 * 240)
P(X ⩾ 300)  ⩽ 0.0017حالا یه سوال. یکم بالاتر تو این نابرابری فرض کردیم که مقدار b برابر هست با Var(X) / a. چرا اصلاً اینطور در نظر گرفتیم؟در واقع می‌تونستیم به جای Var(X) / a هر عدد دیگه‌ای در نظر بگیریم و به جواب می‌رسیدیم. ولی قضیه اینکه با در نظر گرفتن Var(X) / a می‌تونیم کوچیک‌ترین حد بالا رو به دست بیاریم.قانون اعداد بزرگفرض کنید می‌خوایم میانگین قد ایرانی‌هارو محاسبه کنیم. چطوری به دست بیاریم این میانگین رو؟ بیایم قد 3 نفر رو اندازه بگیریم میانگین بگیریم، یا 10 نفر، یا 20 نفر؟منطقیه که هر چقدر تعداد آدم‌ها بیشتر باشه، جوابی که واسه میانگین به دست میاد جواب بهتریه. به عبارتی دیگه یعنی تخمین دقیق‌تریه از میانگین واقعی جمعیت.حالا قانون اعداد بزرگ چیه؟ این قانون داره میگه که اگر بیای تعداد آدم‌هایی که داری قدشون رو محاسبه میکنی به بی‌نهایت میل بدی، باعث میشه میانگینی که به دست میاری خیلی به میانگین واقعی قد آدم‌ها نزدیک بشه، در نتیجه خطای حاصل (تفاوت بین میانگینی که به دست میاد با میانگین واقعی) به سمت صفر میل کنه. اگه بخوایم ریاضی توضیحات ارائه شده رو بنویسیم میشه رابطه زیر:P(|((X1 + X2 + ... + Xn)/n) - µ| ⩾ error) → 0, if n → 0چطور میشه این قانون رو اثبات کرد؟ به کمک نامساوی چبیشف. اثبات ساده‌‌ای هم داره. اگر علاقه‌مند هستین که جزییات بیشتری در این خصوص بدونید، پیشنهاد می‌کنم که به دقیقه 56 از ویدیو این جلسه مراجعه کنید.فرض کنید یک توزیع یکنواخت داریم با min=5 و max=10. میایم هر دفعه 10 تا سمپل رو از این توزیع بر می‌داریم و میانگین 10 تا سمپل رو حساب می‌کنیم. از اون طرف میانگین واقعی توزیع رو هم میدونیم که برابر هست با:µ = (max+min) / 2اگر بیایم 1000 بار این کار رو انجام بدیم و هر دفعه خطای بین میانگین واقعی و میانگین 10 تا نمونه رو محاسبه کنیم و در یک نمودار رسم کنیم خروجی به صورت زیر در میاد:حالا اگر بیایم هر دفعه به جای 10 تا نمونه، 1000 تا نمونه برداریم و میانگین بگیریم و دوباره نمودار خطا رو رسم کنیم داریم:چه اتفاقی افتاد؟ تو نمودار اول بازه تغییرات خطا بین منفی 0.4 تا 0.6 بود. تو نمودار دوم بازه تغییرات خطا از منفی 0.15 هست تا 0.15. انگار که هرچقدر تعداد نمونه‌هارو بیشتر می‌کنیم، خطای بین میانگین محاسبه شده با میانگین واقعی داره کم و کمتر میشه و اگر تعداد نمونه‌ها به بی‌نهایت برسه، این خطا برابر با 0 میشه.جمع‌بندی مطالب ارائه شدهبا انواع نابرابری مثل نابرابری مارکف و نابرابری چبیشف آشنا شدیم. همچنین، قانون اعداد بزرگ رو بررسی کردیم و فهمیدیم که داره چیو نشون میده.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه شانزدهم)جزوه جلسه بعدی (جلسه هجدهم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Mon, 15 May 2023 17:54:41 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه شانزدهم - قضیه حد مرکزی</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%D8%B4%D8%A7%D9%86%D8%B2%D8%AF%D9%87%D9%85-%D9%82%D8%B6%DB%8C%D9%87-%D8%AD%D8%AF-%D9%85%D8%B1%DA%A9%D8%B2%DB%8C-lwvexxlqlbb8</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.در جلسه گذشته دیدیم که اگر هر تعداد متغیر تصادفی مستقل از یک توزیع یکسان بیان، این متغیرهارو باهم جمع بزنیم در نهایت به یک توزیع نرمال می‌رسیم. حالا سوال پیش میاد که چرا چنین اتفاقی میفته؟ چرا در نهایت به یک توزیع نرمال می‌رسیم؟ این از یک قضیه‌ای میاد که اسمش قضیه حد مرکزی هست و این جلسه قراره در موردش یاد بگیریم.قضیه حد مرکزیاگر X1, X2, X3, ..., Xn متغیرهای تصادفی مستقل از یک توزیع یکسان باشن، با میل دادن n به بی‌نهایت باعث میشه که حاصل جمع متغیرهای تصادفی به توزیع نرمال میل کنه. حالا این توزیع نرمال چه میانگین و چه واریانسی داره؟ میانگین و واریانس برابر هست با جمع میانگین‌ها و جمع واریانس‌ها و اگر n به سمت بی‌نهایت بره، باعث میشه میانگین و واریانس هم به بی‌نهایت میل کنن.برای اینکه جلوی این کار رو بگیریم و نذاریم میانگین و واریانس به بی‌نهایت برسن میایم میانگین و واریانس رو استاندارد می‌کنیم.با این کار جلوی بی‌نهایت شدن میانگین و واریانس رو می‌گیریم و با میل کردن n به سمت بی‌نهایت باعث میشیم که میانگین و واریانس از یک توزیع نرمال استاندارد N(0 , 1) تبعیت کنن. یعنی میانگین 0 و واریانس 1.حالا، یه سوال. اگر X1, X2, ..., Xn از هم مستقل نباشن، باز هم این قضیه برقراره؟ خیر. مثلاً اگر یک توزیعی داشته باشیم که یک سری از Xiها منفی یک سری Xi دیگه باشن. تو این حالت اگر همه Xiهارو باهم جمع بزنیم همواره جواب 0 میشه و اصلاً از توزیع نرمال پیروی نمی‌کنه.یه سوال دیگه. اگر X1, X2, ..., Xn از هم مستقل باشن، ولی از یک توزیع یکسان نیان چی؟ در این حالت اگر جمع بزنیم Xi هارو توزیع نهایی به چه صورت میشه؟ یک مثال نقض ساده میشه آورد و نشون داد که تو این حالت هم باز جمع متغیرهای تصادفی مستقل از توزیع نرمال پیروی نمی‌کنه.فرض کنید X1 یک توزیع یکنواخت هست و مقادیر زیر رو می‌تونه داشته باشه:X1 ∈ {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9}متغیر X2 هم از یک توزیع یکنواخت اومده و مقادیر زیر رو داره:X2 ∈ {0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09}متغیر X3 هم از یک توزیع یکنواخت اومده و مقادیر زیر رو داره:X3 ∈ {0, 0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009}به همین ترتیب متغیر Xi هم از یک توزیع یکنواخت اومده و مقادیر زیر رو داره:Xi ∈ {0, 1 * 10^-i, 2 * 10^-i, 3 * 10^-i, 4 * 10^-i, ..., 8 * 10^-i, 9 * 10^-i}حالا، اگر بیایم مقادیر X1, X2, ..., Xn رو باهم جمع بزنیم و n به بی‌نهایت میل کنه، توزیع نهایی یک توزیع یکنواخت بین 0 تا 1 پیدا می‌کنه. چرا اینطوری میشه؟ متغیر X1 میاد رقم دهم رو در نهایت مشخص می‌کنه. متغیر X2 میاد رقم صدم رو در نهایت مشخص می‌کنه. متغیر X3 میاد رقم هزارم رو در نهایت مشخص می‌کنه و همینطور الی آخر. در نهایت به یک توزیع یکنواخت می‌رسیم.پس، اگر متغیرهای تصادفی مستقل از هم نباشن، یا از توزیع‌های یکسان نیان، نمی‌تونیم قضیه حد مرکزی رو براشون تعریف کنیم و این دو شرط حتماً باید لحاظ بشن.در ادامه می‌خوایم ببینیم قضیه حد مرکزی اصلا به چه دردی میخوره و یکی دو تا مثال ازش ببینیم.مثال زیر رو در نظر بگیرید:خب با توجه به صورت مسئله در نهایت باید n رو پیدا کنیم. الان یک سری Xi مستقل از هم داریم که دارن از یک توزیعی که نمی‌دونیم چیه میان با میانگین µ و واریانس 9. حالا با استفاده از قضیه حد مرکزی می‌دونیم که رابطه زیر برقراره:در گام بعدی باید خطارو تعریف کنیم.دنبال این هستیم که µ رو اندازه گیری کنیم. فرض کنید چیزی که داریم بعنوان µ اندازه‌گیری می‌کنیم معدل باشه که به صورت زیر تعریف میشه:در واقع انگار دو تا µ داریم. یکی µ واقعی هست و یکی µ تخمین زده شده هست. µ تخمین زده شده همون معدله که گفتیم. در نهایت دنبال این هستیم که µ تخمین زده شده از µ واقعی با احتمال 95 درصد حداکثر 1 واحد فاصله داشته باشه. این اختلاف خطارو بهمون میده.اگر چیزی که گفتیم رو به بیان ریاضی بنویسیم داریم:حالا، رابطه بالا رو جوری بازنویسی می‌کنیم که Zn توش ظاهر بشه:می‌دونیم که Zn از توزیع نرمال استاندارد پیروی می‌کنه. از طرفی می‌دونیم که جواب احتمال بالا 95 درصد میشه. دنبال پیدا کردن n هستیم. عکس زیر رو ببینید. برای محاسبه احتمال می‌تونیم بیایم احتمال از منفی بی‌نهایت تا radical(n) / 3 رو محاسبه کنیم. بعد احتمال از منفی بی‌نهایت تا منفی radical(n) / 3 رو محاسبه کنیم. در نهایت این دو مقدار رو از هم کم کنیم تا احتمال قسمت هاشور خورده رو که همون 0.95 هست بهمون بده.پس اگر چیزایی که تا اینجا گفتیم رو به ریاضی بنویسیم داریم:در جلسات قبلی دیدیم که Phi(-a) برابر هست با 1 منهای Phi(a). پس داریم:Phi(√n / 3) - (- Phi(√n / 3)) = Phi(√n / 3) - (1 - Phi(√n / 3)) = 0.95
Phi(√n / 3) + Phi(√n / 3) - 1 = 0.95
2 Phi(√n / 3) = 1.95
Phi(√n / 3) = 1.95 / 2 = 0.975حالا چه عددی هست که Phi اون برابر میشه با 0.975؟ این رو میشه با R محاسبه کرد که برابر هست با 1.96.در نهایت داریم:√n / 3 = 1.96
√n = 5.88
n = 34.57پس حداقل باید 35 مشاهده انجام بشه تا ستاره شناس به چیزی که دنبالشه برسه.حالا بریم سراغ یک مثال دیگه:خب با توجه به صورت مسئله می‌دونیم که Xiها دارن از یک توزیع ناشناخته میان، با میانگین 30 و واریانس 4. دنبال چی هستیم؟ دنبال به دست آوردن احتمال زیر:حالا، می‌دونیم که توزیع نهایی داره از یک توزیع نرمال میاد و اگر رابطه بالا رو استاندارد کنیم، توزیعی که داره استاندارد نرمال میشه. پس داریم:حالا الان کافیه که فقط چیزی که پایین ساختیم رو تو رابطه بالا به وجود بیاریم و مسئله حل میشه:مقدار Phi(-3) رو هم میشه با R محاسبه کرد و در نهایت به عدد 0.001 می‌رسیم.حالا، بریم سراغ یک مثال دیگه.خب تو این سوال بهمون یک بازه a تا b رو دادن که داره وزن بسته‌هارو مشخص می‌کنه و باید میانگین و واریانس رو از روی این بازه محاسبه کنیم.میانگین برابر میشه با:E(X) = (a + b) / 2 = (10 + 50) / 2 = 30واریانس رو چجوری محاسبه کنیم؟ برای واریانس داریم:که در نهایت اگر محاسبات و ساده‌سازی‌هارو انجام بدیم خواهیم داشت:پس مقدار واریانس میشه 400/3 و مقدار انحراف از معیار هم میشه:40 / radical(12)حالا با استفاده از قضیه حد مرکزی توزیع زیر که از یک نرمال استاندارد پیروی میکنه به دست میاد:سوال هم خواسته که در نهایت مقدار زیر رو محاسبه کنیم:برای رسیدن به جواب، باید توزیع Zn رو تو احتمال بالا به وجود بیاریم. داریم:در نهایت جواب به صورت زیر میشه:که اگر محاسبات رو با R انجام بدیم خواهیم داشت 0.0048.توزیع یکنواخت توزیعی هست که با جمع تعداد کم متغیر تصادفی مستقل ازش هم خیلی زود به توزیع نرمال میرسه. مثلاً تو نمودار زیر فقط 5 تا متغیر تصادفی مستقل از توزیع یکنواخت باهم جمع شدن:بدیهی هست که هرچقدر تعداد متغیرها بیشتر بشه، نمودار آبی خیلی بیشتر شبیه میشه به نمودار قرمز و در نهایت کاملاً روش میفته.جمع‌بندی مطالب ارائه شدهبا قضیه حد مرکزی آشنا شدیم و چند تا مثال مختلف ازش رو حل کردیم.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه پانزدهم)جزوه جلسه بعدی (جلسه هفدهم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Thu, 11 May 2023 17:33:21 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه پانزدهم - جمع متغیرهای تصادفی مستقل</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%D9%BE%D8%A7%D9%86%D8%B2%D8%AF%D9%87%D9%85-%D8%AC%D9%85%D8%B9-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87%D8%A7%DB%8C-%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C-%D9%85%D8%B3%D8%AA%D9%82%D9%84-mszxgqpesceb</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.خیلی وقت‌ها به جای اینکه متغیرهای تصادفی به صورت تنها مورد توجه ما باشن، نیاز داریم تا با جمع اون‌ها سر و کله بزنیم. مثلاً فرض کنید یک سالن تاتر داریم که به افراد مختلف بلیط می‌فروشه. مثلاً تعداد آقایونی که بلیط می‌خرن با X مشخص میشه و تعداد خانم‌هایی که بلیط تهیه می‌کنن با Y. هر دو X و Y هم از توزیع پوآسون میان با این تفاوت که پارامتر ʎ متفاوت دارن:X ~ Poisson(ʎ1)
Y ~ Poisson(ʎ2)حالا، ما دنبال این هستیم که ببینیم توزیع همه افرادی که اومدن و بلیط تهیه کردن به چه صورت بوده، به عبارتی دیگه دنبال Z = X + Y هستیم.به عنوان یه مثال دیگه، فرض کنید که یک وب سرور برای بانک نوشتیم و تعداد انواع مختلف تراکنش بانکی رو در یک ثانیه محاسبه کردیم. مثلاً تعداد انواع مختلف تراکنش در یک ثانیه به شرح زیر بوده:X1 ~ Poisson(ʎ1 = 1000) = گرفتن مانده حساب
X2 ~ Poisson(ʎ2 = 5000) = انتقال کارت به کارت
...
Xn ~ Poisson(ʎn = 50) = خرید شارژحالا فرض کنید همه متغیرهای تصادفی بالا از هم مستقل هستن. حالا دنبال این هستیم که توزیع تعداد کل تراکنش‌ها در یک ثانیه رو محاسبه کنیم مثلاً:Z = X1 + X2 + ... + Xnو این توزیع برای ما ناشناخته‌ست و تو این جلسه دنبال این هستیم که این توزیع رو پیدا کنیم.از اونجایی که متغیرهای تصادفی‌مون مستقل از هم هستن می‌تونیم امید ریاضی و واریانس توزیع Z رو به دست بیاریم و داریم:E(Z) = SUM(E(Xi))
Var(Z) = SUM(Var(Xi))حالا، اومدیم میانگین و واریانس Z رو پیدا کردیم. هرچند همچنان خود توزیع Z برامون ناشناخته‌س. با وجود محاسبه این دو مورد، چرا اصلاً نیازه که توزیع Z رو پیدا کنیم؟ همینقدر که میانگین و واریانس رو بدونیم کافی نیست؟نه کافی نیست. چرا؟ فرض کنید نیاز داریم که در مورد همین مثال بانک یک سرور تهیه کنیم و دو تا گزینه داریم:سروری که حداکثر 50000 تراکنش رو در ثانیه جواب میده و ارزون‌ترهسروری که حداکثر 100000 تراکنش رو در ثانیه جواب میده و گرون‌ترهحالا مسئله اینکه کدوم سرور بهمون جواب میده؟ برای جواب به این سوال باید احتمالات زیر رو محاسبه کنیم:چقدر احتمال داره که تعداد تراکنش‌ها در یک ثانیه از 50000 تا بیشتر بشه؟چقدر احتمال داره که تعداد تراکنش‌ها در یک ثانیه از 100000 تا بیشتر بشه؟حالا، برای محاسبه این احتمالات نیاز داریم بدونیم که Z از چه توزیعی پیروی می‌کنه و صرفاً دونستن میانگین و واریانس Z کافی نیست.برگردیم به همون مثال بلیط تاتر فروشی و ببینیم چطور میشه توزیع Z رو محاسبه کرد. تو اون مثال داشتیم:X ~ Poisson(ʎ1)
Y ~ Poisson(ʎ2)
Z = X + Yاول از همه بیایم ببینیم حاصل P(Z=z) چی میشه. از اونجایی که X و Y از هم دیگه مستقل هستن، داریم:چرا تونستیم احتمال‌های بالا رو در هم ضرب کنیم؟ چون می‌دونستیم که احتمال P(X=k) و P(Y = z-k) از هم مستقل هستن، به همین دلیل می‌تونیم این کار رو بکنیم. حالا توزیع هر دو احتمال رو باز می‌کنیم و چون توزیع هر دو پواسون هست داریم:رابطه بالا رو میشه تغییر داد و به صورت زیر نوشت:ممکنه سوال پیش بیاد که چجوری در مخرج فاکتوریل Z ظاهر شده. دلیلش اینکه صورت و مخرج کسر در فاکتوریل Z ضرب شدن تا بشه عبارت رو ساده‌تر کرد. در نهایت حاصل عبارت بالا برابر خواهد بود با:رابطه بالا چه توزیعی رو نشون میده؟ توزیع پواسون هست با پارامتر ʎ1 + ʎ2.تا به اینجا چه چیزی رو بررسی کردیم؟ اثبات کردیم که اگر تو تا متغیر تصادفی داشته باشیم که هر کدوم از یک توزیع پواسون با یه ʎ خاص بیان، بیایم این متغیرهای تصادفی رو جمع بزنیم، توزیع جواب نهایی هم از یک توزیع پواسون میاد که پارامتر ʎ‌ش برابر هست با جمع دو پارامتر ʎ.می‌تونیم چیزی که گفتیم رو در عمل هم ببینیم. کدهای زیر رو در نظر بگیرید:نمودار مرتبط با کدهای بالا به صورت زیر میشه:حالا اگر بیایم نمودار توزیع پواسون با پارامتر ʎ=13 رو هم رسم کنیم خواهیم داشت:دو نمودار توزیع‌های کاملاً یکسان دارن.تا اینجا یک مثال گسسته رو بررسی کردیم. در ادامه یک مثال پیوسته رو خواهیم دید.فرض کنید دو متغیر تصادفی و مستقل از هم X و Y داریم که از توزیع یکنواخت میان. دنبال این هستیم که توزیع Z رو به صورتی پیدا کنیم که داشته باشیم:قبل از اینکه مثال رو ادامه بدیم، بریم سراغ نمایش دادن نمودارهاشون و ببینیم به چه صورت هستن. کدهای زیر رو در نظر بگیرید:نموداری که از جمع این دو متغیر تصادفی به دست میاد به صورت زیر میشه:اگر تعداد نمونه‌هارو از 10000 تا به 100000 تا برسونیم نمودار به صورت زیر تغییر می‌کنه:در واقع توزیعی که بهمون میده یک توزیع مثلث شکل هست. حالا چطور میشه این رو اثبات کرد و به این توزیع رسید؟ اگر بخواهیم F_Z رو محاسبه کنیم داریم:چون X و Y از هم مستقل هستن داریم:پمی‌تونیم انتگرال‌های بالا رو کمی جابجا کنیم و داریم:تا اینجا F_Z رو محاسبه کردیم. در ادامه میریم سراغ محاسبه f_Z. داریم:رابطه‌ بالا در نهایت داره چه چیزی رو بهمون نشون میده؟ کانولوشن دو تابع f و g رو در نظر بگیرید:بنابراین جواب نهایی که برای f_Z محاسبه کردیم مثل این میمونه که انگار بیایم کانولوشن محاسبه کنیم.این نکته رو هم در نظر داشته باشید که روابطی که تا اینجا محاسبه کردیم صرفاً برای توزیع یونیفورمی که تو مثال آورده بودیم نیست و به صورت کلی نوشته شدن و اگر دو تا متغیر تصادفی پیوسته صرفاً مستقل از هم دیگه باشن این روابط در موردشون صادقه.ممکنه سوال پیش بیاد که کانولوشن چیه و چه چیزی رو نشون میده. در ادامه این رو بررسی خواهیم کرد تا شهود بهتری نسبت بهش به دست آورد.اول کانولوشن رو در خصوص مثالی که داشتیم (متغیر تصادفی از توزیع یکنواخت) بررسی می‌کنیم. تصویر زیر رو در نظر بگیرید. می‌خوایم ببینیم چرا وقتی دو تا توزیع مستطیل شکل رو در هم کانوالو می‌کنیم حاصل یک توزیع مثلث شکل میشه.وقتی دو تا متغیر تصادفی از توزیع یونیفورم داریم و این متغیرها بین 0 و 1 هستن، احتمال اینکه جمع این دوتا متغیر نزدیک به 0 باشه یا نزدیک به 2 باشه خیلی کمتره، نسبت به اینکه جمعشون نزدیک به 1 باشه. برای همین وقتی دو تا توزیع رو در هم کانوالو می‌کنیم در نهایت به یک توزیع مثلثی می‌رسیم.به عبارتی دیگه، مثل این می‌مونه که توزیع Y رو ثابت نگه داریم، توزیع X رو برعکس کنیم و به اندازه z بیایم توزیع برعکس شده X رو به توزیع Y نزدیک کنیم و حاصل ضرب دو توزیع رو محاسبه کنیم. دو عکس زیر رو در نظر بگیرید. مستطیل قرمز توزیع Y رو نشون میده و مستطیل سبز توزیع برعکس شده X هست. قسمت زرد رنگ هم حاصل ضرب دو توزیع رو مشخص می‌کنه (که در واقع همون انتگرالی هست که تو فرمول بالا ارائه شده).حالا اگر سه تا متغیر تصادفی از توزیع یکنواخت داشتیم چی؟اول باید بیایم کانوالو دو تاشونو حساب کنیم، بعد حاصل رو با متغیر تصادفی سوم کانوالو کنیم. در واقع دنبال پیدا کردن علامت سوال تو شکل زیر هستیم:طول و عرض مستطیل در واقع برابر با 1 هست و مثلث هم ارتفاع 1 و قاعده 2 داره. حالا اگر در هم کانوالوشون کنیم به صورت زیر تغییر می‌کنن:مساحت ناحیه زرد تو حالتی که z=1 هست برابر هست با مساحت مثلثی با قاعده 1 و ارتفاع 1:S = 1/2 * 1 * 1 = 1/2مساحت ناحیه زرد تو حالتی که z=1.5 هست برابر هست با نصف مساحت مستطیل و مساحت مثلث بالاش:S = 1/2 * 1 + 1/2 * 1 * 1/2 = 1/2 + 1/4 = 3/4مساحت ناحیه زرد تو حالتی که z=2 هست برابر هست با مساحت مثلثی با قاعده 1 و ارتفاع 1:S = 1/2 * 1 * 1 = 1/2اگر نمودارش رو بکشیم به چنین چیزی می‌رسیم در نهایت:اگه نمودار واقعی‌شو با R رسم کنیم خواهیم داشت:آیا چیزی که حدس می‌زدیم یکسان بود با واقعیت؟ بله :))میشه نمودارش رو به صورت دیگه‌ای هم کشید:خب، تا اینجا حالت دو متغیره و سه متغیره رو برای توزیع یکنواخت بررسی کردیم. یعنی دو تا متغیر تصادفی از توزیع یکنواخت رو باهم جمع کردیم و نمودار توزیعش رو دیدیم و این کارو با سه متغیر تصادفی هم کردیم. حالا در ادامه، می‌خوایم ببینیم با بیشتر کردن تعداد متغیرهای تصادفی از توزیع یکنواخت، نمودار توزیع نهایی به چه شکلی در میاد.اگر 30 تا متغیر تصادفی از توزیع یکنواخت رو جمع بزنیم نمودار توزیع نهایی به صورت زیر در میاد:حالا یک سوال. اگر به جای توزیع یکنواخت، توزیع دیگه‌ای داشته باشیم باز هم نمودار توزیع نهایی شبیه توزیع نرمال خواهد شد؟ جواب بله هستو مستقل از اینکه چه نوع توزیعی داریم، اگر تعداد زیادی توزیع یکسان رو باهم جمع بزنیم در نهایت به توزیع نرمال می‌رسیم.مثلاً 30 تا متغیر تصادفی از توزیع نمایی با نرخ 5 رو جمع زدیم و نمودارش به صورت زیر شده:حالا اگر توزیع پواسون با لامبدای 5 داشتیم چی؟ بازم نمودار توزیع نهایی شبیه توزیع نرمال میشه:حالا، اگر X و Y رو داشته باشیم که دو تا متغیر تصادفی و مستقل از هم باشن که از توزیع نرمال اومده باشن، توزیع Z=X+Y به چه صورت میشه؟ می‌دونیم که توزیع نرمال میشه ولی می‌خوایم اثباتش کنیم.یک راهش رو برای اثبات بررسی کردیم تا اینجا. بیایم کانولوشن X در Y رو محاسبه کنیم. حالا راه دیگه چیه؟ می‌بینیم.خب. دو متغیر تصادفی X و Y که از هم مستقل هستن رو داریم که از توزیع نرمال اومدن:X, Y ~ N(0, 1)دنبال نشون دادن این هستیم که توزیع Z = aX+bY یک توزیع نرماله. می‌دونیم که میانگین Z برابر هست جمع میانگین X و Y و واریانس Z برابر هست با جمع واریانس X و Y.در گام اول میایم سراغ محاسبه F_Z(z):در جلسات گذشته دیدیم که تابع phi(X) (کوچیک) برابر هست با همون تابع چگالی توزیع استاندارد و مقدارش برابر هست با:تابع Phi(X) (بزرگ) هم داریم که برابر هست با CDF توزیع نرمال:حالا برگردیم سراغ انتگرال. اگر تابع phi(X) و phi(Y) رو باز کنیم داریم:حالا، انتگرال بالا چی داره میگه؟ داره میگه بیا مساحت زیر نمودار خط ax+by ⩽ z رو محاسبه کن. یعنی انتگرال رو روی همه نقاطی که تو صفحه زرد رنگ قرار می‌گیرن اجرا کن.حالا بیاید یه نقطه دلخواه (x, y) رو روی این قسمت زرد رنگ در نظر بگیرید:با توجه به انتگرال فقط نقطه x^2 + y^2 برای ما مهم میشه. به عبارتی دیگه، یعنی فقط توان دوم فاصله نقطه (x, y) از مبدا برامون مهمه. تو این حالت حتی اگر بیایم صفحه مختصات رو هم بچرخونیم و فضا رو عوض کنیم بازم تغییری در فاصله نقطه (x, y) از مبدا ایجاد نمیشه. فرض کنید محور مختصات رو می‌چرخونیم و محورهای جدید رو با رنگ آبی نشون میدیم و نقطه تلاقی محور جدید با خط قرمز رو d می‌نامیم:حالا انتگرال رو با توجه به محورهای جدید بازنویسی می‌کنیم. بازه y میشه از منفی بی‌نهایت تا d و بازه x میشه از منفی بی‌نهایت تا مثبت بی‌نهایت:می‌دونیم که phi(x) تو بازه منفی بی‌نهایت تا مثبت بی‌نهایت برابر با 1 میشه. پس انتگرال ساده‌تر میشه و داریم:حالا، جواب انتگرال بالا چی میشه؟ جوابش همون CDF(d) هست که میشه:حالا d برابر با چیه؟ d یک نقطه هست روی خط ax+by=z. اگر بیایم فاصله d از مبدا مختصات رو حساب کنیم برای d داریم:d = |ax + by - z| / radical(a^2 + b^2)
x = 0, y = 0
d = | -z | / radical(a^2 + b^2) = | z | / radical(a^2 + b^2)چون میشه خط ax+by-z=0 رو هر جایی در نظر گرفت، می‌تونیم قدر مطلق رو حذف کنیم و در نهایت برای d داریم:این به چه معنی هست؟ اگر بیایم یک متغیری رو بر انحراف از معیارش تقسیم کنیم، در نهایت بهمون یک نرمال استاندارد میده. یعنی چی؟بالاتر دیدیم که Z = aX + bY هست. یعنی واریانس Z برابر میشه با:a^2 + b^2حالا وقتی Z تقسیم بشه بر انحراف از معیارش (یعنی همون d) انگار داره به صورت یک نرمال استاندارد در میاد. پس CDF(d) که در نهایت بهش رسیدیم، در واقع برابر هست با CDF یک نرمال استاندارد.جمع‌بندی مطالب ارائه شدهبا جمع متغیرهای تصادفی مستقل آشنا شدیم و دیدیم که هرچند تا متغیر مستقل از یک توزیع رو باهم جمع بزنیم در نهایت به یک توزیع نرمال می‌رسیم.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه چهاردهم)جزوه جلسه بعدی (جلسه شانزدهم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Fri, 05 May 2023 12:07:58 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه چهاردهم - کواریانس و همبستگی</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AC%D8%B2%D9%88%D9%87-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D8%A7%D8%B1-%D9%88-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%AF%DA%A9%D8%AA%D8%B1-%D8%B9%D9%84%DB%8C-%D8%B4%D8%B1%DB%8C%D9%81%DB%8C-%D8%AC%D9%84%D8%B3%D9%87-%DA%86%D9%87%D8%A7%D8%B1%D8%AF%D9%87%D9%85-%DA%A9%D9%88%D8%A7%D8%B1%DB%8C%D8%A7%D9%86%D8%B3-%D9%88-%D9%87%D9%85%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C-fndcpnurzgzz</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد. لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده شده است.سعی کردم هرچیزی که از ویدیوها فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.تا به این جلسه هرگاه در خصوص وابستگی یا استقلال دو متغیر حرف زدیم، استقلال یا عدم استقلال رو صرفاً با یک عدد و به صورت 0 یا 1 نمایش دادیم. یعنی دو متغیر تصادفی یا نسبت بهم هیچ وابستگی‌ای نداشتن (استقلال=1)، یا اینکه کاملاً بهم وابسته بودن (استقلال=0). تو این جلسه قراره وابستگی یا استقلال دو متغیر رو به جای نمایش با 0 و 1 با اعدادی در بازه 0 تا 1 نمایش بدیم. به عبارتی دیگه، فقط دنبال این نیستیم که نشون بدیم دو متغیر بهم وابستگی دارن یا ندارن، دنبال این هستیم که نشون بدیم چقدر بهم وابستگی دارن یا ندارن. دیتاست Iris رو در نظر بگیرید. این دیتاست اومده بر اساس طول و عرض گلبرگ‌های یه سری گل زنبق، گونه‌شون رو مشخص کرده. کلاً هم سه نوع گل زنبق تو این دیتاست قرار گرفتن. اگر بیایم هر نوع گل زنبق رو با یک رنگ نشون بدیم و طول و عرض گلبرگ‌هارو هم به عنوان محور افقی و عمودی در نظر بگیریم، به نموداری به صورت زیر می‌رسیم:حالا، با توجه به نمودار بالا، کدوم گونه گل زنبق هست که بین دو متغیر sepal length و sepal width وابستگی بیشتری وجود داره و کدوم گونه هست که این وابستگی توش کمتره؟به صورت شهودی اگر بخوایم بگیم، گونه setosa که با رنگ قرمز مشخص شده، بین طول و عرض گلبرگ‌هاش وابستگی بیشتری وجود داره. در عین حال، طول و عرض گلبرگ‌ها تو دو گونه دیگه که با رنگ سبز و آبی مشخص شدن استقلال بیشتری نسبت بهم دارن.اگر بخوایم شهودمون رو به صورت کمّی در بیاریم چی؟ یعنی اگر بخوایم وابستگی بیشتر و استقلال بیشتر رو با یک عدد مشخص کنیم باید چه کنیم؟ برای به دست آوردن این عدد کمّی باید با مفهومی به اسم کواریانس آشنا بشیم.برگردیم به فرمول واریانس. واریانس رو چطور تعریف می‌کردیم؟حالا، قراره از روی فرمول واریانس فرمول کواریانس رو خارج کنیم. دنبال چی هستیم؟ دنبال فرمولی هستیم که هر چی عددش مثبت‌تر یا منفی‌تر باشه نشون دهنده وابستگی بیشتر بین دو متغیر باشه و هرچی به صفر نزدیک‌تر باشه نشون دهنده‌ی وابستگی کمتر بین دو متغیر باشه.به عبارتی دیگه، دنبال فرمولی هستیم که اگر یک نقطه‌ای داشته باشیم:که هم x بزرگ‌تری داشته باشه نسبت به متوسط X و هم y بزرگ‌تری داشته نسبت به متوسط Y (یعنی به متوسط X و به متوسط Y یک مقداری اضافه شده باشه) تو این حالت بیاد و اثر مثبت بذاره.که هم x کوچک‌تری داشته باشه نسبت به متوسط X و هم y کوچیک‌تری داشته نسبت به متوسط Y (یعنی از متوسط X و از متوسط Y یک مقداری کم شده باشه) تو این حالت بیاد و اثر مثبت بذاره.که x بزرگ‌تری داشته باشه نسبت به متوسط X و y کوچک‌تری داشته نسبت به متوسط Y (یعنی به متوسط X یک مقداری اضافه و از متوسط Y یک مقداری کم شده باشه) تو این حالت بیاد و اثر منفی بذاره.که y بزرگ‌تری داشته باشه نسبت به متوسط Y و x کوچک‌تری داشته نسبت به متوسط X (یعنی به متوسط Y یک مقداری اضافه و از متوسط X یک مقداری کم شده باشه) تو این حالت بیاد و اثر منفی بذاره.حالا، از روی توضیحات بالا و با استفاده از فرمول واریانس به فرمول کواریانس می‌رسیم:برای اینکه توضیحات بالا رو بهتر درک کنید مثال زیر رو ببینید.فرض کنید یک سری نقطه داریم که به صورت زیر مشخص شدن و میانگین X و Y هم در مرکز قرار دارن:چهار تا نقطه سبز، قرمز، زرد و آبی رو روی این توزیع در نظر بگیرید:نقاطی که اطراف نقطه سبز هستن حالتی رو دارن مشخص می‌کنن که هم x بزرگ‌تری دارن نسبت به متوسط X و هم y بزرگ‌تری دارن نسبت به متوسط Y.نقاطی که اطراف نقطه آبی هستن حالتی رو دارن مشخص می‌کنن که هم x کوچک‌تری دارن نسبت به متوسط X و هم y کوچک‌تری دارن نسبت به متوسط Y.نقاطی که اطراف نقطه قرمز هستن حالتی رو دارن مشخص می‌کنن که x کوچک‌تری دارن نسبت به متوسط X ولی y بزرگ‌تری دارن نسبت به متوسط Y.نقاطی که اطراف نقطه زرد هستن حالتی رو دارن مشخص می‌کنن که x بزرگ‌تری دارن نسبت به متوسط X ولی y کوچک‌تری دارن نسبت به متوسط Y.حالا از اونجایی که تعداد این نقاط توی این چهار تا ناحیه باهم برابره، پس اثرات مثبت و اثرات منفی هم دیگه‌ رو در نهایت خنثی می‌کنن و کواریانس تو این مثال برابر میشه با صفر، که نشون میده هیچ وابستگی‌ای بین X و Y تو این مثال وجود نداره.بریم سراغ یک مثال دیگه. نقاط زیر رو در نظر بگیرید. محورهای قرمز و سبز مشخص کننده حدودی میانگین X و میانگین Y هست:تو این مثال، تعداد نقاطی که تو نواحی با ضرب‌در مشخص شده قرار میگیرن بیشتر از تعداد نقاطی هست که در نواحی بدون ضرب‌در خورده قرار می‌گیرن، برای همین هم در نهایت کواریانس اثر مثبت می‌ذاره:پس گویا یک وابستگی بین X و Y وجود داره و با زیاد شدن X مقدار Y هم زیاد میشه.حالا اگر به جای یک سری نقاط از هم گسسته یک توزیع داشته باشیم فرمول کواریانس رو چطور براش تعریف کنیم؟به کمک 2D-LOTUS که در جلسه گذشته باهاش آشنا شدیم، می‌تونیم عبارت (Y-EY)(X-EX) رو به صورت یک تابع g(X, Y) در نظر بگیریم و در نهایت داشته باشیم:حالا، فرض کنید اومدیم فقط گونه setosa از دیتاست Iris رو در نظر گرفتیم و یک توزیعی رو انداختیم روی دیتاپوینت‌ها:تو این حالت هم کواریانس شبیه حالت قبل که بررسی کردیم عمل می‌کنه. یعنی جواب انتگرال بسته به اینکه چقدر داریم از میانگین X و Y دور میشیم یا بهش نزدیک‌تر میشیم، در نهایت یک عدد مثبت یا صفر یا منفی میشه.اگر حاصل کواریانس منفی بشه به چه معنایی هست؟ به این معنیه که انگار با زیاد شدن X مقدار Y کم میشه و یا برعکس. در هر حال یا X یا Y یکیشون زیاد میشه در حالیکه اون یکی متغیر کم میشه، به عبارتی دیگه X و Y کواریانس منفی دارن نسبت بهم.ویژگی‌های کواریانسCov(X, X) = E((X - EX)(X - EX)) = E((X - EX)^2) = Var(X)

Cov(X, Y) = Cov(Y, X)

Cov(2X, Y) = E((2X - 2EX)(Y - EY)) = E(2(X - EX)(Y - EY)) = 2E((X - EX)(Y - EY)) = 2Cov(X, Y)

Cov(aX+b, Y) = E((aX + b - E(aX + b))(Y - EY)) = E((aX + b - aE(X) - b)(Y - EY)) = 
E((aX - aE(X))(Y - EY)) = aE((X - E(X))(Y - EY)) = aCov(X, Y)

IF f_XY(x, y) = f_X(x) f_Y(y), then Cov(X, Y) = 0همبستگی (Correlation)فرض کنید X&#x27; و Y&#x27; رو متغیرهای نرمال شده X و Y در نظر بگیریم و داشته باشیم:X&#039; = (X - EX) / ó_X
Y&#039; = (Y - EY) / ó_Yحالا برای محاسبه Cov(X&#x27;, Y&#x27;) داریم:Cov(X&#039;, Y&#039;) = Cov((X - EX) / ó_X, (Y - EY) / ó_Y) = Cov(X, Y) / ó_X ó_Y = Cor(X, Y)به حاصل Cov(X&#x27;, Y&#x27;) ضریب همبستگی پیرسون گفته میشه.میشه اثبات کرد که همواره نامساوی زیر برقراره:-ó_X ó_Y ⩽ Cor(X, Y) ⩽ ó_X ó_Y
-1 ⩽ Cor(X, Y) ⩽ 1ویژگی‌های همبستگیCor(X, X) =  Cov(X, X) / ó_X ó_X = Var(X, X) / ó_X ó_X = 1

Cor(-X, X) = -1

Cor(X + 5, X) = 1

Cor(aX, X) = Cov(aX, X) / ó_aX ó_X = aCov(X, X) / |a|ó_X ó_X
IF a &gt; 0, then Cor(aX, X) = 1
IF a &lt; 0, then Cor(aX, X) = -1
IF a = 0, then undefined correlation

IF f_XY(x, y) = f_X(x) f_Y(y), then Cor(X, Y) = 0تفاوت کواریانس و همبستگیتو محاسبه کواریانس تفاوت در scale متغیرها روی جواب تاثیر میذاره، در حالیکه تو محاسبه همبستگی فرقی نمی‌کنه که متغیرها چه scale ای داشته باشن. برای مثال برگردیم به همون دیتاست Iris و کواریانس و همبستگی رو برای گونه‌های مختلف گل زنبق محاسبه کنیم.برای مقادیر کواریانس داریم:در حالیکه برای مقادیر همبستگی داریم:همون‌طور که مشخصه تفاوت چندانی در مقدار کواریانس بین سه گونه وجود نداره در حالیکه مقدار همبستگی تفاوت زیادی داره. این تفاوت کم بین مقادیر کواریانس و تفاوت زیاد تو مقادیر همبستگی دقیقاً بر می‌گرده به حساس نبودن همبستگی به scale متغیرها.تو عکس هم اگر نگاه کنیم به صورت شهودی همبستگی بیشتری بین دیتاپوینت‌های قرمز می‌بینیم تا دو گونه دیگه:جمع‌بندی مطالب ارائه شدهبا مفهوم کواریانس و کورلیشن آشنا شدیم و در مورد ویژگی‌های هر کدوم و تفاوت‌هاشون یاد گرفتیم.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه سیزدهم)جزوه جلسه بعدی (جلسه پانزدهم)</description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Tue, 25 Apr 2023 20:10:55 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه سیزدهم - توزیع توأم شرطی و تئوری LOTUS</title>
                <link>https://virgool.io/@haniehmahdavi26/%D8%AA%D9%88%D8%B2%DB%8C%D8%B9-%D8%AA%D9%88%D8%A3%D9%85-%D8%B4%D8%B1%D8%B7%DB%8C-%D9%88-%D8%AA%D8%A6%D9%88%D8%B1%DB%8C-lotus-u2busfetrz6z</link>
                <description>منبع اصلی این پست، دوره آمار و احتمال مهندسی دکتر علی شریفی زارچی از آکادمی مکتبخونه می‌باشد.  لطفاً برای حفظ حقوق منتشر کننده اصلی، ویدیوهارو از منبع اصلی دنبال  کنید. همچنین، در انتهای هر جلسه، به ویدیو مربوط به آن جلسه ارجاع داده  شده است.سعی کردم هرچیزی که از ویدیوها  فهمیدم رو به صورت متن در بیارم و در این پلت‌فورم با بقیه به اشتراک  بذارم. کل ویدیوها 27 تاست که سعی می‌کنم هفته‌ای یک الی دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنت‌ها بهم بگید تا درستش کنم.پیشنهاد  می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید  روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و  محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله  چه اتفاقی میفته.مروری بر مباحث جلسه گذشتهدر جلسه گذشته با مفهوم توزیع توأم و تابع با دو متغیر تصادفی آشنا شدیم. روابط F_XY و f_XY رو بررسی کردیم و فهمیدیم که چه ارتباطی باهم دارن. تمام نکاتی که برای توزیع با دو متغیر تصادفی در جلسه گذشته دیدیم برای توزیع با n متغیر تصادفی هم صادقه و می‌تونیم همه موارد توزیع دو متغیره رو به توزیع n متغیره هم تعمیم بدیم.همچنین، در مورد وابستگی و استقلال متغیرهای تصادفی در یک توزیع توأم مطالبی رو یاد گرفتیم و با تابع حاشیه‌ای آشنا شدیم که بهمون کمک می‌کرد با حساب کردنش بفهمیم X و Y بهم وابسته هستن یا از هم مستقل اند.در ادامه یک مثال رو بررسی ‌می‌کنیم و بقیه مطالب این جلسه رو در پیش می‌گیریم.فرض کنید یک توزیع توأم دو متغیره به صورت زیر داریم:و می‌دونیم که رابطه زیر براش برقراره:X^2 + Y^2 ⩽ 1و PDF هم براش به صورت زیر تعریف شده:f_XY(x, y) = 0, if X^2 + Y^2 &gt; 1
f_XY(x, y) = 1/pi, if X^2 + Y^2 ⩽ 1از اونجایی که شعاع دایره 1 هست مساحتش برابر میشه با pi، پس در صورتی که برای X و Y رابطه زیر:X^2 + Y^2 ⩽ 1برقرار باشه، پس f_XY(x, y) برابر میشه با 1 بر روی مساحت.حالا، می‌خوایم استقلال یا وابستگی X و Y رو بررسی کنیم. در قدم اول باید بیایم توزیع‌های حاشیه‌ای X و Y رو به دست بیاریم.برای توزیع حاشیه‌ای X داریم:بازه انتگرال هم به صورت زیر محاسبه شده:به صورت مشابه برای توزیع حاشیه‌ای Y داریم:بازه‌های انتگرال هم به صورت زیر محاسبه شدن:در نهایت از اونجایی که رابطه زیر برقرار نیست، پس X و Y نسبت بهم وابسته هستن. فقط حواسمون به این نکته هست که X و Y بین منفی 1 تا مثبت 1 تعریف میشن و خارج از این بازه مقدارشون برابر با صفر هست.توزیع توأم شرطیدر جلسات گذشته دیدیم که مفهومی داریم با عنوان احتمال شرطی و برای دو رویداد A و B به صورت زیر تعریف می‌شد:P(A | B)به صورت مشابه می‌تونیم همون مفهوم رو برای متغیرهای تصادفی هم داشته باشیم:رابطه‌ای که بالا اومده به عبارتی توزیع شرطی دو متغیر تصادفی رو داره مشخص می‌کنه. یعنی اگر مثلاً بهمون گفته باشن y در یک بازه خاصی قرار گرفته باشه و یک سری اطلاعات در مورد اون بهمون داده باشن، توزیع x به چه صورت میشه؟ همون مثالی که یکم پیش تر بررسی کردیم رو در نظر بگیرید:تو همین مثال اگر بهمون بگن که y=0.3 شده باشه، باید چجوری توزیع x رو محاسبه کنیم؟در قدم اول باید بیایم توزیع حاشیه‌ای y رو به ازای y=0.3 محاسبه کنیم که چون از قبل محاسبه کردیم فقط کافیه جایگذاری کنیم و داریم:مقدار f_XY رو هم بالاتر محاسبه کردیم:حالا،  طبق رابطه توزیع شرطی دو متغیر تصادفی داریم:پس طبق جواب بالا، توزیع X به شرطی که Y=0.3 باشه، برابر هست با یک توزیع ثابت با مقدار 0.604:تئوری LOTUS (Low of the Unthinking Statistician)بریم سراغ یک مثال دیگه و به کمکش مفهوم دیگه‌ای رو بررسی کنیم.فرض کنید X یک متغیر تصادفیه و g(X) تابعی هست که از روی X به دست اومده. چطور می‌تونیم امید ریاضی g(X) رو محاسبه کنیم؟بسته به این که X از یک توزیع گسسته اومده یا یکم توزیع پیوسته میشه روابط زیر رو داشت:اینکه بیایم رابطه بالا رو به این صورت تعریف کنیم کافی نیست و باید بیایم حتماً براش اثبات بیاریم. به این تئوری که این تعریف رو اینطور نپذیریم و براش اثبات ارائه بدیم، LOTUS گفته میشه. برای حالت دو بعدی هم 2D-LOTUS رو داریم که میشه به صورت زیر تعریف کرد:اگر علاقه‌مند هستین که بدونید تعاریف بالا به چه صورت اثبات میشن، می‌تونید با یه جستجوی ساده تو اینترنت اثباتشون رو ببینید.در ادامه در قالب یک مثال مفاهیمی که تو این بخش ارائه شده رو بیشتر بسط خواهیم داد.فرض کنید که دو متغیر تصادفی داریم که مستقل از هم هستن و از توزیع uniform تبعیت می‌کنن:تابع f_XY(x, y) برابر هست با:چرا تابع f_XY(x, y) رو اینطور تعریف می‌کنیم؟اولاً هم X هم Y هر دو می‌تونن بین 0 و 1 باشن، در نتیجه فضایی که مقدار f_XY(x, y) غیر صفر میشه برابر میشه با نمودار زیر:دوماً توزیع X و Y از هم دیگه مستقل هستن و توی هر نقطه رابطه زیر برقراره:حالا فرض کنید یه تابعی داریم به اسم g(X, Y) که به صورت زیر تعریف شده:g(X, Y) = |X - Y|دنبال این هستیم که expected تابع g رو محاسبه کنیم:جواب 1/3 به صورت شهودی چی رو بهمون نشون میده؟ مثل این می‌مونه که انگار رو محور اعداد بین 0 تا 1 بیایم دو تا نقطه تصادفی در نظر گرفته باشیم، به طور متوسط فاصله بین این دو نقطه برابر میشه با 1/3:در ادامه شهودی که بالاتر دادیم رو با جزییات بیشتری بررسی خواهیم کرد.فرض کنید دو تا متغیر تصادفی X و Y رو داریم. A و B هم داریم که به صورت زیر تعریف شدن:A = Min(X, Y)
B = Max(X, Y)حالا، دنبال محاسبه expected مقدار |X - Y| هستیم که تو بخش قبل دیدیم مقدارش برابر شد با 1/3:E(|X - Y|) = E(B - A) = E(B) - E(A) = 1/3حالا، می‌خواهیم expected مقدار B+A رو محاسبه کنیم:E(B) + E(A) = E(B + A) = E(X + Y) = E(X) + E(Y) = 1/2 + 1/2 = 1از دو رابطه بالا میشه مقدار E(A) و E(B) رو محاسبه کرد و داریم:E(A) = 1/3
E(B) = 2/3چیزایی که تا اینجا محاسبه کردیم چه شهودی بهمون میده؟ داره میگه اگر دو تا متغیر تصادفی مثل A و B در نظر بگیریم، expected متغیر تصادفی کوچیک‌تر برابر با 1/3 میشه، expected متغیر تصادفی بزرگ‌تر برابر با 2/3 میشه، در نهایت فاصله بین دو نقطه هم برابر با 1/3 خواهد شد.این مثالی که بررسی کردیم و انتگرال‌هایی که گرفتیم مثالی بود از 2D-LOTUS. در نهایت بعد اینکه با کمک انتگرال به جوابی که دنبالش بودیم رسیدیم، یک شهودی رو ارائه دادیم و در ادامه، شهود ارائه شده رو اثبات کردیم.در ادامه می‌خواهیم یک مثال دیگه رو بررسی کنیم.دنبال این هستیم که عبارت زیر رو با فرض اینکه X و Y از هم مستقل باشن اثبات کنیم:E(XY) = E(X) E(Y)برای اثبات، با استفاده از 2D-LOTUS می‌تونیم این رو به دست بیاریم که XY یک متغیر تصادفی جدیده. داریم:از اونجایی که X و Y نسبت بهم مستقل هستن، می‌تونیم انتگرال بالا رو به صورت زیر بازنویسی کنیم: با یک جابجایی خواهیم داشت:در نهایت داریم:جمع‌بندی مطالب ارائه شدهبا توزیع توأم شرطی آشنا شدیم و فهمیدیم که LOTUS و 2D-LOTUS چی هستن و باهاشون یک سری مثال حل کردیم.اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه  گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.ویدیو این جلسهصفحه گیت‌هاب مرتبط با این دورهجزوه جلسه قبلی (جلسه دوازدهم)جزوه جلسه بعدی (جلسه چهاردهم) </description>
                <category>هانیه مهدوی</category>
                <author>هانیه مهدوی</author>
                <pubDate>Tue, 18 Apr 2023 21:25:47 +0330</pubDate>
            </item>
            </channel>
</rss>