And after all I'm only ordinary man
2. هوش مصنوعی به زبان خیلی ساده: شناسایی الگو
پیش گفتار
این مقاله ادامه ی قسمت اول «هوش مصنوعی به زبان خیلی ساده» هست.
شما که این مقاله رو میخونید، اگر یک مهندس هوافضا در ناسا هستید یا در سوپر مارکت احمد آقا کار می کنید. یا اگر استاد تمام در دانشگاه MIT هستید و یا چون شرایط طوری بود که نتونستید دیپلمتون رو به اتمام برسونید، ولی علاقمندید راجع به هوش مصنوعی بدونید، لطفا طوری بخونید که قراره کلمه به کلمشو متوجه بشید. اگر غیر این بود، لطفا به من اطلاع بدید. (این متن تا ابد در حال ویرایش هست)
خلاصه قسمت اول
دیدیم که در حل مسائلی که تعداد متغیر ها زیاد میشه و حالات بیشماری ممکنه رخ بده، به دلیل محدودیت انسان ها در حافظه و قدرت پردازش، برنامه نویسی به صورت مستقیم، تقریبا غیر ممکن میشه. و قرار شد کامپیوتر با استفاده از هوش مصنوعی و یادگیری ماشین، مفاهیم رو از داده های گذشته یاد بگیره، تحلیل و آینده رو پیشبینی کنه.
وقتی میخوایم مفهومی مثل بارش بارون رو به کامپیوتر یاد بدیم به این معنی نیست که قراره با لپتاپمون بزنیم به دل طبیعت و با آرامش و حوصله، همونطور که داریم نوشیدنی مون رو میخوریم و به افق که شفق خورشید صحنه ی زیبایی رو خلق کرده نگاه میکنیم، براش مفهوم بارون رو توضیح بدیم. که اگر اینطور بود، احتمالا هیچ انسانی در پی رابطه ای نبود و ازدواج نمی کرد و بشر منقرض میشد :D کامپیوتر خیلی کودن تر از اون چیزی هست که فکرش رو بکنیم. فقط با صفر و یک، میشه باهاش صحبت کرد.
درواقع برای اینکه بتونیم مفهوم بارون رو به کامپیوتر یاد بدیم، با استفاده از روش هایی، در داده های بارشِ روزها و سالهای گذشته (که همون تجربیات گذشته اند) به دنبال شناسایی الگو ها هستیم. و بعد این الگو ها رو تبدیل به روابط ریاضی می کنیم. که به راحتی تبدیل به صفر و یک می شوند و برای کامپیوتر قابل درک هستند.
شناسایی الگو
به تشخیص خودکار الگو ها و قوانین در داده ها را شناسایی الگو گفته می شود.
یک مساله
میخوایم قیمت خونه رو پیشبینی کنیم. مساله اینه که قراره یک عدد تحت عنوان متراژ خونه به کامپیوتر بدیم. در عوض کامپیوتر یک عدد تحت عنوان قیمت خونه بهمون تحویل بده.
پیش بینی قیمت
فرض بفرمایید ما برای حل این مساله، همچنین داده ای از خرید و فروش خانه های معامله شده، در دست داریم.
در دنیای واقعی استفاده از پنج نمونه آموزشی بیشتر شبیه شوخی هست. تعداد داده ها در دنیای واقعی به چند هزار، چندصد هزار و چند ده ملیون هم ممکنه برسه. حالا ما چون قرار بود به صورت خلاصه و خیلی ساده راجع به هوش مصنوعی صحبت کنیم از این مجموعه داده کوچیک استفاده میکنیم. و به راحتی میتونیم به صورت زیر رسمش کنیم:
با یک نگاه گذرا به تصویر بالا ما به عنوان انسان میتونیم به یک الگو مناسب در داده ها مون پی ببریم:
هرچقدر که متراژ خونه ها افزایش پیدا میکنه، قیمت خونه هم افزایش پیدا میکنه!
ما انسان ها با نگاه کردن به تصویر رسم شده داده هامون به راحتی میتونیم این موضوع رو درک کنیم. ولی کامپیوتر چطوری این موضوع رو می تونه درک کنه ؟
کامپیوتر اینکار رو با استفاده از تقریب یک معادله خط ساده انجام میده.
y = x * a + b
price = size * a + b
شیب خط (a) و عرض از مبدا (b) در اینجا مجهول هستند. و کامپیوتر با استفاده ازالگوریتم های بهینه سازی میتونه این مجهول ها رو بدست بیاره.
فرض کنید کامپیوتر بعد از آموزش a رو برابر با 1 و b رو برابر با 0 بدست آورد. حالا چطوری به این اعداد رسید مفصله و موضوع مقاله قسمت بعدی هست :)
اگر خطی رو که، با شیب و عرض از مبدا، که کامپیوتر تونسته با روش های بهینه سازی روی داده های آموزشیمون، بدست اومده رسم کنیم، یه همچنین خطی میشه:
برای اینکه ببینیم معادله ای که بدست آوردیم درست کار میکنه یا نه، برنامش رو به صورت زیر مینویسیم:
a = 1
b = 0
size = int(input("Enter the size of your house: "))
price = size * a + b
print("The price of your house is:", float(size/100), "Billion Tomans")
خط اول کامپیوتر متراژ خانه رو از کاربر میگیره. در خط دوم معادله خطی و قیمت خونه محاسبه میشه. و در خط سوم چاپ میشه.
حالا اگر یکی بیاد بهتون بگه: من یه خونه 220 متری دارم. قیمتش حدودا چقدر میشه؟ شما با تبسمی که روی لبتونه، لپتاپتون رو روشن میکنید. و متراژ رو میدید به برنامه و قیمت طبق عکس زیر محاسبه میشه. :)
در عکس زیر، برنامه بالا، قیمت خونه هایی با متراژ 100، 120، 190 و 375 متر رو محاسبه کرده.
توجه کنید که مدلمون تنها با 5 نمونه آموزشی، آموزش دید و طبعا هرچقدر تعداد نمونه آموزشیمون بیشتر باشه مدلمون دقیق تر خواهد بود.
خلاصه
1- در علم شناسایی الگو، کامپیوتر به دنبال الگو هایی میگرده تا بتونه با اون الگوهای داده ها رو تقریب بزنه و رفتارشون رو درک کنه. به این امید که از روی الگو ها آینده رو پیشبینی کنه.
2- برای اینکه به کامپیوتر مفهومی رو بیاموزیم باید اون مفهوم رو به صورت ریاضی بنویسیم. چراکه معادله های ریاضی به راحتی به زبان کامپیوتر یعنی صفر و یک تبدیل میشوند. (تنها راه صحبت با کامپیوتر)
3- در مساله پیشبینی قیمت خانه با استفاده از معادله خط، تونیستیم الگوی کشف شده (هرچقدر خونه بزرگتر، قیمتش بیشتر) از داده های خرید فروش قبلی رو مدل کنیم. اما مهم ترین قسمت که تو این مقاله فرصت نمیشد راجع بش صحبت کنیم، بدست آوردن مجهولات معادله بود (شیب خط و عرض از مبدا) که در مقاله بعدی راجع بش صحبت خواهیم کرد.
« قسمت بعد هوش مصنوعی به زبان خیلی ساده »
امیدوارم موضوعاتی که مطرح کردم براتون جالب بوده باشه. و بهم در اصلاح کاستی ها در نظرات کمک کنید.
آخرین ویرایش: 9 / 8 / 1398
مطلبی دیگر از این انتشارات
3. هوش مصنوعی به زبان خیلی ساده: شبکه عصبی مصنوعی1
مطلبی دیگر از این انتشارات
شناسایی چهره در تصویر به زبان خیلی ساده + کد پایتون
مطلبی دیگر از این انتشارات
4. هوش مصنوعی به زبان خیلی ساده: شبکه عصبی مصنوعی2