آخرین ارتقا: ۱۰ مهر ۱۴۰۱
زمان مطالعه: ۲۷ دقیقه
«هوش مصنوعی» (Artificial Intelligence) و یکی از شاخههای مهم آن، یعنی «یادگیری ماشین» (Machine Learning)، به عنوان سنگبنای حوزه تازهی با نام «یادگیری عمیق» (Deep Learning) محسوب میشوند. هدف این شاخه از فناوری شرح، ساخت سیستمهای هوشمندی است که بتوانند همانند انسان، درباره محوری خاص تصمیمگیری کنند و وظایف مختلفی را به شکلی هوشمند انجام دهند. در مطلب حاضر، با هدف پاسخ به پرسش یادگیری عمیق چیست، به تبیین این شاخه از علوم کامپیوتر پرداخته میشود و کاربردها و قابلیتهای مدلهای مبتنی بر یادگیری عمیق مورد مرور قرار میگیرند. از سوی دیگر، در این مقاله به برخی از پرکاربردترین مدلهای یادگیری عمیق اشاره و به معرفی تعدادی از زبانهای برنامه نویسی رایج این حوزه پرداخته شده است.
فهرست مطالب این نوشته
یادگیری عمیق چیست ؟
تاریخچه یادگیری عمیق چیست ؟
مزایا و معایب یادگیری عمیق چیست ؟
کاربردهای یادگیری عمیق چیست ؟
معرفی فیلم های آموزش هوش مصنوعی
تفاوت یادگیری عمیق با یادگیری ماشین چیست ؟
شیوه یادگیری مدل های یادگیری عمیق چگونه است ؟
رویکردهای یادگیری عمیق کدامند ؟
روش های آموزش مدل های یادگیری عمیق چیست ؟
پرکاربردترین مدل های یادگیری عمیق کدامند ؟
رایج ترین زبان های برنامه نویسی یادگیری عمیق چیست ؟
جمعبندی
یادگیری عمیق به عنوان یکی از زیرشاخههای حوزه یادگیری ماشین تلقی میشود. هدف یادگیری عمیق طراحی سیستمهای کامپیوتری هوشمندی است که بتوانند مشابه انسان درباره مسئلهی خاص، راهحل ارائه کنند و مفاهیم بهروزی را یاد بگیرند.
این حوزه از فناوری، شاخهای مهم در «علم داده» (Data Science) است، زیرا اصلیترین مباحث این شاخه، آمار و مدلسازی برای پیشبینی مسائل مختلف را شامل میشود. مهندسان علم داده با استفاده از روشهای یادگیری عمیق میتوانند جمعآوری، تجزیه و تحلیل و تفسیر حجم عظیمی از دادهها را شتابانتر و آسانتر انجام دهند.
الگوریتمهای یادگیری عمیق با در اختیار داشتن ورودیهای مختلفی از دنیای بیرون مانند نگارهها، صوت و متن، به دنبال پیدا کردن الگوهایی هستند که با استفاده از آنها بتوانند پیشبینی خاصی را پیرامون محور مطرح شده انجام دهند.
به منظور ارائه پاسخ دقیق به پرسش یادگیری عمیق چیست باید نگاهی به ساختار مدلهای این حوزه از فناوری پرداخت. مدلهای یادگیری عمیق از ساختارهای لایه به لایهای تشکیل شدهاند که به آنها «شبکه عصبی» (Neural Network) گفته میشود. طرح چنین ساختاری، الهامگرفته از مغز انسان است. «نورونهای» (Neurons) مغز انسان دارای اجزایی با نامهای «دندریت» (Dendrite)، «هسته» (Nucleus)، «جسم سلولی» (Cell Body)، «آکسون» (Axon) و «اتمامههای آکسون | سیناپس» (Axon Terminals | Synapse) هستند. ورودیهای نورونها، سیگنالهایی به حساب میآیند که از حسهای بینایی، شنوایی، بویایی و لامسه انسان دریافت شده و به دندریت منتقل میشوند و سپس این دادهها به سمت آکسون ارسال شده و در نهایت از طریق پایان کارههای سیناپس به دندریت نورون بعدی فرستاده میشوند.
ساختار نورون در مغز
شبکههای عصبی نیز همانند مغز انسان، ورودیها را که در قالب بردارهای عددی هستند، در هر لایه با استفاده از چندین «گره» (Nodes) دریافت میکنند و با اعمال پردازش بر روی آنها، خروجی حاصل شده را به لایه بعدی خود منتقل میکنند. وزنهای موجود در شبکه عصبی، نقش سیناپس را در مغز انسان ایفا میکنند. به عبارتی، وزنها همان چیزی هستند که شبکههای عصبی باید یاد بگیرند. شبکه عصبی با استفاده از وزنهای یاد گرفته شده، تصمیم میگیرد کدام یک از ورودیهای نورونها در تعیین خروجی شبکه از اهمیت بالایی برخوردار هستند.
شباهت نورون در مغز و گره در شبکه عصبی
دادهها پس از گذشتن از تمامی لایههای میانی شبکه عصبی، به لایه آخر منتقل میشوند تا خروجی نهایی شبکه توسط این لایه محاسبه شود. خروجیهای شبکه میتوانند در قالبهای مختلفی ارائه شوند که هر یک از آنها در ادامه فهرست شدهاند:
مطلب پیشنهادی:
شبکه عصبی چیست ؟ — مفصل و به زبان ساده
ابتدا مطالعه
به منظور رسیدن به پاسخ پرسش یادگیری عمیق چیست، بهتر است تاریخچه این شاخه از فناوری را مورد تحلیل قرار داد. پیدایش حوزه یادگیری عمیق به دهه 1940 بازمیگردد. با این حال، در آن زمان به دلیل نقصهای مختلفی که در مدلهای ارائه شده وجود داشت، این حیطه از فناوری چندان مورد توجه قرار نگرفت. البته باید خاطرنشان کرد که همان مدلهای اولیه، راهگشای پیشرفت در پژوهشهای مدلهای عمیق شدند و نقش مهمی را در شکلگیری مدلهای قدرتمند در زمان حاضری ایفا کردند، به طوری که همچنان از بعضی مدلهای قدیمی در پیادهسازی برخی مسائل امروزی استفاده میشود.
در سالهای 1940 تا 1960، مطالعات اولیهای پیرامون مدلهای یادگیری عمیق شکل گرفت که ایده اولیه این پژوهشها از نحوه یادگیری بیولوژیکی انسان الهام گرفته شده بود. این مطالعات با نام «سایبرنتیک» (Cybernetics) شناخته میشدند که هدف آنها ساخت مدلهای محاسباتی بود. این مدلها مشابه مغز انسان و حیوان، به یادگیری مسئله خاصی میپرداختند. تا به در زمان حاضر نیز این شاخه از مطالعات، تحت عنوان «علوم اعصاب محاسباتی» (Computational Neuroscience) ادامه دارند.
نخستین مدل محاسباتی توسط «وارن موکولوچ» (Warren MuCulloch) و «والتر پیتس» (Walter Pitts) در سال 1943 ارائه شد. این دو فرد به عنوان عصبشناس و منطقدان با استفاده از نحوه کارایی نورون مغز، به طراحی مدلی پرداختند که با دریافت ورودی و اعمال عمل جمع برروی آنها، مقداری را در خروجی بازمیگرداند. وزنهای مورد نیاز این شبکه بهصورت دستی توسط انسان مشخص میشد.
نخستین مدل یادگیری عمیق
در اواخر دهه 1950، مدلی با عنوان «پرسپترون» (Perceptron) توسط روانشناس آمریکایی به نام «فرانک روزنبلات» (Frank Rosenblatt) ارائه شد. ساختار این مدل، مشابه با ساختار مدل ارائه شده توسط موکولوچ و پیتس بود اما وزنهای این شبکه عصبی بهصورت خودکار توسط مدل یاد گرفته میشدند. یکی از کاربردهای اصلی مدل پرسپترون در آن زمان، تشخیص تصویرها و دستهبندی آنها بود.
همزمان با ارائه مدل پرسپترون، مدل دیگری با عنوان «ادلاین» (ADALINE) توسط «برنارد ویدرو» (Bernard Widrow) مطرح شد که یادگیری وزنهای این مدل نیز همانند مدل پرسپترون، بهصورت خودکار بود. با این حال، بزرگترین نقصی که این مدل داشت، خطی بودن آن بود. به همین خاطر، این مدل نمیتوانست برای پیادهسازی مسائل غیرخطی نظیر XOR کارایی داشته باشد.
مدل Adaline
در دهه 1980، مفهمومی با عنوان «پیوندگرایی» (Coectionism) یا «پردازش توزیع شده موازی» (Parallel Distributed Processing) مطرح شد که برگرفته از «علوم شناختی» (Cognitive Science) بود و بر ساخت شبکههای عصبی با ساختار لایهای تاکید داشت که به نوعی، از نحوه ارتباط نورونهای مغز انسان الهام گرفته شده بود.
لایههای متصل به هم در این شبکهها، قابلیت پردازش موازی ورودیها را فراهم کردند. اتصال لایهها با مجموعهای از وزنها صورت میگرفت که این وزنها مشخص میکردند کدام ورودی، میتواند در طول شبکه جریان داشته باشد. در این دوران، مدلها و الگوریتمهایی مانند مدل «حافظه طولانی کوتاهمدت» (Long Short-Term Memory | LSTM) و روش «پس انتشار» (Backpropagation) مطرح شدند که در زمان حاضره نیز کاربرد زیادی در پژوهشهای مربوط به یادگیری عمیق دارند.
از سال 1980 تا اوایل دهه 2000، به دلیل کمبود منابع محاسباتی، پژوهشهای اندکی پیرامون یادگیری عمیق و ارائه مدلهای بهروز انجام شد و سرمایهگذاران حاضر نشدند در این دوران، هزینه زیادی را در پیشرفت این مسیر صرف کنند. با این حال، در سال 2006 دوباره پژوهشهای این حوزه از فناوری بهطور جدیتر از سر گرفته شد و ارائه «شبکههای باور عمیق» (Deep Belief Networks) توسط «جفری هینتون» (Geoffrey Hinton)، سنگبنایی برای ارائه مدلهای یادگیری عمیق پیشرفتهتر شدند.
فیلم آموزش مبانی یادگیری عمیق
دیدن فیلم آموزشی
برای درک بهتر پاسخ پرسش «یادگیری عمیق چیست، باید به خصوصیتهای مثبت و منفی این حوزه از هوش مصنوعی نیز اشاره کرد. پیدایش حوزه یادگیری عمیق و ارائه مدلهای مختلف و پیشرفته آن و خروجی شگفتانگیز این مدلها باعث شده است که اکثر سازمانهای بزرگ، به منظور پیشرفت در حوزه مورد فعالیت خود از ابزارهای هوشمند این شاخه از فناوری استفاده کنند. در ادامه، به برخی از مهمترین مزیتهای مدلهای مبتنی بر یادگیری عمیق اشاره شده است:
یادگیری عمیق علاوهبر مزیتهای چشمگیری که برای بشر به ارمغان آورده است، دارای معایبی نیز هست که در ادامه به برخی از مهمترین آنها اشاره میشود:
در روز جاریه، از حوزه یادگیری عمیق در تمامی جنبههای زندگی انسان استفاده میشود. اکثر وسایل مورد نیاز در زندگی روزمره بشر، هوشمندسازی شدهاند و به این سبب، بسیاری از فعالیتهای انسان با سهولت بیشتری انجام میشوند. علاوه بر این، در بسیاری از حوزههای علمی مختلف، از مدلهای یادگیری عمیق به منظور ساخت ابزارهای هوشمند استفاده شده است تا بسیاری از فعالیتهای سازمانها بهصورت خودکار و با دقت بالا انجام شوند. به منظور درک عمیقتر و ملموستر پاسخ پرسش یادگیری عمیق چیست، در ادامه به کاربردهای مختلف مدلهای آن در برخی از حوزهها و جنبههای زندگی انسان اشاره میشود:
برخی از کاربردهای یادگیری عمیق
سایت فرادرس برای آن دسته از افرادی که علاقهمند هستند در زمینه هوش مصنوعی بهصورت حرفهای مشغول به فعالیت شوند، مجموعهای از فیلمهای آموزشی اختصاصی را تهیه کرده است. در مجموعه دورههای هوش مصنوعی فرادرس دورههایی برای یادگیری عمیق هم ارائه شدهاند که پس از مطالعه این مطلب و رسیدن به پاسخ این سوال که یادگیری عمیق چیست ، میتوان از این دورهها استفاده کرد.
دورههای آموزشی ارائه شده در این مجموعه فیلمهای آموزشی مقدماتی تا پیشرفته و پروژهمحور حوزه هوش مصنوعی را شامل میشوند. علاقهمندان میتوانند از این دوره آموزشی جامع در راستای تقویت مهارت تخصصی خود در حیطههای مختلف هوش مصنوعی استفاده کنند. در تصویر فوق تنها برخی از دورههای آموزشی مجموعه آموزش هوش مصنوعی فرادرس نمایش داده شدهاند.
یادگیری عمیق به عنوان زیرشاخهای از یادگیری ماشین محسوب میشود. به عبارتی، مدلهای این دو حوزه، با استفاده از دادهها آماری دادههای ورودی خود به پیشبینی مقداری در خروجی میپردازند. با این حال، این دو حوزه از علوم کامپیوتر در روال یادگیری مسائل تفاوت مهمی دارند و برای درک عمیقتر آنها و رسیدن به پاسخ پرسش یادگیری عمیق چیست ، باید تفاوت روشهای یادگیری مدلهای آنها مورد ارزیابی قرار گیرد.
الگوریتمهای یادگیری ماشین به منظور یادگیری دادهها و پیشبینی مقداری در خروجی، به مفهومی با عنوان «مهندسی خصوصیت» (Feature Engineering) یا «استخراج مشخصه» (Feature Extraction) و «انتخاب خصوصیت» (Feature Selection) متکی بوده، درحالی که مدلهای یادگیری عمیق به منظور یادگیری الگوهای دادهها، مبتنی بر مفاهیمی با نامهای «لایه» (Layer) و «عمیق» (Deep) هستند.
تفاوت یادگیری ماشین و یادگیری عمیق
به منظور درک بهتر تفاوت یادگیری عمیق و یادگیری ماشین میتوان از مثال ملموستری استفاده کرد. چنانچه برنامه نویس قصد داشته باشد مدلی از الگوریتمهای یادگیری ماشین را آموزش دهد تا تصویرها مربوط به سگ و گربه را دستهبندی کند، در ابتدا نیاز است که خصوصیتهای تصویرها (دادههای آموزشی مدل) مانند قد حیوان، رنگ موی حیوان، اندازه جثه حیوان، مدل گوشها و سایر موارد را با استفاده از روشهای مهندسی مشخصه، استخراج کند و سپس این مشخصهها را در قالب بردارهای عددی به عنوان ورودی، به مدل یادگیری ماشین بدهد.
به بیان دیگر، باید برای مدل یادگیری ماشین دقیقاً مشخص شود مطابق چه قابلیتهایی درباره خروجی مدل تصمیم بگیرد. بدینترتیب، در این روش، میزان خروجی قابل قبول مدل تا حد زیادی به مشخصههای استخراج شده برنامه نویس وابسته است.
نقش لایه در یادگیری عمیق
در مقایسه با الگوریتمهای یادگیری ماشین، مدلهای یادگیری عمیق نیازی به مرحله استخراج مشخصه ندارند. به عبارتی، این مدلها با داشتن ساختار لایهای میتوانند بهطور خودکار، خصوصیتهای دادههای ورودی خود را یاد بگیرند. هر چقدر به تعداد لایههای شبکه اضافه شود، مدل میتواند خصوصیتهای پیچیدهتری را یاد بگیرد.
چنین رویکردی باعث میشود فرایند یادگیری مدل با سرعتتر انجام شود. با این حال، این احتمال وجود دارد که میزان دقت مدلهای یادگیری عمیق نسبت به مدلهای یادگیری ماشین کمتر باشد. در مدلهای یادگیری ماشین، برنامه نویس باید مشخصههای مورد نیاز را بدون داشتن هیچ گونه خطایی برای آموزش مدل تهیه میکرد، اما مدلهای یادگیری عمیق بهطور خودکار به شناسایی الگوهای دادهها میپردازند؛ بدینترتیب ممکن است این روند شناسایی بهطور مفصل، به شکل صحیحی انجام نشود.
تفاوت مهم دیگر یادگیری ماشین و یادگیری عمیق در این است که به منظور آموزش مدلهای یادگیری ماشین، نیاز به تجهیزات قدرتمند و گران نرخ نیست؛ در حالی که برای آموزش مدلهای یادگیری ماشین، به تجهیزات سختافزاری قدرتمندی مانند «واحد پردازنده گرافیکی» (Graphics Processing Units | GPUs) نیاز است. بهعلاوه، زمانی که حجم داده آموزشی زیاد نباشد، مدلهای یادگیری ماشین کارایی بهتری نسبت به مدلهای یادگیری عمیق دارند.
فیلم آموزش مبانی انتخاب مشخصه Feature Selection در داده کاوی
دیدن فیلم آموزشی
مدلهای یادگیری عمیق با نامهای «شبکههای عصبی مصنوعی» (Artificial Neural Networks) و «شبکههای عصبی عمیق» (Deep Neural Networks) شناخته میشوند. این شبکهها طبق مشخصههای منحصربفردشان، انواع مختلفی دارند؛ با این حال، شیوه یادگیری آنها تا حد زیادی مشابه یکدیگر است. به عبارتی، تمامی مدلهای یادگیری عمیق، با داشتن مقدار حجیمی از داده، مسائل مختلف را بر پایه آزمون و خطا یاد میگیرند.
به بیان دقیقتر، این مدلها با دریافت دادهها، به پیشبینی خروجی میپردازند و چنانچه خروجی، مطابق با خروجی مورد انتظار انسان نباشد، از خطای حاصل شده به منظور بهبود نحوه عملکرد خود استفاده میکنند. همین قابلیت مدلهای یادگیری عمیق باعث شد سازمانها به استفاده از این مدلها روی بیاورند؛ زیرا دادههای بسیاری را در اختیار داشتند که نیازمند دستهبندی و سازماندهی خودکار بودند. به همین خاطر، میزان استفاده از ابزارهای هوشمند در سازمانها به منظور تجزیه و تحلیل دادهها بیشتر شد.
همانطور که در بخش قبل به آن اشاره شد، مدلهای یادگیری عمیق به دادههایی به عنوان ورودی احتیاج دارند تا با اعمال محاسبات ریاضی بر روی آنها، خروجی تولید کنند. براساس نوع داده مورد نیاز این مدلها، میتوان رویکردهای یادگیری مدلهای عمیق را به سه دسته کلی تقسیم کرد که در ادامه فهرست شدهاند:
در ادامه مطلب حاضر، به تبیین هر یک از رویکردهای ذکر شده پرداخته شده و خصوصیتهای آنها شرح داده میشوند.
رویکرد یادگیری نظارت شده به دنبال یافتن تابعی است که بر پایه دادههای آموزشی فراهم شده، ورودی را به خروجی مورد انتظار نگاشت کند. در این شیوه از آموزش مدل، به «دادههای آموزشی برچسبدار» (Labeled Training Data) نیاز است. هر نمونه از داده آموزشی شامل مقدار داده و برچسب آن است که این برچسب، مقدار خروجی مورد انتظار مدل را مشخص میکند. از چنین رویکردی به منظور «دستهبندی» (Classification) دادهها طبق دستههای از پیش تعریف شده استفاده میشود. برخی از مسائلی که میتوان آنها را با استفاده از رویکرد یادگیری نظارت شده پیادهسازی کرد، در ادامه فهرست شدهاند:
مطلب پیشنهادی:
یادگیری نظارت شده (Supervised Learning) با پایتون — راهنمای جامع
ابتدا مطالعه
در این رویکرد از یادگیری به دنبال «خوشهبندی» (Clustering) دادهها بدون نیاز به برچسب هستیم. به عبارتی، در این روش، با مرور شباهت دادههای آموزشی به یکدیگر، دادهها در خوشههای جداگانه قرار میگیرند. خروجی حاصل شده از مدلهای مبتنی بر یادگیری بدون نظارت، چندین دسته مختلف است که هر یک از این دستهها، شامل دادههایی با خصوصیات مشابه به هم هستند، در حالی که با دادههای سایر دستهها تفاوت بسیار دارند.
جدیدترین اطلاعات و تغییرات مربوط به یادگیری در این گزارش ارائه شده است.
جزئیات مهم و نکات قابل توجه درباره عمیق در متن مقاله بررسی شده است.
این موضوع به دلیل اطلاعات و کاربردهای مرتبط، مورد توجه کاربران قرار گرفته است.
برچسب:
نویسنده: سام جعفرینژاد