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

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

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

    ساده سازی

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    این یک نکته کلیدی در مفهوم شبکه های عصبی مصنوعی است، من آن را با جزئیات بیشتر توضیح خواهم داد. به تصویر زیر نگاه کنید. اکنون هر فلش سیاه (پیوند) در این تصویر با تعدادی عدد ​\(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) \]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    شناسایی سیستم های دینامیکیو مدیریت آنها


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

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

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

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

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

    آموزش یک شبکه عصبی به این معنی است که به آن بگوییم چه چیزی را می‌خواهیم از آن به دست آوریم. این فرآیند بسیار شبیه به آموزش الفبای کودک است. با نشان دادن تصویری از حرف "الف" به کودک، از او می پرسیم: "این چه حرفی است؟" اگر پاسخ اشتباه است، پاسخی را که دوست داریم از او دریافت کنیم به کودک می گوییم: «این حرف الف است». کودک این مثال را همراه با پاسخ صحیح به یاد می آورد، یعنی تغییراتی در حافظه او در جهت درست ایجاد می شود. ما روند ارائه نامه را بارها و بارها تکرار می کنیم تا زمانی که تمام 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. فرض کنید که حداقل جهانی تابع هدف برای این پیکربندی شبکه خاص پیدا شده است و سعی کنید شبکه را پیچیده کنید - تعداد نورون ها را افزایش دهید، یک یا چند لایه اضافه کنید، از یک شبکه کاملاً متصل به یک شبکه کاملاً متصل تغییر دهید. که وابستگی های شناخته شده پیشینی در ساختار مجموعه آموزشی و غیره را در نظر می گیرد.

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

    4. آموزش شبکه عصبی.

    4.1 مقدمه ای بر شبکه های عصبی

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

    ارتباط بین نورون های بیولوژیکی و مصنوعی

    شکل 20 - ساختار یک نورون بیولوژیکی

    سیستم عصبیانسان متشکل از تعداد زیادی نورون به هم پیوسته، حدود 10 11 است. تعداد لینک ها با عدد 10 15 محاسبه می شود.

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

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

    یک نورون مصنوعی است مدل ریاضینورون بیولوژیکی (شکل 21). اجازه دهید سیگنال ورودی را با x و مجموعه سیگنال های ورودی را با بردار X = (x1, x2, …, xN) نشان دهیم. سیگنال خروجی نورون با y نشان داده می شود.

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

    شکل 21 - نورون مصنوعی

    برای نشان دادن اثر تحریکی یا مهاری ورودی، ضرایب w 1 , w 1 , ..., w N را برای هر ورودی، یعنی بردار معرفی می کنیم.

    W = (w 1، w 1، ...، w N)، w 0 مقدار آستانه است. اعمال ورودی X وزن شده روی بردار W با ضریب مربوطه w ضرب می شود، خلاصه می شود و سیگنال g تشکیل می شود:

    سیگنال خروجی تابعی از g است


    ,

    که در آن F تابع فعال سازی است. می تواند انواع مختلفی داشته باشد:

    1) آستانه گام

    یا

    به طور کلی:

    2) خطی، که معادل عدم وجود عنصر آستانه است

    F(g) = g


    3) خطی تکه ای، که از خطی با محدود کردن دامنه تغییر آن در داخل به دست می آید، یعنی

    4) سیگموئید

    5) چند آستانه

    6) مماس هذلولی

    F(g) = tanh(g)


    اغلب، مقادیر ورودی به محدوده XÎ تبدیل می شوند. وقتی w i = 1 (i = 1، 2،…، N)، نورون عنصر اکثریت است. آستانه در این مورد مقدار w 0 = N/2 را می گیرد.

    نوع دیگری از تصویر شرطی یک نورون مصنوعی در شکل 22 نشان داده شده است

    شکل 22 - سمبلنورون مصنوعی

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

    یا صفحه، زمانی که ورودی بردار مقادیر X باشد

    ساختار (معماری، توپولوژی) شبکه های عصبی

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

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


    ساختار تک لایه ساختار بازخورد دو لایه با بازخورد

    سازه دو لایه سازه سه لایه با اتصالات مستقیم با اتصالات مستقیم

    شکل 23 - نمونه هایی از ساختارهای شبکه های عصبی

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


    شکل 24 - شبکه عصبی سه لایه

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

    بعد بردار سیگنال ورودی است، یعنی تعداد ورودی ها.

    ابعاد بردار سیگنال خروجی است. تعداد نورون ها در لایه خروجی معمولاً برابر با تعداد کلاس ها است.

    - فرمول بندی مسئله ای که باید حل شود؛

    دقت حل مسئله است.

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

    ایجاد یا سنتز NS کاری است که در حال حاضر از نظر تئوری حل نشده است. خصوصی است.

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

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

    رایج ترین رویکرد در آموزش شبکه های عصبی، ارتباط گرایی است. این شامل آموزش شبکه با تنظیم مقادیر ضرایب وزن wij مربوط به اتصالات مختلف بین نورون ها است. ماتریس W اوزان شبکه، نقشه سیناپسی نامیده می شود. اینجا شاخص i است شماره سریالنرونی که اتصال از آن منشاء می گیرد، یعنی لایه قبلی و j تعداد نورون لایه بعدی است.

    دو نوع یادگیری NN وجود دارد: یادگیری تحت نظارت و یادگیری بدون نظارت.

    یادگیری نظارت شده شامل ارائه دنباله ای از جفت های قابل آموزش (مثال) (Hi, Hi), i = 1, 2, …, m تصاویر است که به آن دنباله آموزشی می گویند. در همان زمان، برای هر تصویر ورودی Xi، واکنش شبکه Y i محاسبه شده و با تصویر هدف مربوطه H i مقایسه می شود. عدم تطابق حاصل توسط الگوریتم یادگیری برای تنظیم نقشه سیناپسی به گونه ای استفاده می شود که خطای عدم تطابق را کاهش دهد. چنین سازگاری با ارائه چرخه ای نمونه آموزشی انجام می شود تا زمانی که خطای عدم تطابق به اندازه کافی برسد سطح پایین.

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

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

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

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

    بیشتر الگوریتم‌های یادگیری (AL) NN از مفهوم هب بیرون آمده‌اند. او یک الگوریتم ساده بدون نظارت پیشنهاد کرد که در آن مقدار وزن w ij، مربوط به ارتباط بین نورون های i و j ام، در صورتی که هر دو نورون در حالت برانگیخته باشند، افزایش می یابد. به عبارت دیگر، در فرآیند یادگیری، ارتباطات بین نورون ها مطابق با میزان همبستگی حالات آنها اصلاح می شود. این را می توان به صورت معادله تفاضل محدود زیر بیان کرد:

    که در آن w ij (t + 1) و w ij (t) به ترتیب وزن اتصالات بین نورون i و نورون j قبل از تنظیم (در مرحله t+1) و بعد از تنظیم (در مرحله t) هستند. v i (t) خروجی نورون i و خروجی نورون j در مرحله t است. v j (t) خروجی نورون j در مرحله t است. α پارامتر نرخ یادگیری است.

    استراتژی آموزش شبکه عصبی

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

    یکی از رویکردها، آموزش متوالی شبکه بر روی یک سری مثال (Х i، H i) i = 1، 2، …، m است که مجموعه آموزشی را تشکیل می دهند. در این حالت، شبکه آموزش داده می شود که ابتدا به تصویر اول X 1 و سپس به X 2 دوم و غیره به درستی پاسخ دهد. با این حال، در این استراتژی، این خطر وجود دارد که شبکه هنگام یادگیری هر مثال بعدی، مهارت های قبلی خود را از دست بدهد، یعنی شبکه بتواند نمونه های ارائه شده قبلی را "فراموش کند". برای جلوگیری از این اتفاق، لازم است شبکه را به یکباره با تمام نمونه های مجموعه آموزشی آموزش دهید.

    X 1 \u003d (X 11، ...، X 1 N) می توانید 100 c 1 را آموزش دهید

    X 2 \u003d (X 21، ...، X 2 N) 100 c 2 100 c

    ……………………

    X m \u003d (X m 1، ...، X mN) 100 c 3

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

    ,

    که در آن l i پارامترهایی هستند که الزامات کیفیت آموزش شبکه عصبی را برای هر یک از مثال ها تعیین می کنند، به طوری که λ 1 + λ 2 + ... + λ m = 1.

    بخش عملی

    بیایید یک مجموعه آموزشی ایجاد کنیم:

    P_o=cat(1، Mt، Mf);

    بیایید ساختار شبکه عصبی را برای کار تشخیص تنظیم کنیم:

    net = newff (minmax(P_o)، , ("logsig"، "logsig")، "trainlm"، "learngdm");

    net.trainParam.epochs = 100;٪ تعداد دوره های آموزشی تنظیم شده است

    net.trainParam.show = 5؛ درصد تعداد چرخه برای نمایش نتایج متوسط.

    net.trainParam.min_grad = 0؛ درصد گرادیان مقدار هدف

    net.trainParam.max_fail = 5;% حداکثر تعدد مجاز خطای نمونه آزمایشی است که بیش از حداقل مقدار رسیده است.

    net.trainParam.searchFcn = "srchcha";% نام الگوریتم بهینه سازی 1 بعدی برای استفاده

    net.trainParam.goal = 0;% خطای آموزش هدف

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

    آرگومان های دوم تابع در اینجا آورده شده است براکت های مربعو تعداد و اندازه لایه ها را تعیین کنید. این عبارت به این معنی است که شبکه عصبی دارای 2 لایه است. در لایه اول - npr=10 نورون و در لایه دوم - 2. تعداد نورون ها در لایه اول با بعد ماتریس ویژگی ورودی تعیین می شود. بسته به تعداد ویژگی های لایه اول، می تواند 5، 7، 12 نورون باشد. بعد لایه دوم (لایه خروجی) با مشکل حل شده تعیین می شود. در وظایف تشخیص یک سیگنال مفید در برابر پس‌زمینه ریز لرزه، طبقه‌بندی بر اساس کلاس‌های اول و دوم، 2 نورون در خروجی شبکه عصبی تنظیم می‌شوند.

    آرگومان های تابع سوم نوع تابع فعال سازی را در هر لایه تعیین می کنند. عبارت ("logsig"، "logsig") به این معنی است که هر لایه از یک تابع فعال‌سازی سیگموئیدال لجستیک استفاده می‌کند که محدوده آن (0، 1) است.

    آرگومان چهارم نوع تابع آموزش شبکه عصبی را مشخص می کند. این مثال یک تابع یادگیری را تعریف می کند که از الگوریتم بهینه سازی Levenberg-Marquardt - "trainlm" استفاده می کند.

    نیمه اول بردارهای ماتریس T با مقادیر (1، 0) و بردارهای بعدی با (0، 1) مقداردهی اولیه می شوند.

    net=newff (minmax(P_o)،، ("logsig"، "logsig")، "trainlm"، "learngdm");

    net.trainParam.epochs = 1000;

    net.trainParam.show = 5;

    net.trainParam.min_grad = 0;

    net.trainParam.max_fail = 5;

    net.trainParam.searchFcn = "srchcha";

    net.trainParam.goal = 0;

    برنامه مقداردهی اولیه برای خروجی های مورد نظر شبکه عصبی T:

    n1 = طول (Mt(:, 1));

    n2 = طول (Mf(:, 1));

    T1 = صفر (2، n1);

    T2 = صفر (2، n2);

    T=cat(2, T1, T2);

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

    net = قطار (net, P_o, T);

    شکل 25 - برنامه آموزش شبکه عصبی.

    بیایید شبکه عصبی را کنترل کنیم:

    Y_k=sim(net, P_k);

    دستور sim داده ها را از مجموعه کنترل P_k به ورودی عصبی ارسال می کند خالص، در حالی که نتایج در ماتریس خروجی Y_k نوشته می شود. تعداد سطرها در ماتریس های P_k و Y_k یکسان است.

    Pb=جمع (دور(Y_k (1.1:100)))/100

    برآورد احتمال تشخیص صحیح وسایل نقلیه ردیابی شده Pb=1 آلفا = مجموع (round(Y_k (1,110:157)))/110

    احتمال هشدار نادرست تخمینی آلفا = 0

    خطای استاندارد کنترل را با استفاده از خروجی های مطلوب و واقعی شبکه عصبی Еk تعیین می کنیم.

    مقدار خطای کنترل ریشه میانگین مربع است:

    sqe_k = 2.5919e-026

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

    h3=tr_t50-mean(tr_t50);

    Mh1=MATRPRIZP(h3,500, N1, N2)؛

    Mh1=Mh1(1:50,:);

    Y_t=sim(net, P_t);

    Pb=جمع (گرد(Y_t (1.1:100)))/100

    برآورد احتمال تشخیص صحیح وسایل نقلیه ردیابی شده Pb=1

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

    مقدار خطای استاندارد تست عبارت است از:

    sqe_t = 3.185e-025

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

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


    نتیجه

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

    در جریان کار انجام شده که در چهار مرحله انجام شد، نتایج زیر به دست آمد:

    1) هیستوگرام چگالی احتمال نمونه دامنه سیگنال به عنوان متغیرهای تصادفی ساخته شد.

    پارامترهای توزیع برآورد شدند: انتظارات ریاضی، واریانس، انحراف معیار.

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

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

    2) تشکیل مجموعه داده های آموزشی و کنترلی (برای آموزش و کنترل شبکه عصبی).

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

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

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

    5. یک سری مشاهدات پیوسته طولانی مدت از شدت جریان و توزیع های آزیموتی اتمسفر SLW به دست آمد که امکان ردیابی دینامیک فعالیت رعد و برق را در مراکز رعد و برق جهان فراهم کرد. 5.1. نظارت دریایی نشان داده است که مراکز رعد و برق قاره ای و جزیره ای سهم اصلی را در فعالیت های رعد و برق جهانی دارند. تغییرات در شدت جریان پالس به خوبی ...


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

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

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

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

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

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

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

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

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

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

    این مقاله حاوی مطالبی - عمدتاً به زبان روسی - برای مطالعه پایه شبکه های عصبی مصنوعی است.

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

    کتاب ها

    بیایید انتخاب را با روش کلاسیک مطالعه - با کمک کتاب - شروع کنیم. ما کتاب های روسی زبان را از میان انتخاب کرده ایم مقدار زیادمثال ها:

    • F. Wasserman، مهندسی کامپیوتر عصبی: تئوری و عمل. 1992
      این کتاب اصول اولیه ساخت کامپیوترهای عصبی را به صورت عمومی تشریح می کند. ساختار شبکه های عصبی و الگوریتم های مختلف برای تنظیم آنها توضیح داده شده است. فصل های جداگانه ای به پیاده سازی شبکه های عصبی اختصاص داده شده است.
    • S. Khaikin، شبکه های عصبی: دوره کامل. 2006
      در اینجا پارادایم های اصلی شبکه های عصبی مصنوعی در نظر گرفته شده است. مطالب ارائه شده حاوی یک توجیه ریاضی دقیق برای همه پارادایم های شبکه عصبی است، با مثال ها، شرح آزمایش های کامپیوتری نشان داده شده است، شامل بسیاری از مشکلات عملی، و همچنین کتابشناسی گسترده است.
    • D. Forsyth، کامپیوتر ویژن. رویکرد مدرن. 2004
      بینایی کامپیوتریکی از حوزه های مورد تقاضا در این مرحله در توسعه دیجیتال جهانی است فناوری رایانه. در ساخت، کنترل ربات، اتوماسیون فرآیند، کاربردهای پزشکی و نظامی، نظارت ماهواره ای و کامپیوترهای شخصیبه ویژه جستجو برای تصاویر دیجیتال.

    ویدئو

    هیچ چیز در دسترس تر و قابل درک تر از یادگیری بصری با استفاده از ویدئو نیست:

    • برای درک اینکه یادگیری ماشین به طور کلی چیست، اینجا را ببینید. این دو سخنرانیاز ShAD Yandex.
    • معرفیبه اصول اولیه طراحی شبکه های عصبی - برای ادامه کاوش در شبکه های عصبی عالی است.
    • دوره سخنرانیبا موضوع "بینایی کامپیوتر" از VMK MSU. بینایی کامپیوتری یک نظریه و فناوری برای ایجاد سیستم های مصنوعی است که اشیاء را در تصاویر و فیلم ها شناسایی و طبقه بندی می کند. این سخنرانی ها را می توان به عنوان مقدمه ای بر این علم جالب و پیچیده نسبت داد.

    منابع آموزشی و لینک های مفید

    • پورتال هوش مصنوعی
    • آزمایشگاه «من عقل».
    • شبکه های عصبی در Matlab
    • شبکه های عصبی در پایتون (انگلیسی):
      • طبقه بندی متن با ;
      • ساده .
    • شبکه عصبی در .

    مجموعه ای از نشریات ما در مورد این موضوع

    ما قبلا یک دوره را منتشر کرده ایم #[ایمیل محافظت شده]توسط شبکه های عصبی در این فهرست برای سهولت شما، نشریات به ترتیب مطالعه مرتب شده اند.