• آموزش شبکه های عصبی الگوریتم پس انتشار

    در این فصل با مفاهیمی چون هوش مصنوعی، یادگیری ماشین و شبکه های عصبی مصنوعی آشنا شدیم.

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

    ساده سازی

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

    ما به مدلی برای تبدیل سیگنال ورودی به خروجی مورد نیاز خود نیاز داریم. همه چیز دیگر به ما مربوط نیست. بیایید ساده سازی را شروع کنیم.

    ساختار بیولوژیکی → طرح

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

    به طور کلی راه های مختلفی وجود دارد تصویر گرافیکیشبکه های عصبی و نورون ها در اینجا نورون های مصنوعی را به صورت دایره ای به تصویر می کشیم.

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

    بنابراین، یک شبکه عصبی مصنوعی را می توان به عنوان مجموعه ای از دایره ها (نرون های مصنوعی) که توسط فلش ​​ها به هم متصل شده اند نشان داد.

    سیگنال های الکتریکی → اعداد

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

    یک سیگنال الکتریکی همیشه یک سیگنال الکتریکی خواهد بود. از نظر مفهومی، هیچ چیز تغییر نمی کند. اما پس از آن چه چیزی در حال تغییر است؟ بزرگی این سیگنال الکتریکی تغییر می کند (قوی تر / ضعیف تر). و هر مقدار را همیشه می توان به عنوان یک عدد (بزرگتر/کمتر) بیان کرد.

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

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

    برای راحتی، ما همچنان با شماره های خود که در سیگنال های شبکه در حال گردش هستند تماس می گیریم.

    سیناپس → وزن اتصال

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

    بیایید هر یک از این اتصالات را با یک عدد مشخص مشخص کنیم که وزن این اتصال نامیده می شود. سیگنال عبور کرد این ارتباط، در وزن اتصال مربوطه ضرب می شود.

    این یک نکته کلیدی در مفهوم شبکه های عصبی مصنوعی است، من آن را با جزئیات بیشتر توضیح خواهم داد. به تصویر زیر نگاه کنید. اکنون هر فلش سیاه (پیوند) در این تصویر با تعدادی عدد ​\(w_i \)​ (وزن پیوند) مطابقت دارد. و هنگامی که یک سیگنال از این اتصال عبور می کند، بزرگی آن در وزن این اتصال ضرب می شود.

    در شکل بالا، هر لینک دارای وزن نیست، فقط به این دلیل که فضایی برای برچسب ها وجود ندارد. در حقیقت، هر پیوند \(i\) وزن خود را دارد.

    نورون مصنوعی

    اکنون به بررسی ساختار داخلی یک نورون مصنوعی و چگونگی تبدیل سیگنال ورودی به ورودی‌های آن می‌پردازیم.

    شکل زیر نشان می دهد مدل کاملنورون مصنوعی

    نترسید، اینجا هیچ چیز پیچیده ای نیست. بیایید همه چیز را با جزئیات از چپ به راست بررسی کنیم.

    ورودی ها، وزن ها و توتالایزر

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

    سیگنال های دریافتی در ورودی ها در وزن آنها ضرب می شوند. سیگنال اولین ورودی ​(x_1 \) در وزن مربوطه ضرب می شود ​(w_1 \). در نتیجه، \(x_1w_1 \) را دریافت می کنیم. و به همین ترتیب تا ورودی \(n \) ام. در نتیجه، در آخرین ورود\(x_nw_n \) را می گیریم.

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

    \[ x_1w_1+x_2w_2+\cdots+x_nw_n = \sum\limits^n_(i=1)x_iw_i \]

    کمک ریاضی

    سیگما - ویکی پدیا

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

    در نظر گرفتن ساده ترین گزینهورودی های:

    \[ \sum\limits^5_(i=1)i=1+2+3+4+5 \]

    بنابراین، از زیر سیگما، به متغیر شمارنده ​\(i \)​ یک مقدار شروع می‌دهیم، که تا زمانی که به حد بالایی برسد، افزایش می‌یابد (در مثال بالا، این مقدار 5 است).

    حد بالایی نیز می تواند متغیر باشد. من مثالی از چنین موردی می زنم.

    فرض کنید فروشگاه \(n\) داریم. هر فروشگاه شماره مخصوص به خود را دارد: از 1 تا \(n\)​. هر فروشگاهی سود دارد. بیایید چند فروشگاه (مهم نیست کدام) را انتخاب کنیم. سود حاصل از آن \(p_i \) است.

    \[P = p_1+p_2+\cdots+p_i+\cdots+p_n \]

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

    \[ P=\sum\limits^n_(i=1)p_i \]

    به عبارت: "مجموع سود تمام فروشگاه ها، از اول شروع می شود و با ​(n \) ​ام ختم می شود." در قالب یک فرمول، بسیار ساده تر، راحت تر و زیباتر است.

    حاصل جمع عددی به نام مجموع وزنی است.

    جمع وزنی(جمع وزنی) (​\(خالص \)) مجموع ورودی ها ضرب در وزن مربوطه آنها است.

    \[ net=\sum\limits^n_(i=1)x_iw_i \]

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

    مثال

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

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

    1. هزینه سفر
    2. آب و هوای دریا چگونه است
    3. وضعیت کاری فعلی
    4. آیا یک اسنک بار در ساحل وجود خواهد داشت؟

    همه این پارامترها با 0 یا 1 مشخص می شوند. بر این اساس، اگر آب و هوا در دریا خوب است، ما 1 را به این ورودی اعمال می کنیم.

    اگر یک نورون چهار ورودی داشته باشد، پس باید چهار وزن وجود داشته باشد. در مثال ما، عوامل وزنی را می توان به عنوان شاخص هایی از اهمیت هر ورودی در نظر گرفت که تأثیر می گذارد تصمیم مشترکنورون وزن ورودی ها را به صورت زیر توزیع می کنیم:

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

    اجازه دهید سیگنال های زیر را به ورودی های نورون خود ارسال کنیم:

    وزن ورودی ها را در سیگنال های ورودی مربوطه ضرب می کنیم:

    مجموع وزنی برای این مجموعه ورودی ها 6 است:

    \[ net=\sum\limits^4_(i=1)x_iw_i = 5 + 0 + 0 + 1 =6 \]

    این جایی است که عملکرد فعال سازی وارد عمل می شود.

    تابع فعال سازی

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

    مجموع وزنی را به عددی تبدیل می کند که خروجی نورون است (خروجی نورون را با متغیر ​(out \) نشان می دهیم).

    برای انواع متفاوتنورون های مصنوعی بیشترین استفاده را دارند توابع مختلففعال سازی به طور کلی، آنها با نماد ​(\phi(net) \) نشان داده می شوند. تعیین یک سیگنال وزن دار در پرانتز به این معنی است که تابع فعال سازی مجموع وزنی را به عنوان یک پارامتر می گیرد.

    تابع فعال سازی (عملکرد فعال سازی)(​\(\phi(net) \)) تابعی است که مجموع وزنی را به عنوان آرگومان می گیرد. مقدار این تابع خروجی نورون (\(out \)) است.

    عملکرد تک پرش

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

    چطو میتواند استفاده شود؟ فرض کنید فقط زمانی به دریا می رویم که مجموع وزنی آن بزرگتر یا مساوی 5 باشد. پس آستانه ما 5 است:

    در مثال ما، مجموع وزنی 6 بود، یعنی خروجی نورون ما 1 است. بنابراین، ما به دریا می رویم.

    با این حال، اگر آب و هوا در دریا بد بود، و سفر بسیار گران بود، اما یک اسنک بار و یک محیط کاری معمولی وجود داشت (ورودی‌ها: 0011)، آنگاه مجموع وزنی 2 خواهد بود، یعنی خروجی نورون خواهد بود. 0 باشد. بنابراین، ما به جایی نمی رویم.

    به طور کلی، نورون به مجموع وزنی نگاه می کند و اگر از آستانه خود بیشتر باشد، نورون خروجی برابر با 1 تولید می کند.

    از نظر گرافیکی، این تابع فعال سازی را می توان به صورت زیر نشان داد.

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

    حالا بیایید این تابع فعال سازی را به صورت ریاضی بنویسیم. تقریباً مطمئناً با مفهوم تابع ترکیبی برخورد کرده اید. این زمانی است که چندین قانون را تحت یک تابع ترکیب می کنیم که بر اساس آن مقدار آن محاسبه می شود. در قالب یک تابع ترکیبی، تابع واحد hop به شکل زیر خواهد بود:

    \[out(net) = \begin(cases) 0، خالص< b \\ 1, net \geq b \end{cases} \]

    هیچ چیز پیچیده ای در مورد این ورودی وجود ندارد. خروجی یک نورون (​\(خارج \)) به مجموع وزنی (​\(خالص \)) به شرح زیر بستگی دارد: اگر \(خالص \) (مجموع وزنی) کمتر از یک آستانه باشد (​ \(b \ ))، آنگاه ​(out \) ​ (خروجی نورون) 0 است. و اگر ​(net \) بزرگتر یا مساوی با آستانه باشد ​\(b\) ، سپس \(out \) برابر با 1 است.

    تابع سیگموئید

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

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

    بنابراین ... متداول ترین سیگموئید مورد استفاده در شبکه های عصبی است عملکرد لجستیک.

    نمودار این تابع بسیار ساده به نظر می رسد. اگر دقت کنید، می توانید شباهت هایی را مشاهده کنید نامه انگلیسی\(S \) ، که نام خانواده این توابع از آنجا آمده است.

    و اینگونه به صورت تحلیلی نوشته شده است:

    \[ out(net)=\frac(1)(1+\exp(-a \cdot net)) \]

    پارامتر \(a \) چیست؟ این عددی است که درجه شیب تابع را مشخص می کند. در زیر توابع لجستیک با پارامترهای مختلف \(a \) آمده است.

    نورون مصنوعی ما را به یاد بیاورید که تعیین می کند به دریا برویم یا خیر. در مورد تابع پرش واحد، همه چیز مشخص بود. یا به دریا می رویم (1) یا نه (0).

    در اینجا قضیه به واقعیت نزدیکتر است. ما کاملاً مطمئن نیستیم (مخصوصاً اگر پارانوئید هستید) - آیا ارزش رفتن دارد؟ سپس با استفاده از تابع لجستیک به عنوان یک تابع فعال سازی، عددی بین 0 و 1 به دست می آورید. و هر چه جمع وزنی بزرگتر باشد، خروجی به 1 نزدیکتر خواهد بود (اما هرگز دقیقاً برابر آن نیست). برعکس، هر چه مجموع وزنی کوچکتر باشد، خروجی نورون به صفر نزدیکتر خواهد بود.

    به عنوان مثال، خروجی نورون ما 0.8 است. این یعنی او معتقد است که هنوز هم ارزش رفتن به دریا را دارد. اگر خروجی او 0.2 بود، به این معنی بود که او تقریباً با رفتن به دریا مخالف بود.

    ویژگی های قابل توجه تابع لجستیک چیست؟

    • این یک تابع "فشرده" است، یعنی بدون توجه به آرگومان (مجموع وزنی)، سیگنال خروجی همیشه بین 0 و 1 خواهد بود.
    • نسبت به تابع پرش واحد انعطاف پذیرتر است - نتیجه آن می تواند نه تنها 0 و 1، بلکه هر عددی در بین باشد.
    • در تمام نقاط دارای مشتق است و این مشتق را می توان از طریق همان تابع بیان کرد

    به دلیل این ویژگی ها است که تابع لجستیک اغلب به عنوان یک تابع فعال سازی در نورون های مصنوعی استفاده می شود.

    مماس هایپربولیک

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

    چنین تابعی به شما امکان می دهد مقادیر علائم مختلف را در خروجی دریافت کنید (به عنوان مثال از -1 تا 1) که می تواند برای تعدادی از شبکه ها مفید باشد.

    تابع به صورت زیر نوشته شده است:

    \[ out(net) = \tanh\left(\frac(net)(a)\right) \]

    در فرمول بالا، پارامتر ​(a \) نیز تعیین می‌کند که نمودار این تابع چقدر شیب دارد.

    و در اینجا نمودار این تابع است.

    همانطور که می بینید، مانند نمودار تابع لجستیک به نظر می رسد. مماس هذلولی دارای تمام خواص مفیدی است که تابع لجستیک دارد.

    ما چه آموخته ایم؟

    اکنون درک کاملی از ساختار داخلی یک نورون مصنوعی دارید. دوباره خواهم آورد توضیح کوتاهکارهای او.

    یک نورون ورودی دارد. به آنها سیگنال هایی به شکل اعداد داده می شود. هر ورودی وزن مخصوص به خود را دارد (همچنین یک عدد). سیگنال های ورودی در وزن های مربوطه ضرب می شوند. ما مجموعه ای از سیگنال های ورودی "وزن دار" را دریافت می کنیم.

    سپس مجموع وزنی تبدیل می شود عملکرد فعال سازیو دریافت می کنیم خروجی نورون.

    اجازه دهید اکنون کوتاه ترین شرح کار یک نورون - آن را فرموله کنیم مدل ریاضی:

    مدل ریاضی یک نورون مصنوعیبا ورودی های \(n\):

    جایی که
    \(\phi \) - تابع فعال سازی
    \(\sum\limits^n_(i=1)x_iw_i \)مجموع وزنی است، به عنوان مجموع \(n\) محصولات سیگنال های ورودی و وزن های مربوطه.

    انواع INS

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

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

    شبکه های عصبی تک لایه

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

    یک شبکه عصبی تک لایه به شکل زیر است:

    در این تصویر لایه ورودی با دایره ها مشخص شده است (لایه شبکه عصبی محسوب نمی شود) و در سمت راست لایه ای از نورون های معمولی است.

    نورون ها توسط فلش ​​به یکدیگر متصل می شوند. در بالای فلش ها وزن پیوندهای مربوطه (ضرایب وزنی) وجود دارد.

    شبکه عصبی تک لایه (شبکه عصبی تک لایه) - شبکه ای که در آن سیگنال های لایه ورودی بلافاصله به لایه خروجی می رسد که سیگنال را تبدیل می کند و بلافاصله پاسخ می دهد.

    شبکه های عصبی چند لایه

    چنین شبکه هایی علاوه بر لایه های ورودی و خروجی نورون ها، با یک لایه (های) پنهان نیز مشخص می شوند. درک مکان آنها آسان است - این لایه ها بین لایه های ورودی و خروجی قرار دارند.

    این ساختار شبکه های عصبی، ساختار چندلایه بخش های خاصی از مغز را کپی می کند.

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

    شبکه های عصبی چند لایه بسیار قدرتمندتر از شبکه های تک لایه هستند.

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

    شبکه عصبی چند لایه (شبکه عصبی چند لایه) - یک شبکه عصبی متشکل از ورودی، خروجی و یک (چند) لایه پنهان نورون که بین آنها قرار دارد.

    شبکه های انتشار مستقیم

    شما می توانید یک جزئیات بسیار جالب را در تصاویر شبکه های عصبی در مثال های بالا مشاهده کنید.

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

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

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

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

    شبکه های بازخورد

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

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

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

    توانایی سیگنال ها برای گردش در یک شبکه، امکانات جدید و شگفت انگیزی را برای شبکه های عصبی باز می کند. با استفاده از چنین شبکه هایی می توانید شبکه های عصبی ایجاد کنید که سیگنال ها را بازیابی یا تکمیل می کنند. به عبارت دیگر، چنین شبکه های عصبی دارای ویژگی هایی هستند حافظه کوتاه مدت(مثل انسان).

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

    آموزش شبکه های عصبی

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

    یادگیری شبکه ای چیست؟

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

    بنابراین باید برخی از پارامترهای شبکه را تغییر دهیم تا سیگنال ورودیبه خروجی مورد نیاز ما تبدیل نخواهد شد.

    چه چیزی را می توانیم در یک شبکه عصبی تغییر دهیم؟

    تغییر تعداد کل نورون های مصنوعی به دو دلیل بی معنی است. اولاً، افزایش تعداد عناصر محاسباتی به طور کلی، تنها سیستم را سنگین‌تر و زائد می‌کند. ثانیاً اگر به جای 100 نفر 1000 احمق جمع آوری کنید، آنها باز هم نمی توانند به سؤال پاسخ صحیح دهند.

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

    اگر تابع فعال سازی را برای هر نورون تغییر دهیم، آنگاه یک شبکه عصبی بسیار متنوع و کنترل نشده به دست خواهیم آورد. علاوه بر این، در اغلب موارد، نورون های شبکه های عصبی از یک نوع هستند. یعنی همه آنها عملکرد فعال سازی یکسانی دارند.

    فقط یک گزینه باقی مانده است - تغییر وزن لینک.

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

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

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

    در واقع، چرا ما به شبکه ای نیاز داریم که یک چهره را تنها در یک عکس تشخیص دهد. ما از شبکه انتظار این توانایی را داریم تعمیم دادنبرخی از نشانه ها و تشخیص چهره در عکس های دیگر نیز.

    برای این منظور است که ایجاد می شوند نمونه های آموزشی.

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

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

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

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

    ما فهمیدیم که "یادگیری شبکه" چیست - انتخاب مجموعه ای مناسب از وزن ها. حال این سوال پیش می آید که چگونه می توان شبکه را آموزش داد؟ در کلی‌ترین حالت، دو رویکرد وجود دارد که به نتایج متفاوتی منجر می‌شود: یادگیری با نظارت و یادگیری بدون نظارت.

    یادگیری با معلم

    ماهیت این رویکرد این است که شما به ورودی سیگنال می دهید، به پاسخ شبکه نگاه می کنید و سپس آن را با پاسخ درست و آماده شده از قبل مقایسه می کنید.

    یک نکته مهم پاسخ های صحیح و الگوریتم راه حل شناخته شده را با هم اشتباه نگیرید! شما می توانید یک چهره را در یک عکس با انگشت خود ردیابی کنید (پاسخ صحیح)، اما نمی توانید بگویید چگونه انجام شده است (الگوریتم شناخته شده). اینجا هم همین وضعیت است.

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

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

    از کجا می توانم پاسخ های صحیح را دریافت کنم؟

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

    اگر بخواهیم شبکه افزایش / کاهش قیمت ها را پیش بینی کند، نمونه آموزشی باید بر اساس داده های گذشته ساخته شود. به عنوان سیگنال ورودی، می توانید روزهای خاصی، وضعیت کلی بازار و سایر پارامترها را در نظر بگیرید. و به عنوان پاسخ های صحیح - افزایش و کاهش قیمت در آن روزها.

    شایان ذکر است که معلم، البته، لزوما یک شخص نیست. واقعیت این است که گاهی اوقات شبکه باید ساعت ها و روزها آموزش ببیند و هزاران و ده ها هزار تلاش انجام دهد. در 99٪ موارد، این نقش توسط یک کامپیوتر یا بهتر است بگوییم یک برنامه کامپیوتری خاص انجام می شود.

    یادگیری بدون معلم

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

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

    به عنوان مثال، شما زنجیره ای از آب نبات، شیرینی و کیک را به نمایش می گذارید. شما به هیچ وجه شبکه را تنظیم نمی کنید. شما به سادگی داده ها را به ورودی های آن مربوط می کنید شی داده شده. با گذشت زمان، شبکه شروع به تولید سیگنال هایی از سه نوع مختلف می کند که مسئول اشیاء ورودی هستند.

    یادگیری بدون معلم (یادگیری بدون نظارت) نوعی یادگیری شبکه است که در آن شبکه به طور مستقل سیگنال های ورودی را طبقه بندی می کند. سیگنال های خروجی صحیح (مرجع) نمایش داده نمی شوند.

    نتیجه گیری

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

    علاوه بر این، اکنون شما می دانید انواع مختلفشبکه های عصبی مصنوعی: تک لایه، چند لایه و همچنین شبکه های پیشخور و شبکه های دارای بازخورد.

    شما همچنین در مورد یادگیری شبکه تحت نظارت و بدون نظارت آشنا شدید.

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

    سوالات و وظایف

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

    ساده سازی شبکه های عصبی مصنوعی در مقایسه با شبکه های عصبی بیولوژیکی را شرح دهید.

    1. ساختار پیچیده و پیچیده شبکه های عصبی بیولوژیکی ساده شده و در قالب نمودار ارائه شده است. فقط مدل پردازش سیگنال را بگذارید.

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

    تابع فعال سازی اغلب با \(\phi(net) \) نشان داده می شود.

    مدل ریاضی یک نورون مصنوعی را بنویسید.

    یک نورون مصنوعی با ورودی \(n\) ​ سیگنال ورودی (عدد) را به سیگنال خروجی (عدد) تبدیل می کند:

    \[ out=\phi\left(\sum\limits^n_(i=1)x_iw_i\right) \]

    تفاوت بین شبکه های عصبی تک لایه و چند لایه چیست؟

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

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

    تفاوت بین شبکه های بازخورد و شبکه های بازخورد چیست؟

    شبکه های پیشخور اجازه می دهند سیگنال تنها در یک جهت جریان یابد - از ورودی به خروجی. شبکه‌های دارای بازخورد این محدودیت‌ها را ندارند و خروجی‌های نورون‌ها می‌توانند به ورودی‌ها بازگردانده شوند.

    نمونه آموزشی چیست؟ معنی آن چیست؟

    قبل از استفاده از شبکه در عمل (به عنوان مثال، برای حل مشکلات فعلی که پاسخی برای آنها ندارید)، باید مجموعه ای از مسائل را با پاسخ های آماده جمع آوری کنید، که در آن شبکه را آموزش دهید. این مجموعه مجموعه آموزشی نام دارد.

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

    منظور از آموزش شبکه چیست؟

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

    یادگیری تحت نظارت و بدون نظارت چیست؟

    هنگام آموزش یک شبکه با معلم، سیگنال هایی به ورودی های آن داده می شود و سپس خروجی آن با یک خروجی درست شناخته شده قبلی مقایسه می شود. این روند تا رسیدن به دقت لازم در پاسخ ها تکرار می شود.

    اگر شبکه‌ها فقط سیگنال‌های ورودی را بدون مقایسه با خروجی‌های آماده ارائه کنند، شبکه شروع به طبقه‌بندی مستقل این سیگنال‌های ورودی می‌کند. به عبارت دیگر، خوشه بندی سیگنال های ورودی را انجام می دهد. چنین یادگیری را یادگیری بدون نظارت می نامند.

    اکنون که مشخص شده است دقیقاً چه چیزی می خواهیم بسازیم، می توانیم به این سؤال برویم که "چگونه چنین شبکه عصبی بسازیم". این موضوع در دو مرحله حل می شود: 1. انتخاب نوع (معماری) شبکه عصبی. 2. انتخاب وزنه ها (آموزش) شبکه عصبی. اولین قدم این است که موارد زیر را انتخاب کنید: * کدام نورون ها را می خواهیم استفاده کنیم (تعداد ورودی ها، توابع انتقال) * نحوه اتصال آنها به یکدیگر. * چه چیزی به عنوان ورودی و خروجی شبکه عصبی گرفته شود. در نگاه اول، این کار طاقت فرسا به نظر می رسد، اما، خوشبختانه، ما مجبور نیستیم یک شبکه عصبی را از ابتدا اختراع کنیم - چندین ده معماری مختلف شبکه عصبی وجود دارد و کارایی بسیاری از آنها از نظر ریاضی ثابت شده است. محبوب ترین و مورد مطالعه معماری پرسپترون چند لایه، شبکه عصبی رگرسیون عمومی، شبکه های عصبی کوهونن و غیره هستند. تمامی این معماری ها به زودی در قسمت ویژه این آموزش خوانده می شود.

    در مرحله دوم، ما باید شبکه عصبی انتخاب شده را "آموزش دهیم"، یعنی مقادیری از وزن آن را انتخاب کنیم تا در صورت نیاز کار کند. یک شبکه عصبی آموزش ندیده مانند یک کودک است - هر چیزی را می توان به آن آموزش داد. در شبکه‌های عصبی که در عمل استفاده می‌شوند، تعداد وزن‌ها می‌تواند چندین ده هزار باشد، بنابراین آموزش یک فرآیند واقعا پیچیده است. برای بسیاری از معماری ها، الگوریتم های یادگیری ویژه ای توسعه یافته اند که به شما امکان می دهد وزن شبکه عصبی را به روش خاصی تنظیم کنید. محبوب ترین این الگوریتم ها روش است پس انتشارخطاها (Error Back Propagation)، برای مثال برای آموزش پرسپترون استفاده می شود.

    آموزش شبکه های عصبی

    آموزش یک شبکه عصبی به این معنی است که به آن بگوییم چه چیزی را می‌خواهیم از آن به دست آوریم. این فرآیند بسیار شبیه به آموزش الفبای کودک است. با نشان دادن تصویری از حرف "الف" به کودک، از او می پرسیم: "این چه حرفی است؟" اگر پاسخ اشتباه است، پاسخی را که دوست داریم از او دریافت کنیم به کودک می گوییم: «این حرف الف است». کودک این مثال را همراه با پاسخ صحیح به یاد می آورد، یعنی تغییراتی در حافظه او در جهت درست ایجاد می شود. ما روند ارائه نامه را بارها و بارها تکرار می کنیم تا زمانی که تمام 33 حرف به طور کامل به خاطر بسپارند. به این فرآیند «یادگیری تحت نظارت» می گویند.

    هنگام آموزش یک شبکه عصبی، ما دقیقاً به همان روش عمل می کنیم. ما یک پایگاه داده حاوی نمونه هایی داریم (مجموعه ای از تصاویر دست نویس حروف). با ارائه تصویر حرف «الف» به ورودی شبکه عصبی، پاسخی از آن می گیریم که لزوماً صحیح نیست. ما همچنین پاسخ صحیح (مورد نظر) را می دانیم - in این موردما می خواهیم سطح سیگنال در خروجی شبکه عصبی با برچسب "A" حداکثر باشد. معمولاً مجموعه (1، 0، 0، ...) به عنوان خروجی مورد نظر در مسئله طبقه بندی در نظر گرفته می شود، جایی که 1 در خروجی با برچسب "A" و 0 در تمام خروجی های دیگر است. با محاسبه تفاوت بین پاسخ مورد نظر و پاسخ واقعی شبکه ، 33 عدد - بردار خطا - به دست می آوریم. الگوریتم پس انتشار خطا مجموعه ای از فرمول ها است که به شما امکان می دهد اصلاحات مورد نیاز برای وزن شبکه عصبی را از بردار خطا محاسبه کنید. ما می توانیم یک حرف (و همچنین تصاویر مختلف از یک حرف) را بارها به شبکه عصبی ارائه کنیم. از این نظر، تمرین بیشتر شبیه تکرار تمرینات در ورزش - تمرین است.

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

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


    هنگامی که شبکه عصبی آموزش داده شد، می‌توانیم آن را برای حل مسائل مفید به کار ببریم. مهمترین ویژگی مغز انسان این است که پس از یادگیری یک فرآیند خاص، می تواند در موقعیت هایی که در فرآیند یادگیری نبوده است، به درستی عمل کند. به عنوان مثال، ما می توانیم تقریباً هر دست خطی را بخوانیم، حتی اگر برای اولین بار در زندگی خود آن را ببینیم. به طور مشابه، یک شبکه عصبی که به درستی آموزش داده شده باشد، به احتمال زیاد می تواند به داده های جدیدی که قبلاً به آن ارائه نشده است، به درستی پاسخ دهد. به عنوان مثال، می‌توانیم حرف «A» را با دست خط دیگری ترسیم کنیم و سپس از شبکه عصبی خود بخواهیم تصویر جدید را طبقه‌بندی کند. وزن های شبکه عصبی آموزش دیده اطلاعات زیادی در مورد شباهت ها و تفاوت های حروف ذخیره می کند، بنابراین می توانید برای نسخه جدید تصویر روی پاسخ صحیح حساب کنید. نمونه هایی از شبکه های عصبی آماده

    فرآیندهای آموزش و کاربرد شبکه های عصبی که در بالا توضیح داده شد را می توان در حال حاضر در عمل مشاهده کرد. Ward Systems Group چندین مورد را آماده کرده است برنامه های سادهکه بر اساس کتابخانه NeuroWindows نوشته شده اند. هر یک از برنامه ها به کاربر اجازه می دهد تا به طور مستقل مجموعه ای از نمونه ها را تنظیم کند و شبکه عصبی خاصی را روی این مجموعه آموزش دهد. سپس می توانید نمونه های جدیدی از این شبکه عصبی ارائه دهید و کار آن را مشاهده کنید.

    فن آوری های اطلاعاتی مدرن/2. محاسبات و برنامه نویسی

    زولوتوخینا ایرینا آندریونا، کارشناسی

    دانشگاه دولتی کوستانای به نام A. Baitursynov، قزاقستان.

    روش ها و الگوریتم های آموزش شبکه های عصبی

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

    کلید واژه ها:نورون، پرسپترون، روش روزنبلات، روش هب، خطای تعمیم، خطای یادگیری، الگوریتم یادگیری.

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

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

    مدل یک نورون مصنوعی برای اولین بار توسط دانشمندان آمریکایی وارن مک کالوچ و شاگردش والتر پیت در سال 1943 ارائه شد.

    بسته به عملکردهای انجام شده توسط نورون ها در شبکه، سه نوع قابل تشخیص است:

    · نورون های ورودی، که بردار کد کننده یک عمل ورودی یا تصویری از محیط خارجی به آنها ارائه می شود. آنها معمولاً رویه های محاسباتی را انجام نمی دهند.

    · نورون های میانی که اساس شبکه های عصبی را تشکیل می دهند، تبدیل هایی که در آنها مطابق عبارات (1) و (1.1) انجام می شود.

    · نورون های خروجی که مقادیر خروجی آنها خروجی های شبکه عصبی را نشان می دهد. تحولات در آنها نیز مطابق عبارات (1) و (1.1) انجام می شود.

    شکل 1. ساختار یک شبکه عصبی رسمی

    (1)

    y = f(s)(1.1)

    جایی که

    · w i، وزن سیناپس است، من = 1...n;

    · ب- ارزش افست؛

    · سنتیجه جمع است.

    · ایکس, – جزء بردار ورودی (سیگنال ورودی)،

    · x i = 1...n;

    · درسیگنال خروجی نورون است.

    · nتعداد ورودی های نورون است.

    · f- تبدیل غیر خطی (تابع فعال سازی).

    در هر سیگنال ورودی (ها)مبدل غیر خطی با یک سیگنال خروجی پاسخ می دهد f(s)، که نشان دهنده خروجی نورون است.

    مزایای رویکرد شبکه عصبی در حل مسائل فناوری اطلاعاتبر خلاف دیگران (به عنوان مثال، معماری فون نویمان):

    · موازی سازی پردازش اطلاعات؛

    · یک اصل واحد و مؤثر یادگیری؛

    · قابلیت اطمینان عملکرد؛

    · توانایی حل مشکلات غیر رسمی

    برنامه ها و مشکلات حل شده توسط شبکه های عصبی مصنوعی

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

    محدوده وظایف حل شده توسط شبکه های عصبی:

    · الگو شناسی؛

    · تشخیص و سنتز گفتار؛

    · تشخیص تصاویر هوافضا؛

    · پردازش سیگنال در حضور نویز زیاد؛

    · پیش بینی؛

    بهينه سازي؛

    · پیش بینی مظنه اوراق بهادار و نرخ ارز؛

    · جلوگیری از کلاهبرداری کارت اعتباری؛

    بازی بورس

    · فیلتر اسپم؛

    · ارزیابی املاک و مستغلات؛

    · ارزیابی وضعیت مالی شرکت ها و خطر عدم بازپرداخت وام ها؛

    · پردازش سیگنال های راداری؛

    · سیستم های امنیتی و نظارت تصویری؛

    · کنترل ترافیک در بزرگراه ها و راه آهن؛

    · تشخیص در پزشکی؛

    · مدیریت اشیاء پیچیده؛

    · استخراج دانش از داده های بزرگ در تجارت، امور مالی و تحقیقات علمی؛

    · کنترل زمان واقعی و این تمام نیست.

    تحصیلات

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

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

    یادگیری با معلم

    مجموعه ای از نورون های ورودی به ورودی شبکه عصبی مصنوعی تغذیه می شودایکس- بردار ورودی برای شبکه عصبی آموزش دیده.

    تابع خطا را تعریف می کنیم E. این معمولاً ریشه میانگین مربعات خطا است،

    ,

    جایی که

    · پ- تعداد نمونه های پردازش شده توسط شبکه عصبی؛

    · y من-خروج

    · d i- خروجی مطلوب (ایده آل) شبکه عصبی.

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

    طرح کلی آموزش با معلم:

    1 قبل از شروع تمرین، وزنه ها به نوعی مثلاً به صورت تصادفی تنظیم می شوند.

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

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

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

    شکل 2. اثر بیش از حد برازش

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

    روش روزنبلات

    این روش توسط F. Rosenblatt در دهه 60 پیشنهاد شد XX قرن برای یک شبکه عصبی به نام پرسپترون (پرسپترون). پرسپترون تابع فعال سازی آستانه ای دارد، طرح آن در شکل 1 نشان داده شده است.

    شکل 3. پرسپترون تک لایه

    روش آموزش روزنبلات برای پرسپترون تک لایه را می توان به صورت زیر نشان داد:

    ,

    جایی که

    · x i- من-ام ورودی شبکه عصبی؛

    · دی جی- مطلوب (ایده آل) j-ام خروجی شبکه عصبی؛

    · آ - ضریب (نرخ یادگیری) 0< آ≤1

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

    1. همه وزن ها را برابر با صفر قرار می دهیم.

    2. ما چرخه ای از ارائه نمونه ها را انجام می دهیم. برای هر مثال، روش زیر انجام می شود.

    2.1. اگر شبکه پاسخ صحیح را داد، به مرحله 2.4 بروید.

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

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

    2.4. بیایید به مثال بعدی برویم. اگر مجموعه آموزشی به پایان رسید، به مرحله 3 بروید، در غیر این صورت به مرحله 2.1 برگردید.

    3. اگر در حین اجرای مرحله دوم الگوریتم، مرحله 2.2 یا 2.3 حداقل یک بار انجام شد و هیچ حلقه ای رخ نداد، به مرحله 2 بروید. در غیر این صورت آموزش کامل می شود.

    این الگوریتم مکانیزمی برای ردیابی حلقه های یادگیری ارائه نمی دهد. این مکانیزم را می توان به روش های مختلفی اجرا کرد. مقرون به صرفه ترین از نظر استفاده از حافظه اضافی به شکل زیر است.

    4. ک=1; متر=0. وزن پیوندها را به خاطر بسپارید.

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

    6. متر=متر+1. اگر متر<ک، سپس به مرحله دوم می رویم.

    7. ک=2ک; متر=0. وزن های اتصال را به خاطر بسپارید و به مرحله 2 بروید.

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

    یادگیری بدون معلم

    اصلی ترین ویژگی که یادگیری بدون معلم را جذاب می کند «استقلال» بودن آن است. فرآیند یادگیری، مانند یادگیری تحت نظارت، شامل تنظیم وزن سیناپس ها است. با این حال، برخی از الگوریتم‌ها ساختار شبکه را نیز تغییر می‌دهند، یعنی تعداد نورون‌ها و اتصالات آنها، اما چنین تبدیل‌هایی به درستی اصطلاح گسترده‌تری - خود سازماندهی نامیده می‌شوند و در چارچوب این مورد در نظر گرفته نمی‌شوند. مقاله. واضح است که تنظیم سیناپس ها را می توان تنها بر اساس اطلاعات موجود در نورون، یعنی وضعیت آن و ضرایب وزن موجود انجام داد. بر اساس این ملاحظه و مهمتر از آن، با قیاس با اصول شناخته شده خود سازماندهی سلول های عصبی، الگوریتم های یادگیری هب ساخته شده است.

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

    ایده الگوریتم با برابری زیر بیان می شود:

    ,

    جایی که

    · y من (n-1)مقدار خروجی نورون است منلایه (n-1),

    · y j (n)مقدار خروجی نورون است jلایه n;

    · w ij (t)و w ij(t-1) ضریب وزن سیناپس است که این نورون ها را در تکرارها به هم متصل می کند تیو t-1به ترتیب؛

    · آضریب نرخ یادگیری است.

    همچنین روش یادگیری افتراقی هب وجود دارد که با فرمول نمایش داده می شود

    ,(2)

    اینجا y i (n-1) (t)و y i (n-1) (t-1)- مقدار خروجی نورون i لایه n-1، به ترتیب، در تکرار t و t-1.

    y j (n) (t)و y j (n) (t-1)- برای نورون هم همینطور jلایه n.

    همانطور که از فرمول (2) مشاهده می شود، سیناپس ها بیشترین آموزش را دارند و آن نورون ها را به هم متصل می کنند که خروجی های آنها به طور پویاترین تغییر در جهت افزایش یافته است.

    الگوریتم یادگیری کامل با استفاده از فرمول های بالا به شکل زیر خواهد بود:

    1. در مرحله اولیه سازی، به همه وزن ها مقادیر تصادفی کوچکی اختصاص داده می شود.

    2. تصویر ورودی به ورودی های شبکه داده می شود و سیگنال های تحریک طبق اصول شبکه های پیشخور کلاسیک در تمام لایه ها منتشر می شوند، یعنی برای هر نورون، مجموع وزنی ورودی های آن محاسبه می شود که فعال سازی ( انتقال) سپس عملکرد نورون اعمال می شود که در نتیجه مقدار خروجی آن را دریافت می کند y من (n), من=0...M i-1، کجا M iتعداد نورون های لایه است من; n=0...ن-1 و نتعداد لایه های شبکه است.

    3. بر اساس مقادیر خروجی به دست آمده از نورون ها طبق فرمول (1) یا (2)، ضرایب وزن تغییر می کند.

    4. از مرحله 2 حلقه بزنید تا مقادیر خروجی شبکه با دقت مشخص شده تثبیت شود. استفاده از این روش جدید برای تعیین تکمیل آموزش، متفاوت از روشی که برای شبکه پس انتشار استفاده می شود، به این دلیل است که مقادیر تنظیم شده سیناپس تقریباً نامحدود هستند.

    در مرحله دوم چرخه، تمام تصاویر از مجموعه ورودی به طور متناوب ارائه می شوند.

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

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

    علیرغم برخی مشکلات پیاده سازی، الگوریتم های یادگیری بدون نظارت کاربردهای گسترده و موفقی پیدا می کنند. در واقع، پیچیده‌ترین شبکه‌های عصبی مصنوعی که امروزه شناخته شده‌اند، cognitron و neocognitron نیز بر اساس الگوریتم یادگیری بدون نظارت عمل می‌کنند. آنها به خوبی با وظیفه تشخیص تصاویر در معرض تغییر در موقعیت، نویز و اعوجاج شکل کنار آمدند. با این حال، نئوگنیترون زمانی که تصویر با زاویه‌ای چرخانده شد، از کار افتاد.

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

    ادبیات:

    1. V.V. Kruglov، V.V. Borisov "شبکه های عصبی مصنوعی"، 2002.

    2. Rumelhart D. E.، Hinton G. E.، Williams R. D. یادگیری بازنمایی درونی با انتشار خطا در پردازش موازی توزیع شده. - Cambrige: MA: MIT Press, 1986. - 91 p.

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

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

    یادگیری فرآیندی است که در آن پارامترهای آزاد یک شبکه عصبی با شبیه سازی محیطی که شبکه در آن تعبیه شده تنظیم می شود. نوع یادگیری با نحوه تنظیم این پارامترها تعیین می شود.

    این تعریف از فرآیند یادگیری شبکه عصبی، توالی رویدادهای زیر را فرض می کند:

    1. شبکه عصبی محرک هایی را از محیط خارجی دریافت می کند.
    2. در نتیجه پاراگراف اول، پارامترهای آزاد شبکه عصبی تغییر می کند.
    3. پس از تغییر ساختار داخلی، شبکه عصبی به روشی متفاوت به تحریکات پاسخ می دهد.

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

    دو رویکرد مفهومی برای آموزش شبکه های عصبی وجود دارد: یادگیری تحت نظارت و یادگیری بدون نظارت.

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

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

    شبکه عصبی بدون بازخورد - پرسپترون

    وظایف شبکه های عصبی

    اغلب کارهایی که از شبکه های عصبی برای آنها استفاده می شود را می توان به عنوان موارد خاص از مشکلات اصلی زیر در نظر گرفت.

    تقریب - ساخت یک تابع بر روی مجموعه ای محدود از مقادیر (به عنوان مثال، پیش بینی سری های زمانی)

    · ایجاد روابط روی مجموعه ای از اشیاء (مثلاً مشکلات تشخیص تصاویر و سیگنال های صوتی).

    · بازیابی اطلاعات توزیع شده و حافظه انجمنی (مثلاً مشکل یافتن وابستگی های ضمنی در آرایه های داده بزرگ).

    · فیلتراسیون (به عنوان مثال، تشخیص "قابل مشاهده با چشم غیر مسلح"، اما توصیف تحلیلی تغییرات در سیگنال ها دشوار است).

    · فشرده سازی اطلاعات (به عنوان مثال، پیاده سازی شبکه عصبی الگوریتم های فشرده سازی صداها، تصاویر ایستا و پویا).

    · شناسایی سیستم های پویا و کنترل آنها.


    شبکه عصبی چندلایه با خروجی های متعدد که در شکل زیر نشان داده شده است یک پرسپترون است.

    مدار را می توان با یک جمع کننده تکمیل کرد که در صورت لزوم، سیگنال های خروجی نورون ها را در یک خروجی مشترک ترکیب می کند.

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

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

    تئوری پرسپترون ها اساس بسیاری از انواع دیگر شبکه های عصبی مصنوعی است و خود پرسپترون ها نقطه شروع منطقی برای مطالعه شبکه های عصبی مصنوعی هستند.

    آموزش یک شبکه عصبی به این معنی است که به آن بگوییم چه چیزی را می‌خواهیم از آن به دست آوریم. این فرآیند بسیار شبیه به آموزش الفبای کودک است. با نشان دادن تصویری از حرف "الف" به کودک، از او می پرسیم: "این چه حرفی است؟" اگر پاسخ اشتباه است، پاسخی را که دوست داریم از او دریافت کنیم به کودک می گوییم: «این حرف الف است». کودک این مثال را همراه با پاسخ صحیح به یاد می آورد، یعنی تغییراتی در حافظه او در جهت درست ایجاد می شود. ما روند ارائه نامه را بارها و بارها تکرار می کنیم تا زمانی که تمام 33 حرف به طور کامل به خاطر بسپارند. چنین فرآیندی نامیده می شود "آموزش با معلم" .

    هنگام آموزش یک شبکه عصبی، ما دقیقاً به همان روش عمل می کنیم. فرض کنید ما یک جدول داریم - یک پایگاه داده حاوی مثال ها (مجموعه ای رمزگذاری شده از تصاویر حروف). با ارائه تصویر حرف "A" به ورودی شبکه عصبی، انتظار داریم (در حالت ایده آل) سطح سیگنال حداکثر (=1) در خروجی OUT1 باشد (A حرف شماره 1 در الفبای 33 است. حروف) و حداقل (=0) .

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

    حرف وکتور ورودی بردار خروجی مورد نظر
    X1 X2 X12 هدف 1 TARGET2 TARGET33
    آ
    ب
    YU
    من

    مجموعه ای از بردارها برای هر نمونه از مجموعه آموزشی (ردیف های جدول) فراخوانی می شود زوج یادگیری .

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

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

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

    به طور کلی، الگوریتم یادگیری نظارت شده به شکل زیر خواهد بود:

    1. وزن های سیناپسی را با مقادیر تصادفی کوچک آغاز کنید.

    2. جفت تمرین بعدی را از مجموعه آموزشی انتخاب کنید. بردار ورودی را به ورودی شبکه تغذیه کنید.

    3. خروجی شبکه را محاسبه کنید.

    4. تفاوت بین خروجی شبکه و خروجی مورد نیاز (بردار هدف جفت آموزشی) را محاسبه کنید.

    5. وزن شبکه را تنظیم کنید تا خطا به حداقل برسد.

    6. مراحل 2 تا 5 را برای هر جفت ست تمرینی تکرار کنید تا زمانی که خطا در کل ست به حد قابل قبولی برسد.

    نوع خاصی از عملیات ریاضی انجام شده در مرحله 5، نوع الگوریتم یادگیری را تعیین می کند. به عنوان مثال، برای پرسپترون های تک لایه، ساده ترین الگوریتم استفاده می شود، بر اساس به اصطلاح. قانون دلتا ، برای پرسپترون ها با هر تعداد لایه به طور گسترده استفاده می شود روش انتشار مجدد ، گروهی از الگوریتم ها با خواص جالب شناخته شده است که نامیده می شود الگوریتم های یادگیری تصادفی همه الگوریتم‌های یادگیری شناخته شده برای شبکه‌های عصبی اساساً انواع روش‌های گرادیان برای بهینه‌سازی یک تابع غیرخطی از بسیاری از متغیرها هستند. مشکل اصلی که در اجرای عملی آنها ایجاد می‌شود این است که هرگز نمی‌توان مطمئن شد که ترکیب حاصل از وزن‌های سیناپسی در واقع از نظر به حداقل رساندن کل خطا در کل مجموعه آموزشی مؤثرترین است. این عدم قطعیت را "مشکل حداقل های محلی تابع هدف" نامیده اند.

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

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

    بنابراین، اگر در نتیجه تلاش برای آموزش شبکه عصبی دقت لازم به دست نیامده باشد، محقق دو گزینه دارد:

    1. فرض کنید که فرآیند در یک حداقل محلی به دام افتاده است و سعی کنید نوع دیگری از الگوریتم یادگیری را برای همان پیکربندی شبکه اعمال کنید.

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

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