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


«شبکههای عصبی» (Neural Networks) از جمله سیستمها و روشهای محاسباتی برای «یادگیری ماشین» (Machine Learning) هستند که امروزه، کاربردهای زیادی را در حل مسائل گوناگون «هوش مصنوعی» (Artificial Intelligence) و «علم داده» (Data Science) دارند. در همین راستا، پرسشی که برای بسیاری از افراد مطرح میشود، چگونگی آموزش دادن شبکه عصبی در متلب و پارامترهای مورد استفاده در این راستا است. دکتر «سید مصطفی کلامی هریس»، در پادکستی که در ادامه آمده، به این مبحث پرداخته است. نسخه متنی این پادکست نیز در همین مطلب قرار دارد. البته، منبع اصلی همچنان فایل صوتی محسوب میشود.
پادکست پیرامون آموزش دادن شبکه عصبی در متلب
ذخیره کردن این فایل صوتی: لینک دانلود
نسخه نوشتاری
پرسشهایی پیرامون چگونگی آموزش دادن شبکه عصبی در «متلب» (MATLAB) برای برخی از دانشجویان مطرح میشود. بنابراین در ادامه، به توضیح چگونگی آن پرداخته شده است. یک شبکه عصبی که نام متغیر آن Net است، در متلب آموزش داده شده است. وزنهای این شبکه عصبی، در قالب مؤلفه «بایاس» (Bias) که با B نشان داده میشود و در قالب یک «آرایه سلولی» (Cell Array) به صورت «iw»، یعنی «وزن ورودی» (Input Weight) و «lw»، یعنی «وزن لایه» (Layer Wight) نمایش داده میشوند.
B که به طور مشخص، «بایاس» است. بایاس هر کدام از این «نورونها» (Neurons) مشخص است. iw وزن ارتباطی بین ورودیها و هر نورن در هر لایه است. طبیعی است که تعداد عناصر موجود در ماتریس سلولی، به تعداد لایهها خواهد بود. اغلب، با توجه به آنکه ورودیها به لایه اول وصل میشوند، سایر لایهها خالی و صفر هستند. در واقع، این یک آرایه سلولی یا Cell Array است و هر کدام از مؤلفههای آن، خود یک ماتریس هستند. در تعریف آرایه سلولی در متلب داریم که: «ماتریسی است که، درایههای آن میتواند هر چیزی، حتی ماتریس باشد».
پس هر کدام از iwها وزن ارتباطی بین ورودیها و لایهها هستند. lw نیز وزن ارتباطی بین لایهها و یک آرایه سلولی مربعی است. اگر شبکه عصبی سه لایه داشته باشد، lw به صورت ۳×۳ (سه در سه) خواهد بود. این یعنی، هر لایه با دیگر لایهها و حتی با خودش، ارتباط دارد. زیرا بعضی از اینها «بازخورد سلولی» (Cell Feedback) نیز دارند. بنابراین، طبیعی است که مثلا اگر یک «شبکه عصبی پیشخور» (Feedforward Neural Network) دو لایه وجود دارد، فقط از لایه اول به لایه دوم مسیر وجود دارد و برعکس آن مسیری نیست، زیرا بازخوردی (FeedBack) در کار نیست.
این توضیح کلی پیرامون ساختار شبکه عصبی در متلب بود. در آموزشهای گوناگون فرادرس به این موضوعات به طور کامل پرداخته شده است و آنچه در اینجا بیان شد، صرفا چکیده همه این موارد محسوب میشود. این سه آرایه سلولی، یعنی B (مولفه بایاس هر یک از این موارد)، lw (وزن ورودی) و lw (وزن لایه)، مشخص میکنند که پارامترهای شبکه عصبی چه مواردی هستند. حال برای مثال، اگر کاربر بخواهد با یک «الگوریتم فراابتکاری» (Metaheuristic) شبکه عصبی را طراحی کند و یا اطلاعات شبکه عصبی را به صورت یکجا و در یک فایل ذخیره کند و دوباره آنها را بخواند یا مثلا به یک نرمافزار منتقل و فرمول آن را استخراج کند، همه و همه به واسطه اعداد بیان شده قابل انجام هستند.
در برخی از آموزشهای فرادرس، چه آموزشهایی که توسط من ارائه شده و چه آموزشهایی که توسط دیگر مدرسان و برای مثال آقای دکتر اسماعیل آتشپز گرگری ارائه شده است، آموزش دادن یک شبکه عصبی با استفاده از یک الگوریتم فراابتکاری، متکی به توضیحاتی است که در اینجا بیان شده است. بنابراین، به طور کلی میتوان از همین توضیحات برای تعبیر و تفسیر اعدادی که در آنجا قرار دارند استفاده کرد.
برای دانلود کردن و شنیدن دیگر پادکستهای دکتر سید مصطفی کلامی هریس در مجله فرادرس، روی این لینک [+] کلیک کنید.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- آموزش شبکههای عصبی مصنوعی در متلب
- مجموعه آموزشهای الگوریتمهای بهینهسازی هوشمند
- ساخت شبکه عصبی (Neural Network) در پایتون — به زبان ساده
- شبیهسازی تبرید (Simulated Annealing) — به زبان ساده
^^