یادگیری ژرف چیست و چگونه کار می‌کند؟

یادگیری ژرف چیست و چگونه کار می‌کند؟

این روزها عناوینی مانند Artificial Intelligence (هوش مصنوعی)، Machine Learning (یادگیری ماشینی)، Neural Networks (شبکه‌های عصبی) و Deep Learning (یادگیری ژرف) را بیش از پیش می‌شنویم. در همین راستا، در این مقاله به بررسی برخی از اصطلاحات رایج در زمینهٔ هوش مصنوعی خواهیم پرداخت و همچنین به شما خواهیم گفت که محبوب‌ترین نوع یادگیری ماشینی -یعنی Deep Learning- چیست و چگونه کار می‌کند.

آشنایی با تعاریف هوش مصنوعی (AI) و یادگیری ماشینی (ML)
به طور خلاصه، هوش مصنوعی عبارت است از شبیه‌سازی هوش انسان در کامپیوترها. نخستین بار که پژوهش‌ها در زمینهٔ هوش مصنوعی آغاز شد، تلاش پژوهشگران بر این بود تا با دادن اطلاعات هوش انسانی به کامپیوترها، آنها را قادر سازند تا وظایف تعریف شده‌ای مانند بازی کردن را انجام دهند. بدین ترتیب، با تعریف قوانین مورد نیاز، کامپیوترها فهرستی از اقدامات خاص احتمالی را در اختیار داشتند و می‌توانستند با توجه به آن تصمیم بگیرند (برای کسب اطلاعات بیشتر در مورد هوش مصنوعی، به مقالهٔ هوش مصنوعی (AI) چیست؟ مراجعه نمایید).

یک تعریف ساده از یادگیری ماشینی هم عبارت است از توانایی ماشین برای یادگیری با استفاده از مجموعه‌ای از داده‌ها و عمل بر اساس آنها و نه صرفاً براساس قوانین تعریف شده و ثابتی که از قبل کدنویسی شده‌اند. به زبان ساده‌تر، یادگیری ماشینی این امکان را برای ماشین (سیستم) فراهم می‌آورد تا خود به تنهایی بتواند چیزی را بیاموزد. در یادگیری ماشینی از قدرت پردازش کامپیوترهای مدرن به منظور تحلیل مجموعه‌های بزرگ دیتا استفاده می‌شود (برای آشنایی بیشتر پیرامون این موضوع، به مقالهٔ یادگیری ماشینی چیست؟ مراجعه نمایید).

تفاوت یادگیری نظارت‌شده و یادگیری بدون نظارت
Supervised Learning (یادگیری نظارت‌شده) عبارت از به کار بردن داده‌های تگ‌گذاری شده و ارائهٔ خروجی‌های متناسب است. به عبارت دیگر، آموزش هوش مصنوعی با روش یادگیری نظارت‌شده بدین صوررت است که یک ورودی به کامپیوتر وارد شده و خروجی متناسب با آن عیناً به آن ارائه می‌شود؛ سپس کامپیوتر خروجی ارائه‌ شده را با خروجی‌ای که خود تولید نموده مقایسه می‌کند و در صورت وجود مغایرت، محاسبات خود را برای تصمیم‌گیری‌های بعدی اصلاح می‌نماید. این فرآیند آن‌قدر تکرار می‌شود تا کامپیوتر دیگر دچار اشتباه نشود و قادر باشد با دریافت یک داده، خروجی متناسب با آن را ارئه نماید.

یک نمونه از کاربردهای یادگیری نظارت شده را می‌توان در پیش‌بینی وضع هوا مشاهده نمود بدین صورت که اطلاعات آموزشی از قبیل فشار، رطوبت، سرعت باد و … به عنوان دادهٔ ورودی وارد شده و دادهٔ خروجی آن، دما خواهد بود.

Unsupervised Learning (یادگیری بدون نظارت) فرآیند یادگیری با استفاده از مجموعه‌ای از داده‌ها است که فاقد ساختار از قبل تعیین‌شده‌ای هستند. هنگامی که هوش مصنوعی با استفاده از روش یادگیری بدون‌نظارت آموزش می‌بیند، داده‌ها در کامپیوتر به صورت منطقی طبقه‌بندی شده و مورد تحلیل قرار می‌گیرند.

یک مثال خیلی خوب از یادگیری بدون نظارت، استفاده از هوش مصنوعی در پیش‌بینی‌ رفتار کاربران در یک وب‌سایت تجارت الکترونیک (فروشگاه آنلاین) است. در این فرآیند، هوش مصنوعی نه بر اساس یک مجموعه دیتای ورودی و خروجی بلکه بر مبنای طبقه‌بندی خود از داده‌های ورودی آموزش می‌بیند و پس از آن می‌تواند خرید‌های بعدی کاربران را پیش‌بینی نماید.

یادگیری ژرف (عمیق) چیست؟
اکنون که به تفاوت این چند اصطلاح رایج پی‌ بردیم، می‌توانیم به بررسی طرز کار یادگیری ژرف یا یادگیری عمیق (Deep Learning) بپردازیم. یادگیری ژرف یکی از روش‌های یادگیری ماشینی است که این امکان را برای هوش مصنوعی را فراهم می‌سازد تا یاد بگیرد (لازم به ذکر است که هر دو نوع یادگیری نظارت‌شده و بدون نظارت، در این روش می‌توانند مورد استفاده قرار گیرند). در ادامه با ایجاد یک سرویس فرضی تخمین قیمت بلیط هواپیما، نحوهٔ کار یادگیری ژرف با استفاده از یادگیری نظارت‌شده را تشریح خواهیم نمود.

در اینجا ما می‌خواهیم که سرویس تخمین قیمت، قیمت بلیط هواپیما را برمبنای چهار فاکتور زیر پیش‌بینی نماید:

- فرودگاه مبداء
- فرودگاه مقصد
- تاریخ پرواز
- خط هوایی

شبکه‌های عصبی
اجازه بدهید به درون مغز هوش مصنوعی نگاهی بیندازیم. مغز هوش مصنوعی، مانند مغز موجودات زنده، از نورون‌ها تشکیل شده‌ است (نورون‌ها همان سلول‌های عصبی هستند). در تصویر زیر نورون‌ها به صورت دایره‌هایی نمایش داده شده‌اند. نورون‌ها در داخل این مجموعه با یکدیگر مرتبط هستند و به سه نوع (یا لایهٔ) مختلف تقسیم می‌شوند:
- Input Layer (لایهٔ ورودی)
- Hidden Layers (لایه‌های پنهان)
- Output Layer (لایهٔ خروجی)

 یادگیری ژرف چیست و چگونه کار می‌کند؟

لایهٔ ورودی همان‌طور که از نام آن پیدا است، داده‌های ورودی را دریافت نموده و آنها را به نخستین لایهٔ پنهان انتقال می‌دهد. به عنوان مثال، در سرویس تخمین قیمت بلیط که قصد ایجاد آن را داریم، چهار نورون در لایهٔ ورودی وجود دارد که هر یک از آنها یکی از داده‌های ورودی فرودگاه مبداء، فرودگاه مقصد، تاریخ پرواز و خط هوایی را دریافت می‌کنند.

لایهٔ‌ پنهان، محاسبات ریاضیاتی را بر روی داده‌های ورودی انجام می‌دهد که در این بین، یکی از چالش‌های ایجاد شبکه‌های عصبی، تصمیم‌گیری در مورد تعداد لایه‌های پنهان و همچنین تعداد نورون‌های موجود در هر لایه است. در واقع، در یادگیری ژرف، کلمهٔ Deep (ژرف یا عمیق) به حالتی اشاره دارد که بیش از یک لایهٔ‌ پنهان در شبکه‌ٔ‌ عصبی وجود داشته باشد.

در نهایت، لایهٔ خروجی داده‌های خروجی را به ما برمی گرداند. به عنوان مثال در سرویس تخمین قیمت بلیط که در بالا بدان اشاره شد، این دادهٔ خروجی چیزی نیست جز قیمت پیش‌بینی شدهٔ بلیط هواپیما (Price).

 یادگیری ژرف چیست و چگونه کار می‌کند؟

یادگیری ژرف چگونه کار می‌کند؟
اکنون سؤال اینجا است که این قیمت چگونه محاسبه می‌شود؟ این همان جایی است که پای جادوی یادگیری ژرف به میان می‌آید. هر یک از کانکشن‌ها (ارتباطات) میان نورون‌ها دارای وزنی است و این وزن هر یک از این کانکشن‌ها است که میزان اهمیت آن را تعیین می‌کند. وزن‌های اولیه به صورت تصادفی تنظیم می‌شوند؛ اما عملاً برخی از کانکشن‌ها اهمیت بیشتری داشته و باید وزن بیشتری برای آنها در نظر گرفته شود. به عنوان مثال، از آنجا که در تعیین قیمت بلیط،‌ تاریخ پرواز نقش خیلی مهمی دارد بنابراین کانکشن نورونی مربوط به این فاکتور وزن بیشتری باید داشته باشد.

هر یک از نورون‌ها یک Activation Function (تابع فعال‌سازی) دارد و این در حالی است که درک این فانکشن‌ها بدون استدلال‌ ریاضیاتی، امکان‌پذیر نیست! یکی از اهداف این فانکشن‌ها، استاندارد نمودن خروجی نورون‌ها است.

نحوهٔ آموزش دادن یک شبکهٔ عصبی
آموزش دادن هوش مصنوعی یکی از دشوارترین بخش‌های یادگیری ژرف است زیرا برای این منظور، به موارد زیر نیاز خواهیم داشت:
- به یک مجموعهٔ بزرگی از داده‌ها
- و همچنین فضا و توان کافی برای انجام محاسبات 

به طور خلاصه، هنگامی که مجموعه‌ای از داده‌های ورودی از تمام لایه‌های شبکهٔ عصبی عبور می‌کند، ما یک دادهٔ‌ خروجی (و یا مجموعه‌ای از داده‌های خروجی) را در لایهٔ خروجی شبکهٔ عصبی دریافت خواهیم نمود.

به عنوان مثال، برای ایجاد سرویس تخمین قیمت بلیط هواپیما به داده‌های قدیمی قیمت بلیط، فهرستی از فرودگاه‌ها، فهرستی از تاریخ پروازها و فهرستی از خطوط هوایی نیاز داریم. برای آموزش دادن هوش مصنوعی هم، داده‌های ورودی به هوش مصنوعی ارائه می‌شوند و از آنجا که هوش مصنوعی هنوز آموزش ندیده است، ممکن است خروجی‌های نادرستی تولید نماید! سپس داده‌های خروجی متناسب با داده‌های ورودی به آن ارائه شده و خروجی تولید شده توسط هوش مصنوعی با خروجی درست مقایسه می‌شود و نتیجهٔ‌ این مقایسه در تصمیم‌گیری‌های بعدی اعمال می‌گردد.

چگونه ضریب خطای هوش مصنوعی را به حداقل برسانیم؟
هنگامی که این فرآیند در مورد تک‌تک عناصر یک مجموعه داده انجام شد، می‌توان فانکشنی به نام Cost Function را ایجاد نمود که نشان می‌دهد هوش مصنوعی تا چه حد اشتباه عمل کرده است. به طور ایده‌آل، ما می‌خواهیم که مقدار Cost Function را به صفر برسانیم؛ یعنی آن‌قدر فرآیند آموزش را ادامه دهیم تا خروجی‌های هوش مصنوعی کاملاً بر خروجی‌های درست منطبق بوده و هیچ مورد اشتباهی وجود نداشته باشد.

برای کاهش مقدار Cost Function، می‌توان وزن هر یک از کانکشن‌های میان نورون‌ها را به طور تصادفی آن‌قدر تغییر داد تا زمانی که Cost Function کاهش یابد. با این حال، این روش کارآمدی نیست. به جای تغییر تصادفی وزن کانکشن‌ها، بهتر است از روشی به نام Gradient Descent استفاده کنیم (Gradient Descent تکنیکی است که امکان پیدا کردن کمترین مقدار Cost Function را برای ما فراهم می‌آورد).

ساز و کار این تکنیک بدین صورت است که پس از ورود هر مجموعهٔ داده، تغییر اندکی در وزن کانکشن‌ها ایجاد می‌نماییم. سپس با مشتق‌گیری از Cost Function در هر دور از آموزش، می‌توانیم حداقل به این موضوع پی‌ ببریم که کمترین مقدار آن در کدام جهت نمودار قرار دارد. برای روشن‌تر شدن موضوع، به نمودار زیر دقت کنید:

 یادگیری ژرف چیست و چگونه کار می‌کند؟

برای به حداقل رساندن میزان Cost Function ، نیاز به تکرار چندین بارهٔ آموزش با یک مجموعه داده مشخص داریم و به همین دلیل به توان محاسباتی بالا نیاز خواهیم داشت. در واقع، تنظیم مجدد وزن کانکشن‌ها با استفاده از تکنیک Gradient Descent به صورت خودکار انجام می‌شود و این همان جادوی یادگیری ژرف است! حال پس از آموزش کامل، سرویس تخمین قیمت بلیط هواپیما قادر خواهد بود تا قیمت‌های آینده را برای ما پیش‌بینی نماید.

در این مقاله به طور خلاصه به مقایسهٔ‌ برخی اصطلاحات رایج در هوش مصنوعی پرداخته شد و تلاش کردیم تا یک درک کلی را نسبت به مفهوم یادگیری ژرف ایجاد نماییم.

منبع


رائفه خلیلی