بایگانی دسته: ریاضیات

کتاب رایگان شبکه عصبی تان را بسازید

جلد کتاب رایگان شبکه عصبی تان را بسازید - مقدمه ای بر مفاهیم، ریاضیات و ساخت شبکه های عصبی با پایتون

ترجمه و نشر رایگان این کتاب داستان طولانی داره. در ابتدا هدفم از ترجمه این کتاب، مثل سایر کتبی که ترجمه کردم چاپ اون بود. درباره چاپ کتاب با چند ناشر صحبت کردم. متاسفانه اکثر ناشرهای تخصصی کتاب رنگی چاپ نمی کنند و اگر هم چاپ کنند قیمت کتاب برای مخاطب بسیار زیاد خواهد بود. در نتیجه، تصمیم گرفتم کتاب رو در قالب E-Book و با پلتفرم های نشر الکترونیک به دست مخاطبان برسونم. در این باره با یک ناشر به ظاهر حرفه ای وارد مذاکره شدم و کار رو شروع کردیم. طی رفت و برگشت های کتاب با این ناشر عزیز متوجه شدم که توانایی لازم برای ویرایش ادبی و صفحه بندی و انتشار اثر با کیفیتی که من میخوام رو ندارن. کیفیت اثری که برای انتشار آماده کرده بودن بسیار پایین بود و حدود یکسال هم وقت هدر داده بودن. در انتها تصمیم گرفتم نسخه ای که ناشر روی اون کار کرده رو به کل دور بریزم و قرارداد نشر رو با اونها فسخ کنم و نسخه یکسال قبل که ویرایش ادبی نشده رو به صورت رایگان منتشر کنم.

همان طور که گفتم کتاب ویرایش نشده است و ممکنه ایرادات نگارشی داشته باشه و به کیفیت کتابهای قبلی نباشه. امیدوارم خوانندگان عزیز با اعلام این ایرادات در رفع اونها به بنده کمک کنند. می توانید فایل PDF کتاب رو از آدرس زیر دانلود کنید:

دانلود کتاب شبکه عصبی تان را بسازید

به علاوه یک ریپازیتوری هم در گیتهاب برای کتاب ایجاد کردم که نسخه PDF و تصاویر کتاب از اونجا هم قابل دریافته. می توانید از طریق آدرس زیر به این ریپازیتوری دسترسی داشته باشید:

ریپازیتوری GitHub کتاب

در انتها امیدوارم با وجود همه ایرادات، کتاب مورد استفاده علاقه مندان قرار بگیره و مفید باشه. خوشحال میشم اگر ایرادی در کتاب دیدین اون رو از طریق آدرس ایمیل reza_sabery_89@yahoo.com یا در قسمت نظرات به بنده اطلاع بدین.

برای آگاهی از پست های بعدی می توانید در کانال تلگرام وبلاگ عضو شوید.
برای عضویت در کانال وبلاگ اینجا کلیک کنید

وضعیت مهاجرت در داده های نظرسنجی جادی

چند وقت پیش، موقع برگشت از شرکت با یکی از همکاران گفتگویی داشتیم. ایشان درباره داده های نظرسنجی جادی که هر سال به صورت آنلاین و در قالب یک پرسشنامه برگزار می شود اطلاعاتی به من دادند. این اطلاعات، با آنچه از سایر منابع می دانستم در تضاد بود. از این رو سعی کردم داده های این پرسشنامه را تحلیل کنم. بخشی از نتایج این تحلیل که در بررسی های مشابه مثل «بهداد بلاگ»، یا «تحلیل وبسایت جادی» موجود نبود مربوط به نرخ مهاجرت است. در ادامه تحلیل خود در این رابطه را به صورت مجموعه ای پرسش و پاسخ آورده ام.

۱. برای تحلیل از چه داده هایی استفاده شده است؟ برای تحلیل از داده های سال ۹۷ استفاده کرده ام که با استفاده از این آدرس می توانید آنها را دانلود کنید

۲. داده های مورد استفاده در تحلیل چند متغیر (ستون) و چند مشاهده (سطر) دارند؟ داده های مورد استفاده در تحلیل ۴۱ ستون (متغیر) و ۴۴۸۴ سطر دارند (بدون احتساب سطر مربوط به سرآیند). تعداد مشاهده های موجود در این فایل با «بلاگ بهداد» برابر است. اما در «تحلیل وبسایت جادی» این عدد ۲۹۵۷ ذکر شده (این ناسازگاری باید توسط منبع ارائه دهنده داده ها که وبسایت جادی است بررسی شود)

۳. آیا این داده ها سوگیری، یا بایاس (Bias) خاصی دارند؟ بله. مهمترین این سوگیری ها، اصطلاحا سوگیری در نمونه برداری (Sampling bias) نام دارد. یعنی برخی از افراد جامعه مقصد درصد مشارکت کمتری نسبت به جامعه واقعی دارند. از آنجا که جامعه آماری شرکت کننده گان در این پرسشنامه اکثرا از کاربران توییتر و خواننده گان وبلاگ جادی هستند، دچار یک سوگیری در نمونه گیری هستند. البته این سوگیری در تحقیقات مربوط به علوم اجتماعی بسیار رایج است

۴. سوگیری های موجود در داده ها چگونه خود را نشان می دهند؟ برای مثال از میان ۴۴۸۴ شرکت کننده تنها ۴۱۴ نفر از شرکت کننده گان (۹.۲۳٪) را خانم ها تشکیل می دهند. به علاوه اکثر شرکت کننده گان نسبتا کم سن و سال هستند.

۵. از هر شهر چند شرکت کننده وجود دارد؟ داده های مربوط به این قسمت با استفاده از فیلد «خودتون رو متعلق به کدوم استان می دونید؟» به دست آمده اند.

۶. شرکت کننده گان در کدام شهرها کار می کنند؟ نمودار زیر با استفاده از اطلاعات مربوط به فیلد «استان محل کار» رسم شده است

۷. مبداء و مقصد مهاجرت برنامه نویسان ایرانی چه شهرهایی است؟ در زمان مشاهده گراف زیر این موارد را مد نظر قرار دهید (برای بزرگ کردن تصویر روی آن کلیک کنید):

  •  در گراف زیر اگر تعداد مهاجران از یک شهر به شهر دیگر بزرگتر یا مساوی ۲۰ نفر بوده باشد یک یال بین دو شهر رسم شده است. در نتیجه مهاجرت های کوچکتر رسم نشده اند
  • شهر مقصد با نوک پیکان مشخص شده است
  • تعداد مهاجران روی هر یال نوشته شده است
  • حلقه (یالی از یک شهر به همان شهر نشان دهنده یکسان بودن مبداء و مقصد ذکر شده در پرسشنامه، یا عدم مهاجرت است)

گراف مهاجرت

اطلاعات بسیار جالبی در این گراف قابل مشاهده است:

  • تقریبا می توان گفت مقصد نهایی تمامی مهاجرت های داخلی تهران است. البته اگر در شهرهای بزرگی چون اصفهان، یا خراسان رضوی باشید محتملا به تهران مهاجرت نخواهید کرد. اما، اگر در سایر شهرها باشید وضعیت متفاوت خواهد بود
  • اگر ساکن تهران باشید و قصد مهاجرت داشته باشید تنها مقصدتان کشورهای خارجی، یا دورکاری است
  • برخی شهر ها هم هستند که مهاجرتی زیر ۲۰ نفر دارند، اما تعداد شرکت کننده گان آنها بزرگتر یا مساوی ۲۰ است. این شهرها در پایین گراف در قالب مجموعه ای جدا افتاده (Isolates) نشان داده شده اند

آنچه در این داده ها دیده می شود ناخوشایند است. خوب بود اگر برنامه نویسان و کارکنان آی تی مقصدی به جز تهران در مهاجرت های داخلی داشتند…

۸. در داده های موجود به طور کلی احتمال مهاجرت چقدر است؟ به طور کلی، اگر کسانی که شهر مبداء آنها مخالف شهر محل کارشان است را مهاجر فرض کنیم، و تعداد آنها را به تعداد کل شرکت کننده گان تقسیم کنیم به عدد ۰.۲۸۲ خواهیم رسید. به عبارت دیگر افراد به احتمال ۲۸ درصد برای کار مهاجرت می کنند.

البته میزان صحت این احتمال با اعتبار داده های پرسشنامه مستقیما در ارتباط است.

۹. احتمال مهاجرت از هر شهر چقدر است؟ احتمال مهاجرت از شهرهایی که بیش از ۲۰ مهاجر داشته اند در جدول زیر آمده است:

شهر مبدا شهر مقصد تعداد مهاجر احتمال مهاجرت
البرز تهران ۸۸ ۰.۵۸۳
مرکزی تهران ۲۷ ۰.۵۴۰
لرستان تهران ۳۲ ۰.۵۰۰
همدان تهران ۴۳ ۰.۴۶۷
کرمانشاه تهران ۲۵ ۰.۴۵۵
زنجان تهران ۲۴ ۰.۴۴۴
مازندران تهران ۶۲ ۰.۴۰۸
کردستان تهران ۳۰ ۰.۳۶۶
کرمان تهران ۳۱ ۰.۳۶۵
آذربایجان غربی تهران ۳۱ ۰.۳۵۲
خوزستان تهران ۴۸ ۰.۳۳۶
گیلان تهران ۴۳ ۰.۳۱۲
یزد تهران ۲۴ ۰.۲۶۷
فارس تهران ۵۱ ۰.۲۴۱
آذربایجان شرقی تهران ۳۵ ۰.۲۴۸
اصفهان تهران ۷۷ ۰.۲۳۶
قم تهران ۲۰ ۰.۲۱۷
خراسان رضوی تهران ۵۵ ۰.۱۵۳
تهران ریموت-خارج کشور ۲۲ ۰.۰۱۴

همان طور که در جدول فوق هم قابل مشاهده است احتمال مهاجرت از شهرهای بزرگ مثل خراسان و اصفهان به تهران یا از تهران به خارج کشور (یا دورکاری) نسبتا اندک است.

البته می توان رابطه بین داده های مربوط به مهاجرت برنامه نویسان را با بسیاری از متغیرهای دیگر موجود در پرسشنامه بررسی کرد. برای مثال:

  •  آیا سن رابطه ای با مهاجرت دارد؟
  • آیا رابطه ای میان میزان تخصص و مهاجرت وجود دارد؟
  • جنسیت در تصمیم بر مهاجرت تاثیری دارد؟

و بسیاری موارد دیگر. متاسفانه به خاطر سوگیری داده ها نمی توان برخی از این سوال ها را پاسخ داد. برای مثال به علت پایین بودن تعداد خانم ها نمی توان به سوال رابطه بین جنسیت و مهاجرت پاسخ داد. پاسخ به سایر سوالات هم به علت قالب داده ها با دشواری هایی همراه است که به زمان زیادی نیاز دارد.

در انتها امیدوارم این تحلیل با همه کاستی هایش مفید واقع شود، و برای برخی سوالات موجود پاسخ مناسبی ارائه دهد.

برای آگاهی از پست های بعدی می توانید در کانال تلگرام وبلاگ عضو شوید.
برای عضویت در کانال وبلاگ اینجا کلیک کنید

ریاضیات تشخیص (مقدمه ای بر قانون بیز)

فرض کنید پزشک هستید، و بیماری با مجموعه ای از عوارض(Symptoms) نزد شما می آید. برای مثال، فرض کنید صورت بیمار پر از لکه های قرمز کوچک است. از آنجه که شما پزشک هستید می دانید دو بیماری هستند که می توانند موجب بروز چنین لکه هایی شوند:

  1. آبله (Smallpox): بیماری بسیار خطرناک که می تواند به راحتی بیمار را از پا در آورد، و به راحتی درمان نمی شود
  2. آبله مرغان (Chickenpox): بیماری که آنقدر خطرناک نیست و به راحتی درمان می شود

اما چطور می توانید با استفاده از عوارض تشخیص دهید بیمار به کدام بیماری دچار است؟ از آنجاکه پزشک هستید می دانید احتمال بروز این عوارض به شرط آبله ۰.۹۹ و احتمال بروز عوارض به شرط آبله مرغان ۰.۸ است. در نتیجه، آیا تشخیص شما باید آبله باشد؟ می توانید اطلاعات فوق را به صورت زیر به زبان ریاضیات نشان دهید:


در عبارات فوق علامت | به معنای «به شرط»، و p به معنای احتمال است. در نتیجه، (آبله | جوش های قرمز)p خوانده می شود «احتمال جوش های قرمز به شرط اینکه بیمار مبتلا به آبله باشد». اما اگر با استفاده از اطلاعات فوق نتیجه بگیریم بیمار مبتلا به آبله است تشخیص درستی داده ایم؟ پاسخ این سوال خیر است. در این محاسبات پارامتر بسیار مهمی وجود دارد که مد نظر قرار نگرفته است. این پارامتر تجربه قبلی ما در رابطه با میزان شیوع این بیماری ها در جامعه است. در واقع بیماری آبله بسیار نادر، و بیماری آبله مرغان بسیار رایج است. می توانیم این تجربه را با استفاده از یک عدد نشان دهیم. فرض کنید میزان شیوع آبله ۰.۰۰۱، و میزان شیوع آبله مرغان ۰.۱ است. حال می توانیم از این اطلاعات در تشخیص خود استفاده کنیم. با ضرب این اطلاعات در موارد قبلی به اعداد زیر خواهیم رسید:

با در نظر گرفتن تجربه قبلی مان در رابطه با میزان شیوع بیماری ها تشخیص آبله مرغان منطقی تر از آبله به نظر می رسد. در نتیجه می توانیم بگوییم بیمار ما دچار آبله مرغان است و جای نگرانی چندانی نیست.

آنچه با هم بررسی کردیم نمونه ای از قانون بیز (Bayes’ Theorem) است. قانون بیز یکی از قوانین بسیار پرکاربرد احتمال است که با آن می توانید تجربه قبلی خود را در محاسبه احتمالات دخیل کنید. در این قانون به تجربه قبلی ما اصطلاحا احتمال پیشین (Prior Probability)، به احتمال بیماری های مختلف اصطلاحا درست نمایی (Likelihood)، و به احتمال نهایی هر بیماری احتمال پسین (Posterior Probability) می گویند.

در واقع این احتمال پیشین، یا تجربه یک پزشک، یا مهندس است که در تشخیص درست بیماری یا مشکل به کمک وی می آید. با گذشت زمان و کسب تجربه احتمال پیشین مشکلات مختلف در ذهن ما شکل می گیرد و در انجام کارها ما را یاری می کند.

منبع: Bayes’ rule: A tutorial introduction to Bayesian analysis اثر جیمز استون.

 

برای آگاهی از پست های بعدی می توانید در کانال تلگرام وبلاگ عضو شوید.
برای عضویت در کانال وبلاگ اینجا کلیک کنید