در سالهای اخیر، کلمات و عباراتی نظیر هوش مصنوعی و ماشین لرنینگ را زیاد شنیدهایم. گفته میشود که این علوم، قدم بعدی دنیای محاسبات و تکنولوژیهای کامپیوتری هستند. فناوریهایی که بیش از هرچیز به الگوریتمهایی تکیه دارند که هدفشان پیشبینی آینده بر اساس دادههای گذشته و سابقهی تاریخی رفتار مجموعهای از دادههاست. یکی از انواع مهم ماشین لرنینگ، دیپ لرنینگ یا یادگیری عمیق است. شاخهای که هدفش، هرچه بینیازتر کردن الگوریتمهای هوش مصنوعی از مداخلات و حتی نظارتهای انسانی است.
ردپای فناوری دیپ لرنینگ را همین امروز هم میتوانیم در دنیای اطرافمان ببینیم. حتما میپرسید که دیپ لرنینگ چیست و چطور کار میکند؟ در این مقاله به این سوالات پاسخ داده و تلاش میکنیم این حوزه را از جوانب تئوری و عملی بررسی کنیم. اگر به AI و کاربردهای آن علاقه دارید، با ما همراه شده و با یکی از مهمترین عناصر آن آشنا شوید.
فهرست محتوا
Toggleدیپ لرنینگ چیست؟
از نگاه تئوری، Deep Learning که در فارسی آن را به یادگیری عمیق ترجمه کردهاند نوعی یادگیری ماشینی و زیرمجموعهی هوش مصنوعی با هدف تقلید ساختار ذهن انسان در یادگیری است. این عنصر مهم از علم داده، شامل محاسبات آماری و مدلسازیهای پیشبینیکننده میشود. این شاخه از هوش مصنوعی به تجزیه و تحلیل حجم زیادی از دادهها و کسب نتایج منطقی از آنها کمک شایانی میکند. برای درک بهتر موضوع باید بدانید علم داده چیست و چه کاربردهایی دارد.
دیپ لرنینگ در سادهترین تعریف خود روشی برای خودکارسازی تجزیهوتحلیل با هدف پیشبینی است. چنین ماشینی، متشکل از حداقل سه لایه الگوریتم غیرخطی است که در اساس، شبکهی عصبی انسان را تقلید میکند. این شبکه تلاش میکند دادهها را نه بهشکل خطی؛ بلکه بهصورت سلسلهمراتبی و مانند مغز انسان آنالیز کند. شاید میپرسید که دلیل وجود لایههای اضافه در دیپ لرنینگ چیست؟ پاسخ این است که یک شبکهی یکلایهای هم میتواند پیشبینیهای خوبی ارائه دهد؛ اما لایههای اضافه، سرعت، اصلاحپذیری و دقت یک ماشین هوش مصنوعی را بهبود میبخشند.
تعداد لایههای بیشتر امکان آنالیز حجم زیادی از دادهها با پیچیدگی بیشتر را به یک الگوریتم دیپ لرنینگ میدهند. منظور از پیچیدگی بیشتر، تفاوت در دستهبندی و نوع دادههاست. بهعنوان مثال میتوان به دادههایی متشکل از تصویر، متن، ویدئو و غیره اشاره کرد. همچنین مکانیسم اصلاح در یک سیستم دیپ لرنینگ، بهطور خودبهخودی و بدون نیاز به دخالت انسان انجام میشود.
دیپ لرنینگ چطور کار می کند؟
اما مکانیسم عملکرد دیپ لرنینگ چیست؟ الگوهای Deep Learning و نرمافزارهایی که از آنها استفاده میکنند تقریبا از همان مدلی برای یادگیری، اصلاح و عملکرد خود استفاده میکنند که مغز یک نوزاد در یادگیری مفاهیم و زبان دارد. بهعنوان مثال، نوزاد انسان برای یادگیری اینکه درخت چیست؟ فرا میگیرد که چه چیزهایی درخت نیستند و یک درخت چه ویژگیهایی دارد؟ سپس اطرافیان او در درستی یا نادرستی تشخیصش او را مستقیما یا غیرمستقیم راهنمایی میکنند.
یک الگوریتم دیپ لرنینگ نیز در سلسلهمراتب خود، یک تبدیل غیرخطی را به ورودیهایش اعمال میکند. بر اساس نتایج بهدستآمده، این الگوریتم مرحلهبهمرحله به ساختن یک مدل آماری با نتایج هرچه دقیقتر نزدیک میشود. این فرآیند تا زمانی که خروجیها به سطح قابلقبولی از درستی و دقت برسند، ادامه دارد. هرچه تعداد لایههای یک الگوریتم یادگیری عمیق بیشتر باشند، یادگیری نیز سریعتر و با دقت بیشتری انجام میشود.
تفاوت ماشین لرنینگ و دیپ لرنینگ
همانطورکه گفتیم، دیپ لرنینگ زیرمجموعهای از ماشین لرنینگ است؛ اما این جمله تنها در تئوری معنی دارد. در عمل، این دو مفهوم، فاصله زیادی از هم گرفتهاند. این فاصلهگیری، بیشتر به دلیل امکانات وسیعتری است که یادگیری عمیق با خود به همراه آورده است. در ادامه تفاوتهای مهم این دو را بررسی میکنیم.
تفاوت نوع داده ها در یادگیری ماشینی و عمیق
تفاوت ماشین لرنینگ و دیپ لرنینگ در درجهی اول مربوط به دادههای قابل آنالیز توسط هریک از آنهاست. ماشین لرنینگ تنها میتواند با دادههای ساختاریافته کار کند. دادههایی که ویژگیهای خاصی داشته و در جداولی سازمانیافته و دستهبندیشده قرار دارند. این الگوریتم برای استفاده از دادههای غیرساختاریافته باید ابتدا آنها را نظاممند کند. مرحلهای که با دخالت انسان همراه بوده و سبب طولانیترشدن تجزیهوتحلیل و ارائه پیشبینیها میشود.
اما Deep Learning، پیشپردازشهای لازم برای آنالیز دادههای غیرساختیافته را حذف میکند. متن و تصویر دو نمونهی شناختهشده از دادههای غیرساختاریافته هستند. علاوه بر این، دیپ لرنینگ این کار را بدون نیاز به نظارت نیروی انسانی انجام میدهد.
Deep Learning بهطور خودکار و با اصلاح خودش، میتواند معیارهای دستهبندی دادهها را تعیین کند. بهعنوان مثال، اگر مجموعهای از عکس خودروهای کامیون، اتوبوس و سواری را به این ماشین بدهید، پس از مدتی، قادر خواهد بود سواریها را با معیار مثلا ارتفاع، اتوبوسها را با معیار طول و کامیونها را با معیار شکل عقبشان تشخیص داده و دستهبندی کند. دو فرآیند گرادیان کاهشی (Gradient Descent) و پسانتشار خطا (Backpropagation) در این پروسه نقش مهمی دارند.
تفاوت روش یادگیری در یادگیری عمیق و ماشین
دیگر تفاوت ماشین لرنینگ و دیپ لرنینگ در روشهای یادگیریشان است. در یادگیری ماشینی، این فرآیند توسط انسان نظارت میشود. در این روش، برنامهنویس باید دقیقا تعیین کند که کامپیوتر باید به دنبال چه دادههایی باشد و بر چه اساس، آنها را دستهبندی کرده و نتایج خود را اعلام کند. فرآیندی دشوار که طی آن باید دادههای برچسبگذاریشده به کامپیوتر داده شوند. در برچسبگذاری، ویژگیهای دادههای مشابه بهتدریج استخراج میشوند. موفقیت ماشین لرنینگ در این مورد، کاملا به تواناییهای برنامهنویسش بستگی دارد.
اما روش یادگیری دیپ لرنینگ چیست؟ این ماشین، خودش کار برچسبگذاری و یادگیری را بدون نیاز به نظارت انسان انجام میدهد. روشی که نهتنها سریعتر، بلکه دقیقتر نیز بوده و خطاهای انسانی را نیز منتفی میکند. البته هرچه دادههای آموزشی که در قالب متاتگها در اختیار کامپیوتر قرار میگیرند بیشتر باشند، سرعت و دقت عملکرد دیپ لرنینگ افزایش مییابد. در ادامه نیز مدلهای آماری پیچیدهی پیشبینیکننده مستقیما از خروجیهای تکراری الگوریتم ساخته میشوند.
دیگر موارد تفاوت یادگیری ماشینی و عمیق
- آموزش یک الگوریتم یادگیری ماشین سریعتر از یادگیری عمیق و معمولا در بازهای چندثانیهای تا چندساعتی انجام میشود؛ اما عملکرد آن کندتر است.
- هزینهی راهاندازی الگوریتم یادگیری عمیق، بسیار بیشتر است.
- راهاندازی الگوریتم یادگیری عمیق برخلاف یادگیری ماشین نیازمند محاسبات ابری، دیتاهای عظیم و توان محاسباتی بالاست.
- راهاندازی یادگیری عمیق نیازمند دانش و تخصص بسیار بیشتری نسبت به یادگیری ماشین است.
- در حال حاضر، توان تفسیر و درک راهحلها در زمینههای خاص، در الگوریتمهای یادگیری ماشین بیشتر است.
چهار مدل مهم Deep Learning
دیپ لرنینگ برای یادگیری از تکنیکهای مختلفی استفاده میکند که مهمترین آنها را در ادامه بررسی میکنیم.
انتقال یادگیری یا Transfer Learning
در این روش یادگیری، یک مدل دیپ لرنینگ قبلی تکمیل میشود. این روش طبیعتا به یک رابط داخلی شبکه برای انتقال دادههای غیرساختاریافته جدید به سیستم قبلی نیاز دارد. از مزایای روش انتقال یادگیری، کاهش نیاز الگوریتم به دادههای بزرگ است.
آموزش از ابتدا یا Training from Scratch
این روش، پیش از هرچیز به یک برنامهنویس یا توسعهدهنده بهمنظور جمعآوری مجموعهای بزرگ از دادههای برچسبگذاریشده نیاز دارد. این برنامهنویس همچنین باید معماری شبکهای را پیکربندی کند که توانایی یادگیری مدلهای دیپ لرنینگ را داشته باشد.
کاهش نرخ یادگیری یا Learning Rate Decay
اگر میپرسید که مهمترین مدل دیپ لرنینگ چیست؟ جواب بسیاری از کارشناسان، مدل کاهش نرخ یادگیری است. نرخ یادگیری پارامتری است که تعیینکنندهی میزان یادگیری سیستم از خطاهایش با هربار تغییر مدل است. با کاهش نرخ یادگیری در طول زمان و تطبیق آن با افزایش عملکرد الگوریتم، میتوان پایداری و دقت یادگیری آن را بالا برد.
رها کردن یا Dropout
در مدل Dropout هدف اصلی جلوگیری از over-fitting یا بیشبرازش شبکهی دیپ لرنینگ است. این اتفاق معمولا به دلیل تاکید مدل بر حفظ دادهها بهجای یادگیری از آنها میافتد. درنتیجه، سیستم دیگر در استخراج نتایج مناسب و درست از دادههای جدید، بازدهی خوبی نخواهد داشت. با مدل Dropout واحدهای اضافی و اتصالات آنها از شبکه دیپ لرنینگ در حین آموزش حذف شده و از مشکل مذکور، پیشگیری میشود.
چهار الگوریتم معروف دیپ لرنینگ
اگر میپرسید که دلیل توانمندیهای ذکرشده برای دیپ لرنینگ چیست؟ پاسخ بهطور ساده، الگوریتمهایی است که در این مدل کدنویسی استفاده میشوند. در ادامه با چهار الگوریتم برتر در این زمینه آشنا میشویم. البته برای درک بهتر این الگوریتمها بهتر است ابتدا بدانید که هوش مصنوعی چیست؟ و چطور از دیپ لرنینگ بهره میبرد؟
شبکه عصبی کانولوشن
Convolutional Neural Network که بهاختصار به آن CNN یا ConvNets نیز گفته میشود، متشکل از چندین لایه با هدف پردازش تصویر و تشخیص اشیا است. از این الگوریتم در پزشکی، تشخیص تصاویر ماهوارهای و جرمشناسی استفاده میشود. لایههای این شبکه، کانولوشن، ReLU، Pooling و Fully Connected نام دارند.
شبکه حافظه کوتاه مدت
به این الگوریتم پرکاربرد در دیپ لرنینگ بهاختصار LSTM گفته میشود که نوعی شبکهی بازگشتی است. این شبکه میتواند مکانیسم مغز در بهخاطرسپاری اطلاعات برای مدت طولانی را تقلید کند. ساختار این الگوریتم زنجیرهمانند و متشکل از چهار لایهی متقابل است. الگوریتم حافظهی کوتاهمدت در تشخیص گفتار، ترکیب موسیقی و غیره کاربرد دارد.
شبکه عصبی تکرارشونده
Recurrent Neural Networks یا بهاختصار RNN ها شامل چرخههای جهتداری هستند که به خروجی الگوریتمهای LSTM اجازه میدهند به ورودی جدید تبدیل شوند. از RNNها در دیپ لرنینگ برای شرح تصاویر، تجزیهوتحلیل دادههای زماندار، پردازش زبان طبیعی، تشخیص دستخط و ترجمه استفاده میشود.
شبکه متخاصم مولد
Generative Adversarial Networks یا GAN ها از دو بخش مولد و متمایزکننده تشکیل میشود. بخش مولد با قابلیت تولید دادههای جعلی، بخش متمایزکننده را به تمرین تشخیص دادههای درست از غلط وامیدارد. توسعهدهندههای بازیهای ویدئویی، بهخوبی از این الگوریتم استفاده میکنند.
پنج مثال از کاربرد دیپ لرنینگ
اگر میپرسید که کاربرد دیپ لرنینگ چیست؟ باید بگوییم که هماکنون نیز احتمالا با نگاهی به محیط کار و زندگی خود میتوانید نشانههای آن را ببینید. نکتهی مهم این است که در دنیای امروز، هر روز بر حجم دادههای تولیدشده افزوده میشود. واقعیتی که به نفع بهبود عملکرد ماشینهای یادگیری عمیق است. در ادامه، پنج کاربرد مهم این تکنولوژی را معرفی میکنیم.
دستیارهای مجازی
اگر یک گوشی هوشمند داشته باشید میدانید که دستیار مجازی چیست. Siri در محصولات اپل، Alexa در محصولات آمازون، Cortona در محصولات مایکروسافت و دستیار مجازی گوگل، معروفترین دستیارهای مجازی هستند. این نرمافزارها از یادگیری عمیق برای فهم زبان انسانی، ارائهی نتایج جستجوی دقیقتر و انجام وظایف خود استفاده میکنند.
ربات های چت
حتما هنگام مراجعه به بسیاری از وبسایتها متوجه شدهاید که آنها خدمات پاسخگویی به کاربران را به کمک چتباکسها انجام میدهند. در بسیاری از موارد نه یک فرد حقیقی؛ بلکه یک الگوریتم یادگیری عمیق است که با شما چت میکند. چنین رباتهایی یاد میگیرند در برابر برخی سوالات پرتکرار و متداول، جوابهای خودکار ارائه دهند.
تشخیص چهره
در تحقیقات پلیسی، دوربینهای مداربسته و سیستمهای کنترلی، گوشیهای تلفن همراه و حتی تگ کردن افراد در شبکههای اجتماعی از تکنولوژی تشخیص چهره استفاده میشود. اساسا این تکنولوژی با الگوریتمهای دیپ لرنینگ کار میکند. بهاینترتیب دستگاه موردنظر حتی در صورت تغییرات فرعی مانند رنگ و مدل مو، جراحیهای زیبایی و ریش و آرایش صورت نیز قادر به تشخیص چهره خواهد بود.
خودروهای خودران
امروزه کمپانیهای مهمی در دنیا از جمله تسلا، فورد و ولکسواگن خودروهای خودران با عملکرد تماما خودکار یا نیمهخودکار تولید میکنند. نرمافزارهای کامپیوتری این خودروها از دیپ لرنینگ برای شناخت جاده، عابرین پیاده، خودروهای دیگر، علائم و قوانین راهنمایی و رانندگی و غیره استفاده میکنند.
صنعت کشاورزی
امروزه نرمافزارهای Deep Learning ماشینآلات کشاورزی را قادر به تشخیص انواع محصولات زراعی و نیز علفهای هرز کردهاند. همچنین در خطوط تولید و دستهبندی دانهها نیز از این تکنولوژی استفاده میشود. موضوعی که نیاز به نیروی انسانی و خطاهای گریزناپذیر او را کاهش داده است. کاربرد دیپ لرنینگ در سیستم دستگاههای سمپاش نیز دقت این دستگاهها در تشخیص علفهای هرز بیشتر کرده است. بهاینترتیب محصولات کشاورزی، ارگانیکتر تولید شده و هزینهی سمپاشی نیز کاهش مییابد.
چهره دنیای آینده با دیپ لرنینگ
اگر میپرسید که در دنیای آیندهی ما نقش و تاثیر دیپ لرنینگ چیست؟ باید بگوییم که قطعا گریزی از آن وجود ندارد. بهطورکلی امروزه بحثی فلسفی و اخلاقی بر سر استفاده از هوش مصنوعی در زمینههای مختلف در جریان است. عدهای موافق توسعهی همهجانبهی آن بوده و برخی دیگر نگران تاثیرات بهگفتهی آنها مخربی هستند که ماشینهای کنترلنشده میتوانند به بار بیاورند. بااینحال بهنظر میرسد، توسعهدهندگان این الگوریتمها بهطور مستقل مشغول کار خود هستند. علاوه بر مثالهای یادشده، پیشبینی میشود نقش دیپ لرنینگ و هوش مصنوعی در اقتصاد، آموزش، پزشکی، رباتیک و حتی دنیای هنر و سرگرمی نیز در آینده پررنگ باشد.