محمدحسین زرچی

یادگیری ماشین - بخش چهارم

محمدحسین زرچی دولوپر و علاقه‌مند به ساخت ربات

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

آموزش ریاضیات با استفاده از شبکه‌های عصبی

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

عبارت مقابل را در نظر بگیرید: (a + b) * 2
این عملیات برای دو ورودی a و b یک خروجی مجزا خواهد داشت.
هدف ما ایجاد برنامه‌ای است که خروجی و ورودی‌های داده شده را بدون اطلاع از فرمول ذکر شده، پیش بینی کند.

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

به این چهار مثال اول، مجموعه آموزشی گفته می‌شود:
ورودی‌ها : اول(۲، ۳)، دوم(۱، ۱)، سوم(۵، ۲)، چهارم(۱۲، ۳)
خروجی‌ها: اول(۱۰)، دوم(۴)، سوم(۱۴)، چهارم(۳۰)

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

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

1. ورودی‌ها را از مجموعه تمرین بگیرید، آن‌ها را با وزنه ها تنظیم کنید و آن‌ها را برای محاسبه بازده نورون از یک فرمول ویژه عبور دهید.
2. خطا را محاسبه کنید، که این تفاوت بین خروجی نورون و خروجی مورد نظر در مثال مجموعه تمرین است.
3. بسته به جهت خطا ، وزنه ها را تنظیم کنید.
4- این روند را 10،000 بار تکرار کنید.

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

برای رسیدن به فرمول، مقدار وزنی را از ورودی‌ها می‌گیریم:

input = weight1 * input1 + weight2 * input2

بعد از هر تکرار ، ما باید وزن را بر اساس خطا تنظیم کنیم (تفاوت خروجی محاسبه شده و خروجی واقعی). ما برای هر وزن از این فرمول استفاده می‌کنیم:
تنظیم = ورودی * خطا * 0.01
این فرمول باعث می‌شود تنظیم متناسب با اندازه خطا باشد. بعد از هر تنظیم اندازه خطا باید کوچک‌تر و کوچک‌تر شود.

بعد از 10،000 دفعه تکرار ، ما وزن بهینه خواهیم داشت و سپس می‌توانیم ورودی‌های مورد نظر خود را به برنامه ارائه دهیم. این برنامه از وزنه ها استفاده می‌کند و خروجی را با استفاده از همان مقدار وزنی مشابه در بالا محاسبه می‌کند.

ایدهٔ خود را در سکان‌پلاس بنویسید!

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
resax74
resax74
۱۳۹۸/۰۶/۲۵
سلام
من خیلی دوست دارم که تو زمینه یادگیری ماشین و پردازش تصویر کار کنم .
ولی چند تا سؤال دارم
ممنون میشم اگه راهنماییم کنید .

1_ اصلن این دوتا شاخه باهم دیگه ارتباط یا وجه مشترکی دارند ؟؟

2_ برای فعالیت در زمینه یادگیری ماشین چه زبان‌های برنامه‌نویسی و چه نرم‌افزار هایی رو باید بلد باشیم ؟؟
( در کل برای فعالیت تو این زمینه چه مهارت‌هایی لازمه ؟؟ )

3_ در جاهای مختلف دیدم که برای پردازش تصویر از برنامه‌ها و زبان‌های مختلفی استفاده میکنن ( مثل: پردازش تصویر با OpenCV در Python یا متلب . بعضیام از labview استفاده میکنن )
فرق اینا باهم چیه ؟؟ نرم‌افزار یا زبان‌های برنامه‌نویسی دیگه ای هم تو این زمینه استفاده میشه ؟؟


ممنون میشم اگه جواب بدین
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۸/۰۶/۲۳
فوق‌العاده بود.