برنامه نویس :)
یک لیوان هوش مصنوعی برای همه!
من چند سال داخل و خارج از کشور پروژه های هوش مصنوعی توی زمینه های مختلفی رو طراحی و پیاده سازی کردم. و همیشه افراد غیر برنامه نویس و بعضا غیر کامپیوتری بودن که از این دست سوالات رو از من بپرسن:
- هوش مصنوعی چطوری کار میکنه؟
- هوش مصنوعی ریاضیه یا برنامه نویسی؟
- هوش مصنوعی سخته؟
- کامپیوتر چطوری میفهمه؟!
- منم میتونم یادبگیرم؟
- هوش مصنوعی دنیا رو تموم میکنه!؟ ??
خب اگر این سوالاتی که گفتم، سوالات شما هم هست و دوست دارید جوابشون رو بدونید این مقاله برای شماست!
چه پیش نیازی برای خوندن این مقاله نیازه؟
- چشم
- تسلط به زبان فارسی
? اصلا نیاز نیست برنامه نویس باشید یا ریاضی و آمارتون خیلی قوی باشه. میخوام خیلی ساده به یکسری سوالات معمولی که شنیدم درمورد هوش مصنوعی جواب بدم.
در ضمن اگر باز هم سوالی داشتید توی قسمت دیدگاه ها ازم بپرسید و جوابتون رو میدم. مثل مقاله های قبلی نمیگم سعی میکنم جوابتون رو بدم ? چون دیگه این تخصص خودمه ?.
هوش مصنوعی چیه؟
خب هیچ تعریف واحد و مشخصی برای هوش مصنوعی وجود نداره! چرا؟
چون اصلا خود «هوش» هنوز تعریف واحد و مشخصی نداره. پس تعاریف متعددی برای هوش مصنوعی توی مقالات و کتب علمی موجود هست(مثلا این مقاله رو مطالعه کنید). ولی بهم اجازه بدید تعریف خودم رو از هوش مصنوعی براتون بگم.
در کل هوش مصنوعی یا Artificial Intelligence به این معنی هست که یک ماشین (کامپیوتر، اتوموبیل، تسلیحات نظامی، هواپیما، ربات و....) یک رفتاری نزدیک به رفتار «انسان هوشمند» رو داشته باشه. یعنی توانایی هایی که در مغز ما وجود داره رو شبیه سازی کنه.
- یادبگیره
- منطق داشته باشه
- استدلال بکنه
- به موقع نسبت به تغییرات محیط عکس العمل صحیح نشون بده
- توانایی برقراری ارتباط با انسان رو داشته باشه
- مستقل تصمیم بگیره
- و....
اگر ماشینی یک یا چند مورد از موارد بالا رو داشته باشه یک ماشین هوشمند محسوب میشه. هوش مصنوعی مقابل هوش طبیعی انسان هست.
چند مثال از کاربرد های هوش مصنوعی:
- رانندگی خودکار: برخی از اتوموبیل ها و بیشتر هواپیماها
- تسلیحات نظامی: سیستم های هدایت خودکار موشک ها، ربات های پرنده ی هوشمند و....
- کشاورزی: آبیاری هوشمند، برداشت محصول با ربات های هوشمند و....
- وب: موتور های سرچ مثل گوگل، سیستم های تبلیغات هوشمند، مترجم های هوشمند و....
- امنیت یا Cybersecurity: تشخیص، ردیابی و مقابله ی هوشمند با حمله های سایبری
- پزشکی: آنالیز وضعیت بیماری، تجویز سیکل های درمانی، تحلیل بافت های سرطانی و....
- بازی: تحلیل تاکتیک های بازیکنان، Bot ها، مسیریابی و حرکت در داخل بازی ها و.....
- و هزاران مورد استفاده ی دیگه ? برای اطلاعات بیشتر این مقاله رو مطالعه کنید.
هوش مصنوعی چطوری کار میکنه؟
خب این یک سوال خیلی کلی هست.
یک سیستم هوشمند بنا به دلیل طراحیش و هدفش از الگوریتم های مختلف هوش مصنوعی استفاده میکنه.
اینطوری نیست که همه ی سیستم های هوشمند دقیقا مثل هم طراحی شده باشن. هر سیستم هوشمندی نسبت به هدفی که براش تعیین میشه از الگوریتم های متفاوتی استفاده میکنه.
یک متخصص هوش مصنوعی مثل من، تنها کارش اینکه تشخیص بده از چه الگوریتمی باید استفاده کنه (و البته پیاده سازیش هم بکنه و اگه دیوارش مثل من کوتاه باشه زیر ساخت Back-end رو هم خودش باید طراحی و پیاده سازی کنه ?)
دسته بندی های متفاوتی میشه برای الگوریتم های هوش مصنوعی نام برد. ولی من میخوام از سه الگوریتم هوش مصنوعی براتون پرده برداری کنم که کاربرد خیلی گسترده ای توی سیستم های هوشمند دارن ? البته این مثال هایی که میزنم فقط برای اینکه با نحوه ی کارکرد و یکسری از الگوریتم ها آشنا بشید. صدها الگوریتم مختلف دیگه هم وجود داره! اگر علاقه مند هستید درموردشون سرچ کنید.
۱- الگوریتم ژنتیک
یکی پر کاربرد ترین الگوریتم های هوش هست (از این به بعد به جای هوش مصنوعی میگم هوش ?) کاربرد این الگوریتم برای بهینه سازی هست. یعنی فرض کنید که ما میخوایم از تهران بریم به بندرعباس و سوخت ماشین مون هم محدوده و باید خیلی صرفه جویی بشه توی مصرف سوخت. پس باید کوتاه ترین و به عبارتی «کم هزینه ترین» مسیر انتخاب بشه. اینجاست که الگوریتم ژنتیک میاد وسط!
ما خودمون یکسری مسیر انتخاب میکنیم (اصلا مهم نیست مسیر های بهینه ای باشه) و این مسیر هارو میدیم به الگوریتم ژنتیک (به مسیر هایی که ما برای اولین بار انتخاب کردیم میگن First population)
ما قبلا به الگوریتم ژنتیک گفتیم که یک مسیر بهینه چه مسیری هست. میدونه که مسیری هست که کمترین سوخت رو مصرف بکنه. بعد از اینکه الگوریتم مسیر های اولیه ی مارو دریافت کرد، شروع میکنه به کار! اولین کاری که میکنه بهترین مسیر هایی رو که بهش دادیم انتخاب میکنه (بهش میگن Elite population) و این مسیر هارو باهم ترکیب میکنه (بهش میگن Crossover) و گاهی خودش تصادفی یکسری از مسیر هارو تغییر میده (بهش میگن Mutation) و انقدر اینکار رو تکرار میکنه تا به «کم هزینه ترین» مسیر ممکن برسه!
به همین راحتی! مثلا یکی از کارهای دیگه ای که با این الگوریتم انجام شده، اینکه ناسا به وسیله ی این الگوریتم یک آنتن طراحی کرده که بیشترین برد رو داره.
حالا چرا بهش میگن الگوریتم ژنتیک؟ چون این الگوریتم از قانون انتخاب طبیعی چارلز داروین کپی شده! قوی ها زنده میمونن و تولید مثل میکنن و گاهی دچار جهش ژنتیکی میشن و ضعیف ها از بین میرن! در واقع مسیر های پر هزینه از بین میرن و مسیر های بهینه تر باهم ترکیب میشن و جهش پیدا میکنن.
ساده تر از این نمیتونستم توضیح بدم اگر سوالی هست بپرسید تا جواب بدم ?
۲- الگوریتم کلونی مورچگان
همینطور که از اسم این الگوریتم مشخص هست از روی رفتار اجتمایی مورچه ها کپی برداری شده! این هم یک الگوریتم بهینه سازی هست.
مورچه ها وقتی حرکت میکنن یه ماده ی شیمیایی پشت سرشون به جا میذارن به اسم فرومون. با شاخک هاشون این ماده رو تشخیص میدن و بهش واکنش نشون میدن. این ماده بعد از مدتی از بین میره.
فرض کنید مورچه ها دنبال غذا هستند. اولین قدم اینکه همشون پخش میشن توی محیط و دنبال آبنبات میگردن (شایدم یه سوسک تپل ?) و به اطراف شروع به حرکت میکنن.
دومین قدم اینکه یکسری هاشون غذای مورد نظر رو پیدا میکنن! حالا باید مسیر رو برگردند به کلونی. توی مسیر برگشت پشت سرشون فرومون رو به جا میذارن و بوی مسیر قبلی رو «قوی تر» میکنن.
سومین قدم اینکه بقیه مورچه ها متوجه بو ی قوی فرومون میشن و اونها هم میرن توی همون مسیری که منتهی میشه به غذا و اتفاقی که میفته اینکه مسیر صحیح «قوی تر میشه» و بقیه ی مسیر ها فرومونشون کم رنگ و کم رنگ تر میشه تا از بین بره!
و همین! مورچه ها نزدیک ترین مسیر رو به غذا پیدا میکنن. خارق العاده نیست!؟
دقیقا عین همین اتفاق توی این الگوریتم میفته. یکسری Agent (همون مورچه ها) شروع میکنن جواب های مختلف رو تست میکنن و به میزان صحیح بودن اون جواب یک نمره میدن (همون فرومون) که هی توی هر قدم از این امتیاز کم میشه (چون فرومون بعد از مدتی از بین میره) اگه یه جواب خوب پیدا بشه همه ی Agent ها اون جواب رو انتخاب میکنن و هی امتیازش رو بیشتر میکنن. و به بهینه ترین جواب میرسن.
۳- غول مرحله ی آخر: شبکه های عصبی ??
این مفهوم دنیا رو گرفته! از سرچی که توی گوگل انجام میشه تا تسلیحات پیشرفته و سیستم های بسیار هوشمند پزشکی همشون از این مفهوم استفاده میکنن.
و به جرات مهم ترین الگوریتم و مفهوم دنیای هوش مصنوعی هست.
ولی تفاوتش با بقیه الگوریتم ها چیه که انقدر مهم و پر کاربرد هست؟
جوابش اینه : مغز آدم!
همینطور که گفتیم هوش مصنوعی سیستمی هست که مثل انسان هوشمند رفتار میکنه. و یکسری مثال هم زدیم از الگوریتم هایی که از قوانین طبیعی و یا رفتار مورچه ها کپی برداری شده.
ولی چی میشد اگه یه الگوریتمی وجود داشت که دقیقا مغز آدم رو شبیه سازی میکرد؟ ?
این دقیقا همون شبکه ی عصبی مصنوعی یا Artificial Neural Network هست. این سیستم هوشمند نحوه ی کارکرد مغز انسان رو شبیه سازی میکنه و میتونه دارای قابلیت یادگیری، منطق و استدلال بشه! یعنی اون چیزی که مارو تبدیل به انسان کرده رو داره. هوش مستقل!
این موضوع همون موضوعی هست که متفکرا و یکسری دانشمندا میگن بسیار خطرناکه و میتونه منجر به نابودی بشر بشه!
ولی من بهتون قول میدم که حالا حالا ها جای نگرانی نیست. چون حتی شبکه های عصبی مصنوعی هم محدودیت دارن و اون چیزی رو یاد میگیرن که ما میخوایم. خیلی با اون نقطه ای که این هوش بتونه سرخود عمل بکنه فاصله داریم.
من خودم خیلی مایلم که به طور تخصصی یک مقاله در مورد شبکه های عصبی مصنوعی اینجا بنویسم ولی ممکنه خیلی وقتم بگیره. اگر موافق هستید و درموردش کنجکاو هستید بهم اطلاع بدید که یه مقاله جدا در این مورد بنویسم.
هوش مصنوعی ترکیب چه علم هایی هست؟
خب هوش مصنوعی میان رشته ای هست.
یعنی میتونه هر علمی داخلش دخیل باشه. مثلا سیستم های هوشمند پزشکی، روانشناسی، هنری، نظامی و.... همشون علم های جدایی هستند ولی توی پروژه های هوش مصنوعی ازشون استفاده میشه.
البته در نهایت برای پیاده سازی هوش مصنوعی نیاز به این سه علم حتما هست:
- ریاضی
- آمار
- برنامه نویسی
و این سه تا علم پایه ی هوش مصنوعی هستند.
آیا هر کسی میتونه هوش مصنوعی یاد بگیره؟
خب بذارید یه رازی بهتون بگم. البته کسایی که منو میشناسن و این مقاله رو میخونن میدونن ? من اصلا دانشگاه نرفتم ? و هوش مصنوعی و بقیه چیز های دیگه رو (Back-end و ...) خودم با ریسرچ کردن و تمرین کردن تو یه دهه ی اخیر یاد گرفتم ?
پس جوابتون مثبته! اگر واقعا علاقه داشته باشید مهم نیست که رشته دانشگاهیتون چیه یا اصلا دانشگاه رفتید یا نه! با کسی که توی این حوزه تخصص داره مشورت کنید تا نقشه ی راهی بهتون بده و شروع کنید به یادگیری.
هیچ وقت دیر نیست!
(البته شاید تو یک مقاله نقشه ی راهی که خودم هوش مصنوعی رو یاد گرفتم براتون توضیح میدم. زیاد ساده نیست. خیلی پشت کار میخواد ?)
نتیجه گیری
هوش مصنوعی جادو نیست ? یکسری الگوریتم ریاضی هست که اکثرا از طبیعت الهام گرفته شده.
حالا حالا ها منتظر نابودی زمین به وسیله هوش مصنوعی نباشید ?
هر کسی میتونه هوش مصنوعی رو یاد بگیره اگر پشت کار و علاقه داشته باشه ?
ممنونم که مقاله ی من رو برای خوندن انتخاب کردید. خوشحال میشم به سوالاتتون جواب بدم. ?
مطلبی دیگر از این انتشارات
برنامه نویسی به زبان کاتلین - انواع داده در کاتلین - بخش دوم
مطلبی دیگر از این انتشارات
تبلتی ۲: تراژدی یک دانشجوی کامپیوتر
مطلبی دیگر از این انتشارات
hoisting و use strict در جاوا اسکریپت