یادگیری عمیق: تفاوت میان نسخه‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
محتوای حذف‌شده محتوای افزوده‌شده
ماني (بحث | مشارکت‌ها)
جز ماني صفحهٔ نساج شبکه‌های عصبی را به یادگیری عمیق منتقل کرد
ماني (بحث | مشارکت‌ها)
ادغام محتوای دو مقاله
خط ۱: خط ۱:
{{ادغام با|یادگیری عمیق}}
{{ادغام از|نساج شبکه‌های عصبی}}{{هوش مصنوعی}}
{{About||یادگیری سطحی دربرابر عمیق در روان‌شناسی آموزشی|رویکردهای دانش‌آموز به یادگیری|اطلاعات بیش‌تر|شبکه عصبی مصنوعی}}
[[شبکه‌های عصبی عمیق]] (DNNs) مدل‌های یادگیری هستند که دارای محاسبات خیلی زیادی‌اند. این مدل‌ها کاربردهای روزافزونی در بخش‌های مختلف دارند. از آنجا که FPGA ها یک زیرساخت قابل‌برنامه‌نویسی برای شتاب‌دادن به محاسبات می‌دهند و همچنین امروزه در بیشتر دنیا به سادگی قابل دسترس‌اند، FPGAها یک انتخاب خیلی خوب برای پیاده‌سازی مدل‌های DNN هستند. اما استفاده از FPGAها به دلیل اینکه به‌دست آوردن کارایی و مصرف انرژی کم آنها به‌طور همزمان کار خیلی سختی است و همچنین DNNها به حافظه زیادی نیاز دارند (در FPGA معمولاً حافظه روی برد کم است)، پیاده‌سازی مدل‌ها با FPGA بسیار دشوار است. '''نساج شبکه‌های عصبی''' (DNNWEAVER) یک چارچوب است که به صورت خودکار یک کد قابل‌سنتز برای یک [[زوج مرتب]] (DNN, FPGA) تولید می‌کند. مدل DNN را به صورتی که در Caffe معرفی می‌کنند به عنوان ورودی می‌دهند.
[[پرونده:MultiLayerNeuralNetworkBigger english.png|جایگزین=گرافی سلسله‌مراتبی، کامل، جهت‌دار و یک‌طرفه، تشکیل‌شده از سه رأس در ستون نخست، سه رأس در ستون دوم و دو رأس در ستون سوم. سه پیکان (یال جهت‌دار) با برچسب inputs درحال ورود به به رئوس لایهٔ نخست هستند و دو پیکان نیز با برچسب outputs درحال خروج از لایهٔ سوم. لایه‌ها نیز به ترتیب با برچسب‌های input layer و hidden layer و output layer نام‌گذاری شده‌اند.|بندانگشتی|چپ: لایهٔ ورودی که در این مثال شامل سه نورون دریافت‌کننده است. راست: لایهٔ خروجی با یک یا چند نورون خروجی (در این عکس دو عدد). لایه(ها) ی میانی، عموماً لایه(ها) ی پنهان نامیده‌شده و نه ورودی (برای دریافت داده‌های خام) هستند و نه خروجی (برای تحویل نتایج نهایی). [[شبکه عصبی مصنوعی|شبکه‌های عصبی]] عمیق از یک یا چند لایهٔ پنهان تشکیل می‌شوند (توافقی جامع و مشخص برای تعیین حداقل تعداد لایه‌های مورد نیاز در یک شبکهٔ عصبی عمیق وجود ندارد).]]{{یادگیری ماشین}}
'''یادگیری عمیق'''، یادگیری ژرف یا ژرف‌آموزی {{به انگلیسی|Deep learning}} (به بیانی دیگر: یادگیری ژرف ماشین، یادگیری ساختار ژرف یا یادگیری سلسله مراتبی) یک زیر شاخه از [[یادگیری ماشین]] و بر مبنای مجموعه‌ای از الگوریتم‌ها است که در تلاشند تا مفاهیم انتزاعی سطح بالا در دادگان را مدل نمایند که این فرایند را با استفاده از یک [[گراف (ریاضی)|گراف]] عمیق که دارای چندین لایه پردازشی متشکل از چندین لایه تبدیلات خطی و [[رفتار غیرخطی|غیرخطی]] هستند، مدل می‌کنند. به بیان دیگر پایهٔ آن بر یادگیری [[نمایش دانش]] و ویژگی‌ها در لایه‌های مدل است.<ref>{{cite book
|last1=Bengio
|first1=Y.
|authorlink1=Yoshua Bengio
|year=۲۰۰۹
|title=Learning Deep Architectures for AI.
|publisher=Now Publishers
|url=http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf
|accessdate=۱۷ فوریه ۲۰۱۳
|archiveurl=https://web.archive.org/web/20140321040828/http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf
|archivedate=۲۱ مارس ۲۰۱۴
|dead-url=yes
}}</ref>

یک نمونه آموزشی (برای نمونه: تصویر یک گربه) می‌تواند به صورت‌های گوناگون بسان یک بردار ریاضی پر شده از مقدار به ازای هر [[پیکسل]] و در دید کلی‌تر به شکل یک مجموعه از زیرشکل‌های کوچک‌تر (نظیر اعضای صورت گربه) مدل‌سازی شود. برخی از این روش‌های مدل‌سازی سبب ساده شدن فرایند یادگیری ماشین (برای نمونه: تشخیص تصویر گربه) می‌شوند.
در یادگیری ژرف امید به جایگزینی استخراج این ویژگی‌های تصویر به دست بشر (مانند اعضای گربه) با روش‌های کامل‌خودکار [[یادگیری بی‌نظارت|بی‌نظارت]] و نیمه‌نظارتی وجود دارد.<ref>Song, Hyun Ah, and Soo-Young Lee. "Hierarchical Representation Using NMF." Neural Information Processing. Springer Berlin Heidelberg, 2013.</ref>

انگیزهٔ نخستین در به وجود آمدن این ساختار یادگیری از راه بررسی ساختار عصبی در مغز انسان الهام گرفته شده‌است که در آن [[یاخته‌های عصبی]] با فرستادن پیام به یکدیگر درک را امکان‌پذیر می‌کنند.<ref>Olshausen, Bruno A. "Emergence of simple-cell receptive field properties by learning a sparse code for natural images." Nature 381.6583 (1996): 607-609.</ref>
بسته به فرض‌های گوناگون در مورد نحوهٔ اتصال این یاخته‌های عصبی، مدل‌ها و ساختارهای مختلفی در این حوزه پیشنهاد و بررسی شده‌اند، هرچند که این مدل‌ها به صورت طبیعی در مغز انسان وجود ندارد و مغز انسان پیچیدگی‌های بیشتری را دارا است. این مدل‌ها نظیر [[شبکه عصبی عمیق]]، [[شبکه عصبی پیچشی|شبکه عصبی هم‌گشتی]]، [[شبکه باور عمیق]] و… پیشرفت‌های خوبی را در حوزه‌های [[پردازش زبان‌های طبیعی]]، [[پردازش تصویر]] ایجاد کرده‌اند.

در حقیقت عبارت یادگیری عمیق، بررسی روش‌های تازه برای [[شبکه عصبی مصنوعی]] است.<ref>{{cite web |author=Ronan Collobert |title=Deep Learning for Efficient Discriminative Parsing |website=videolectures.net |url=http://videolectures.net/aistats2011_collobert_deep/ |date=May 6, 2011}} Ca. 7:45.</ref><ref>{{cite news |url=http://spectrum.ieee.org/robotics/artificial-intelligence/machinelearning-maestro-michael-jordan-on-the-delusions-of-big-data-and-other-huge-engineering-efforts |first=Lee |last=Gomes |date=20 October 2014 |title=Machine-Learning Maestro Michael Jordan on the Delusions of Big Data and Other Huge Engineering Efforts |newspaper=[[آی‌تریپل‌ای اسپکتروم|IEEE Spectrum]]}}</ref>

== تعریف ==
ژرف‌آموزی، رده‌ای از [[الگوریتم]]‌های [[یادگیری ماشین]] است<ref name="BOOK2014">{{cite journal|last1=Deng|first1=L.|last2=Yu|first2=D.|year=2014|title=Deep Learning: Methods and Applications|url=http://research.microsoft.com/pubs/209355/DeepLearning-NowPublishing-Vol7-SIG-039.pdf|journal=Foundations and Trends in Signal Processing|volume=7|issue=3–4|pages=1–199|doi=10.1561/2000000039}}</ref>{{rp||pages=۱۹۹–۲۰۰}} که از چندین لایه برای استخراج ویژگی‌های سطح بالا از ورودی خام استفاده می‌کنند. به بیانی دیگر، رده‌ای از تکنیک‌های یادگیری ماشین که از چندین لایهٔ پردازش اطلاعات و به‌ویژه [[سامانه غیرخطی|اطلاعات غیرخطی]] بهره می‌برد تا عملیات تبدیل یا [[استخراج ویژگی]] [[یادگیری با نظارت|نظارت‌شده]] یا [[یادگیری بی‌نظارت|نظارت‌نشده]] را عموماً با هدف تحلیل یا [[بازشناخت الگو]]، کلاس‌بندی، [[خوشه‌بندی]] انجام دهد.<ref>{{Cite journal|last=DengLi|last2=YuDong|date=2014-06-30|title=Deep Learning|url=https://dl.acm.org/doi/abs/10.1561/2000000039|journal=Foundations and Trends in Signal Processing|language=EN|doi=10.1561/2000000039}}</ref>

برای نمونه، در [[پردازش تصویر]]، لایه‌های پست‌تر می‌توانند لبه‌ها را تشخیص دهند، در حالی که لایه‌های عالی‌تر ممکن است ویژگی‌های پرمعناتر برای انسان، همچون حروف یا چهره‌ها، را تشخیص دهند.
[[پرونده:Deep Learning.jpg|جایگزین=نموداری چندلایه که در پست‌ترین لایه، عکس چند جانور (فیل، کانگورو و پنگوئن) قرار گرفته و فیل به عنوان ورودی برگزیده شده‌است. سپس در لایه‌های بالاتر لبه‌هایی از بدن فیل تشخیص داده شده و به تدریج شمای کلی بدن فیل را تشکیل می‌دهند تا نهایتاً در لایهٔ خروجی (بالاترین لایه)، برچسب فیل (از میان برچسب‌های دیگری چون کانگورو و پنگوئن برگزیده شده‌است.|بندانگشتی|نمایی از چگونگی استخراج ویژگی جهت کلاس‌بندی تصاویر با روش یادگیری عمیق<ref>{{Cite journal|last=Schulz|first=Hannes|last2=Behnke|first2=Sven|date=2012-11-01|title=Deep Learning|url=https://doi.org/10.1007/s13218-012-0198-z|journal=KI - Künstliche Intelligenz|language=en|volume=26|issue=4|pages=357–363|doi=10.1007/s13218-012-0198-z|issn=1610-1987}}</ref>]]

== مفهوم ==
یادگیری عمیق زیرشاخه‌ای از [[یادگیری ماشین]] است که از لایه‌های متعدد تبدیلات خطی به منظور پردازش سیگنال‌های حسی مانند صدا و تصویر استفاده می‌کند. ماشین در این روش هر مفهوم پیچیده را به مفاهیم ساده‌تری تقسیم می‌کند، و با ادامهٔ این روند به مفاهیم پایه‌ای می‌رسد که قادر به تصمیم‌گیری برای آن‌ها است و بدین ترتیب نیازی به نظارت کامل انسان برای مشخص کردن اطلاعات لازم ماشین در هر لحظه نیست. موضوعی که در یادگیری عمیق اهمیت زیادی دارد، نحوهٔ ارائهٔ اطلاعات است. ارائه دادن اطلاعات به ماشین باید به شیوه‌ای باشد که ماشین در کمترین زمان اطلاعات کلیدی را که می‌تواند با استناد به آن‌ها تصمیم بگیرد را دریافت کند. هنگام طراحی الگوریتم‌های یادگیری عمیق می‌بایست به عوامل دگرگونی (به انگلیسی: factors of variation) که اطلاعات مشاهده شده را توضیح می‌دهند توجه کنیم، این عوامل معمولاً عوامل قابل‌مشاهده‌ای نیستند بلکه عواملی هستند که بر روی دستهٔ قابل‌مشاهده تأثیرگذار بوده یا زادهٔ ساختارهای ذهنی انسان برای ساده‌تر کردن مسائل هستند. برای مثال در هنگام [[پردازش گفتار]] عوامل دگرگونی می‌توانند لهجهٔ گوینده، سن یا جنسیت او باشند. در هنگام پردازش تصویر یک ماشین، میزان درخشش خورشید یک عامل دگرگونی است. یکی از مشکلات [[هوش مصنوعی]] تأثیر زیاد عوامل دگرگونی بر روی اطلاعات دریافتی است. برای مثال بسیاری از پیکسل‌های دریافتی از یک ماشین قرمز در شب ممکن است سیاه دیده بشوند. برای حل این مشکلات بعضاً به درک بالای اطلاعات (در حدود انسان) نیازمندیم و در واقع گاهی یافتن نحوهٔ مناسب نمایش اطلاعات به اندازهٔ خود مسئله سخت و زمان‌بر است.

== تاریخچه ==
نخستین [[الگوریتم]] عملی یادگیرنده برای [[پرسپترون]]<nowiki/>‌های چندلایهٔ نظارت‌شده، ژرف و [[شبکه عصبی پیشخور|پیش‌خور]]، در دههٔ ۱۹۶۰ توسط [[الکسی ایواخننکو]] - معروف به «پدر یادگیری عمیق»<ref>{{یادکرد وب|عنوان=Paper by "Deep Learning Conspiracy" in Nature|نشانی=http://people.idsia.ch/~juergen/deep-learning-conspiracy.html|وبگاه=people.idsia.ch|بازبینی=2020-11-04}}</ref> - و والنتن لاپا منتشر شد.<ref>Ivakhnenko, A. G. ; Lapa, V. G. (1967). ''[https://books.google.com/books?id=rGFgAAAAMAAJ Cybernetics and Forecasting Techniques]''. American Elsevier Publishing Co. [[ISBN]] <bdi>[[:en:Special:BookSources/978-0-444-00020-0|978-0-444-00020-0]]</bdi>.</ref> در سال ۱۹۷۱، مقاله‌ای یک شبکهٔ ژرف با هشت لایه را توصیف کرد که عملیات یادگیری را با [[متد گروهی مدیریت داده]] (GMDH) انجام داده بود.<ref>{{Cite journal|last=Ivakhnenko|first=A. G.|date=1971-10|title=Polynomial Theory of Complex Systems|url=http://ieeexplore.ieee.org/document/4308320/|journal=IEEE Transactions on Systems, Man, and Cybernetics|volume=SMC-1|issue=4|pages=364–378|doi=10.1109/TSMC.1971.4308320|issn=0018-9472}}</ref> سایر معماری‌های یادگیری عمیق و به ویژه آن‌هایی که برای [[بینایی رایانه‌ای|بینایی رایانه]] ساخته شده بودند، در ۱۹۸۰ و با Neocognitron معرفی‌شده توسط [[کونیهیکو فوکوشیما]] آغاز گشتند.<ref>{{Cite journal|last=Fukushima|first=Kunihiko|date=1980-04|title=Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position|url=http://dx.doi.org/10.1007/bf00344251|journal=Biological Cybernetics|volume=36|issue=4|pages=193–202|doi=10.1007/bf00344251|issn=0340-1200}}</ref>

لفظ ''یادگیری عمیق''، نخستین‌بار در ۱۹۸۶ و توسط [[رینا دِختِر]] در زمینهٔ یادگیری ماشین به کار رفت؛ وی در مقاله‌ای تحت عنوان ''یادگیری به هنگام [[الگوریتم جستجو|جستجو]] در [[مسائل ارضای محدودیت]]'' (Learning While Searching in Constraint-Satisfaction-Problems) از این لفظ برای پروسه‌ای استفاده کرد که در آن تمامی راه‌حل‌ها در یک فضای جستجو که به پاسخ مناسب نمی‌رسیدند نیز ذخیره می‌شدند. تحلیل این راه‌حل‌های ذخیره‌شده امکان کنترل بهتر در تلاش‌های بعدی را ممکن می‌ساخت، و به دنبال آن در همان مراحل نخستین از گیر کردن در بن‌بست‌های احتمالی نیز جلوگیری می‌کرد.<ref>Rina Dechter (1986). [http://fmdb.cs.ucla.edu/Treports/860049.pdf ''Learning while searching in constraint-satisfaction problems'']. (PDF) University of California, Computer Science Department, Cognitive Systems Laboratory.</ref><ref>{{Cite journal|last=Schmidhuber|first=Juergen|date=2015-11-28|title=Deep Learning|url=http://www.scholarpedia.org/article/Deep_Learning|journal=Scholarpedia|language=en|volume=10|issue=11|pages=32832|doi=10.4249/scholarpedia.32832|issn=1941-6016}}</ref> با این وجود امروزه لفظ یادگیری عمیق عموماً در حوزهٔ [[شبکه عصبی مصنوعی|شبکه‌های عصبی مصنوعی]] به کار می‌رود که نخستین‌بار در سال ۲۰۰۰ و توسط ایگور آیزنبرگ و همکاران در حوزهٔ یادشده استفاده شد؛ به‌طور دقیق‌تر، در کتاب ''نورون‌های دودویی چندمقداری و جهانی: نظریه، یادگیری و کاربردها'' (Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications) و در زمینهٔ نورون‌های حدآستانهٔ [[شبکه بولی|بولی]].<ref>{{Cite journal|last=Aizenberg|first=Igor N.|last2=Aizenberg|first2=Naum N.|last3=Vandewalle|first3=Joos|date=2000|title=Multi-Valued and Universal Binary Neurons|url=http://dx.doi.org/10.1007/978-1-4757-3115-6|doi=10.1007/978-1-4757-3115-6}}</ref><ref>{{Cite journal|last=Gomez|first=Faustino J.|last2=Schmidhuber|first2=Jürgen|date=2005|title=Co-evolving recurrent neurons learn deep memory POMDPs|url=http://dx.doi.org/10.1145/1068009.1068092|journal=Proceedings of the 2005 conference on Genetic and evolutionary computation - GECCO '05|location=New York, New York, USA|publisher=ACM Press|doi=10.1145/1068009.1068092|isbn=1-59593-010-8}}</ref>

در سال ۱۹۸۹، [[یان لی کان|یان لی‌کان]] و همکاران الگوریتم استاندارد [[پس‌انتشار]] را برای یک شبکهٔ عصبی عمیق با هدف [[تشخیص دست خط|تشخیص متن‌های دست‌نویس]] (به‌طور خاص با هدف بازشناسی کدهای پستی دست‌نویس روی نامه‌های پستی) به کار بست. درحالی که الگوریتم کار می‌کرد، عملیات یادگیری آن به سه روز زمان نیاز داشت. مدل مورد استفاده از یک لایهٔ ورودی با ۲۵۶ واحد (پیکسل‌های یک تصویر مربعی ۱۶×۱۶)، یک لایهٔ خروجی با ۱۰ واحد (که مشخص می‌کرد تصویر رقمی که به ورودی داده‌شده‌است، کدام یک از ارقام ۰ تا ۹ است) و سه لایهٔ پنهان در میان این دو تشکیل شده بود. با ارزیابی مدل بر روی مجموعه‌دادهٔ تست، ۸/۱٪ رده‌بندی اشتباه و ۱۹/۴٪ بازپس‌زنی برای ۱٪ نرخ خطا در میان الگوهای تست باقی‌مانده به دست آمد که نشان می‌داد که این مدل نسبت به مدل‌های ارائه‌شدهٔ پیشین از دقت بالاتری برخوردار است و استفاده از الگوریتم پس‌انتشار، روشی مناسب در فرایند تعلیم شبکه‌های عصبی عمیق است.<ref>{{Cite journal|last=LeCun|first=Y.|last2=Boser|first2=B.|last3=Denker|first3=J. S.|last4=Henderson|first4=D.|last5=Howard|first5=R. E.|last6=Hubbard|first6=W.|last7=Jackel|first7=L. D.|date=1989|title=Backpropagation Applied to Handwritten Zip Code Recognition|url=http://yann.lecun.com/exdb/publis/pdf/lecun-89e.pdf|journal=Neural Computation|volume=1|issue=4|pages=541–551|doi=10.1162/neco.1989.1.4.541|issn=0899-7667|via=}}</ref> لازم است ذکر شود که خود الگوریتم پس‌انتشار، از پیش و از ۱۹۷۰ نیز به عنوان حالت معکوس مشتق خودکار وجود داشت.<ref>{{Cite journal|last=Linnainmaa|first=Seppo|date=1976-06|title=Taylor expansion of the accumulated rounding error|url=http://dx.doi.org/10.1007/bf01931367|journal=BIT|volume=16|issue=2|pages=146–160|doi=10.1007/bf01931367|issn=0006-3835}}</ref><ref>Griewank, Andreas. "Who invented the reverse mode of differentiation." ''Documenta Mathematica, Extra Volume ISMP'' (2012): 389-400. (PDF) https://www.math.uni-bielefeld.de/documenta/vol-ismp/52_griewank-andreas-b.pdf</ref>

تا سال ۱۹۹۱، چنین سامانه‌هایی عموماً برای تشخیص ارقام دوبُعدی دست‌نویس ایزوله‌شده (به این معنا که ارقام به صورت تنها و بدون جزئیات و ویژگی‌های اضافهٔ دیگری در پس‌زمینه - مثلاً متن و حروف اضافه - نوشته‌شده‌اند) به کار می‌رفتند؛ درحالی که بازشناسی اجسام سه‌بُعدی همچنان یک چالش بود. در سال ۱۹۹۲، پژوهشی از جان ونگ و همکاران با توضیح معایب و محدودیت‌های شبکه‌های عصبی سه‌لایه‌ای که برای این منظور به کار می‌رفتند، از مفهوم ''شبکهٔ سلسله‌مراتبی'' (به انگلیسی: hierarchical network) استفاده کرده و مدلی موسوم به Cresceptron را ارائه دادند که قادر بود اجسام سه‌بعدی در محیط‌های شلوغ را نیز تشخیص دهد.<ref>J. Weng, N. Ahuja and T. S. Huang, "[http://www.cse.msu.edu/~weng/research/CresceptronIJCNN1992.pdf Cresceptron: a self-organizing neural network which grows adaptively]," ''Proc. International Joint Conference on Neural Networks'', Baltimore, Maryland, vol I, pp. 576-581, June, 1992.</ref><ref>J. Weng, N. Ahuja and T. S. Huang, "[http://www.cse.msu.edu/~weng/research/CresceptronICCV1993.pdf Learning recognition and segmentation of 3-D objects from 2-D images]," ''Proc. 4th International Conf. Computer Vision'', Berlin, Germany, pp. 121-128, May, 1993.</ref><ref>J. Weng, N. Ahuja and T. S. Huang, "[http://www.cse.msu.edu/~weng/research/CresceptronIJCV.pdf Learning recognition and segmentation using the Cresceptron]," ''International Journal of Computer Vision'', vol. 25, no. 2, pp. 105-139, Nov. 1997.</ref> مفهوم [[شبکه عصبی پیچشی#لایه‌های ادغام|تجمیع حداکثری]] (به انگلیسی: max pooling) نیز نخستین‌بار در همین پژوهش پیاده‌سازی شد.{{مدرک|date=نوامبر ۲۰۲۰}} از آن‌جایی که این مدل می‌توانست مستقیماً تصاویر طبیعی (سوژه‌های سه‌بعدی، با حضور عناصر دیگر در پس‌زمینه) را به عنوان ورودی دریافت کند، تبدیل به بنیانی برای یادگیری بصری همه‌منظوره شد.

در سال ۱۹۹۴، آندره د کاروالیو به همراه مایک فیرهورست و دیوید بیسیت، معماری‌ای مبتنی بر یک شبکهٔ عصبی بولی چندلایه را ارائه داد که تحت عنوان شبکهٔ عصبی بی‌وزن نیز شناخته می‌شد. این معماری از یک ماژول شبکهٔ عصبی سه‌لایه‌ای خودسامان‌دهندهٔ استخراج ویژگی (به انگلیسی: self-organising feature extraction یا SOFT) به همراه یک ماژول شبکهٔ عصبی چندلایهٔ [[طبقه‌بندی آماری|رده‌بندی]] (به‌طور خاص یک شبکه با معماری GSN یا goal-seeking network) تشکیل شده بود که به صورت مستقل عملیات یادگیری را انجام می‌دادند. در ماژول استخراج ویژگی، تصویر ورودی به چند زیرمجموعه تقسیم شده و هر قسمت به یک بلاک از نورون‌ها (که دارای سلسله‌مراتب بوده و در چند لایه تقسیم شده‌بودند) داده می‌شد و هر بلاک به صورت موازی با دیگر بلاک‌ها و مستقل از آن‌ها آموزش می‌دید.<ref>{{Cite journal|last=de Carvalho|first=A.|last2=Fairhurst|first2=M. C.|last3=Bisset|first3=D. L.|date=1994-08-01|title=An integrated Boolean neural network for pattern classification|url=http://www.sciencedirect.com/science/article/pii/0167865594900094|journal=Pattern Recognition Letters|language=en|volume=15|issue=8|pages=807–813|doi=10.1016/0167-8655(94)90009-4|issn=0167-8655}}</ref><ref>{{Cite journal|last=de Carvalho|first=A.|last2=Fairhurst|first2=M.C.|last3=Bisset|first3=D.L.|date=1994|title=A modular Boolean architecture for pattern recognition|url=http://ieeexplore.ieee.org/document/374967/|journal=Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN'94)|location=Orlando, FL, USA|publisher=IEEE|volume=7|pages=4349–4352|doi=10.1109/ICNN.1994.374967|isbn=978-0-7803-1901-1}}</ref>

در سال ۱۹۹۵، [[سپ هخرایتر|یوزف زِپ هُخ‌رایتر]] که پیش‌تر و در ۱۹۹۱ در پایان‌نامهٔ خود - تحت عنوان: ''بررسی‌هایی در شبکه‌های عصبی پویا'' (به [[زبان آلمانی|آلمانی]]: Untersuchungen zu dynamischen neuronalen Netzen) - به بررسی مسئلهٔ [[گرادیان کاهشی]] پرداخته بود<ref>S. Hochreiter. , "[http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf Untersuchungen zu dynamischen neuronalen Netzen]," ''Diploma thesis. Institut f. Informatik, Technische Univ. Munich. Advisor: J. Schmidhuber'', 1991.</ref> (که خود پیش‌تر و در ۱۸۴۷مطرح شده<ref>Lemaréchal, C. (2012). "[https://www.math.uni-bielefeld.de/documenta/vol-ismp/40_lemarechal-claude.pdf Cauchy and the Gradient Method]" (PDF). ''Doc Math Extra'': 251–254.</ref> و در ۱۹۴۴ نیز برای مسائل بهینه‌سازی غیرخطی مورد مطالعه قرار گرفته بود<ref>{{Cite journal|last=Curry|first=Haskell B.|date=1944|title=The method of steepest descent for non-linear minimization problems|url=https://www.ams.org/qam/1944-02-03/S0033-569X-1944-10667-3/|journal=Quarterly of Applied Mathematics|language=en|volume=2|issue=3|pages=258–261|doi=10.1090/qam/10667|issn=0033-569X}}</ref>) به همراه [[یورگن اشمیدهوبر]]، معماری [[حافظه طولانی کوتاه-مدت|ال‌اس‌تی‌ام]] را ارائه داد<ref>S. Hochreiter, J. Schmidhuber. Long Short-Term Memory. Technical Report FKI-207-95, Technische Universitat München, München, August 1995. URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=&#x20;10.1.1.51.3117.</ref> و در مقالهٔ دیگری در سال ۱۹۹۷، آن را بهبود بخشید<ref>S. Hochreiter, J. Schmidhuber. (1997). "Long Short-Term Memory". ''Neural Computation''. 9 (8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. <nowiki>PMID 9377276</nowiki>. URL http://www.bioinf.jku.at/publications/&#x20;older/2604.pdf.</ref> که زمینهٔ بزرگی را برای پیشرفت [[شبکه‌های عصبی بازگشتی]] فراهم ساخت{{مدرک|date=نوامبر ۲۰۲۰}}. در همان سال ۱۹۹۵، برندن فرِی به همراه [[جفری اورست هینتون|جفری هینتون]] و پیتر دایان نشان دادند که می‌توان با استفاده از [[الگوریتم بیدار-خواب]]، شبکه‌ای تشکیل‌شده از شش لایهٔ [[شبکه عصبی پیچشی#کاملاً همبند|کاملاً هم‌بند]] و با چندصد واحد پردازشی مخفی را آموزش داد.<ref>Hinton, Geoffrey E. ; Dayan, Peter; Frey, Brendan J. ; Neal, Radford (1995-05-26). "The wake-sleep algorithm for unsupervised neural networks". ''Science''. '''268''' (5214): 1158–1161. Bibcode:1995Sci...268.1158H. [[doi:10.1126/science.7761831]]. <nowiki>PMID 7761831</nowiki>.</ref>

== علت محبوبیت یادگیری عمیق ==
تا قبل از پیدایش ژرف‌آموزی، روش‌های یادگیری ماشین سنتی، بیش‌از حد به بازنمایی‌هایی (انتخاب ویژگی‌ها) که از داده‌ها بدست می‌آورند، وابسته بودند. این روش‌ها، نیاز به یک متخصص در دامنه موضوع داشت تا استخراج ویژگی‌ها را به‌صورت دستی انجام دهد. حال آن‌که، این استخراج ویژگی‌ها به صورت دستی فرآیندی چالش‌انگیز و زمان‌بر است. پیدایش ژرف‌آموزی توانست به‌سرعت جایگزین این روش‌های سنتی شود. چرا که می‌توانست استخراج ویژگی‌ها را به‌صورت خودکار متناسب با هر مسئله بدست آورد.<ref name=":0"/>

== یادگیری عمیق هندسی ==
در حالی‌که مدل‌های یادگیری عمیق در دهه گذشته، در برخورد با ورودی‌هایی به شکل تصاویر، گفتار یا ویدیو که اساس ساختار آن‌ها اقلیدسی است، موفقیت‌آمیز عمل کرده، اخیراً، علاقه محققین در تلاش برای استفاده از یادگیری بر روی داده‌های غیراقلیدسی افزایش یافته‌است. یادگیری عمیق هندسی، زمینه نوظهور تحقیقاتی است که سعی در تعمیم معماری یادگیری عمیق برای کار با داده‌های غیراقلیدسی دارد، تا این شکاف را پر کند.<ref name=":0">{{یادکرد کتاب|عنوان=میلاد وزان، یادگیری عمیق: اصول، مفاهیم و رویکردها، میعاد اندیشه، 1399}}</ref>

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

شبکه‌های عصبی گراف، به‌طور مستقیم برروی گراف‌ها اعمال می‌شوند و روشی آسان برای انجام وظایفی همانند، پیش‌بینی سطح گره، یال و گراف ارائه می‌کنند. تا پیش از، توسعه شبکه‌های عصبی گراف، روش‌های یادگیری عمیق توانایی اعمال برروی یال‌ها در جهت استخراج دانش و پیش‌بینی را نداشتند. در عوض، تنها بر اساس ویژگی‌های گره عمل می‌کردند.<ref name=":0"/>

== کاربردها ==
=== بینایی رایانه ===
{{اصلی|بینایی رایانه‌ای}}
یکی از نخستین زمینه‌های بسیار موفق برای یادگیری عمیق که پتانسیل بالقوهٔ این روش در حل مسائل را نشان داد، در حوزهٔ بازشناسی تصویر رخ داد.
[[پرونده:Computer vision sample in Simón Bolivar Avenue, Quito.jpg|جایگزین=صحنه‌ای از یک خیابان نسبتاً شلوغ با تعدادی اتوموبیل سواری و موتور سیکلت در آن که هر یک توسط یک الگوریتم بینایی ماشین رهگیری شده، مستطیلی به دورش رسم شده و برچسبی به بالای مستطیل زده شده‌است.|بندانگشتی|رهگیری خودکار حرکت وسایل نقلیه که از وظایف مهم یک [[اتومبیل خودران|خودروی خودران]] نیز محسوب می‌شود.]]
از سال ۲۰۱۰ و در پروژه‌ای موسوم به [[ایمیج‌نت]] مسابقه‌ای سالانه برگزار می‌شود که شرکت‌کنندگان با ارائهٔ الگوریتم‌های کامپیوتری گوناگون، تلاش به بازشناسی تصاویر دیجیتالی در مقیاس کلان کرده و بر سر دست‌یابی به دقّت‌های بالاتر با یک‌دیگر رقابت می‌کنند. حال در سال ۲۰۱۲، یک [[شبکه عصبی پیچشی|شبکهٔ عصبی هم‌گشتی]] به نام [[الکس‌نت]] در این رقابت به کار رفت و با کسب نتایجی بسیار چشم‌گیر، توجه‌های گسترده‌ای را به سوی روش ژرف‌آموزی جلب کرد؛ به شکلی که به باور برخی، در این سال «انقلاب یادگیری عمیق» رخ داد. لازم است ذکر شود که دقت الکس‌نت در تشخیص تصاویر [[پایگاه داده]]<nowiki/>‌ی ایمیج‌نت از دقت انسان نیز فراتر بود (هرچند البته حتی پیش از ارائهٔ الکس‌نت نیز الگوریتم‌های دیگری به عملکرد فراانسانی دست پیدا کرده بودند).<ref>{{Cite journal|last=Alom|first=Md Zahangir|last2=Taha|first2=Tarek M.|last3=Yakopcic|first3=Christopher|last4=Westberg|first4=Stefan|last5=Sidike|first5=Paheding|last6=Nasrin|first6=Mst Shamima|last7=Van Esesn|first7=Brian C.|last8=Awwal|first8=Abdul A. S.|last9=Asari|first9=Vijayan K.|date=2018-09-12|title=The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches|url=http://arxiv.org/abs/1803.01164|journal=arXiv:1803.01164 [cs]}}</ref><ref>{{یادکرد وب|عنوان=ImageNet Large Scale Visual Recognition Competition 2012 (ILSVRC2012)|نشانی=http://www.image-net.org/challenges/LSVRC/2012/results.html|وبگاه=www.image-net.org|بازبینی=2020-11-03}}</ref>

امروزه نیز شبکه‌های عصبی در بینایی رایانه دارای نقشی کلیدی بوده و برای اهداف گوناگونی چون بازشناسی تصویر، تشخیص چهره، رهگیری اجسام، حذف نویز، رنگی‌کردن تصاویر سیاه و سفید، ترمیم تصاویر آسیب‌دیده، [[طبقه‌بندی آماری|رده‌بندی]] تصاویر پزشکی و… به کار می‌رود.<ref>{{یادکرد وب|عنوان=Deep Learning for Computer Vision: A Brief Review|نشانی=https://www.hindawi.com/journals/cin/2018/7068349/|وبگاه=Computational Intelligence and Neuroscience|تاریخ=2018-02-01|بازبینی=2020-11-03|کد زبان=en|نام=Athanasios|نام خانوادگی=Voulodimos|نام۲=Nikolaos|نام خانوادگی۲=Doulamis|نام۳=Anastasios|نام خانوادگی۳=Doulamis|نام۴=Eftychios|نام خانوادگی۴=Protopapadakis}}</ref>

=== بازشناسی خودکار گفتار ===
{{اصلی|بازشناسی گفتار}}
از دیگر زمینه‌های موفق برای یادگیری عمیق، تشخیص و بازشناسی خودکار گفتار در مقیاس گسترده‌است که معمولاً توسط مدل‌های مبتنی بر [[شبکه عصبی بازگشتی]] (به ویژه از نوع [[حافظه طولانی کوتاه-مدت|ال‌اس‌تی‌ام]]) و شبکه عصبی هم‌گشتی انجام می‌گیرد.<ref>{{Cite journal|last=Kim|first=John|last2=Saurous|first2=Rif A.|date=2018-09-02|title=Emotion Recognition from Human Speech Using Temporal Information and Deep Learning|url=http://dx.doi.org/10.21437/interspeech.2018-1132|journal=Interspeech 2018|location=ISCA|publisher=ISCA|doi=10.21437/interspeech.2018-1132}}</ref>

=== پردازش زبان‌های طبیعی ===
{{نوشتار اصلی|پردازش زبان‌های طبیعی}}
یادگیری عمیق اثر بزرگی در پیشرفت شاخهٔ پردازش زبان‌های طبیعی ایجاد کرده و با ایجاد یک چهارچوب مدل‌سازی قدرتمند، به نتایج چشم‌گیری دست یافته‌است.<ref>{{Cite journal|date=2018|editor-last=Deng|editor-first=Li|editor2-last=Liu|editor2-first=Yang|title=Deep Learning in Natural Language Processing|url=http://dx.doi.org/10.1007/978-981-10-5209-5|doi=10.1007/978-981-10-5209-5}}</ref> به عنوان نمونه، مدل زبانی [[جی‌پی‌تی-۳]] از [[اوپن ای‌آی]] با بهره‌گیری روش‌های ژرف‌آموزی قادر به تولید متونی مشابه متون نوشته‌شده توسط انسان است.<ref>{{یادکرد وب|عنوان=OpenAI API|نشانی=https://openai.com/blog/openai-api/|وبگاه=OpenAI|تاریخ=2020-06-11|بازبینی=2020-11-03|کد زبان=en}}</ref>

=== تشخیص الکترومیوگرافی ===
[[سیگنال (مهندسی برق)|سیگنال]]<nowiki/>‌های [[نوار عصب و عضله|الکترومیوگرافی]] می‌توانند به عنوان رابطی میان انسان و ماشین عمل کرده و با تحلیل آن‌ها از مقصود کاربر جهت کنترل تجهیزات گوناگون بهره برد. به عنوان نمونه، افراد دچار نقص عضو می‌توانند اعضایی مصنوعی را جایگزین عضو قطع‌شدهٔ خود کرده و آن‌ها را به شیوهٔ مؤثری کنترل کنند. یا با همین روش می‌توان اعضایی کمکی و تقویت‌کننده همچون اسکلت خارجی را کنترل کرد. برای تحلیل این سیگنال‌های خام و ارائهٔ خروجی مناسب برای کنترل دستگاه، بهره‌گیری از روش یادگیری عمیق می‌تواند بسیار کاربردی باشد.<ref>{{Cite journal|last=Jafarzadeh|first=M.|last2=Hussey|first2=D. C.|last3=Tadesse|first3=Y.|date=2019-09|title=Deep learning approach to control of prosthetic hands with electromyography signals|url=https://ieeexplore.ieee.org/document/8955725/|journal=2019 IEEE International Symposium on Measurement and Control in Robotics (ISMCR)|pages=A1–4–1-A1-4-11|doi=10.1109/ISMCR47492.2019.8955725}}</ref>

=== سامانهٔ پیشنهادگر ===
{{اصلی|سامانه توصیه‌گر}}
سامانه‌های پیشنهادگر از ژرف‌آموزی جهت استخراج ویژگی‌های معنادار برای یک مدل [[متغیر پنهان|فاکتورهای پنهان]] به منظور پیشنهادهای محتوا-محور موسیقی و مجله بهره برده‌اند.<ref>{{Cite journal|last=van den Oord|first=Aäron|last2=Dieleman|first2=Sander|last3=Schrauwen|first3=Benjamin|date=2013-03-14|title=Learning a piecewise linear transform coding scheme for images|url=http://dx.doi.org/10.1117/12.2011134|journal=International Conference on Graphic and Image Processing (ICGIP 2012)|publisher=SPIE|doi=10.1117/12.2011134}}</ref><ref>{{Cite journal|last=Feng|first=Xiaoyue|last2=Zhang|first2=Hao|last3=Ren|first3=Yijie|last4=Shang|first4=Penghui|last5=Zhu|first5=Yi|last6=Liang|first6=Yanchun|last7=Guan|first7=Renchu|last8=Xu|first8=Dong|date=2019|title=The Deep Learning–Based Recommender System “Pubmender” for Choosing a Biomedical Publication Venue: Development and Validation Study|url=https://www.jmir.org/2019/5/e12957/|journal=Journal of Medical Internet Research|language=en|volume=21|issue=5|pages=e12957|doi=10.2196/12957|pmc=PMC6555124|pmid=31127715}}</ref> یادگیری عمیق چنددیدگاهی (به انگلیسی: multi-view deep learning) جهت یادگیری ترجیح‌های کاربر از چندین دامنه به کار می‌رود.<ref>{{Cite journal|last=Elkahky|first=Ali Mamdouh|last2=Song|first2=Yang|last3=He|first3=Xiaodong|date=2015|title=A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems|url=http://dx.doi.org/10.1145/2736277.2741667|journal=Proceedings of the 24th International Conference on World Wide Web - WWW '15|location=New York, New York, USA|publisher=ACM Press|doi=10.1145/2736277.2741667|isbn=978-1-4503-3469-3}}</ref>

=== سرمایه‌گذاری ===
در طرح‌های سرمایه‌گذاری، از یادگیری عمیق برای افزایش [[میزان بازده]] استفاده می‌شود.<ref>{{یادکرد ژورنال|date=3 February 2019|title=Improving Stock Return Forecasting by Deep Learning Algorithm|url=http://amfa.iau-arak.ac.ir/article_666225_caee414cfd0c5ca13b74c66eac651b7b.pdf|journal=Advances in mathematical finance & applications|دوره=۴|شماره=۳|صفحات=۱۳|doi=10.22034/amfa.2019.584494.1173|تاریخ بازبینی=30 May 2019}}</ref>

== نساج شبکه‌های عصبی ==
[[شبکه‌های عصبی عمیق]] (DNNs) مدل‌های یادگیری هستند که دارای محاسبات خیلی زیادی‌اند. این مدل‌ها کاربردهای روزافزونی در بخش‌های مختلف دارند. از آنجا که FPGAها یک زیرساخت قابل‌برنامه‌نویسی برای شتاب‌دادن به محاسبات می‌دهند و همچنین امروزه در بیشتر دنیا به سادگی قابل دسترس‌اند، FPGAها یک انتخاب خیلی خوب برای پیاده‌سازی مدل‌های DNN هستند. اما استفاده از FPGAها به دلیل اینکه به‌دست آوردن کارایی و مصرف انرژی کم آنها به‌طور همزمان کار خیلی سختی است و همچنین DNNها به حافظه زیادی نیاز دارند (در FPGA معمولاً حافظه روی برد کم است)، پیاده‌سازی مدل‌ها با FPGA بسیار دشوار است. '''نساج یا بافنده شبکه‌های عصبی''' (DNNWEAVER) یک چارچوب است که به صورت خودکار یک کد قابل‌سنتز برای یک [[زوج مرتب]] (DNN, FPGA) تولید می‌کند. مدل DNN را به صورتی که در Caffe معرفی می‌کنند به عنوان ورودی می‌دهند.


روند کلی کار این برنامه به این صورت است که ابتدا مدل ورودی را به یک زبان میانی تبدیل می‌کند که یک [[گراف]] از جریان داده کلی را نشان می‌دهد. در این مرحله با [[الگوریتم]]های مختلف مدل داده شده را گروه‌بندی می‌کند تا با توجه به حافظه FPGA و دیگر منابع موجود روی FPGA به حداکثر استفاده مجدد از داده‌ها و بالاترین سطح کارایی برسد. بعد از آن نتیجه نهایی یک کد سنتزپذیر است که با بالاترین کارایی روی FPGA موردنظر تمامی نیازهای مدل ورودی را برآورده می‌سازد.
روند کلی کار این برنامه به این صورت است که ابتدا مدل ورودی را به یک زبان میانی تبدیل می‌کند که یک [[گراف]] از جریان داده کلی را نشان می‌دهد. در این مرحله با [[الگوریتم]]های مختلف مدل داده شده را گروه‌بندی می‌کند تا با توجه به حافظه FPGA و دیگر منابع موجود روی FPGA به حداکثر استفاده مجدد از داده‌ها و بالاترین سطح کارایی برسد. بعد از آن نتیجه نهایی یک کد سنتزپذیر است که با بالاترین کارایی روی FPGA موردنظر تمامی نیازهای مدل ورودی را برآورده می‌سازد.
خط ۳۶: خط ۱۲۱:


کار انجام شده توسط چن و همکارانش<ref>Chen Zhang, Peng Li, Guangyu Sun, Yijin Guan, Bingjun Xiao, and Jason Cong. Optimizing fpga-based accelerator design for deep convolutional neural networks. In FPGA, 2015.</ref> روی طرحی تحلیلی بر اساس مدل خط بیشترین کار می‌کند تا با استفاده از آن سریع‌ترین طرح را برای شبکه عصبی عمیق مربوطه روی FPGA بیابند. اما این کار برخی لایه‌ها مثل ائتلافی (Pooling) را دربر نمی‌گیرد.
کار انجام شده توسط چن و همکارانش<ref>Chen Zhang, Peng Li, Guangyu Sun, Yijin Guan, Bingjun Xiao, and Jason Cong. Optimizing fpga-based accelerator design for deep convolutional neural networks. In FPGA, 2015.</ref> روی طرحی تحلیلی بر اساس مدل خط بیشترین کار می‌کند تا با استفاده از آن سریع‌ترین طرح را برای شبکه عصبی عمیق مربوطه روی FPGA بیابند. اما این کار برخی لایه‌ها مثل ائتلافی (Pooling) را دربر نمی‌گیرد.

== جستارهای وابسته ==
* [[ادراک ماشین]]
* [[جعل عمیق]]
* [[بازگشت به عقب]]
* [[شبکه عصبی مصنوعی]]
* [[گرادیان کاهشی تصادفی]]
* [[یادگیری ماشین]]
* [[رگرسیون خطی]]


== منابع ==
== منابع ==
{{چپ‌چین}}
{{چپ‌چین}}{{پانویس|۲}}
* [https://www.cc.gatech.edu/~hadi/doc/paper/2016-cogarch-dnn_weaver.pdf DNNWEAVER Article 2016] {{Webarchive|url=https://web.archive.org/web/20170331105619/http://www.cc.gatech.edu/%7Ehadi/doc/paper/2016-cogarch-dnn_weaver.pdf |date=31 مارس 2017 }}
* [https://www.cc.gatech.edu/~hadi/doc/paper/2016-cogarch-dnn_weaver.pdf DNNWEAVER Article 2016] {{Webarchive|url=https://web.archive.org/web/20170331105619/http://www.cc.gatech.edu/%7Ehadi/doc/paper/2016-cogarch-dnn_weaver.pdf |date=31 مارس 2017}}
* [http://act-lab.org/artifacts/dnnweaver Page of DNNWEAVER]
* [http://act-lab.org/artifacts/dnnweaver Page of DNNWEAVER]
{{پایان چپ‌چین}}
{{پایان چپ‌چین}}


== پیوند به بیرون ==
== پانویس ==
* [http://deeplearning.net/ Deep learning] {{Webarchive|url=https://web.archive.org/web/20171213184650/http://deeplearning.net/ |date=۱۳ دسامبر ۲۰۱۷}}
{{پانویس}}
* [https://www.youtube.com/watch?v=VdIURAu1-aU Video on Recent Developments in Deep Learning], by [[جفری اورست هینتون]]
[[رده:یادگیری عمیق]]

[[رده:یادگیری عمیق| ]]
[[رده:شبکه‌های عصبی مصنوعی]]
[[رده:شبکه‌های عصبی]]
[[رده:فناوری‌های نوپدید]]
[[رده:ویکی‌سازی رباتیک]]
[[رده:یادگیری ماشینی]]

نسخهٔ ‏۱۴ مهٔ ۲۰۲۲، ساعت ۱۱:۲۱

گرافی سلسله‌مراتبی، کامل، جهت‌دار و یک‌طرفه، تشکیل‌شده از سه رأس در ستون نخست، سه رأس در ستون دوم و دو رأس در ستون سوم. سه پیکان (یال جهت‌دار) با برچسب inputs درحال ورود به به رئوس لایهٔ نخست هستند و دو پیکان نیز با برچسب outputs درحال خروج از لایهٔ سوم. لایه‌ها نیز به ترتیب با برچسب‌های input layer و hidden layer و output layer نام‌گذاری شده‌اند.
چپ: لایهٔ ورودی که در این مثال شامل سه نورون دریافت‌کننده است. راست: لایهٔ خروجی با یک یا چند نورون خروجی (در این عکس دو عدد). لایه(ها) ی میانی، عموماً لایه(ها) ی پنهان نامیده‌شده و نه ورودی (برای دریافت داده‌های خام) هستند و نه خروجی (برای تحویل نتایج نهایی). شبکه‌های عصبی عمیق از یک یا چند لایهٔ پنهان تشکیل می‌شوند (توافقی جامع و مشخص برای تعیین حداقل تعداد لایه‌های مورد نیاز در یک شبکهٔ عصبی عمیق وجود ندارد).

یادگیری عمیق، یادگیری ژرف یا ژرف‌آموزی (به انگلیسی: Deep learning) (به بیانی دیگر: یادگیری ژرف ماشین، یادگیری ساختار ژرف یا یادگیری سلسله مراتبی) یک زیر شاخه از یادگیری ماشین و بر مبنای مجموعه‌ای از الگوریتم‌ها است که در تلاشند تا مفاهیم انتزاعی سطح بالا در دادگان را مدل نمایند که این فرایند را با استفاده از یک گراف عمیق که دارای چندین لایه پردازشی متشکل از چندین لایه تبدیلات خطی و غیرخطی هستند، مدل می‌کنند. به بیان دیگر پایهٔ آن بر یادگیری نمایش دانش و ویژگی‌ها در لایه‌های مدل است.[۱]

یک نمونه آموزشی (برای نمونه: تصویر یک گربه) می‌تواند به صورت‌های گوناگون بسان یک بردار ریاضی پر شده از مقدار به ازای هر پیکسل و در دید کلی‌تر به شکل یک مجموعه از زیرشکل‌های کوچک‌تر (نظیر اعضای صورت گربه) مدل‌سازی شود. برخی از این روش‌های مدل‌سازی سبب ساده شدن فرایند یادگیری ماشین (برای نمونه: تشخیص تصویر گربه) می‌شوند. در یادگیری ژرف امید به جایگزینی استخراج این ویژگی‌های تصویر به دست بشر (مانند اعضای گربه) با روش‌های کامل‌خودکار بی‌نظارت و نیمه‌نظارتی وجود دارد.[۲]

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

در حقیقت عبارت یادگیری عمیق، بررسی روش‌های تازه برای شبکه عصبی مصنوعی است.[۴][۵]

تعریف

ژرف‌آموزی، رده‌ای از الگوریتم‌های یادگیری ماشین است[۶]: ۱۹۹–۲۰۰  که از چندین لایه برای استخراج ویژگی‌های سطح بالا از ورودی خام استفاده می‌کنند. به بیانی دیگر، رده‌ای از تکنیک‌های یادگیری ماشین که از چندین لایهٔ پردازش اطلاعات و به‌ویژه اطلاعات غیرخطی بهره می‌برد تا عملیات تبدیل یا استخراج ویژگی نظارت‌شده یا نظارت‌نشده را عموماً با هدف تحلیل یا بازشناخت الگو، کلاس‌بندی، خوشه‌بندی انجام دهد.[۷]

برای نمونه، در پردازش تصویر، لایه‌های پست‌تر می‌توانند لبه‌ها را تشخیص دهند، در حالی که لایه‌های عالی‌تر ممکن است ویژگی‌های پرمعناتر برای انسان، همچون حروف یا چهره‌ها، را تشخیص دهند.

نموداری چندلایه که در پست‌ترین لایه، عکس چند جانور (فیل، کانگورو و پنگوئن) قرار گرفته و فیل به عنوان ورودی برگزیده شده‌است. سپس در لایه‌های بالاتر لبه‌هایی از بدن فیل تشخیص داده شده و به تدریج شمای کلی بدن فیل را تشکیل می‌دهند تا نهایتاً در لایهٔ خروجی (بالاترین لایه)، برچسب فیل (از میان برچسب‌های دیگری چون کانگورو و پنگوئن برگزیده شده‌است.
نمایی از چگونگی استخراج ویژگی جهت کلاس‌بندی تصاویر با روش یادگیری عمیق[۸]

مفهوم

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

تاریخچه

نخستین الگوریتم عملی یادگیرنده برای پرسپترون‌های چندلایهٔ نظارت‌شده، ژرف و پیش‌خور، در دههٔ ۱۹۶۰ توسط الکسی ایواخننکو - معروف به «پدر یادگیری عمیق»[۹] - و والنتن لاپا منتشر شد.[۱۰] در سال ۱۹۷۱، مقاله‌ای یک شبکهٔ ژرف با هشت لایه را توصیف کرد که عملیات یادگیری را با متد گروهی مدیریت داده (GMDH) انجام داده بود.[۱۱] سایر معماری‌های یادگیری عمیق و به ویژه آن‌هایی که برای بینایی رایانه ساخته شده بودند، در ۱۹۸۰ و با Neocognitron معرفی‌شده توسط کونیهیکو فوکوشیما آغاز گشتند.[۱۲]

لفظ یادگیری عمیق، نخستین‌بار در ۱۹۸۶ و توسط رینا دِختِر در زمینهٔ یادگیری ماشین به کار رفت؛ وی در مقاله‌ای تحت عنوان یادگیری به هنگام جستجو در مسائل ارضای محدودیت (Learning While Searching in Constraint-Satisfaction-Problems) از این لفظ برای پروسه‌ای استفاده کرد که در آن تمامی راه‌حل‌ها در یک فضای جستجو که به پاسخ مناسب نمی‌رسیدند نیز ذخیره می‌شدند. تحلیل این راه‌حل‌های ذخیره‌شده امکان کنترل بهتر در تلاش‌های بعدی را ممکن می‌ساخت، و به دنبال آن در همان مراحل نخستین از گیر کردن در بن‌بست‌های احتمالی نیز جلوگیری می‌کرد.[۱۳][۱۴] با این وجود امروزه لفظ یادگیری عمیق عموماً در حوزهٔ شبکه‌های عصبی مصنوعی به کار می‌رود که نخستین‌بار در سال ۲۰۰۰ و توسط ایگور آیزنبرگ و همکاران در حوزهٔ یادشده استفاده شد؛ به‌طور دقیق‌تر، در کتاب نورون‌های دودویی چندمقداری و جهانی: نظریه، یادگیری و کاربردها (Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications) و در زمینهٔ نورون‌های حدآستانهٔ بولی.[۱۵][۱۶]

در سال ۱۹۸۹، یان لی‌کان و همکاران الگوریتم استاندارد پس‌انتشار را برای یک شبکهٔ عصبی عمیق با هدف تشخیص متن‌های دست‌نویس (به‌طور خاص با هدف بازشناسی کدهای پستی دست‌نویس روی نامه‌های پستی) به کار بست. درحالی که الگوریتم کار می‌کرد، عملیات یادگیری آن به سه روز زمان نیاز داشت. مدل مورد استفاده از یک لایهٔ ورودی با ۲۵۶ واحد (پیکسل‌های یک تصویر مربعی ۱۶×۱۶)، یک لایهٔ خروجی با ۱۰ واحد (که مشخص می‌کرد تصویر رقمی که به ورودی داده‌شده‌است، کدام یک از ارقام ۰ تا ۹ است) و سه لایهٔ پنهان در میان این دو تشکیل شده بود. با ارزیابی مدل بر روی مجموعه‌دادهٔ تست، ۸/۱٪ رده‌بندی اشتباه و ۱۹/۴٪ بازپس‌زنی برای ۱٪ نرخ خطا در میان الگوهای تست باقی‌مانده به دست آمد که نشان می‌داد که این مدل نسبت به مدل‌های ارائه‌شدهٔ پیشین از دقت بالاتری برخوردار است و استفاده از الگوریتم پس‌انتشار، روشی مناسب در فرایند تعلیم شبکه‌های عصبی عمیق است.[۱۷] لازم است ذکر شود که خود الگوریتم پس‌انتشار، از پیش و از ۱۹۷۰ نیز به عنوان حالت معکوس مشتق خودکار وجود داشت.[۱۸][۱۹]

تا سال ۱۹۹۱، چنین سامانه‌هایی عموماً برای تشخیص ارقام دوبُعدی دست‌نویس ایزوله‌شده (به این معنا که ارقام به صورت تنها و بدون جزئیات و ویژگی‌های اضافهٔ دیگری در پس‌زمینه - مثلاً متن و حروف اضافه - نوشته‌شده‌اند) به کار می‌رفتند؛ درحالی که بازشناسی اجسام سه‌بُعدی همچنان یک چالش بود. در سال ۱۹۹۲، پژوهشی از جان ونگ و همکاران با توضیح معایب و محدودیت‌های شبکه‌های عصبی سه‌لایه‌ای که برای این منظور به کار می‌رفتند، از مفهوم شبکهٔ سلسله‌مراتبی (به انگلیسی: hierarchical network) استفاده کرده و مدلی موسوم به Cresceptron را ارائه دادند که قادر بود اجسام سه‌بعدی در محیط‌های شلوغ را نیز تشخیص دهد.[۲۰][۲۱][۲۲] مفهوم تجمیع حداکثری (به انگلیسی: max pooling) نیز نخستین‌بار در همین پژوهش پیاده‌سازی شد.[نیازمند منبع] از آن‌جایی که این مدل می‌توانست مستقیماً تصاویر طبیعی (سوژه‌های سه‌بعدی، با حضور عناصر دیگر در پس‌زمینه) را به عنوان ورودی دریافت کند، تبدیل به بنیانی برای یادگیری بصری همه‌منظوره شد.

در سال ۱۹۹۴، آندره د کاروالیو به همراه مایک فیرهورست و دیوید بیسیت، معماری‌ای مبتنی بر یک شبکهٔ عصبی بولی چندلایه را ارائه داد که تحت عنوان شبکهٔ عصبی بی‌وزن نیز شناخته می‌شد. این معماری از یک ماژول شبکهٔ عصبی سه‌لایه‌ای خودسامان‌دهندهٔ استخراج ویژگی (به انگلیسی: self-organising feature extraction یا SOFT) به همراه یک ماژول شبکهٔ عصبی چندلایهٔ رده‌بندی (به‌طور خاص یک شبکه با معماری GSN یا goal-seeking network) تشکیل شده بود که به صورت مستقل عملیات یادگیری را انجام می‌دادند. در ماژول استخراج ویژگی، تصویر ورودی به چند زیرمجموعه تقسیم شده و هر قسمت به یک بلاک از نورون‌ها (که دارای سلسله‌مراتب بوده و در چند لایه تقسیم شده‌بودند) داده می‌شد و هر بلاک به صورت موازی با دیگر بلاک‌ها و مستقل از آن‌ها آموزش می‌دید.[۲۳][۲۴]

در سال ۱۹۹۵، یوزف زِپ هُخ‌رایتر که پیش‌تر و در ۱۹۹۱ در پایان‌نامهٔ خود - تحت عنوان: بررسی‌هایی در شبکه‌های عصبی پویا (به آلمانی: Untersuchungen zu dynamischen neuronalen Netzen) - به بررسی مسئلهٔ گرادیان کاهشی پرداخته بود[۲۵] (که خود پیش‌تر و در ۱۸۴۷مطرح شده[۲۶] و در ۱۹۴۴ نیز برای مسائل بهینه‌سازی غیرخطی مورد مطالعه قرار گرفته بود[۲۷]) به همراه یورگن اشمیدهوبر، معماری ال‌اس‌تی‌ام را ارائه داد[۲۸] و در مقالهٔ دیگری در سال ۱۹۹۷، آن را بهبود بخشید[۲۹] که زمینهٔ بزرگی را برای پیشرفت شبکه‌های عصبی بازگشتی فراهم ساخت[نیازمند منبع]. در همان سال ۱۹۹۵، برندن فرِی به همراه جفری هینتون و پیتر دایان نشان دادند که می‌توان با استفاده از الگوریتم بیدار-خواب، شبکه‌ای تشکیل‌شده از شش لایهٔ کاملاً هم‌بند و با چندصد واحد پردازشی مخفی را آموزش داد.[۳۰]

علت محبوبیت یادگیری عمیق

تا قبل از پیدایش ژرف‌آموزی، روش‌های یادگیری ماشین سنتی، بیش‌از حد به بازنمایی‌هایی (انتخاب ویژگی‌ها) که از داده‌ها بدست می‌آورند، وابسته بودند. این روش‌ها، نیاز به یک متخصص در دامنه موضوع داشت تا استخراج ویژگی‌ها را به‌صورت دستی انجام دهد. حال آن‌که، این استخراج ویژگی‌ها به صورت دستی فرآیندی چالش‌انگیز و زمان‌بر است. پیدایش ژرف‌آموزی توانست به‌سرعت جایگزین این روش‌های سنتی شود. چرا که می‌توانست استخراج ویژگی‌ها را به‌صورت خودکار متناسب با هر مسئله بدست آورد.[۳۱]

یادگیری عمیق هندسی

در حالی‌که مدل‌های یادگیری عمیق در دهه گذشته، در برخورد با ورودی‌هایی به شکل تصاویر، گفتار یا ویدیو که اساس ساختار آن‌ها اقلیدسی است، موفقیت‌آمیز عمل کرده، اخیراً، علاقه محققین در تلاش برای استفاده از یادگیری بر روی داده‌های غیراقلیدسی افزایش یافته‌است. یادگیری عمیق هندسی، زمینه نوظهور تحقیقاتی است که سعی در تعمیم معماری یادگیری عمیق برای کار با داده‌های غیراقلیدسی دارد، تا این شکاف را پر کند.[۳۱]

شبکه عصبی گراف

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

شبکه‌های عصبی گراف، به‌طور مستقیم برروی گراف‌ها اعمال می‌شوند و روشی آسان برای انجام وظایفی همانند، پیش‌بینی سطح گره، یال و گراف ارائه می‌کنند. تا پیش از، توسعه شبکه‌های عصبی گراف، روش‌های یادگیری عمیق توانایی اعمال برروی یال‌ها در جهت استخراج دانش و پیش‌بینی را نداشتند. در عوض، تنها بر اساس ویژگی‌های گره عمل می‌کردند.[۳۱]

کاربردها

بینایی رایانه

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

صحنه‌ای از یک خیابان نسبتاً شلوغ با تعدادی اتوموبیل سواری و موتور سیکلت در آن که هر یک توسط یک الگوریتم بینایی ماشین رهگیری شده، مستطیلی به دورش رسم شده و برچسبی به بالای مستطیل زده شده‌است.
رهگیری خودکار حرکت وسایل نقلیه که از وظایف مهم یک خودروی خودران نیز محسوب می‌شود.

از سال ۲۰۱۰ و در پروژه‌ای موسوم به ایمیج‌نت مسابقه‌ای سالانه برگزار می‌شود که شرکت‌کنندگان با ارائهٔ الگوریتم‌های کامپیوتری گوناگون، تلاش به بازشناسی تصاویر دیجیتالی در مقیاس کلان کرده و بر سر دست‌یابی به دقّت‌های بالاتر با یک‌دیگر رقابت می‌کنند. حال در سال ۲۰۱۲، یک شبکهٔ عصبی هم‌گشتی به نام الکس‌نت در این رقابت به کار رفت و با کسب نتایجی بسیار چشم‌گیر، توجه‌های گسترده‌ای را به سوی روش ژرف‌آموزی جلب کرد؛ به شکلی که به باور برخی، در این سال «انقلاب یادگیری عمیق» رخ داد. لازم است ذکر شود که دقت الکس‌نت در تشخیص تصاویر پایگاه داده‌ی ایمیج‌نت از دقت انسان نیز فراتر بود (هرچند البته حتی پیش از ارائهٔ الکس‌نت نیز الگوریتم‌های دیگری به عملکرد فراانسانی دست پیدا کرده بودند).[۳۲][۳۳]

امروزه نیز شبکه‌های عصبی در بینایی رایانه دارای نقشی کلیدی بوده و برای اهداف گوناگونی چون بازشناسی تصویر، تشخیص چهره، رهگیری اجسام، حذف نویز، رنگی‌کردن تصاویر سیاه و سفید، ترمیم تصاویر آسیب‌دیده، رده‌بندی تصاویر پزشکی و… به کار می‌رود.[۳۴]

بازشناسی خودکار گفتار

از دیگر زمینه‌های موفق برای یادگیری عمیق، تشخیص و بازشناسی خودکار گفتار در مقیاس گسترده‌است که معمولاً توسط مدل‌های مبتنی بر شبکه عصبی بازگشتی (به ویژه از نوع ال‌اس‌تی‌ام) و شبکه عصبی هم‌گشتی انجام می‌گیرد.[۳۵]

پردازش زبان‌های طبیعی

یادگیری عمیق اثر بزرگی در پیشرفت شاخهٔ پردازش زبان‌های طبیعی ایجاد کرده و با ایجاد یک چهارچوب مدل‌سازی قدرتمند، به نتایج چشم‌گیری دست یافته‌است.[۳۶] به عنوان نمونه، مدل زبانی جی‌پی‌تی-۳ از اوپن ای‌آی با بهره‌گیری روش‌های ژرف‌آموزی قادر به تولید متونی مشابه متون نوشته‌شده توسط انسان است.[۳۷]

تشخیص الکترومیوگرافی

سیگنال‌های الکترومیوگرافی می‌توانند به عنوان رابطی میان انسان و ماشین عمل کرده و با تحلیل آن‌ها از مقصود کاربر جهت کنترل تجهیزات گوناگون بهره برد. به عنوان نمونه، افراد دچار نقص عضو می‌توانند اعضایی مصنوعی را جایگزین عضو قطع‌شدهٔ خود کرده و آن‌ها را به شیوهٔ مؤثری کنترل کنند. یا با همین روش می‌توان اعضایی کمکی و تقویت‌کننده همچون اسکلت خارجی را کنترل کرد. برای تحلیل این سیگنال‌های خام و ارائهٔ خروجی مناسب برای کنترل دستگاه، بهره‌گیری از روش یادگیری عمیق می‌تواند بسیار کاربردی باشد.[۳۸]

سامانهٔ پیشنهادگر

سامانه‌های پیشنهادگر از ژرف‌آموزی جهت استخراج ویژگی‌های معنادار برای یک مدل فاکتورهای پنهان به منظور پیشنهادهای محتوا-محور موسیقی و مجله بهره برده‌اند.[۳۹][۴۰] یادگیری عمیق چنددیدگاهی (به انگلیسی: multi-view deep learning) جهت یادگیری ترجیح‌های کاربر از چندین دامنه به کار می‌رود.[۴۱]

سرمایه‌گذاری

در طرح‌های سرمایه‌گذاری، از یادگیری عمیق برای افزایش میزان بازده استفاده می‌شود.[۴۲]

نساج شبکه‌های عصبی

شبکه‌های عصبی عمیق (DNNs) مدل‌های یادگیری هستند که دارای محاسبات خیلی زیادی‌اند. این مدل‌ها کاربردهای روزافزونی در بخش‌های مختلف دارند. از آنجا که FPGAها یک زیرساخت قابل‌برنامه‌نویسی برای شتاب‌دادن به محاسبات می‌دهند و همچنین امروزه در بیشتر دنیا به سادگی قابل دسترس‌اند، FPGAها یک انتخاب خیلی خوب برای پیاده‌سازی مدل‌های DNN هستند. اما استفاده از FPGAها به دلیل اینکه به‌دست آوردن کارایی و مصرف انرژی کم آنها به‌طور همزمان کار خیلی سختی است و همچنین DNNها به حافظه زیادی نیاز دارند (در FPGA معمولاً حافظه روی برد کم است)، پیاده‌سازی مدل‌ها با FPGA بسیار دشوار است. نساج یا بافنده شبکه‌های عصبی (DNNWEAVER) یک چارچوب است که به صورت خودکار یک کد قابل‌سنتز برای یک زوج مرتب (DNN, FPGA) تولید می‌کند. مدل DNN را به صورتی که در Caffe معرفی می‌کنند به عنوان ورودی می‌دهند.

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

دید کلی از نساج شبکه‌های عصبی

این کار کمک می‌کند تا چرخه طولانی لازم برای استفاده از FPGA در شبکه‌های عصبی عمیق کوتاه‌تر شود. هدف از این کار تولید یک چارچوب خودکار است که اولاً برنامه‌نویس را از جزییات مربوط به طراحی و بهینه‌سازی سخت‌افزار جدا می‌کند. دوماً خود چارچوب به منابع محدود موجود روی FPGA دست و پنجه نرم می‌کند؛ و در نهایت چارچوب پایدار برای FPGA فراهم می‌کند که کارایی بالایی را برای پیاده‌سازی مدل‌های مختلف شبکه‌های عصبی عمیق روی FPGAهای گوناگون ارائه می‌کند. برای رسیدن به چنین هدف‌هایی DNNWEAVER طراحی شده‌است. در مرحله اول DNNWEAVER نیاز به یک مدل شبکه عصبی عمیق دارد که با استفاده از یک رابط سطح بالا مشخص شده‌است.

رابط مدل‌دادن

ورودی برنامه DNNWEAVER یک توصیف‌گر سطح بالا از شبکه‌های عصبی عمیق است که در دانشگاه برکلی با نام قالب Caffe[۴۳] درست شده‌است.

Caffe یکی از پراستفاده‌ترین چارچوب‌های یادگیری عمیق است که توصیف شبکه را به عنوان ورودی می‌گیرد و به مدلی قابل اجرا روی CPU یا GPU تبدیل می‌کند.

DNNWEAVER به صورت خودکار مدل ورودی را به کد سنتزپذیر زبان وریلاگ تبدیل می‌کند. DNNWEAVER از چهار بخش نرم‌افزاری تشکیل شده‌است:

  • ترجمه‌گر
  • نقشه‌کش طرح
  • نسّاج طرح
  • مجتمع‌کننده

ترجمه‌گر

ترجمه‌گر شبکه عمیق توصیف‌شده را به معماری مجموعه دستورها خاصی که مسیر داده را مشخص می‌کند تبدیل می‌کند. هر دستور در این مجموعه نشان دهنده یک گره در گراف مسیر داده شبکه است. توجه کنید که FPGA مستقیماً این دستورها را اجرا نمی‌کند. کامپایلر DNNWEAVER این دستورها را به سیگنال‌های کنترلی FPGA می‌نگارد و یک تقویم اجرا را درست می‌کند. این روش یک واسط نرم‌افزار-سخت‌افزار یکپارچه را فراهم می‌کند؛ بنابراین به کمک این معماری مجموعه دستورها انواع گوناگونی از پیاده‌سازی شتاب‌دهنده‌ها را که با محدودیت‌های FPGA مقصد سازگار است، امکان‌پذیر می‌کند.

نقشه‌کش طرح

نقشه‌کش طرح دستورها تولید شده در مرحله قبل را به عنوان ورودی می‌گیرد و با کمک الگوریتم بهینه‌سازی منابع الگو قالب‌های سخت‌افزاری را برای FPGA مقصد بهینه می‌کند. نقشه‌کش طرح محاسبات هر لایه را به گروه‌هایی از عملگرها بخش‌بندی می‌کند که داده‌ها را به اشتراک می‌گذارند یا استفاده مجدد می‌کنند. به هرکدام این بخش‌ها تکه می‌گوییم. هر تکه بعد از محاسبه در حافظه ریخته می‌شود و FPGA به سراغ محاسبه تکه بعدی می‌رود. شتاب‌دهنده شبکه‌های عصبی مشکل اساسی با مقدار زیاد حافظه موردنیاز برخلاف حافظه کم FPGA دارد که DNNWEAVER این مشکل را با استفاده از الگوریتم بهینه‌سازی منابع الگو بهبود می‌دهد و به کمک آن یک تعادل بین عملگرهای موازی و استفاده مجدد از داده‌ها با توجه به محدودیت‌های FPGA مقصد برقرار می‌کند.

نسّاج طرح

نسّاجی طرح مرحله یکی‌مانده به آخر از DNNWEAVER است که ورودی آن مقدار منابع موردنیاز و تقویم اجرای تولید شده در مرحله قبل است و به کمک آن هسته شتاب‌دهنده را تولید می‌کند. DNNWEAVER از تعدادی قالب بهینه‌سازی دستی استفاده می‌کند که با توجه به گرفتن منابع و سازمان‌دهی سخت‌افزار که در مرحله قبل تولید شده از آن قالب‌ها استفاده می‌کند.

مجتمع‌کننده

آخرین قسمت DNNWEAVER مجتمع‌کننده است. در این مرحله کدهای رابط حافظه به کدهای شتاب‌دهنده اضافه می‌شود. از آنجایی که FPGAهای مختلف از رابط‌های مختلفی برای ارتباط با DRAM خارجی استفاده می‌کنند، این بخش شامل کتابخانه‌هایی از رابط‌های DRAM است که در هر بار کد لازم را اضافه می‌کند.

دیگر کارهای مربوطه

در این حوزه کاری چندین سخت‌افزار با اهداف مختلف ایجاد شده‌است. هر چند که DNNWEAVER یک شتاب‌دهنده نیست، بلکه تولیدکننده کد یک شتاب‌دهنده است.

Tabla[۴۴] یک شتاب‌دهنده FPGA برای فاز آموزش الگوریتم‌های یادگیری ماشین ارائه می‌کند در حالی که DNNWEAVER رو رابط شبکه‌های عصبی تمرکز دارد. Tabla از زبان ریاضیاتی مختص به خودش استفاده می‌کند در حالی که DNNWEAVER از زبان Caffe برای مشخص کردن مدل استفاده می‌کند.

کار انجام شده توسط چن و همکارانش[۴۵] روی طرحی تحلیلی بر اساس مدل خط بیشترین کار می‌کند تا با استفاده از آن سریع‌ترین طرح را برای شبکه عصبی عمیق مربوطه روی FPGA بیابند. اما این کار برخی لایه‌ها مثل ائتلافی (Pooling) را دربر نمی‌گیرد.

جستارهای وابسته

منابع

  1. Bengio, Y. (2009). Learning Deep Architectures for AI (PDF). Now Publishers. Archived from the original (PDF) on 21 March 2014. Retrieved 17 February 2013.
  2. Song, Hyun Ah, and Soo-Young Lee. "Hierarchical Representation Using NMF." Neural Information Processing. Springer Berlin Heidelberg, 2013.
  3. Olshausen, Bruno A. "Emergence of simple-cell receptive field properties by learning a sparse code for natural images." Nature 381.6583 (1996): 607-609.
  4. Ronan Collobert (May 6, 2011). "Deep Learning for Efficient Discriminative Parsing". videolectures.net. Ca. 7:45.
  5. Gomes, Lee (20 October 2014). "Machine-Learning Maestro Michael Jordan on the Delusions of Big Data and Other Huge Engineering Efforts". IEEE Spectrum.
  6. Deng, L.; Yu, D. (2014). "Deep Learning: Methods and Applications" (PDF). Foundations and Trends in Signal Processing. 7 (3–4): 1–199. doi:10.1561/2000000039.
  7. DengLi; YuDong (2014-06-30). "Deep Learning". Foundations and Trends in Signal Processing (به انگلیسی). doi:10.1561/2000000039.
  8. Schulz, Hannes; Behnke, Sven (2012-11-01). "Deep Learning". KI - Künstliche Intelligenz (به انگلیسی). 26 (4): 357–363. doi:10.1007/s13218-012-0198-z. ISSN 1610-1987.
  9. «Paper by "Deep Learning Conspiracy" in Nature». people.idsia.ch. دریافت‌شده در ۲۰۲۰-۱۱-۰۴.
  10. Ivakhnenko, A. G. ; Lapa, V. G. (1967). Cybernetics and Forecasting Techniques. American Elsevier Publishing Co. ISBN 978-0-444-00020-0.
  11. Ivakhnenko, A. G. (1971-10). "Polynomial Theory of Complex Systems". IEEE Transactions on Systems, Man, and Cybernetics. SMC-1 (4): 364–378. doi:10.1109/TSMC.1971.4308320. ISSN 0018-9472. {{cite journal}}: Check date values in: |date= (help)
  12. Fukushima, Kunihiko (1980-04). "Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position". Biological Cybernetics. 36 (4): 193–202. doi:10.1007/bf00344251. ISSN 0340-1200. {{cite journal}}: Check date values in: |date= (help)
  13. Rina Dechter (1986). Learning while searching in constraint-satisfaction problems. (PDF) University of California, Computer Science Department, Cognitive Systems Laboratory.
  14. Schmidhuber, Juergen (2015-11-28). "Deep Learning". Scholarpedia (به انگلیسی). 10 (11): 32832. doi:10.4249/scholarpedia.32832. ISSN 1941-6016.
  15. Aizenberg, Igor N.; Aizenberg, Naum N.; Vandewalle, Joos (2000). "Multi-Valued and Universal Binary Neurons". doi:10.1007/978-1-4757-3115-6. {{cite journal}}: Cite journal requires |journal= (help)
  16. Gomez, Faustino J.; Schmidhuber, Jürgen (2005). "Co-evolving recurrent neurons learn deep memory POMDPs". Proceedings of the 2005 conference on Genetic and evolutionary computation - GECCO '05. New York, New York, USA: ACM Press. doi:10.1145/1068009.1068092. ISBN 1-59593-010-8.
  17. LeCun, Y.; Boser, B.; Denker, J. S.; Henderson, D.; Howard, R. E.; Hubbard, W.; Jackel, L. D. (1989). "Backpropagation Applied to Handwritten Zip Code Recognition" (PDF). Neural Computation. 1 (4): 541–551. doi:10.1162/neco.1989.1.4.541. ISSN 0899-7667.
  18. Linnainmaa, Seppo (1976-06). "Taylor expansion of the accumulated rounding error". BIT. 16 (2): 146–160. doi:10.1007/bf01931367. ISSN 0006-3835. {{cite journal}}: Check date values in: |date= (help)
  19. Griewank, Andreas. "Who invented the reverse mode of differentiation." Documenta Mathematica, Extra Volume ISMP (2012): 389-400. (PDF) https://www.math.uni-bielefeld.de/documenta/vol-ismp/52_griewank-andreas-b.pdf
  20. J. Weng, N. Ahuja and T. S. Huang, "Cresceptron: a self-organizing neural network which grows adaptively," Proc. International Joint Conference on Neural Networks, Baltimore, Maryland, vol I, pp. 576-581, June, 1992.
  21. J. Weng, N. Ahuja and T. S. Huang, "Learning recognition and segmentation of 3-D objects from 2-D images," Proc. 4th International Conf. Computer Vision, Berlin, Germany, pp. 121-128, May, 1993.
  22. J. Weng, N. Ahuja and T. S. Huang, "Learning recognition and segmentation using the Cresceptron," International Journal of Computer Vision, vol. 25, no. 2, pp. 105-139, Nov. 1997.
  23. de Carvalho, A.; Fairhurst, M. C.; Bisset, D. L. (1994-08-01). "An integrated Boolean neural network for pattern classification". Pattern Recognition Letters (به انگلیسی). 15 (8): 807–813. doi:10.1016/0167-8655(94)90009-4. ISSN 0167-8655.
  24. de Carvalho, A.; Fairhurst, M.C.; Bisset, D.L. (1994). "A modular Boolean architecture for pattern recognition". Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN'94). Orlando, FL, USA: IEEE. 7: 4349–4352. doi:10.1109/ICNN.1994.374967. ISBN 978-0-7803-1901-1.
  25. S. Hochreiter. , "Untersuchungen zu dynamischen neuronalen Netzen," Diploma thesis. Institut f. Informatik, Technische Univ. Munich. Advisor: J. Schmidhuber, 1991.
  26. Lemaréchal, C. (2012). "Cauchy and the Gradient Method" (PDF). Doc Math Extra: 251–254.
  27. Curry, Haskell B. (1944). "The method of steepest descent for non-linear minimization problems". Quarterly of Applied Mathematics (به انگلیسی). 2 (3): 258–261. doi:10.1090/qam/10667. ISSN 0033-569X.
  28. S. Hochreiter, J. Schmidhuber. Long Short-Term Memory. Technical Report FKI-207-95, Technische Universitat München, München, August 1995. URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=+10.1.1.51.3117.
  29. S. Hochreiter, J. Schmidhuber. (1997). "Long Short-Term Memory". Neural Computation. 9 (8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. PMID 9377276. URL http://www.bioinf.jku.at/publications/+older/2604.pdf.
  30. Hinton, Geoffrey E. ; Dayan, Peter; Frey, Brendan J. ; Neal, Radford (1995-05-26). "The wake-sleep algorithm for unsupervised neural networks". Science. 268 (5214): 1158–1161. Bibcode:1995Sci...268.1158H. doi:10.1126/science.7761831. PMID 7761831.
  31. ۳۱٫۰ ۳۱٫۱ ۳۱٫۲ میلاد وزان، یادگیری عمیق: اصول، مفاهیم و رویکردها، میعاد اندیشه، 1399.
  32. Alom, Md Zahangir; Taha, Tarek M.; Yakopcic, Christopher; Westberg, Stefan; Sidike, Paheding; Nasrin, Mst Shamima; Van Esesn, Brian C.; Awwal, Abdul A. S.; Asari, Vijayan K. (2018-09-12). "The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches". arXiv:1803.01164 [cs].
  33. «ImageNet Large Scale Visual Recognition Competition 2012 (ILSVRC2012)». www.image-net.org. دریافت‌شده در ۲۰۲۰-۱۱-۰۳.
  34. Voulodimos, Athanasios; Doulamis, Nikolaos; Doulamis, Anastasios; Protopapadakis, Eftychios (2018-02-01). "Deep Learning for Computer Vision: A Brief Review". Computational Intelligence and Neuroscience (به انگلیسی). Retrieved 2020-11-03.
  35. Kim, John; Saurous, Rif A. (2018-09-02). "Emotion Recognition from Human Speech Using Temporal Information and Deep Learning". Interspeech 2018. ISCA: ISCA. doi:10.21437/interspeech.2018-1132.
  36. Deng, Li; Liu, Yang, eds. (2018). "Deep Learning in Natural Language Processing". doi:10.1007/978-981-10-5209-5. {{cite journal}}: Cite journal requires |journal= (help)
  37. "OpenAI API". OpenAI (به انگلیسی). 2020-06-11. Retrieved 2020-11-03.
  38. Jafarzadeh, M.; Hussey, D. C.; Tadesse, Y. (2019-09). "Deep learning approach to control of prosthetic hands with electromyography signals". 2019 IEEE International Symposium on Measurement and Control in Robotics (ISMCR): A1–4–1-A1-4-11. doi:10.1109/ISMCR47492.2019.8955725. {{cite journal}}: Check date values in: |date= (help)
  39. van den Oord, Aäron; Dieleman, Sander; Schrauwen, Benjamin (2013-03-14). "Learning a piecewise linear transform coding scheme for images". International Conference on Graphic and Image Processing (ICGIP 2012). SPIE. doi:10.1117/12.2011134.
  40. Feng, Xiaoyue; Zhang, Hao; Ren, Yijie; Shang, Penghui; Zhu, Yi; Liang, Yanchun; Guan, Renchu; Xu, Dong (2019). "The Deep Learning–Based Recommender System "Pubmender" for Choosing a Biomedical Publication Venue: Development and Validation Study". Journal of Medical Internet Research (به انگلیسی). 21 (5): e12957. doi:10.2196/12957. PMC 6555124. PMID 31127715.{{cite journal}}: نگهداری یادکرد:فرمت پارامتر PMC (link)
  41. Elkahky, Ali Mamdouh; Song, Yang; He, Xiaodong (2015). "A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems". Proceedings of the 24th International Conference on World Wide Web - WWW '15. New York, New York, USA: ACM Press. doi:10.1145/2736277.2741667. ISBN 978-1-4503-3469-3.
  42. «Improving Stock Return Forecasting by Deep Learning Algorithm» (PDF). Advances in mathematical finance & applications. ۴ (۳): ۱۳. ۳ فوریه ۲۰۱۹. doi:10.22034/amfa.2019.584494.1173. دریافت‌شده در ۳۰ مه ۲۰۱۹.
  43. Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv preprint
  44. Divya Mahajan, Jongse Park, Emmanuel Amaro, Hardik Sharma, Amir Yazdanbakhsh, Joon Kyung Kim, and Hadi Esmaeilzadeh. Tabla: A unified template-based framework for accelerating statistical machine
  45. Chen Zhang, Peng Li, Guangyu Sun, Yijin Guan, Bingjun Xiao, and Jason Cong. Optimizing fpga-based accelerator design for deep convolutional neural networks. In FPGA, 2015.

پیوند به بیرون