جستجو برای:
  • فروشگاه
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش گوگل کولب
    • آموزش رایگان matplotlib
    • آموزش متلب رایگان
    • دوره‌های خارجی
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • فروشگاه
    • وبلاگ
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق
      • آموزش pytorch
      • آموزش گوگل کولب
      • آموزش رایگان matplotlib
      • آموزش متلب
      • دوره‌های خارجی
    • نقشه راه AI
    • کلاس خصوصی
    • درباره ما
      • اساتید
      • پشتیبانی
      • هوسم در اینستا و تلگرام
        • اینستاگرام هوسم (howsam_org@)
        • تلگرام هوسم (howsam_org@)
        • تلگرام پایتورچ (pytorch_howsam@)
    • همکاری با ما💚
    0

    ورود و ثبت نام

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ یادگیری عمیق شبکه عصبی mlp

    شبکه عصبی mlp

    2024/08/28
    ارسال شده توسط هوسم
    یادگیری عمیق
    12.83k بازدید

    شبکه عصبی MLP یا پرسپتون چند لایه، یکی از ساده‌ترین شبکه‌های عصبی است که برای اولین بار توسط فرانک روزنبلات معرفی شد. در این پست به تشریح این شبکه پرداخته و نحوه آموزش دیدن این شبکه با استفاده از الگوریتم پس انتشار خطا یا backpropagation را با یک مثال عددی آموزش خواهم داد. با من همراه باشید…

    فهرست مطالب نمایش
    1. شبکه عصبی MLP چیست؟
    2. یادآوری یادگیری نورون مصنوعی
    3. شبکه عصبی پرسپترون
    4. حل مسئله xor با شبکه عصبی mlp
    5. شبکه عصبی پرسپترون چند لایه
    6. آموزش شبکه عصبی پرسپترون چند لایه
    7. الگوریتم پس انتشار خطا
    8. مثال عددی از الگوریتم پس انتشار خطا
    9. منابع آموزش یادگیری عمیق

    شبکه عصبی MLP چیست؟

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

    یادآوری یادگیری نورون مصنوعی

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

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

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

    شبکه عصبی mlp
    شکل 1: بلوک دیاگرام یادگیری شبکه عصبی

    شبکه عصبی پرسپترون

    قبل از پیدایش شبکه عصبی mlp ، در سال 1958 فرانک روزنبلات یک شبکه عصبی به نام پرسپترون ابداع کرد. روزنبلات یک لایه‌ای از نورون‌ها را تشکیل داد و شبکه حاصل را پرسپترون نامید. اما پرسپترون روزنبلات نیز مشکلات فراوانی داشت. مینسکی و پپرت در سال 1969 کتابی به نام پرسپترون نوشتند. آن‌ها تمامی توانایی‌ها و مشکلات پرسپترون را در این کتاب مورد بررسی قرار دادن. مینسکی و پپرت در کتاب خود ثابت کردند که پرسپترون فقط مسائلی را می‌تواند حل کند که به صورت خطی تفکیک‌پذیر باشند. همین امر باعث شد تا محققان از حوزه شبکه عصبی نا امید شوند! ساختار پرسپترون در شکل زیر نشان داده شده است:

    شبکه عصبی mlp
    شکل 2: نمایش وزن‌ها در پرسپترون

    مشاهده می‌کنیدکه وزن‌ها به صورت wi,j تغییر داده شده‌اند. wi,j یعنی وزن مربوط به اتصال ورودی i به نورون j . پس i شماره ورودی و j شماره نورون را نشان می‌دهد. با این تغییر، روابطی که برای نورون گفتیم نیز به شکل زیر تغییر خواهند کرد:

    شبکه عصبی mlp
    معادله 1: معادله خروجی پرسپترون

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

    حل مسئله xor با شبکه عصبی mlp

    در جلسه قبل گفتیم که Minsky و Papert کتابی به نام perceptrons نوشتند. آن‌ها در این کتاب ضعف‌های جدی پرسپترون را برشمردند. آن‌ها بیان کردند که پرسپترون قادر به حل برخی مسائل پیش پا افتاده نیست. یکی از این مسائل، مسئله XOR است. پرسپترون قادر به حل مسئله XOR نیست. زیرا آن‌ها فقط می‌توانند مسائلی که به صورت خطی تفکیک‌پذیر هستند را حل کنند. و مسئله XOR خطی نیست! به شکل زیر دقت کنید:

    شبکه عصبی mlp
    شکل 3: مسئله xor

    نمی‌توان با یک خط مربع‌ها را از مثلث‌ها جدا کرد، درست است؟ بنابراین پرسپترون نمی‌تواند این مسئله را حل کند. با این حال بعدها مشخص شد که با چسباندن چند پرسپترون پشت هم، یکسری از مسائل قابل حل خواهند شد. از جمله مسئله XOR. به شبکه‌ای که از چسباندن چند پرسپترون به هم ساخته می‌شود یک پرسپترون چند لایه ، multilayer perceptron یا به اختصار mlp گفته می‌شود. مثلا شبکه mlp زیر می‌تواند مسئله XOR را حل کند:

    شبکه عصبی mlp
    شکل 4: یک شبکه عصبی mlp که می‌تواند مسئله XOR را حل کند.

    اتصالات خاکستری وزن یک دارند. اما از کجا بفهمیم که چنین شبکه‌ای مسئله XOR را حل می‌کند. خب بهتر است قلم و کاغذ بردارید و محاسبه کنید!

    شبکه عصبی mlp
    جدول 1: محاسبات مربوط به شبکه مطرح شده در شکل 2

    مشاهده می‌کنید که خروجی نشان می‌دهد که شبکه عصبی mlp که ما تعریف کردیم، درواقع یک بلوک XOR است. نکته جالب این است که Y1، یک گیت and و Y2 یک گیت or است. (اگر متوجه نشدید که چرا اینگونه است به خروجی های آن‌ها دقت کنید.) یعنی دو نورون Y1 و Y2، ورودی‌ها را به فضای جدیدی بردند، طوری که تفکیک داده‌ها راحت است. یعنی شکل 1 به صورت زیر تغییر می‌کند:

    شبکه عصبی mlp
    شکل 5: تغییر ورودی‌ها توسط دو نورون Y1 و Y2

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

    تمرین 1: در شکل 1، دو نورون Y1 و Y2 مطابق کدام گیت منطقی عمل می‌کنند و چرا؟

    جواب در متن

    شبکه عصبی پرسپترون چند لایه

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

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

    شبکه عصبی mlp
    شکل 6: یک شبکه عصبی mlp

    مشاهده می‌کنید که یک لایه خروجی و یک لایه ورودی داریم. همچنین دو لایه از نورون‌ها بین لایه‌های ورودی و خروجی وجود دارد. به لایه‌هایی که بین لایه ورودی و خروجی قرار دارند، لایه پنهان (Hidden Layer) گفته می‌شود. معمولا به لایه‌هایی که نزدیک به لایه ورودی باشند، لایه‌های پایین گفته می‌شود. همچنین به لایه‌هایی که نزدیک به لایه خروجی هستند، لایه‌های بالا گفته می‌شود. به جز خروجی، هر لایه یک بایاس دارد.

    شبکه‌ای که تعداد زیادی لایه پنهان داشته باشد شبکه عصبی عمیق (Deep Neural Network) گفته می‌شود. در دهه 90 میلادی به شبکه‌هایی که بیش از دو نورون داشت، شبکه عصبی عمیق گفته می‌شد. اما امروزه شبکه‌های عصبی وجود دارند که صدها لایه دارند. بنابراین برای واژه عمیق تعریف دقیقی وجود ندارد. امروزه معمولا همه شبکه‌های عصبی را عمیق می‌خوانند، حتی آن‌هایی که عمیق نیستند!

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

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

    شبکه عصبی mlp
    معادله 2: معادلات مربوط به یادگیری نورون مصنوعی

    ما در جلسه اول مثالی حل کردیم. در این مثال فرآیندی که در معادله بالا آورده شده را با انتخاب نرخ یادگیری مناسب و وزن‌دهی اولیه انجام دادیم. دیدیم که اگر این فرآیند را ادامه دهیم، به نتیجه مطلوبمان که یادگیری نورون است خواهیم رسید. اما آیا همین فرآیند را می‌توانیم برای یک شبکه عصبی mlp نیز انجام دهیم؟ اگر کمی دقت کنید متوجه خواهید شد که برای لایه آخر به راحتی می‌توانیم از معادله 1 برای آموزش وزن‌ها استفاده کنیم. اما برای لایه‌های قبل‌تر چه؟ آیا وزن آن‌ها را هم به همین شکل می‌توان آموزش داد؟ اگر جوابتان بله است، بگویید ببینم، مقدار yt یا برچسب برای لایه‌های قبل‌تر چه هست؟ مگر برای لایه‌های میانی هم برچسب داریم؟ پس نمی‌توان با این فرآیند یک شبکه عصبی mlp را آموزش داد. پس چاره چیست؟ پاسخ این سوال در بخش بعدی آورده شده است.

    الگوریتم پس انتشار خطا

    سال‌ها محققان تقلا می‌کردند که روشی برای آموزش شبکه عصبی mlp پیدا کنند. تا اینکه در سال 1986، David Rumelhart ، Geoffrey Hinton و Ronald Williams  مقاله‌ای منتشر کردند که راه حلی برای آموزش شبکه عصبی پرسپترون چند لایه ارائه کرده بود. آن‌ها در مقاله خود الگوریتم یادگیری پس انتشار خطا ( backpropagation ) را معرفی کردند. این الگوریتم امروزه کماکان برای آموزش شبکه‌های عصبی چند لایه مورد استفاده قرار می‌گیرد. اما الگوریتم پس انتشار خطا چیست؟ اگر بخواهم ساده بگویم، پس انتشار خطا همان الگوریتم گرادیان کاهشی است. با این تفاوت که تکنیکی بهینه برای محاسبه اتوماتیک گرادیان دارد.
    الگوریتم پس انتشار خطا در دو مسیر forward و backward در شبکه حرکت می‌کند. و می‌تواند مقدار گرادیان خطا را نسبت به هر پارامترِ شبکه (هر وزن یا بایاس محاسبه کند). به این ترتیب الگوریتم پس انتشار خطا می‌تواند تعیین کند که مقدار هر وزن در یک شبکه عصبی mlp چقدر باید تغییر کند. و به این ترتیب مسئله آموزش وزن‌های میانی در mlp چند لایه حل می‌شود.

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

    نکته در سال 1986 که این مقاله منتشر شد، از تابع فعالسازی پله استفاده می‌شد. و خبری از توابع فعالسازی که امروزه استفاده می‌شوند، مثل ReLU، نبود. برای اینکه الگوریتم پس انتشار خطا به درستی کار کند نیاز بود تابع فعالسازی مشتق‌پذیر باشد. از این رو از توابع فعالسازی مانند سیگموید و … استفاده شد.

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

    مثال عددی از الگوریتم پس انتشار خطا

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

    شبکه عصبی mlp
    شکل 7: مثالی از یک گراف

    همان‌طور که مشاهده می‌کنید، این گراف 5 ورودی دارد. این ورودی‌ها منجر به خروجی yp می‌شوند. این خروجی منجر به اتلاف E می‌شود. حالا می‌خواهیم بدانیم مقدار j چقدر باید تغییر کند که اتلاف مینیمم شود. طبق الگوریتم گرادیان کاهشی داریم:

    شبکه عصبی mlp
    معادله 3: محاسبه وزن j

    خب ما که مقدار E/∂j∂ را نداریم. آن را چطور محاسبه کنیم. راه حل این مسئله استفاده از مشتق زنجیره‌ای است. یعنی:

    شبکه عصبی mlp
    معادله 4: قاعده مشتق زنجیره‌ای برای محاسبه گرادیان خطا نسبت به j

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

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

    سپس نتایج به دست آمده را طبق معادله 3 در هم ضرب می‌کنیم. درواقع می‌توانیم بگوییم که رفتار هر گره در مسیر backward متفاوت است. در واقع می‌توان گفت که گراف بالا در مسیر backward به شکل زیر تغییر می‌کند:

    شبکه عصبی mlp
    شکل 8: گراف شکل 5 در مسیر backward

    به همین ترتیب می‌توانیم مقدار تغییر بقیه پارامترها را هم مشخص کنیم.

    تمرین 2: مقادیر علامت سوال را در شکل 6 محاسبه کنید.

    منابع آموزش یادگیری عمیق

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

    • کتاب Hands on Machine Learning
    • کتاب Pattern Recognition and Machine Learning
    • کتاب Neural Networks for Pattern Recognition
    • کتاب شبکه عصبی Haykin

    .

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

    اشتراک گذاری:

    مطالب زیر را حتما مطالعه کنید

    یادگیری انتقالی
    یادگیری انتقالی یا Transfer Learning به معنای استفاده از یک مدل از پیش آموزش‌دیده در...
    شبکه VGG
    شبکه VGG یکی از معماری‌های موفق و معروف در حوزه یادگیری عمیق است که در...
    مهندسی پرامپت
    امروزه، با ظهور ChatGPT و سایر ابزارهای هوش مصنوعی، طیف گسترده‌ای از افراد، از کاربران...
    مدل nanoGPT
    در سال ۲۰۱۹، OpenAI مدل GPT-2 را معرفی کرد. OpenAI، برخلاف مدل‌های بعدی (GPT-3 و...
    شگفت‌انگیزترین ایده هوش مصنوعی از نظر Andrej Karpathy
    هوش مصنوعی به سرعت در حال پیشرفت هست. به‌گونه‌ای که باید زمان و انرژی زیادی...
    شبکه ویژن ترنسفورمر
    شبکه ویژن ترنسفورمر (Vision Transformer) یا ViT یک شبکه عصبی مبتنی بر مدل ترنسفورمر هست...

    36 دیدگاه

    به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

    • سارا گفت:
      2025/05/04 در 4:41 ق.ظ

      سلام عذر میخوام میشه بفرمایید tanh چیه؟ آیا یک الگوریتم بهینه سازی واسه اتلاف هست؟

      پاسخ
      • هوسم گفت:
        2025/05/04 در 9:56 ق.ظ

        سلام
        تابع tanh یا تانژانت هایپربولیک یک تابع فعال‌ساز یا Activation Function در شبکه عصبی هست.

        پاسخ
    • بهاره بهره مند گفت:
      2025/01/08 در 11:54 ب.ظ

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

      پاسخ
      • جواد شجاعی گفت:
        2025/01/17 در 6:34 ب.ظ

        واقعا عالی بود دمتون گرم. مطالب بسیار ارزنده و ساده بودند

        پاسخ
        • هوسم گفت:
          2025/01/18 در 10:44 ق.ظ

          ممنون 🙏🌹

          پاسخ
    • بهزاد گفت:
      2024/05/10 در 11:38 ق.ظ

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

      پاسخ
      • هوسم گفت:
        2024/05/11 در 12:10 ب.ظ

        سلام
        ما با ابزارهای شبکه عصبی در متلب آشنایی نداریم. این آموزش متمرکز بر تئوری شبکه عصبی MLP هست.
        موفق باشید 🌹🙏

        پاسخ
    • morteza723 گفت:
      2023/06/24 در 6:17 ب.ظ

      سلام و عرض خدا قوت
      لطفا بفرمایید در حل مسله XOR از چه تابع فعال سازی استفاده شده
      سپاسگزارم
      ضمنا از همه محتوای اموزشی شما استفاده کردم و یک نسخه بک اپ گرفتم
      بسیار عالی و مناسب است
      سعی دارم با درک این مطالب وارد دوره های بالاتر شما شوم

      پاسخ
      • HosseinNz71 گفت:
        2023/10/20 در 3:44 ب.ظ

        سلام و عرض ادب
        از تابع فعال ساز step: اگر مقدار بزرگتر از صفر بود یک اگر کمتر مساوی صفر بود صفر.

        پاسخ
    • هاشم گفت:
      2023/06/12 در 4:18 ب.ظ

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

      پاسخ
    • sina گفت:
      2023/03/06 در 3:24 ق.ظ

      salam
      besiar ali va kholaseh tozih dadid moteskakeram

      پاسخ
    • kamal گفت:
      2022/12/20 در 12:06 ب.ظ

      عالی دمتون گرم ممنون

      پاسخ
    • fardin گفت:
      2022/09/24 در 11:30 ق.ظ

      با سلام
      میخواستم بدونم در حل مسئله xor از چه تابع فعالسازی استفاده کردید
      ممنون

      پاسخ
    • ايراني گفت:
      2022/05/27 در 4:34 ب.ظ

      آموزش و نكاتي كه توي اين دوره گفتيد عالي بود
      خدا خيرتون بده

      پاسخ
    • Minou گفت:
      2021/10/08 در 9:05 ق.ظ

      و ببخشید میشه لطفا یه مثال Mlp برای الگوریتم( و نه گراف) پس انتشار خطا معرفی کنید و توضیح بدید؟

      پاسخ
    • Minou گفت:
      2021/10/08 در 5:43 ق.ظ

      سلام. چقدر روان و سلیس بیان کرده بودید؛ دست مریزاد!
      میشه لطفا حل یک معادله دیفرانسیل ، به کمک شبکه مصنوعی رو هم توضیح بدید؟

      پاسخ
    • shasa22 گفت:
      2021/09/23 در 8:32 ب.ظ

      خیلی ممنونم از این آموزش
      میشه جواب تمرین 2 را بفرمایید؟
      ضرب در صفر میشن؟

      پاسخ
      • HosseinNz71 گفت:
        2023/10/20 در 3:47 ب.ظ

        سلام
        جواب تمرین 2:
        جواب علامت سوال بالای ab/x و علامت سوال پایینی cd/x می شود.

        پاسخ
    • shasa22 گفت:
      2021/09/13 در 10:42 ب.ظ

      سلام
      خیلی خیلی ممنون بابت این آموزش بسیار مفید
      فقط توی جدول ستون outputسطر سوم یکی از یک ها باید صفر باشه، البته در جواب نهایی فرقی نداره,

      پاسخ
      • shasa22 گفت:
        2021/09/13 در 10:48 ب.ظ

        ببخشید آخرین صفر سطر سوم از ستون output باید یک باشه

        پاسخ
      • رها گفت:
        2021/11/24 در 6:24 ب.ظ

        سلام شما به جواب تمرین 2 رسیدین؟؟

        پاسخ
    • محمد گفت:
      2021/07/20 در 10:12 ق.ظ

      سلام . نزدیک یک ماه میشه که فقط دارم همین یه پست رو دوره میکنم و خیلی کمک کرده تشکر میکنم . برخی جزئیات که اشاره کردید رو جایی ندیده بودم و دنبالش بودم . منتهی الان با لایه های مخفی یه مشکل دارم . فرض کنید مثلا 2 لایه مخفی داریم اولی با 4 نورون و دومی با 3 نورون. و هر لایه نورون هاش هر تابع فعالسازی هم که میخوان داشته باشن. مقدار اولیه همه وزن ها 1 هست. خب ورودی های این 4 نورون لایه اول مخفی دقیقا مثل همه . یعنی همه ی ورودی های ما(لایه اول) بعد از ضرب شدن در وزن مربوطشون سیگما میشن و وارد نورون های لایه مخفی میشن . تابع فعالسازی یکسانی هم دارن . در نتیجه خروجی این 4 نورون هم دقیقا مثل هم میشه . حتی اگر با گرادیان کاهشی ادامه بدیم و وزن هارو آپدیت کنیم باز هم در این حالت میبینیم که وزن هایی که لایه های مخفی رو به هم وصل میکنن یا وزن هایی که اخرین لایه مخفی رو به نورون خروجی وصل میکنن همشون عین هم هستن . این طبیعیه ؟ یعنی شبکه عصبی طوریه که این وزن هایی که لایه های مخفی رو به هم وصل میکنن همیشه مقدار یکسان دارند ؟ تشکر.

      پاسخ
      • تیم هوسم گفت:
        2021/07/20 در 10:49 ق.ظ

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

        پاسخ
        • محمد گفت:
          2021/07/20 در 11:15 ق.ظ

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

          پاسخ
      • سید مصطفی حسین پور موسوی گفت:
        2023/06/22 در 6:08 ب.ظ

        بسیار عالی .تشکر

        پاسخ
        • morteza723 گفت:
          2023/06/24 در 6:19 ب.ظ

          مصطفی جان سلام
          ممنونم که با راهنمایی خود مرا با این سایت پر محتوا اشنا کردی
          سپاس بیکران

          پاسخ
    • سجاد گفت:
      2021/06/07 در 1:41 ق.ظ

      خیلی هم خوب موفق باشید

      پاسخ
      • تیم هوسم گفت:
        2021/06/07 در 9:53 ق.ظ

        سلام
        ممنون از شما برای کامنت 🌹🙏

        پاسخ
    • حميد گفت:
      2021/05/11 در 10:06 ب.ظ

      سلام و درود
      بسیار عالی

      پاسخ
      • تیم هوسم گفت:
        2021/05/12 در 11:11 ب.ظ

        سلام
        سپاس 🌹🙏

        پاسخ
    • سید گفت:
      2021/03/01 در 7:04 ب.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2021/03/01 در 7:37 ب.ظ

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

        پاسخ
    • محمد غفور گفت:
      2020/09/15 در 2:37 ب.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2020/09/15 در 8:41 ب.ظ

        سلام
        سپاس. منابع را در لینک زیر قرار دادیم. امیدواریم لذت ببرید 😉
        https://howsam.org/machine-learning-books

        پاسخ
    • نیک زاده گفت:
      2020/07/27 در 11:40 ق.ظ

      عالی بود. زیبا و کامل

      پاسخ
      • تیم هوسم گفت:
        2020/08/09 در 1:01 ب.ظ

        سپاس 🌹

        پاسخ

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    فهرست مطالب دوره
    • معرفی دوره یادگیری عمیق رایگان
    • جلسه 00: یادگیری عمیق چیست
    • جلسه 01: ساختار نورون مصنوعی
    • جلسه 02: یادگیری نورون مصنوعی
    • جلسه 03: شبکه عصبی mlp
    • جلسه 04: دسته بندی با mlp و تنسورفلو
    • جلسه 05: رگرسیون با mlp و تنسورفلو
    • جلسه 06: شبکه عصبی کانولوشنی (CNN)
    • جلسه 07: شبکه عصبی بازگشتی (RNN)
    • جلسه 08: شبکه عصبی LSTM
    • جلسه 09: شبکه GRU
    • جلسه 10: شبکه ترنسفورمر
    • جلسه 11: شبکه ویژن ترنسفورمر
    • جلسه 12: شبکه عصبی GAN
    • جلسه 13: شبکه اتوانکدر
    دوره‌های جامع هوسم
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    • دوره متلب سوپراستارتر
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت