Deep Learning Essentials – DEV Community

Summarize this content to 400 words in Persian Lang
این زیر مجموعه ای از یادگیری ماشینی است که بر استفاده از شبکه های عصبی با لایه های متعدد برای مدل سازی و درک الگوهای پیچیده در داده ها تمرکز دارد.
شبکه عصبی نوعی الگوریتم یادگیری ماشینی است که برای یادگیری از داده ها با تنظیم وزن اتصالات بین نورون ها بر اساس خطاهای پیش بینی آنها طراحی شده است.
واحد اساسی یک شبکه عصبی است نورون مصنوعی، اغلب فقط a نامیده می شود نورون. یک نورون مصنوعی از نورون های بیولوژیکی در مغز انسان الهام گرفته شده است و مسئول انجام یک محاسبات کوچک و خاص در شبکه است.
1) هر نورون یک یا چند ورودی دریافت می کند، آنها را پردازش می کند (اغلب با اعمال یک تابع ریاضی)، و سپس یک خروجی تولید می کند.
2) نورون معمولاً یک مجموع وزنی از ورودی های خود را به دنبال آن اعمال می کند عملکرد فعال سازی برای معرفی غیر خطی بودن. سپس خروجی این تابع به لایه بعدی شبکه منتقل می شود یا اگر در لایه خروجی باشد به عنوان خروجی نهایی عمل می کند.
ورودی ها: پرسپترون چندین ورودی دریافت می کند که هر کدام با یک عدد ممیز شناور نمایش داده می شوند.
وزن ها: هر ورودی در یک وزن متناظر ضرب می شود که آن نیز یک عدد ممیز شناور است. وزن تعیین کننده اهمیت ورودی در فرآیند تصمیم گیری است.
جمع بندی: سپس ورودی های وزن دار با هم جمع می شوند تا یک مقدار واحد تولید شود.
آستانه (یا تعصب): پرسپترون نتیجه حاصل از جمع را با مقدار آستانه مقایسه می کند
خروجی:
اگر جمع باشد بزرگتر از 0 (یا آستانه)، خروجی های پرسپترون +1 (یا 1 در برخی نسخه ها).
اگر جمع باشد کمتر یا مساوی 0، خروجی های پرسپترون -1 (یا در برخی نسخه ها 0).
(توجه: پرسپترون ها محدود به حل مسائلی هستند که به صورت خطی قابل تفکیک هستند، به این معنی که آنها فقط می توانند داده هایی را طبقه بندی کنند که می توانند با یک خط مستقیم از هم جدا شوند)
بسیاری از مسائل جالب، و حتی برخی از مسائل بسیار ساده، به طور قابل اثباتی فراتر از توانایی یک پرسپترون برای حل بودند. این دوره، که تقریباً بین دهه 1970 و 1990 طول کشید، زمستان هوش مصنوعی نامیده شد.
AI زمستان
این دوره با ناامیدی از فناوریهای اولیه هوش مصنوعی مانند سیستمهای خبره، که با مقیاسپذیری و کاربرد در دنیای واقعی مشکل داشتند، مشخص شد. در نتیجه، بودجه دولت ها و سازمان ها به پایان رسید و تحقیقات در زمینه هوش مصنوعی به میزان قابل توجهی کاهش یافت.
شبکه عصبی مدرن پس از زمستان هوش مصنوعی
1) تغییر 1:این اضافه کردن یک ورودی اضافی به نام سوگیری است. برخلاف سایر ورودیها، بایاس به هیچ داده خارجی یا خروجی نورونهای قبلی مرتبط نیست.
این تعصب مقدار ثابتی است که مستقیماً به مجموع ورودی های وزنی اضافه می شود. به عنوان یک پارامتر جداگانه که هر نورون دارد عمل می کند و به تنظیم خروجی مستقل از مقادیر ورودی کمک می کند.
2) تغییر 2:به جای مقایسه مجموع با یک آستانه و خروجی -1 یا 1، میتوانیم مجموع (از جمله بایاس) را از طریق یک تابع ریاضی. این تابع یک مقدار ممیز شناور جدید را تولید می کند که می تواند در هر جایی در محدوده خاصی باشد
تابع فعال سازی/ریاضی/انتقالاین نورون بر اساس ورودی هایی که دریافت می کند، تعیین می کند که چقدر “فعال” خواهد بود. بسیاری از توابع فعالسازی غیرخطی بودن را معرفی میکنند و به شبکه اجازه میدهند تا روابط غیرخطی را بیاموزد، که برای حل مسائل پیچیدهتر بسیار مهم است.مثال
تابع سیگموئید: مقادیر بین 0 و 1 را خروجی می دهد. برای مسائل طبقه بندی باینری مفید است.
تابع Tanh (مماس هایپربولیک): مقادیر بین -1 و 1 را خروجی می دهد. شبیه به سیگموئید است اما در مرکز 0 است.
ReLU (واحد خطی اصلاح شده): ورودی را در صورت مثبت بودن خروجی می دهد، در غیر این صورت 0.
ReLU نشتی: شبیه به ReLU، اما اجازه می دهد تا یک گرادیان کوچک و غیر صفر زمانی که ورودی منفی است، به جلوگیری از مشکل “ReLU در حال مرگ” کمک می کند.
انواع توابع فعال سازی:
1) توابع خط مستقیم
الف تابع هویت:تابع هویت یک تابع خط مستقیم است که در آن خروجی دقیقا برابر با ورودی است.f(x)=x
ب توابع خطی:تابع خطی هر تابعی است که بتوان آن را به صورت خط مستقیم نشان داد.f(x) = mx + b
2) توابع مرحله
الف عملکرد پله پله:یک تابع پله پله از چند بخش خطی با تغییرات ناگهانی در مقادیر ورودی مشخص تشکیل شده است. مشخصه آن پرش های گسسته به جای منحنی صاف است.مثالتابعی که 0 را برای ورودی های بین 0 تا فقط کمتر از 0.2، 0.2 برای ورودی های 0.2 تا فقط کمتر از 0.4 و غیره خروجی می دهد.
ب تابع مرحله واحد:خروجی 0 برای مقادیر ورودی کمتر از آستانه و 1 برای مقادیر ورودی مساوی یا بزرگتر از آستانه.
ج تابع Heaviside:
3) توابع خطی تکه ای
الف ReLU (واحد خطی اصلاح شده)
تعریف تابع:برای x≥0: f(x)=xبرای x
این زیر مجموعه ای از یادگیری ماشینی است که بر استفاده از شبکه های عصبی با لایه های متعدد برای مدل سازی و درک الگوهای پیچیده در داده ها تمرکز دارد.
شبکه عصبی نوعی الگوریتم یادگیری ماشینی است که برای یادگیری از داده ها با تنظیم وزن اتصالات بین نورون ها بر اساس خطاهای پیش بینی آنها طراحی شده است.
واحد اساسی یک شبکه عصبی است نورون مصنوعی، اغلب فقط a نامیده می شود نورون. یک نورون مصنوعی از نورون های بیولوژیکی در مغز انسان الهام گرفته شده است و مسئول انجام یک محاسبات کوچک و خاص در شبکه است.
1) هر نورون یک یا چند ورودی دریافت می کند، آنها را پردازش می کند (اغلب با اعمال یک تابع ریاضی)، و سپس یک خروجی تولید می کند.
2) نورون معمولاً یک مجموع وزنی از ورودی های خود را به دنبال آن اعمال می کند عملکرد فعال سازی برای معرفی غیر خطی بودن. سپس خروجی این تابع به لایه بعدی شبکه منتقل می شود یا اگر در لایه خروجی باشد به عنوان خروجی نهایی عمل می کند.
ورودی ها: پرسپترون چندین ورودی دریافت می کند که هر کدام با یک عدد ممیز شناور نمایش داده می شوند.
وزن ها: هر ورودی در یک وزن متناظر ضرب می شود که آن نیز یک عدد ممیز شناور است. وزن تعیین کننده اهمیت ورودی در فرآیند تصمیم گیری است.
جمع بندی: سپس ورودی های وزن دار با هم جمع می شوند تا یک مقدار واحد تولید شود.
آستانه (یا تعصب): پرسپترون نتیجه حاصل از جمع را با مقدار آستانه مقایسه می کند
خروجی:
اگر جمع باشد بزرگتر از 0 (یا آستانه)، خروجی های پرسپترون +1 (یا 1 در برخی نسخه ها).
اگر جمع باشد کمتر یا مساوی 0، خروجی های پرسپترون -1 (یا در برخی نسخه ها 0).
(توجه: پرسپترون ها محدود به حل مسائلی هستند که به صورت خطی قابل تفکیک هستند، به این معنی که آنها فقط می توانند داده هایی را طبقه بندی کنند که می توانند با یک خط مستقیم از هم جدا شوند)
بسیاری از مسائل جالب، و حتی برخی از مسائل بسیار ساده، به طور قابل اثباتی فراتر از توانایی یک پرسپترون برای حل بودند. این دوره، که تقریباً بین دهه 1970 و 1990 طول کشید، زمستان هوش مصنوعی نامیده شد.
AI زمستان
این دوره با ناامیدی از فناوریهای اولیه هوش مصنوعی مانند سیستمهای خبره، که با مقیاسپذیری و کاربرد در دنیای واقعی مشکل داشتند، مشخص شد. در نتیجه، بودجه دولت ها و سازمان ها به پایان رسید و تحقیقات در زمینه هوش مصنوعی به میزان قابل توجهی کاهش یافت.
شبکه عصبی مدرن پس از زمستان هوش مصنوعی
1) تغییر 1:
این اضافه کردن یک ورودی اضافی به نام سوگیری است. برخلاف سایر ورودیها، بایاس به هیچ داده خارجی یا خروجی نورونهای قبلی مرتبط نیست.
این تعصب مقدار ثابتی است که مستقیماً به مجموع ورودی های وزنی اضافه می شود. به عنوان یک پارامتر جداگانه که هر نورون دارد عمل می کند و به تنظیم خروجی مستقل از مقادیر ورودی کمک می کند.
2) تغییر 2:
به جای مقایسه مجموع با یک آستانه و خروجی -1 یا 1، میتوانیم مجموع (از جمله بایاس) را از طریق یک تابع ریاضی. این تابع یک مقدار ممیز شناور جدید را تولید می کند که می تواند در هر جایی در محدوده خاصی باشد
تابع فعال سازی/ریاضی/انتقال
این نورون بر اساس ورودی هایی که دریافت می کند، تعیین می کند که چقدر “فعال” خواهد بود. بسیاری از توابع فعالسازی غیرخطی بودن را معرفی میکنند و به شبکه اجازه میدهند تا روابط غیرخطی را بیاموزد، که برای حل مسائل پیچیدهتر بسیار مهم است.
مثال
تابع سیگموئید: مقادیر بین 0 و 1 را خروجی می دهد. برای مسائل طبقه بندی باینری مفید است.
تابع Tanh (مماس هایپربولیک): مقادیر بین -1 و 1 را خروجی می دهد. شبیه به سیگموئید است اما در مرکز 0 است.
ReLU (واحد خطی اصلاح شده): ورودی را در صورت مثبت بودن خروجی می دهد، در غیر این صورت 0.
ReLU نشتی: شبیه به ReLU، اما اجازه می دهد تا یک گرادیان کوچک و غیر صفر زمانی که ورودی منفی است، به جلوگیری از مشکل “ReLU در حال مرگ” کمک می کند.
انواع توابع فعال سازی:
1) توابع خط مستقیم
الف تابع هویت:
تابع هویت یک تابع خط مستقیم است که در آن خروجی دقیقا برابر با ورودی است.
f(x)=x
ب توابع خطی:
تابع خطی هر تابعی است که بتوان آن را به صورت خط مستقیم نشان داد.
f(x) = mx + b
2) توابع مرحله
الف عملکرد پله پله:
یک تابع پله پله از چند بخش خطی با تغییرات ناگهانی در مقادیر ورودی مشخص تشکیل شده است. مشخصه آن پرش های گسسته به جای منحنی صاف است.
مثال
تابعی که 0 را برای ورودی های بین 0 تا فقط کمتر از 0.2، 0.2 برای ورودی های 0.2 تا فقط کمتر از 0.4 و غیره خروجی می دهد.
ب تابع مرحله واحد:
خروجی 0 برای مقادیر ورودی کمتر از آستانه و 1 برای مقادیر ورودی مساوی یا بزرگتر از آستانه.
ج تابع Heaviside:
3) توابع خطی تکه ای
الف ReLU (واحد خطی اصلاح شده)
تعریف تابع:
برای x≥0:
f(x)=x
برای x<0:
f(x)=0
ب ReLU نشتی
تعریف تابع:
برای x≥0:
f(x)=x
برای x<0:
f(x)=αx (که α یک ثابت کوچک است، به عنوان مثال، 0.01)
ج. ReLU پارامتریک (PReLU)
تعریف تابع:
برای x≥0:
f(x)=x
برای x<0:
f(x)=αx (که α یک پارامتر قابل یادگیری است)
4) توابع فعال سازی صاف
الف عملکرد سافت پلاس
این یک تقریب صاف از تابع ReLU است. این انتقال شدید در صفر را با ارائه یک جایگزین پیوسته و قابل تمایز نشان می دهد.
Softplus(x) = ln(1+ex)
ب تابع سیگموئید
تابع سیگموئید مقادیر ورودی را در محدوده ای بین 0 و 1 له می کند
σ(x)= 1/1+e-x
ج تابع مماس هایپربولیک (tanh).
تابع tanh شبیه به سیگموئید است اما مقادیر ورودی را در محدوده له می کند [−1,1]. حول محور صفر است و برای عادی سازی داده ها مفید است.
tanh(x)=ex+ e-x
/ex-e-x
تابع سافت مکس
تابع softmax یک جزء حیاتی در وظایف طبقهبندی در شبکههای عصبی است، به ویژه زمانی که هدف پیشبینی احتمالات برای چندین کلاس باشد.
Softmax نمرات خروجی خام (اغلب به عنوان logits) از نورون های خروجی به توزیع احتمال بر روی کلاس ها تبدیل می کند. هر مقدار خروجی به احتمالی تبدیل می شود که در تمام کلاس ها تا 1 جمع می شود.
1) شبکه عصبی فید فوروارد
الف شبکه فید فوروارد نوعی شبکه عصبی مصنوعی است که در آن اتصالات بین نورون ها چرخه تشکیل نمی دهند. به عبارت دیگر، داده ها در یک جهت، از ورودی به خروجی، بدون بازگشت به عقب جریان می یابند.
ساختار:
یک شبکه پیشخور به لایه ها سازماندهی شده است: یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی.
هر نورون ورودیهایی را از لایه قبلی دریافت میکند، وزنهایی را به این ورودیها اعمال میکند، آنها را خلاصه میکند، یک عبارت بایاس اضافه میکند و نتیجه را از طریق یک تابع فعالسازی برای تولید خروجی عبور میدهد.
انواع شبکه های فید فوروارد:
پرسپترون تک لایه:
ساده ترین شکل یک شبکه پیشخور با تنها یک لایه ورودی و یک لایه خروجی
مثال برای مسائل طبقه بندی باینری که داده ها به صورت خطی قابل تفکیک هستند استفاده می شود.
پرسپترون چند لایه (MLP):
این شامل یک یا چند لایه پنهان بین لایه های ورودی و خروجی است.
مثال در کارهایی مانند طبقه بندی، رگرسیون و تقریب تابع استفاده می شود.
شبکه تابع پایه شعاعی (RBF).
از توابع پایه شعاعی به عنوان توابع فعال سازی در لایه پنهان استفاده می کند.
مثال برای تقریب تابع و تشخیص الگو استفاده می شود.
برنامه های کاربردی:
تشخیص تصویر
تشخیص گفتار
تشخیص پزشکی
تعداد لایه هایی است که داده ها از ورودی به خروجی از طریق آنها عبور می کنند. اینها لایه های بین لایه ورودی و لایه خروجی هستند (به استثنای لایه ورودی). عمق شبکه با تعداد این لایه های پنهان تعیین می شود.
اینها مجموعه ای از نورون ها هستند که هر یک ورودی از هر نورون در لایه قبلی دریافت می کنند. اگر یک لایه ساخته شده است
فقط از لایه های متراکم، گاهی اوقات a نامیده می شود شبکه کاملا متصل.
آرایه صفر بعدی
مثال
اگر یک لایه شبکه عصبی فقط یک نورون داشته باشد، خروجی آن یک مقدار اسکالر واحد است. از نظر ریاضی، این خروجی را می توان به صورت یک آرایه صفر بعدی نشان داد.
آرایه تک بعدی (آرایه 1 بعدی)
مثال
هنگامی که یک لایه در یک شبکه عصبی دارای چندین نورون باشد، خروجی را می توان به عنوان یک لیست یا بردار مقادیر توصیف کرد. به عنوان مثال، اگر یک لایه شامل 12 نورون باشد، خروجی یک آرایه 1 بعدی با 12 عنصر است.
(توجه: مهم نیست که شبکه عصبی ما چقدر بزرگ یا پیچیده باشد، اگر توابع فعال سازی نداشته باشد و توابعی خطی باشند، مثلاً جمع، تفریق و غیره؛ آنگاه همیشه معادل یک نورون واحد خواهد بود.)
یک اصطلاح کلی که برای آرایه ای از اعداد که به شکل جعبه مانند با هر تعداد ابعاد مرتب شده اند استفاده می شود. آرایه های یک بعدی (بردار)، دو بعدی (ماتریسی)، سه بعدی (حجمی) و آرایه های بالاتر را در بر می گیرد.
آموزش شبکه های عصبی شامل تنظیم وزن شبکه برای به حداقل رساندن خطا در پیش بینی ها است. این کار از طریق یک فرآیند به روز رسانی مکرر پارامترهای شبکه برای کاهش هزینه یا عملکرد تلفات انجام می شود.
آنها نوعی شبکه عصبی هستند که برای یادگیری بدون نظارت استفاده می شوند. ایده کلیدی این است که ورودی را به یک کد با ابعاد پایین تر فشرده کنید و سپس ورودی اصلی را از این کد بازسازی کنید.
ساختار
رمزگذار:
این بخش داده های ورودی را در یک نمایش فشرده فشرده می کند.
مثال: برای یک تصویر، رمزگذار ممکن است ابعاد آن را از مثلاً کاهش دهد: 128×128 پیکسل به یک بردار کوچکتر، مانند 32 بعدی
رمزگشا:
این بخش داده های ورودی اصلی را از نمایش فشرده بازسازی می کند.
مثال: رمزگشا بردار 32 بعدی را می گیرد و سعی می کند تصویر 128×128 پیکسل را دوباره ایجاد کند.
فرآیند آموزش
آنها برای به حداقل رساندن تفاوت بین ورودی و خروجی بازسازی شده آموزش دیده اند. این معمولا با استفاده از یک تابع ضرر انجام می شود، مانند میانگین مربعات خطا (MSE) برای داده های پیوسته یا آنتروپی متقابل باینری برای داده های باینری هدف این است که وزن شبکه را طوری تنظیم کنیم که بازسازی تا حد امکان به ورودی اصلی نزدیک شود.
انواع:
1) حذف نویز از رمزگذارهای خودکار
2) رمزگذارهای خودکار متغیر
3) رمزگذارهای خودکار پراکنده
انواع فشرده سازی:
1) بدون ضرر:
این یک نوع فشرده سازی داده است که در آن داده های اصلی را می توان به طور کامل از داده های فشرده بازسازی کرد. این به این معنی است که هیچ اطلاعاتی در طول فرآیند فشرده سازی از بین نمی رود و داده های فشرده شده مشابه اصلی هستند.
الگوریتم ها: از روش هایی مانند رمزگذاری آنتروپی و تکنیک های مبتنی بر فرهنگ لغت استفاده کنید. مثالها عبارتند از: کدگذاری هافمن: نمادهای متداول را با کدهای کوتاهتر و نمادهای کمتر با کدهای طولانیتر رمزگذاری میکند. (RLE): توالی کاراکترهای تکراری را با ذخیره کاراکتر و تعداد آن فشرده می کند. مثال. PNG، FLAC، Zip
2) ضرر:
اندازه فایل را با حذف برخی از داده ها کاهش می دهد، اغلب به روشی که برای حواس انسان کمتر قابل توجه است اما منجر به از بین رفتن وفاداری می شود. هدف دستیابی به کاهش قابل توجه در اندازه فایل با حفظ کیفیت قابل قبول برای استفاده مورد نظر است.
مثال کدگذاری JPEG,H.264 یا HEVC, MP3Transform: داده ها را به یک دامنه متفاوت (مانند دامنه فرکانس) تبدیل می کند و آن را کوانتیزه می کند. مثالها عبارتند از: تبدیل کسینوس گسسته (DCT): در فشردهسازی تصویر JPEG استفاده میشود. تبدیل موجک گسسته (DWT): در JPEG 2000 استفاده میشود.
کاربرد:
1) کاهش ابعاد
2) نویز زدایی
تفاوت
بهینه ساز: وزن ها را برای به حداقل رساندن عملکرد کاهش تنظیم می کند.
Loss Function: اندازه گیری می کند که چقدر پیش بینی های مدل با مقادیر واقعی مطابقت دارند.
تابع فعال سازی: غیرخطی بودن مدل را اضافه می کند و آن را قادر می سازد تا الگوهای پیچیده را یاد بگیرد.
متصل بمانید!
اگر از این پست لذت بردید، فراموش نکنید که من را در رسانه های اجتماعی برای به روز رسانی و اطلاعات بیشتر دنبال کنید:
توییتر: بزرگاوگانسان
اینستاگرام: بزرگاوگانسان
لینکدین: بزرگاوگانسان