ماهنامه شبکه ۱۸۹/ حمیدرضا تائبی
هر زمان یک برنامه کاربردی ادعا میکند به «فناوری هوش مصنوعی تجهیز شده است» احساس میکنیم در آینده قرار داریم. اما بهراستی معنای این جمله چیست؟ اصطلاحات اعجابانگیزی همچون هوش مصنوعی، یادگیری ماشینی، شبکههای عصبی و... دقیقاً چه کاری انجام میدهند؟ آیا این فناوریها آنگونه که ادعا میشود، این پتانسیل را دارند تا عملکرد و کارایی برنامههای کاربردی را بهبود بخشند؟
گوگل و مایکروسافت بهتازگی یادگیری مبتنی بر شبکههای عصبی را به برنامههای ترجمه خود اضافه کردهاند. گوگل گفته است از یادگیری ماشینی بهمنظور تهیه فهرستی از آهنگهای پیشنهادی استفاده میکند. Todoist میگوید از هوش مصنوعی بهمنظور مشخص کردن زمان پایان یافتن کارها استفاده میکند. Any.do ادعا کرده است بات مبتنی بر هوش مصنوعی این سایت قادر است یک سری از وظایف کاربران را خود انجام دهد. جالب آنکه تمام این شرکتها تنها در یک هفته این صحبتها را مطرح کردهاند. در حالی که به نظر میرسد تعدادی از این گفتهها بیشتر تکنیکهای تبلیغاتی هستند و شرکتها سعی کردهاند، اینگونه وانمود کنند که برنامههای آنها مورد علاقه طیف گستردهای از کاربران قرار دارد. اما در بعضی موارد این فناوریها تأثیرگذاری محسوس خود را نشان دادهاند. هوش مصنوعی، یادگیری ماشینی و شبکههای عصبی همگی به توصیف راهکارهایی میپردازند که به کامپیوترها اجازه میدهند فعالیتهای خود را به شکل پیشرفتهتر و بر مبنای شرایط محیطی انجام دهد. در این بین تعدادی از توسعهدهندگان برنامههای کاربردی برای توصیف برنامه هوشمند خود به یک شکل از این اصطلاحات استفاده میکنند، اما واقعیت این است که این فناوریها به طور کامل با یکدیگر متفاوت بوده و هر یک کارکرد خاص خود را دارند. ما در این مقاله سعی خواهیم کرد به بیانی ساده هر یک از این فناوریها را مورد بررسی قرار دهیم.
شبکههای عصبی با تقلید از مغز انسان دادههای پیچیده را تحلیل میکنند
(ANN) (سرنام Artificial Neural Networks) به گونهای از شبکههای عصبی مصنوعی گفته میشود که رویکرد ویژهای از مدل یادگیری را مورد استفاده قرار میدهند و از رویکرد سیناپسها در مغز انسان الگوبرداری میکنند. رویکردهایی که در محاسبات سنتی از آنها استفاده میشود، به این شکل عمل میکنند که یک سری عبارات منطقی را برای انجام وظیفهای مورد استفاده قرار میدهند. اما در شبکههای عصبی مجموعهای از گرههای شبکه (شبیه به سلولهای عصبی عمل میکنند) و یالها (Edges) که شبیه به سیناپسها عمل میکنند برای پردازش دادهها مورد استفاده قرار میگیرند. ورودیها به درون سامانه وارد شده، مورد پردازش قرار گرفته و یک سری خروجی را تولید میکنند. در ادامه، خروجیهای تولید شده با دادههای شناخته شده مورد مقایسه قرار میگیرد.
به طور مثال، در نظر دارید به یک کامپیوتر آموزش دهید یک سگ را در یک تصویر شناسایی کند. برای این کار میلیونها تصویر از سگهای مختلف را به درون این شبکه وارد میکنید و سپس تصاویری که سامانه تشخیص داده است شبیه به سگها هستند را دریافت میکنید. در این گام، عامل انسانی میتواند به شبکه عصبی اعلام دارد کدامیک از خروجیها دقیقاً تصویر متعلق به یک سگ است. به این ترتیب، مسیرهایی که منتهی به تشخیص درست میشوند را روی یک شبکه عصبی مصنوعی تقویت میکنید. با تکرار این پروسه به دفعات، شبکه عصبی مصنوعی به اندازهای مهارت پیدا میکند که قادر خواهد بود تصویر متعلق به سگها را با دقیقترین جزییات شناسایی کند. برای آنکه از نزدیک با شیوه کارکرد این شبکهها آشنا شوید، پیشنهاد میکنم سرویس Quick Draw گوگل را مورد آزمایش قرار دهید.
در این پروژه مطالعاتی گوگل به شبکهای عصبی یاد میدهد تصاویری که مردم ترسیم میکنند را شناسایی کند. به طور مثال، در شکلهای 1 و 2 شبکه عصبی موفق شد، شکل ترسیمی را شناسایی کرده و به کاربر بگوید (به شکل صوتی) این تصویر یک گربه است. حتی اگر مهارتهای شما در رسم تصاویر ضعیف باشد، این شبکه عصبی باز هم قادر است تصاویر را تشخیص دهد. با وجود این، شبکههای عصبی مصنوعی را نمیتوان برای حل تمام مشکلات مورد استفاده قرار داد. اما زمانی که با دادههای پیچیدهای سروکار دارید، آنها بهترین گزینه هستند. با توجه به اینکه فرآیند ترجمه متون کار تخصصی و سختی به شمار میرود، گوگل و مایکروسافت از این رویکرد قدرتمند در ارتباط با برنامههای ترجمه خود استفاده کرده و نتایج خوبی نیز به دست آوردهاند. همه ما تا به امروز ترجمههای ضعیف بسیاری را مشاهده کردهایم، اما شبکههای یادگیری عمیق عصبی به یک سامانه اجازه میدهند بهمرور زمان از ترجمههای صحیحی که انجام داده است نکات بیشتری را یاد بگیرد.
شکل 1 - یک تصویر ابتدایی که توسط عامل انسانی رسم شده است.
مشابه چنینی رویکردی در ارتباط با تشخیص گفتار نیز وجود دارد. زمانی که گوگل شبکههای عمیق عصبی را به سرویس صوتی خود Google Voice اضافه کرد، نرخ اشتباهات این برنامه به میزان 49 درصد کم شد. البته این قابلیت هیچگاه کامل نخواهد بود، اما بهمرور زمان ویژگیهای عصبی بیشتری به موازات این دستاورد به برنامهها افزوده خواهد شد. به هر ترتیب، با استفاده از رویکرد یادگیری مبتنی بر شبکههای عمیق عصبی، تحلیل دادههای پیچیدهتر روزبهروز پیشرفت خواهد کرد، به طوری که ویژگیهای طبیعیتری به برنامههای کاربردی اضافه خواهد شد.
یادگیری ماشینی با رویکرد تمرین بیشتر باعث پیشرفت کامپیوترها میشود
یادگیری ماشینی یکی از پراستفادهترین اصطلاحاتی است که این روزها آن را مشاهده میکنید. هرگونه تلاشی که درنهایت به یک کامپیوتر اجازه دهد به شکلی مستقل و پیشرفته کارهای خود را انجام دهد، در زمره دستاوردهای این شاخه قرار میگیرد. اگر در نظر داشته باشیم این اصطلاح را به شکل تخصصیتری توصیف کنیم، باید بگوییم یادگیری ماشینی به سامانههایی اشاره دارد که در آن عملکرد یک ماشین در انجام یک وظیفه منحصراً بر پایه تجربیاتی است که از اجرای همان وظیفه به دست آورده و بهبود پیدا کرده است. شبکههای عصبی مثالی از یادگیری ماشینی هستند. اما این فناوری را به اشکال مختلفی میتوان پیادهسازی کرد. یکی دیگر از زیرشاخههای یادگیری ماشینی که این روزها بهکرات شاهد آن هستیم، یادگیری تقویتی (Reinforcement Learning) است. در یادگیری تقویتی، کامپیوتر وظیفهای را انجام داده و در ادامه نتایج مورد بررسی قرار میگیرد. بازی شطرنج مثال خوبی در این زمینه است. یک کامپیوتری یک بازی شطرنج را به طور کامل انجام میدهد و درنهایت یا برنده بازی میشود یا در بازی شکست میخورد. اگر کامپیوتر برنده این بازی باشد، به مجموعه حرکاتی که در طول بازی انجام داده و به پیروزی کامپیوتر منجر شدهاند، یک امتیاز مثبت تخصیص داده میشود.
شکل 2 - شبکه عصبی تصویر را شناسایی میکند و اعلام میدارد که یک گربه است.
در ادامه، بعد از آنکه میلیونها بار این بازی را انجام داد، سامانه بر مبنای نتایجی که در این مدت به دست آورده است میتواند تشخیص دهد که چه حرکاتی احتمال برد او را در بازیها بیشتر میکنند. در شرایطی که شبکههای عصبی برای انجام کارهایی همچون تشخیص الگوها در تصاویر کارکرد خوبی دارند، اما در مقابل مدلهای دیگر یادگیری ماشینی میتوانند بهمنظور انجام یک سری وظایف خاص به صورت بهینهسازی شده مورد استفاده قرار گیرند. گوگل در این ارتباط گفته است: «برنامه موسیقی به این شکل عمل میکند که قطعه مورد علاقه شما را پیدا میکند و هر زمان شما اراده کنید که به موسیقی گوش فرا دهید آن قطعه را برای شما پخش میکند.»
این برنامه بر مبنای الگوی رفتاری شما کار کرده و فهرستی را منطبق با علایق شما آماده میکند. اگر شما از قطعهای که برایتان انتخاب شده است راضی نباشید، به منزله آن است که سیستم شکست خورده است. با این حال، اگر هریک از قطعات موسیقی انتخابی را قبول کنید، سیستم این نتیجه مثبت را ثبت کرده و رویکردهایی که درنهایت بهمنظور ساخت یک فهرست شخصی مورد استفاده قرار میگیرند را تقویت میکند. به طور مثال، اگر برای اولین بار برنامه موسیقی گوگل را باز کنید، با پیشنهادات درهم و برهمی روبهرو میشود. اما هرچه بیشتر از این برنامه استفاده کنید پیشنهادات هدفمندتر و دقیقتری را مشاهده خواهید کرد. این رویکرد دقیقاً در ارتباط با یوتیوب نیز صدق میکند. کافی است با حساب کاربری خود وارد یوتیوب شوید و به جستوجو بپردازید. در زمانهای بعد مشاهده خواهید کرد یوتیوب فهرستهایی را در اختیار شما قرار میدهد که در تشابه نزدیکی با علایق شما قرار دارند. با وجود این باز هم یادگیری ماشینی را در همه امور نمیتوان مورد استفاده قرار داد و ممکن است در بعضی موارد یک سری ناهمگونیهایی را مشاهده کنید.
به طور مثال، اگر هر 6 ماه یک بار از برنامه موسیقی گوگل استفاده کنید، پیشنهاداتی که ارائه میشوند هیچگاه باب میل شما نخواهند بود. به عبارت دقیقتر، این رویکرد تنها زمانی دقیق و درست عمل میکند که شما به دفعات از آن استفاده کنید.
به هر ترتیب، یادگیری ماشینی به عنوان یکی از پرکاربردترین اصطلاحات روز دنیای فناوری نکات مبهم بسیاری در مقایسه با شبکههای عصبی دارد. ولی نشان داده است، اگر از نرمافزاری استفاده کنید و بازخوردهای مرتب و منظمی را در اختیار آن برنامه قرار دهید، بهمرور زمان شاهد بهبود عملکرد آن برنامه خواهید بود.
هوش مصنوعی به هر شیء هوشمند اطلاق میشود
دقیقاً مشابه با شبکههای عصبی که شکلی از یادگیری ماشینی هستند، یادگیری ماشینی خود شکلی از هوش مصنوعی است. با وجود این، گروهبندیهای دیگری نیز در زیر شاخه هوش مصنوعی قرار میگیرند، اما آنگونه که باید و شاید مورد توجه نیستند، به طوری که در ارتباط با بعضی از این گروهها ارائه یک تعریف واحد کمی بیمعنا به نظر میرسد. در حالی که در تعدادی از فیلمهای علمی و تخیلی یک سری تصورات ذهنی را مشاهده میکنیم. اما واقعیت این است که در بعضی از حوزههای هوش مصنوعی به اندازهای از پیشرفت دست پیدا کردهایم که تا همین چند سال پیش تقریباً تصور آن را هم نمیکردیم. به طور مثال، نویسهخوانی نوری (OCR) (سرنام Optical Character Recognition) از جمله نقاط عطف هوش مصنوعی به شمار میرود. این فناوری در شرایطی این روزها به سهولت در اختیار ما قرار دارد که تا چند سال پیش اگر در نظر داشتید این فناوری را در اختیار داشته باشید، باید هزینه سنگینی پرداخت میکردید.
امروزه ابتداییترین گوشیها نیز قادر هستند یک سند را اسکن و آن را به متن تبدیل کنند. این فناوری به اندازهای پیشرفت کرده است که بهراحتی میتوانید گوشی خود را روی یک تصویری که به طور مثال لغات فرانسوی در آن قرار دارد نگه داشته و برنامه به طور همزمان کلمات را شناسایی و آنها را به زبان مورد نظر شما ترجمه میکند. این فناوری دیگر هیجانبرانگیز تلقی نمیشود و بیشتر به عنوان یکی از وظایف ابتدایی هوش مصنوعی از آن نام برده میشود. دلیل اینکه چنین کار سادهای در مجموعه هوش مصنوعی قرار میگیرد به این دلیل است که ما دو رویکرد کلی ضعیف (Weak or narrow) و قوی (Strong) را در حوزه هوش مصنوعی داریم. ضعیف در حوزه هوش مصنوعی اشاره به سامانههایی دارد که برای انجام یک یا چند وظیفه خاص طراحی شدهاند. به طور مثال، سیری اپل و Google Assistant دو برنامه کاملاً قدرتمند هستند، با وجود این در این گروه قرار میگیرند به دلیل اینکه دامنه فعالیتهای آنها به یک سری دستورات صوتی و پاسخ دادن به آنها محدود میشود. در حالی که تحقیقات گستردهای برای پیادهسازی چنین قابلیتهایی از سوی گوگل و اپل انجام شده است، اما باز هم به این چنین برنامههایی در حوزه هوش مصنوعی weak گفته میشود.
واقعیت این است که در بعضی از حوزههای هوش مصنوعی به اندازهای از پیشرفت دست پیدا کردهایم که تا همین چند سال پیش تقریباً تصور آن را هم نمیکردیم.
قوی در مقابل ضعیف قرار دارد. واژه قوی اشاره به هوش مصنوعی عمومی (AGI) (سرنام Artificial General Intelligence) دارد. در بعضی منابع از واژه هوش مصنوعی کامل (full AI) نیز استفاده میشود. این سامانهها قادر هستند همانند انسانها هر وظیفهای را انجام دهند و همان گونه که در مقاله شماره قبل «همزیستی مستقل انسان و هوش مصنوعی» به آن اشاره کردیم، هنوز چنین سامانههایی ساخته نشدهاند. در نتیجه نباید در آینده نزدیک در انتظار روباتهای هوشمندی همچون Alan Tudky باشید که بتوانند تمام کارهای روزمره زندگی را انجام دهند. از آنجا که تقریباً تمام سامانههای هوشمندی که از آنها استفاده میکنید در رده weak AI قرار دارند، هر زمان عبارت هوش مصنوعی را در ارتباط با یک برنامه مشاهده کردید، بدانید که منظور این است که برنامه فوق فقط هوشمند است. این احتمال وجود دارد که جملات یا پیشنهادهای جالب توجهی را در این ارتباط مشاهده کنید، اما باید این واقعیت را بدانید که هنوز هیچیک از این برنامهها قادر نیستند با هوش انسانی رقابت کنند.
دقیقاً مشابه با شبکههای عصبی که شکلی از یادگیری ماشینی هستند، یادگیری ماشینی خود شکلی از هوش مصنوعی است
در شرایطی که معناشناسی این اصطلاحات کمی پیچیده است، اما در مقابل پژوهشهای علمی و دستاوردهایی که در حوزه هوش مصنوعی به دست آمده کارایی خود را بهخوبی نشان دادهاند. به طوری که امروزه در زندگی روزمره خود تأثیرات این پژوهشها را مشاهده میکنیم. به طور مثال، هر زمان گوشی هوشمند شما مکانی که خودروی خود را در آنجا پارک کردهاید را به شما یادآوری میکند، چهرههایی را درون تصاویر مختلف شناسایی میکند یا در هنگام جستوجوی معمول نتایج مشابهی را به شما نشان میدهد یا قادر است تصاویر مربوط به سفرهای مختلف را به شکل دقیقی برچسبگذاری و طبقهبندی کند در تمام این موارد به طور مستقیم و غیر مستقیم از هوش مصنوعی استفاده کردهاید. تا حدی میتوانیم تعریف هوش مصنوعی را به معنای هوشمندتر کردن برنامههای کاربردی بسط دهیم. رویکردی که همه ما به دنبال آن هستیم. این هوشمندی در شرایطی است که یادگیری ماشینی و بهطبع آن شبکههای عمیق عصبی به شکل منحصر به فردی به منظور انجام یک سری از وظایف آن هم به شکلی ایدهآل مناسب هستند.
اما به این نکته توجه داشته باشید زمانی که یک برنامه اعلام میدارد که از هوش مصنوعی استفاده میکند این حرف کمتر به معنای آن است که این برنامه از یادگیری ماشینی استفاده میکند. همین موضوع در ارتباط با شبکههای عصبی نیز صادق است. گفتن این حرف که یک برنامه از یادگیری ماشینی به منظور انجام بهتر کارها استفاده میکند، تقریباً شبیه به گفتن این جمله است که یک دوربین بهتر است، به این دلیل که دیجیتالی است؛ بله دوربینهای دیجیتالی برای انجام بعضی از کارها بهتر از دوربینهای نگاتیو قدیمی هستند، اما این حرف لزوماً به معنای آن نیست که هر عکس دیجیتالی بهتر از یک عکس آنالوگ خواهد بود. به عبارت دیگر، خوب بدون هرچیز به طرز استفاده از آن وسیله بستگی دارد. تعدادی از شرکتها این توانایی را دارند تا شبکههای عصبی قدرتمندی را توسعه دهند که بهخوبی قادر به انجام وظایف پیچیده هستند، به طوری که زندگی بهتری را برای ما به ارمغان میآورند.
اما تعداد دیگری از این شرکتها تنها یک برچسب یادگیری ماشینی روی محصولات خود قرار میدهند. در حالی که در عمل محصول آنها همان کاری که در گذشته انجام میداده است را بدون هیچگونه تغییری انجام میدهد. اما بدون شک در پشت صحنه، یادگیری ماشینی و شبکههای عصبی فناوریهای هیجانبرانگیزی هستند. با وجود این به این نکته توجه داشته باشید، هر زمان در توضیحات یک برنامه چنین اصطلاحاتی را مشاهده کردید، این حرف به معنای آن است که این برنامهها احتمالاً کمی هوشمندتر است. در نتیجه همانند گذشته، ابتدا یک برنامه را مورد استفاده قرار دهید و بررسی کنید که این برنامه تا چه اندازه برای شما مفید بوده است، آنگاه درباره آن قضاوت کنید.