یادگیری ماشین(Machine Learning) - قسمت دهم

یادگیری ماشین(Machine Learning) - قسمت دهم

مدت زمان تقریبی مطالعه : 5 دقیقه
1,881 بازدید

4.   شبکه های عصبی و یادگیری عمیق

"ما یک شبکه هزار لایه ، ده ها کارت فیلم داریم ، اما هنوز هیچ ایده ای برای استفاده از آن نداریم. بیایید عکس گربه تولید کنیم!"

امروز استفاده می شود برای:

جایگزینی همه الگوریتم های فوق

شناسایی شی در عکس ها و فیلم ها

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

پردازش تصویر ، انتقال سبک

ترجمه ماشین

معماری های معروف: Perceptron ، شبکه Convolutional (CNN) ، شبکه های مکرر (RNN) ، Autoencoders

هر شبکه عصبی اساساً مجموعه ای از نورون(Neuron) ها و اتصالات بین آنها است. Neuron تابعی است با یک دسته از ورودی ها و یک خروجی. وظیفه آن این است که همه اعداد را از ورودی آن گرفته ، یک عملکرد را روی آنها انجام داده و نتیجه را به خروجی ارسال کند.

در اینجا مثالی از یک نورون ساده اما مفید در زندگی واقعی آورده شده است: تمام اعداد را از ورودی ها جمع کنید و اگر این مقدار از N بزرگتر است - نتیجه 1 را بدهید. در غیر این صورت - صفر.

اتصالات مانند کانال هایی بین نورون ها هستند. آنها خروجی های یک نورون را با ورودی های دیگر متصل می کنند تا بتوانند رقمی را به یکدیگر ارسال کنند. هر اتصال فقط یک پارامتر دارد - وزن. این مانند یک قدرت اتصال برای یک سیگنال است. هنگامی که عدد 10 از اتصال با وزنی 0.5 عبور می کند ، به 5 تبدیل می شود.

این وزن ها به نورون می گویند که بیشتر به یک ورودی و کمتر به دیگری پاسخ دهد. هنگام آموزش وزنها تنظیم می شوند - اینگونه شبکه یاد می گیرد. اصولاً ، تمام آنچه در آن است وجود دارد.

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

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

در هنگام برنامه نویسی در زندگی واقعی ، هیچ کس در حال نوشتن نورون ها و اتصالات نیست. در عوض ، همه چیز به عنوان ماتریس نشان داده می شود و برای عملکرد بهتر بر اساس ضرب ماتریس محاسبه می شود. فیلم مورد علاقه من در مورد این و عاقبت آن در زیر کل فرآیند را به روشی آسان قابل هضم با استفاده از مثال تشخیص رقم های دست نوشته توضیح می دهد. اگر می خواهید این موضوع را کشف کنید ، آنها را تماشا کنید.

بعد از ایجاد شبکه ، وظیفه ما اختصاص راه های مناسب است تا نورون ها به درستی در برابر سیگنال های دریافتی واکنش نشان دهند. اکنون زمان یادآوری این نکته است که ما داده هایی داریم که نمونه ای از "ورودی" و "خروجی" مناسب است. ما به شبکه خود نشان می دهیم نقاشی از همان رقم 4 را نشان می دهیم و به آن می گوییم "وزن خود را تطبیق دهید بنابراین هر وقت این ورودی را مشاهده کردید ، خروجی شما 4 می شود.

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

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

معلوم شد شبکه هایی با تعداد زیادی لایه مورد نیاز قدرت محاسبه غیرقابل تصور در آن زمان بودند. امروزه هر رایانه گیمری با Geforces از دیتاسنترهای آن زمان بهتر است. بنابراین مردم هیچ امیدی به بدست آوردن قدرت محاسباتی مانند آن نداشتند و شبکه های عصبی یک ضربه گیر بزرگ بودند.

و سپس ده سال پیش یادگیری عمیق افزایش یافت.

در سال 2012 ، شبکه های عصبی پیچیده یک پیروزی قریب به اتفاق در مسابقه ImageNet کسب کردند که باعث شد جهان ناگهان در مورد روشهای یادگیری عمیق که در دهه 90 باستان توصیف شده بود ، به خاطر بسپارد.

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

 

قسمت یازدهم

مقالات مرتبط