۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

سبک های یادگیری ماشین: مقدمه ای بر شبکه های عصبی

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

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

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

شبکه های عصبی و مغز انسان

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

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

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

تنوع بسیار زیادی در ساختار اصلی یک شبکه عصبی گنجانده شده است. هر جنبه ای از این سیستم ها برای اصلاح در حوزه های مشکل خاص باز است. الگوریتم های پس انتشار نیز هر تعداد پیاده سازی دارند. یک رویکرد رایج استفاده از حساب مشتقات جزئی (همچنین به عنوان انتشار پس‌افکن گرادیان شناخته می‌شود) است. تعیین تأثیر مراحل خاص در عملکرد کلی شبکه. نورون‌ها می‌توانند تعداد ورودی‌های متفاوتی داشته باشند (۱ – *) و راه‌های مختلفی برای ایجاد یک شبکه به هم متصل می‌شوند. دو ورودی در هر نورون رایج است.

4 گواهینامه ابری که به شما کمک می کند متمایز شوید

شکل ۱ ایده کلی را با شبکه ای از گره های دو ورودی نشان می دهد.

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

شکل ۱. ساختار شبکه عصبی سطح بالا

بیایید به آناتومی یک نورون در چنین شبکه‌ای که در شکل ۲ نشان داده شده است نگاه کنیم.

یک نورون دو ورودی.

شکل ۲. یک نورون دو ورودی

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

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

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

کاری که یک تابع فعال سازی مانند sigmoid انجام می دهد این است که مقدار خروجی را در ۱- و ۱ قرار می دهد، با مقادیر بزرگ و کوچک نزدیک می شوند اما هرگز به ترتیب به ۰ و ۱ نمی رسند. این به خروجی شکل یک احتمال می دهد که ۱ محتمل ترین و ۰ کمترین است. بنابراین این نوع تابع فعال‌سازی می‌گوید که نورون n درجه احتمال را به نتیجه بله یا خیر می‌دهد.

فیلسوف: گفتگو با گریدی بوچ

خروجی یک تابع سیگموید را می‌توانید در نمودار شکل ۳ ببینید. برای x معین، هرچه از ۰ دورتر باشد، خروجی y کمتر می‌شود.

خروجی تابع سیگموئید.

شکل ۳. خروجی یک تابع سیگموئید

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

یادگیری ماشین با انتشار پس زمینه

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

عملکرد از دست دادن

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

تابع خطای میانگین مربع فرض می‌کند که دو مجموعه اعداد با طول مساوی مصرف می‌کند. اولین مجموعه پاسخ های درست شناخته شده (خروجی صحیح) است که با Y در معادله بالا نشان داده شده است. مجموعه دوم (که با y ارائه می شود) حدس های شبکه (خروجی پیشنهادی) هستند.

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

نزول گرادیان

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

Synopsys خطرات زنجیره تامین نرم افزار را هدف قرار می دهد

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

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

برای با استفاده از ریاضیات درگیر در نزول گرادیان.

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

نتیجه گیری

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