برای شروع صحبت و مقدمهچینی در مورد یادگیری ماشینی، چه چیزی بهتر از این نقل قول سراغ دارید؟ «دسترسی به حجمهای بالایی از دادهها در کنار ابزارهای آماری برای کند و کاو در آنها راهی جدید برای درک دنیا پیش روی ما باز کرده است. همبستگی میان دادهها کم کم جای مفاهیمی مثل عِلّیت را میگیرد. اینجاست که علم میتواند بدون هیچ گونه اتکایی بر مدلها، تئوریهای مشخص و حتی مدلهای مکانیستیک پیشرفت کند!»
جملات بالا را کریس اندرسون در سال 2008 سردبیر مجله وایرد (Wired) بیان کرد که سروصدای عدهای را درآورد. در آن زمان در یک مقاله در ژورنالی مربوط به زیست شناسی مولکولی این سوال را مطرح کرد که: اگر دیگر به دنبال مدلها و فرضیهها نرویم آیا میتوانیم همچنان آن را کارِ علمی بنامیم؟ در آن زمان پاسخ این سوال یک نه بزرگ بود. هوش مصنوعی کم کم دارد محدودیتهای دانشی بشری را به شکل دردآوری آشکار میکند.
حالا و در تاریخ نگارش این نوشته که کمتر از یک دهه از انتشار مقاله اندرسون میگذرد، شرایط به کلی فرق کرده است. پیشرفت در علم کامپیوتر آنها را قادر ساخته نیازی به تعریفِ مدلهای قطعی نداشته باشند. آنها میتوانند مدلهای خاص خود را بسازند. مدلهایی که بسیار متفاوت از دستساخته انسانها هستند. منظور از مدل در این جا مجموعه قوانینی است که مشخص میکند عناصر یک سیستم چگونه بر هم تاثیر میگذارند.
ماشین لرنینگ و درک متفاوت ماشینها نسبت به ما
درحالحاضر ما انسانها در حوزههای متنوع به ماشینهایی تکیه میکنیم که بر اساس مدلهای خاصی کار میکنند. مدلهای که ما نساختهایم بلکه خودشان ساختهاند!. مدلهایی که از درک انسان فراتر هستند و به دنیا نگاهی متفاوت دارند. این نگرش جدید هزینههایی هم در پی دارد چرا که فرضیات و باورهای قدیمی ما را هم زیر سوال میبرد. ما انسانها همواره فکر میکردیم باید برای بازشدن قفلها و رازهای هستی باید چیستی پدیدههای عالم را درک کنیم. ما همیشه به دنبال ساختن مدلهایی قابل فهم برای درک بهتر پدیدهها بودیم. اما با این ماشینها به نظر میرسد اشتباه میکردیم. شاید برای حل مسائل نیازی به فهم دنیای اطراف نداشته باشیم!!
مثالی عینی از الگوریتمهای یادگیری ماشینی
الگوریتمهایی عمومی وجود دارد که میتواند به شما چیزهای جالبی درباره مجموعهای از داده بگویند. بدون اینکه لازم باشد برای آن مساله خاص کدی بنویسید. به جای نوشتنِ کد فقط کافی است دادههای خود را به خورد آن الگوریتم بدهید تا بر اساس آن دادهها منطق خاص خود را بسازد. برای مثال، به یک سیستم یادگیری ماشینی، هزاران اسکن درهم و برهم از دست نوشتههایی از عدد 8 انگلیسی میدهید. این سیستم یاد میگیرد چگونه عدد 8 را در دست نوشتهای جدید و حتی با رسم الخطی متفاوت شناسایی کند.
این سیستم، شناسایی 8 ها را بر اساس قانونی مثل عدد هشت یعنی دو دایره که به صورت عمودی به هم وصل شدهاند انجام نمیدهد. سیستم به دنبال الگوهای پیچیدهای از پیکسلهای تیره و روشن میگردد که در قالب ماتریسهایی از اعداد بیان میشوند. کاری که انسانها در انجام آن به مشکل میخورند. حالا فکر میکنید تشخیص اعداد کجا کاربرد دارد؟ دوربین هایی که شما را در بزرگراهها به خاطر سرعت نقره داغ میکنند میتوانند مجهز به چنین سیستمهایی باشد. البته کار آنها سادهتر است چون رسم الخط تمامی اعداد در پلاک خودروها از یک الگو تبعیت میکند.
شبکههای عصبی ابزاری برای یادگیری ماشینی
یادگیری ماشینی میتواند کاربردهای بسیار پیچیدهای داشته باشد. مثلا با استفاده از مفهومی به نام شبکههای عصبی، گِرِهها یا نودها در یک شبکه عصبی میتوانند بر اساس دادههایی که از گرههای مجاور دریافت میکنند وضعیت خاموش یا روشن به خود بگیرند. یالهای(خطوط) بین گرهها هم وزنهای متفاوتی دارند که باعث میشود احتمال ایجاد تغییر وضعیت در گرههایی که به آنها متصل است برای برخی بیشتر باشد.
هر چند مفهوم شبکههای عصبی به دهه 50 میلادی بر میگردد اما کاربردهای جالب آنها به لطف پیشرفت ریاضیات، توان پردازش و ظرفیت ذخیرهسازی به تدریج دارد خود را نشان میدهد. این موارد نتیجه حوزهای پیچیده از علم کامپیوتر به نام یادگیری عمیق (Deep learning) است. این علم خروجیهای خود را بر اساس متغیرهای متنوع در شرایط بسیار متنوع که خود تحت تاثیر لایههای متنوعی از شبکههای عصبی هستند، ایجاد می کند و انسانها نمیتوانند مدلی را که یک کامپیوتر به این شکل میسازد به سادگی درک کنند.
سیستم یادگیری ماشینی برای محاسبه وضعیت سلامت افراد
بگذارید مثالی برای شما بزنم: فرض کنید یک سیستم میخواهد بر اساس دادههایی در مورد وضعیت جسمی افراد، وضعیت سلامت آنها را مشخص کند. این نوع مساله یعنی طبقهبندی یا Classification یکی از کاربردهای مهم شبکههای عصبی است. دادههایی که در قسمت چپ نمودار زیر به عنوان ورودی تلقی میشوند میتواند دمای بدن، سن، سابقه بیماری های مختلف، و … باشد. هر ورودی با کمانها یا یالهایی دارای وزن به لایه میانی (لایه مخفی) متصل میشود. خروجی به ازای هر دسته ورودی یک امتیاز است که جایگاه فرد را در دستههای مختلف مانند بیماری 1، بیماری 2، … یا سالم مشخص میکند.
در چنین شبکهای، مفهومِ یادگیری میتواند به این شکل باشد: ممکن است وزنهای بین گِرِهها دقیق نباشد. به همین دلیل دستهبندی با دقت مناسب انجام نشود. روش یادگیری، آموزش دادنِ شبکه عصبی با ورودیها و خروجیهای دُرُست است. در نتیجه باید دادههایی با نوع بیماری مشخص، به سیستم داده شود. سپس مسیر در نمودار فوق به صورت معکوس محاسبه میشود تا وزنها تعدیل شود. در این نوشته من خیلی ساده نحوۀ آموزش دادن یک شبکه عصبی را بیان کردم.
یادگیری ماشینی با منطقی غیر قابل درک برای ما
شبکههای عصبی میتواند در حوزههای مختلفی کاربرد داشته باشد. مثلا شبکههای عصبی به ما در تحلیل برهمکنشهای ژنها در بیماریهای ژنتیکی کمک میکند. یا با استفاده از شبکههای عصبی میتوان الگوی فروپاشی ذرات را در شتاب دهنده هایدرونی بزرگ (LHC) تشخیص داد. حتی از آن برای شناسایی دقیقترین مدل از بین 20 مدل تغییرات اقلیمی در هر نقطه زمانی، استفاده میشود.
در یک سازمان هم کاربردهای وسیعی میتوان برای این الگوریتمها متصور بود. از تشخیص رفتارهای متقلبانه در سیستمهای مالی و رتبه بندی اعتباری افراد و نهادها گرفته تا شناسایی ریشه عیوب محصولات، شناسایی دلایل خارجی تجهیزات و … . همگی اینها میتواند با استفاده از یادگیری ماشینی به شکلی اثربخشتر حل شود. چنین سیستمهایی نتایج خوبی به ما میدهند. به طور مثال شناسایی ذرههای زیراتمی به اسم بوزون هیگز (Higgs Boson) که چند سال پیش در صدر اخبار بود یکی از دستاوردهای این گونه سیستمها هست. ولی نکته مهم اینجاست که منطق این ماشینها برای ما قابل درک نیست.
الگوها و نتایج حاصل از تحلیلهای ماشینی
.چیزی که امروزه شاهد آن هستیم کامپیوترهایی هستند که از نظر قدرت تشخیص، پیدا کردن الگو و نتیجه گیری از ما جلو تر هستند. این امر همان دلیلی است که ما از کامپیوترها استفاده میکنیم. به جای این که متغیرهای یک پدیده را آن قدر تقلیل دهیم تا در قالب یک مدل ساده قرار بگیرد، میتوانیم به کامپیوترها اجازه دهیم مدلهایی هر اندازه بزرگ و مطابق با نیازشان بسازند. این امر بدین معنی است که دانستههای ما وابسته به خروجی ماشینهایی خواهد بود که نحوه استنتاج و منطق آنها را نمیتوانیم توضیح دهیم یا درک کنیم.
از همان زمانی که ما انسانها شروع به کندهکاری روی سنگ و دیوار غارها کردیم، از آن چه در اطرافمان بوده برای درک بهتر دنیا کمک گرفتهایم. ولی هرگز به چیزی تکیه نکرده بودیم که بازتاب الگوهای فکری انسانی نباشد. اگر طبق گفته افلاطون دانش را توضیح و توجیه یک باور دُرُست در نظر بگیریم؛ در حال حاضر داریم به سمت تولید دانشهایی میرویم که در آن، قسمتِ توجیه و توضیحِ این تعریف نه تنها سخت بلکه غیرممکن است.
کلام آخر:
طبق اطلاعاتی که در این مقاله با شما در میان گذاشتم لازم است بدانید توانمندیهای اینوتکس ایران در مدلسازی، الگوریتمهای هوشمند و مهندسی دانش، در ترکیب با درک مناسب از صنعت و کسب و کار شما، میتواند راهحلهای جالب و سودآوری برای شما خلق کند. برای ایجاد یک راهحل خوب در این زمینه، باید مسائل به خوبی تعریف شود. این دقیقا کاری است که کمک میکنیم، انجام دهید. بعد از آن، مدل یادگیری ماشینی خاص شما ساخته میشود و قابلیتهای نرمافزاری مورد نیازتان ایجاد میشود. برای دریافت اطلاعات بیشتر و یا مشاوره در این زمینه به صفحه ایجاد سیستم یادگیری ماشینی سر بزنید.