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

    ورود و ثبت نام

    بلاگ

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

    شبکه عصبی LSTM

    2021/01/04
    ارسال شده توسط سید سجاد اشرفی
    یادگیری عمیق
    12.54k بازدید

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

    فهرست مطالب نمایش
    1. شبکه عصبی LSTM چیست
    2. آشنایی با شبکه عصبی LSTM
    2.1. میزان استفاده از شبکه LSTM در تسک‌های مختلف
    2.2. ساختار کلی شبکه عصبی LSTM
    2.3. یک داستان جالب از شبکه عصبی LSTM
    3. اهمیت شبکه عصبی LSTM
    3.1. شبکه عصبی RNN و وابستگی بلندمدت
    3.2. شبکه عصبی LSTM و وابستگی بلندمدت
    4. معماری شبکه LSTM
    4.1. فراموشی در شبکه LSTM
    4.2. گیت فراموشی در شبکه LSTM
    4.3. به خاطر سپردن در شبکه عصبی LSTM
    4.4. گیت ورودی در شبکه عصبی LSTM
    4.5. ساخت خروجی ht در شبکه LSTM
    4.6. گیت خروجی در شبکه LSTM
    5. شبکه LSTM در یک نگاه

    شبکه عصبی LSTM چیست

    شبکه عصبی LSTM یک نوع معماری شبکه عصبی بازگشتی (RNN) است. این شبکه مشکل محو گرادیان موجود در شبکه RNN را حل می‌کند. شبکه LSTM یکی از پرکاربردترین معماری‌های خانواده بازگشتی برای مدل‌سازی داده‌های دنباله‌ای مانند متن، سری زمانی و صوت است.

    ترجمه فارسی Long Short-Term Memory چه می‌شود؟ حافظه بلند و کوتاه مدت! یعنی ما با شبکه‌ای سروکار داریم که هم حافظه کوتاه مدت و هم حافظه بلندمدت دارد. اما یک ویژگی مهم دیگر شبکه LSTM، فراموشی است. این شبکه، می‌تواند در هرلحظه تعیین کند که چه مقدار از اطلاعات گذشته فراموش یا حفظ شود.

    پس به‌صورت خلاصه، شبکه مهم LSTM شامل ویژگی‌های مهم زیر است:

    • حافظه کوتاه‌مدت دارد.

    • حافظه بلندمدت دارد.

    • قابلیت فراموشی اطلاعات گذشته را دارد.

    این پاسخ کوتاهی به سوال “شبکه عصبی LSTM چیست” است. در ادامه به تشریح این شبکه خواهیم پرداخت.

    آشنایی با شبکه عصبی LSTM

    شبکه عصبی LSTM اولین بار توسط Hochreiter و Schmidhuber در سال 1997 معرفی شد. البته، در سال‌های بعد این کار توسط بسیاری از افراد بهبود داده شد. شبکه LSTM یک شبکه نسبتا قدیمی است. اما در طیف وسیعی از مسائل استفاده می‌شود و هنوز از محبوبیت بالایی برخودار است. به این نمودار که از سایت paperswithcode برداشتم، نگاه کنید؛ می‌بینید که با گذشت زمان، میزان استفاده از LSTM به‌شدت رشد داشته است.

    شبکه LSTM
    شکل 1: میزان رشد شبکه LSTM در گذر زمان.

    میزان استفاده از شبکه LSTM در تسک‌های مختلف

    همچنین، بازهم از سایت paperswithcode، نمودار زیر را آوردم که به میزان استفاده LSTM در کاربردهای مختلف اشاره دارد. Other اشاره به تسک‌های مختلف و کمتر شناخته‌شده دارد. Other را کنار بگذاریم، می‌بینیم که بیشترین میزان استفاده از LSTM در داده‌های سری زمانی است.

    شبکه LSTM در سری زمانی
    شکل 2: میزان استفاده از شبکه عصبی LSTM در تسک‌های مختلف

    ساختار کلی شبکه عصبی LSTM

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

    شبکه عصبی LSTM
    شکل 3: ساختار زنجیره‌ای در شبکه LSTM

    یک داستان جالب از شبکه عصبی LSTM

    شبکه LSTM در سال 1995 توسط آقای Schmidhuber و همکارش برای کنفرانس NIPS ارسال شد. اما مقاله ریجکت شد. مقاله جلوتر از زمان خودش بود! یک شبکه پیچیده که به راحتی نمی‌شود به عملکرد آن پی برد. در زیر، توئیتی از آقای Schmidhuber مشاهده می‌کنید که گفته 25 سال از ریجکت مقاله LSTM در کنفرانس NIPS می‌گذرد. نگران ریجکت شدن مقالات نباشید…

    شبکه LSTM در مقاله NeurIPS 1995
    شکل 4: جشن تولد 25 سالگی ریجکت شدن مقاله LSTM!

    چند نکته ساده هم بگویم:

    • کنفرانس NIPS همچنان یکی از معتبرترین کنفرانس‌های هوش مصنوعی دنیاست. چند سال پیش نامش اندکی تغییر پیدا کرد و الان با NeuroIPS شناخته می‌شود. بخوانید نوریپس…
    • داستان ردن شدن مقاله LSTM، برای بسیاری از افراد الهام‌بخش هست. چون به این فکر می‌کنند که ریجکت شدن مقاله پایان راه نیست و نباید ناامید شد. البته، به‌نظرم بعضی‌ها زیاده‌روی می‌کنند. بعد از اینکه نتیجه داوری مقالات در یک کنفرانس می‌آید، باید نگاهی به توئیتر بیندازید!
    • طبق این صفحه، آقای Schmidhuber چندان میانه خوبی با LBH (Lecun Bengio Hinton) ندارد! او می‌گوید این افراد جامعه هوش مصنوعی را گمراه کرده‌اند! توضیحات کامل را خودتان بخوانید…

    اهمیت شبکه عصبی LSTM

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

    شبکه عصبی RNN و وابستگی بلندمدت

    شبکه عصبی RNN مشکل وابستگی بلندمدت یا Long Term Dependency دارد. یعنی اینکه، نمی‌تواند در جمله‌ها، پاراگراف‌ها و تمامی دنباله‌های طولانی از داده‌ها عملکرد خوبی از خود نشان دهد. بگذارید یک مثال برای شما بزنم. به این جمله دقت کنید:

    من در ایران به دنیا آمدم، کم و بیش بلد هستم که … صحبت کنم.

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

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

    آیا درست است بگوییم که شبکه RNN حافظه بلندمدتش خوب کار نمی‌کند؟ بله، ای‌کاش شبکه RNN یک سبد حافظه داشت. همین‌طور که کلمه به کلمه در متن جلو می‌رویم، بعضی از کلمات خیلی مهم و کلیدی را در آن سبد بگذاریم. بعدا، هرجایی که خواستیم از آنها استفاده می‌کنیم. مثلا، شبیه شکل زیر، ایران و دنیا را درون سبد حافظه بلندمدت می‌گذاشتیم تا در قسمت ? استفاده کنیم.

    شکل 5: یک شبکه RNN با یک سبد حافظه بلندمدت

    شبکه LSTM آن سبد بالا را دارد. یعنی می‌تواند یکسری از اطلاعات مهم در هرلحظه در را حافظه بلندمدتش بریزد. برویم بیشتر با LSTM آشنا شویم…

    شبکه عصبی LSTM و وابستگی بلندمدت

    شبکه LSTM مخفف عبارت Long Short Term Memory است. احتمالا حالا برای شما معنی Long Term Memory مشخص شده است. یعنی حافظه بلندمدت دارد و دقیقا نقطه مقابل شبکه RNN است که از این مشکل رنج می‌برد.

    شبکه LSTM قادر به یادگیری وابستگی بلندمدت هست.

    اما چگونه وابستگی بلندمدت را یاد می‌گیرد؟ باید وارد معماری و جزئیات شبکه عصبی LSTM شویم تا بتوانیم به جواب این سوال برسیم. پس دیگر مقدمات کافی است، برویم سراغ بحث اصلی یعنی، معماری شبکه عصبی LSTM…

    معماری شبکه LSTM

    شبکه عصبی RNN را به یاد دارید؟ این شبکه یک ورودی و خروجی داشت (شکل زیر سمت چپ). درواقع یک مسیر بین ورودی و خروجی شبکه RNN شکل می‌گیرد. اما شبکه LSTM متفاوت است. این شبکه دو ورودی و خروجی دارد (شکل زیر سمت راست).

    شکل 6: مقایسه تعداد ورودی و خروجی در شبکه RNN و LSTM

    بین این ورودی و خروجی‌ها، یکی از ورودی‌ها مستقیم به خروجی متصل شده است! به شکل زیر نگاه کنید؛ ورودی Ct-1 مستقیما به خروجی Ct متصل شده است. این اتصال همین‌طور ساده از اول تا آخر دنباله ادامه دارد. C مخفف Cell State هست و یک مولفه کلیدی در LSTM است. به Cell State، حافظه بلندمدت یا Long Term Memory هم گفته می‌شود. بله، عملکردی شبیه همان سبد شکل 5 دارد.

    شبکه عصبی LSTM و گیت فراموشی
    شکل 7: نگاهی به خط Cell State. به المان و بخش‌های کم‌رنگ توجه نکنید. رفته‌رفته در طول آموزش درموردشون توضیح میدم و در شکل روشنشون ‌میکنم.

    این خط ورودی-خروجی از ازل تا ابد، همه بلوک‌های LSTM در استپ‌های زمانی مختلف را به‌هم متصل می‌کند. در گذر زمان، در این حافظه بلندمدت ما (C) اطلاعاتی ذخیره یا از آن حذف می‌شود. این حافظه بلندمدت دو خاصیت مهم و جالب دارد:

    • می‌توانیم اطلاعات در آن را پاک کنیم. یعنی، همان فراموش کردن.
    • می‌توانیم به آن اطلاعاتی اضافه کنیم. یعنی، همان به‌خاطر سپردن.

    آن علامت‌های x و + را روی خط Ct-1Ct می‌بینید؟ آنها به ترتیب مربوط به فراموش کردن و به‌خاطرسپردن هستند. درادامه، می‌خواهم در دو بخش جداگانه به شما بگویم که چگونه این فراموشی/به‌خاطرسپردن اتفاق می‌افتد.

    فراموشی در شبکه LSTM

    به علامت × روی خط حافظه بلندمدت در شکل زیر نگاه کنید. این عملگر دو ورودی دارد که یکی همان Ct-1 است. دومی هم یک ورودی است که نمی‌دانیم از کجا آمده است. ولی طبق شکل زیر ورودی قبل از اعمال از یک تابع سیگموید می‌گذرد. این تابع سیگموید باعث می‌شود که خروجی عددی بین 0 تا 1 شود.

    تابع سیگموید در شبکه عصبی
    شکل 8: ضرب بین دو بردار ft و Ct-1. دقت کنید که هردو ورودی بردار هست و ضرب بین این دو هم درایه به درایه هست. سعی کردیم رنگ‌ها رو معنی‌دار بگذاریم که بتونید ورودی و خروجی رو مقایسه کنید.

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

    حالا به نظر شما خروجی عملگر x چه خاصیتی دارد؟ قبول دارید خروجی همان Ct-1 است با اندک تغییراتی که ورودی ft روی آن ایجاد می‌کند؟ این تغییرات ممکن است به شکل زیر باشد:

    • هر درایه‌ای از ft اگر 0 باشد، یعنی به درایه متناظرش در Ct-1 اجازه نمی‌دهد به خروجی برود. یعنی می‌گوید بریز دور!
    • هر درایه‌ای از ft اگر 1 باشد، یعنی تمام ورودی Ct-1 به خروجی می‌رود و دست‌نخورده باقی می‌ماند.
    • اگر هم عددی بین 0 تا 1 باشد، طبیعتا تا حدی روی ورودی تاثیر می‌گذارد. پس این‌گونه می‌توانیم اطلاعاتی را از داخل Ct-1 حذف کنیم!

    اما ورودی ft چگونه تشکیل می‌شود؟ مطابق شکل زیر، این ورودی را یک شبکه عصبی کوچک با دو ورودی xt و ht-1 تشکیل می‌دهد. این شبکه عصبی کوچک، وظیفه فراموشی بخشی از اطلاعات موجود در حافظه بلندمدت را دارد. به این شبکه عصبی گیت فراموشی (forget gate) گفته می‌شود.

    شبکه عصبی RNN
    شکل 9: گیت فراموشی یک شبکه عصبی کوچک هست که کمی جلوتر ساختار داخلیش رو توضیح میدم. فعلا همین اندازه بگم که شبیه به شبکه عصبی RNN هست.

    احتمالا با کلمه فراموشی مشکلی ندارید، چون وظیفه‌اش همین است. اما چرا گفته شده گیت؟ منظور از گیت، یک دریچه یا پیچ قابل تنظیم هست که به ما امکان کنترل می‌دهد. به شکل زیر نگاه کنید؛ این شکل، یک ورودی و خروجی دارد. اما یک پیچ یا تنظیم‌کننده هم وجود دارد که میزان جریان ورودی به خروجی را می‌تواند کنترل کند (کم/زیاد کند). منظور ما از گیت فراموشی هم همین است؛ گیتی که به شبکه LSTM این قابلیت را می‌دهد که بعضی از مولفه‌های موجود در Ct-1 فراموش شوند.

    شبکه LSTM و گیت فراموشی
    شکل 10: گیت فراموشی شبیه به یک شیر کنترل‌کننده جربان آب هست. با گیت فراموشی، شبکه LSTM میتونه تنظیم کنه که چه چیزی رو فراموش کنه. البته، چه چیزی رو هم همچنان در حافظه نگه داره.

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

    گیت فراموشی در شبکه LSTM

    ساختار گیت فراموشی به ساختار داخلی شبکه عصبی بازگشتی خیلی شبیه هست. آنهایی که پست آموزش شبکه عصبی بازگشتی را خوانده‌اند، درادامه این تشابه را خواهند دید. این شبکه دو ورودی xt و ht-1 دارد. این دو ورودی با هم ترکیب می‌شوند و سپس از یک لایه سیگموید می‌گذرند. لایه سیگموید عددی بین 0 تا 1 ایجاد می‌کند که در بردار ورودی Ct-1 ضرب درایه به درایه می‌شود. تکرار می‌کنم، ft یک بردار است نه یک عدد اسکالر تنها. این بردار به اندازه Ct-1 است. تعیین می‌کند که هر درایه Ct-1 باید در چه عددی از 0 تا 1 ضرب شود. هر درایه از ft اگر به عدد 1 نزدیک باشد، معنایش اینست که این درایه از Ct-1 باید حفظ شود. اگر به 0 نزدیک باشد، یعنی این درایه از Ct-1 را دور بریز.

    اما دو بردار ورودی xt و ht-1 چگونه باهم ترکیب می‌شوند؟ بسیار ساده و با بهره گیری از شبکه عصبی mlp. همان‌طور که در شبکه بازگشتی گفتم، کافی است این دو بردار را به دو لایه فولی‌کانکتد بدهیم. سپس این دو را باهم جمع کنیم. فرمول و شکل گیت فراموشی به صورت زیر هست:

    شبکه عصبی بازگشتی
    شکل 11: فرمول و شکل گیت فراموشی.

    در شکل بالا، دو لایه فولی‌کانکتد با وزن‌های whf و wif داریم. این دولایه به‌ترتیب برای ورودی ht-1 و xt هستند. اندیس hf مخفف عبارت hidden و forget هست. اندیس if مخفف عبارت input و forget هست. چرا درباره اندیس‌ها توضیح می‌دهم؟ جلوتر این اندیس‌ها زیاد می‌شوند. این را یادتان باشد که دومین اندیس به نام گیت اشاره می‌کند.

    بسیارخب؛ بیایید بخش مربوط به فراموشی را در شبکه LSTM روشن کنیم:

    گیت فراموشی در شبکه LSTM
    شکل 12: گیت فراموشی در شبکه عصبی LSTM. دو وزن wh و wi وزن‌های مربوط به مسیر ht-1 و xt هستند. اندیس f را در دو وزن حذف کردم. کمی جلوتر دلیلش را متوجه می‌شوید.

    در شکل بالا، دو ورودی ft و Ct-1 به‌صورت زیر باهم ترکیب شده‌اند. علامت بین دو متغیر در شکل زیر، اشاره به ضرب درایه به درایه دو بردار ورودی دارد.

    گیت فراموشی در کارش بسیار سخت‌گیر است و به درایه‌های Ct-1 به‌راحتی اجازه عبور نمی‌دهد. گیت فراموشی، یک نگهبان امنیتی ویژه است!

    شکل 13: تصویری کمتر دیده‌شده از گیت فراموشی اندکی قبل از بازنشستگی!

    درمورد گیت فراموشی و وظیفه آن در حفظ یا پاک کردن اطلاعات موجود در Ct-1 صحبت کردیم. احتمالا انتظار دارید که درمورد نحوه ذخیره اطلاعات در Ct-1 (همان به خاطر سپردن) صحبت کنیم.

    به خاطر سپردن در شبکه عصبی LSTM

    بعد از گذر از عملگر x، به عملگر + روی مسیر Ct-1Ct می‌رسیم (شکل 7). اینجا قرار است با ورودی C چیزی جمع شود. یعنی اطلاعات جدیدی به آن اضافه خواهد شد. همان به خاطر سپردن اتفاق می‌افتد. دو ورودی داریم که یکی Ct است. ورودی دوم را فعلا نمی‌دانیم چیست. اما هرچه هست، برداری هم‌اندازه ورودی C است. ببینید، در استپ زمانی جاری (t) پردازش‌هایی انجام داده‌ایم و حالا می‌خواهیم اینها را به سلول حافظه بسپاریم که برای ما نگه دارد.

    می‌خواهیم چه اطلاعاتی از حال حاضر (t) را در حافظه بلندمدت ذخیره کنیم؟ به شکل زیر نگاه کنید؛ این اطلاعات با استفاده از یک شبکه عصبی محاسبه می‌شود. این شبکه عصبی همانند گیت ورودی شامل دو ورودی xt و ht-1 است. بازهم این ورودی‌ها باید از دو لایه فولی‌کانکتد (wig و whg) عبور کنند و بعد باهم جمع شوند. حالا این ورودی از یک تابع تانژانت هایپربولیک باید عبور داده شود. خروجی gt بین 1- تا 1 خواهد بود. چرا بین 1- تا 1 نیاز داریم؟ ساده هست، برای اینکه ممکن است بخواهیم اثر تعدادی از درایه‌ها یا مولفه‌های موجود در C را کاهش دهیم. یعنی با مقادیر بین 1- تا 1 می‌توانیم اثر بعضی مولفه‌ها را زیاد یا کم کنیم. این هم فرمول تشکیل خروجی:

    شبکه عصبی RNN
    شکل 14: خروجی gt که اطلاعات استپ زمانی جاری را در دارد. این خروجی هم با یک شبکه عصبی بدست آمده است.
    توجه دقت کنید، وزن‌های شبکه جدید wig و whg را در شکل بالا نشان نداده‌ام. دلیلش این هست که می‌خواستم شکل را مثل بقیه شکل‌های موجود از LSTM در اینترنت خلاصه کنم! تا اینجا فهمیدیم که هم گیت فراموشی و هم این شبکه جدید (پردازش اطلاعات فریم جاری)، هردو ساختار مشابهی تا قبل از اعمال تابع تحریک دارند. یعنی هردو شبکه، دو ورودی دارند. هریک از این دو ورودی، به‌صورت جداگانه یک فولی‌کانکتد دارند. درنهایت هم باهم جمع می‌شوند. پس بجای اینکه مدام از ورودی سیم به لایه‌های فولی‌کانکتد متعدد بکشم و شلوغ کنم، آن بخش مشترک را خلاصه کرده‌ام و یک بار کشیده‌ام. اما اصلا منظورم این نیست که وزن‌های این دو شبکه یکی است. نه اصلا! دو شبکه با پارامترهای کاملا جدا هستند. تنها در شکل خلاصه کرده‌ام. دوباره به تصویر نگاه کنید؛ بیرون باکس LSTM دو پارامتر wi و wh را نوشتم. مشخص کرده‌ام که هرنماد تا الان شامل دو لایه فولی‌کانکتد هست. البته تا الان!

    اما یک مشکل وجود دارد؛ ما در خروجی gt یک مقداری اطلاعات داریم. اما شاید این ورودی آنقدر ارزش نداشته باشد که بخواهیم Ct-1 را آپدیت کنیم. بله، می‌دانیم که این ورودی هم شامل اطلاعاتی است، اما شاید آنقدر ارزش نداشته باشد که بخواهیم به حافظه بلندمدت بسپاریم! فرض کنید الان در لحظه t در موقعیت کلمه “را” در جمله زیر هستیم:

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

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

    بسیار خب، چطور می‌توانیم این خروجی را بررسی کنیم که ارزش دارد یا نه؟ کافی است نگاهی به گیت فراموشی بیندازیم. اگر از یک گیتی مشابه با ساختار گیت فراموشی استفاده کنیم و آنرا بر سر راه خروجی gt قرار دهیم، می‌توانیم به راحتی تنظیم کنیم که این خروجی چقدر ارزش دارد. پس بازهم یک گیت یا دریچه مشابه شکل 11 نیاز داریم. به این گیت جدید، گیت ورودی (input gate) گفته می‌شود. برویم با گیت ورودی بیشتر آشنا شویم.

    گیت ورودی در شبکه عصبی LSTM

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

    برعکس، ممکن است مقادیر بردار it نزدیک به 1 باشد، دراین‌صورت gt می‌رود تا در حافظه بلندمدت ذخیره شود. اما ساختار این گیت به شکلی است؟ دقیقا مشابه با گیت فراموشی… به شکل زیر دقت کنید؛ گیت ورودی، دو ورودی xt و ht-1 را وارد دو لایه فولی‌کانکتد می‌کند و سپس اینها را باهم جمع می‌کند و درنهایت از تابع سیگموید عبور می‌دهد. این هم رابطه گیت ورودی، رابطه نحوه تشکیل خروجی نهایی (g’t) و البته آپدیت Ct:

    گیت ورودی در شبکه LSTM
    شکل 15: اضافه شدن گیت ورودی به ساختار داخلی شبکه LSTM. دقت کنید، بازهم چون بخشی از فرآیند این گیت مشابه قبل بوده، در شکل خلاصه شده.

    یک فرآیند موثر به‌نام گیت با ساختاری کاملا شبیه به RNN بارها در LSTM تکرار شده است.

    این هم از بخش ذخیره اطلاعات که با استفاده از گیت ورودی انجام شد. تا الان به این پرداختیم که چگونه اطلاعاتی از گذشته را فراموش کنیم و چگونه اطلاعاتی در Ct-1 ذخیره کنیم. اما هنوز کار داریم! هنوز هیچ مسیری بین ht-1 و ht نساخته‌ایم. بالاخره چه اطلاعاتی را به عنوان خروجی این استپ زمانی خواهیم داشت؟ برویم سراغ ادامه کار… خسته شدید؟ طاقت بیار رفیق ما داریم می‌رسیم!

    ساخت خروجی ht در شبکه LSTM

    شبکه بازگشتی LSTM برای ساختن خروجی ht به چه چیزی نیاز دارد؟ چطور است که همان Ct که تازه آپدیت شده را به خروجی متصل کنیم؟ چه چیزی بهتر از حافظه بلندمدت با اینهمه زحمتی که برایش کشیدیم! پس خروجی Ct را از یک تانژانت هایپربولیک عبور می‌دهیم، سپس آماده می‌شویم که آنرا به خروجی ht متصل کنیم. در شکل زیر نشان داده شده است.

    شکل 16: گرفتن یک انشعاب از حافظه بلندمدت Ct برای اتصال به ht.

    اما یک سوال! تصور کنید، از فردی می‌پرسید تا حالا دو تیم استقلال و پرسپولیس چندبار باهم بازی کردند؟ بعد مخاطب بگوید: “سلام، دو تیم استقلال و پرسپولیس اولین بار در سال فلان باهم بازی کردند که حاصل آن مساوی بود. در بازی دوم، … در بازی سوم و …” همین‌طور بگوید و بگوید تا اینکه برسد به آخرین بازی و درنهایت بگوید بنابراین، تابحال 80 بار باهم بازی کرده‌اند. درحالی‌که، جواب این سوال یک کلمه بود، آن‌هم 80! حالا اگر ما اینهمه اطلاعات موجود در Ct را به ht منتقل کنیم، دقیقا مشابه با همان جواب طولانی است. بهتر است آنقدری که نیاز است را برداریم و به خروجی ht منتقل کنیم. این کار چگونه انجام می‌شود؟ ساده هست، حدس بزنید! یک گیت دیگر به‌نام گیت خروجی (output gate). بازهم گیت؟؟

    اسیری شدیم…

    گیت خروجی در شبکه LSTM

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

    گیت خروجی، دو ورودی xt و ht-1 را وارد دو لایه فولی‌کانکتد می‌کند(1)

    و اینها را باهم جمع می‌کند(2)

    و درنهایت از تابع سیگموید عبور می‌دهد(3).

    درنهایت، خروجی تولیدشده از گیت خروجی ot باید در خروجی تابع سیگموید ضرب می‌شود تا آنقدری که نیاز است به خروجی ht منتقل شود. این هم از فرمول‌ها و شکل‌های این بخش:

    گیت خروجی در شبکه LSTM
    شکل 17: اضافه شدن گیت خروجی به شبکه LSTM

    اما، این پایان کار نیست، دو گیت دیگر هم داریم! نه شوخی کردم 😃 معماری شبکه LSTM تمام شد. در شکل زیر، یک نسخه کامل از شبکه عصبی LSTM همراه با تمامی فرمول‌ها را گذاشتم:

    lstm
    شکل 18: شبکه عصبی LSTM.

    بسیارخب،  بیایید مروری کنیم که چه المان‌هایی دیدیم.

    شبکه LSTM در یک نگاه

    دیدید که شبکه LSTM با این ظاهر پیچیده، شامل چند ایده جذاب و ساده هست. بیایید مباحث این جلسه را مرور کنیم:

    • حافظه بلندمدت داریم و هم اطلاعاتی را فراموش می‌کنیم و هم به خاطر می‌سپاریم.
    • گیت‌هایی داریم که شبیه شیر قابل تنظیم، جریان ورودی به خروجی را کنترل می‌کنند.
    • سه گیت با نام‌های گیت فراموشی، گیت ورودی و گیت خروجی داشتیم.
    • گیت فراموشی برای این بود که اطلاعات غیرضروری گذشته را فراموش کنیم.
    • گیت ورودی برای این بود که بررسی کنیم اطلاعات به‌دست آمده از لحظه جاری (t) ارزش ذخیره در حافظه بلندمدت را دارند یا خیر.
    • گیت خروجی برای این بود که همه اطلاعات موجود در Ct را به خروجی ht منتقل نکنیم. آنقدری را که نیاز داریم به خروجی ht ببریم.
    • گیت‌ها همواره خروجی‌شان بین 0 و 1 هست.
    • گیت‌ها همیشه در یک ورودی دیگر درایه به درایه ضرب می‌شوند.
    • هر گیت دو ورودی دارد: xt و ht-1. دو ورودی در دو لایه فولی‌کانکتد ضرب می‌شوند و بعد باهم جمع می‌شوند و درنهایت از تابع سیگموید عبور می‌کنند.
    • با استفاده از تانژانت هایپربولیک، اطلاعات همواره بین بازه 1- و 1 قرار دارند.
    • شبکه LSTM، چهار برابر شبکه RNN پارامتر و هزینه محاسبات دارد. سه تا گیت دارد و یک شبکه هم برای محاسبه ورودی حافظه (C’t) دارد.
    • شبکه LSTM یک شبکه بازگشتی مبتنی بر گیت هست.
    • نسخه‌های مختلفی از شبکه LSTM در بازار وجود دارد! 😃 حواستان باشد که با شکل‌ها و فرمول‌های مختلف گمراه نشوید. همه آنها شامل ایده گیت‌های (فراموشی، ورودی و خروجی) می‌شوند.
    • یک شکل معروف برای شبکه LSTM وجود دارد که در زیر نشان دادم. این شکل خلاصه نشان داده شده و هیچ‌یک از لایه‌های فولی‌کانکتد را نشان نداده. همان شکل خودمان هست، فقط خلاصه‌اش کردند.
    نمایش رایج شبکه LSTM
    شکل 19: نمایش رایج شبکه LSTM.

    تمام شد! با یک عالمه حرف ناگفته، شبکه عصبی LSTM هم تمام شد. برای شروع همین اندازه کافی است. بعدا برمی‌گردم و شبکه LSTM را از ابعاد مختلف مورد بررسی قرار می‌دهم. فعلا می‌خواهم شبکه عصبی GRU را شروع کنم. این کار به‌صورت تیمی انجام شده و امیدواریم که رضایت شما عزیزان را جلب کند. نظرهای‌تان را می‌خوانیم و برایمان مهم هست. لطفا هوسم را در Cell State مغزتان قراردهید! یا علی…

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

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

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

    157 دیدگاه

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

    • مریم گفت:
      2025/05/23 در 3:26 ب.ظ

      خیلی ممنون از مطالب مفیدتون. من فقط یک موردی رو مجاب نشدم. چرا برای اینکه بفهمیم چه اطلاعاتی از پردازش فعلی توحافظه بلند مدت ذخیره بشه، یک بار tanh و یک بار از سیگموید رد کردیم؟ فقط کافی بود یک بار از سیمگوید رد کنیم، اینطوری خودش میفهمید چیارو تو حافظه بلند مدت بذاره چیارونذاره. چون سیگموید به 0و 1 تبدیل میکنه. 1 هارو ذخیره و 0 هارو فراموش میکردیم و هزچی که این وسط بود اهمیتش کم بود. اینجوری هم اهمیت و هم فراموشی یا عدم فراموشی رو رعایت کردیم

      پاسخ
      • هوسم گفت:
        2025/05/24 در 10:07 ق.ظ

        سلام
        خوشحالیم که با دقت آموزش رو مطالعه کردید. 😊
        توی همین آموزش، توضیحاتی درباره گیت دادیم. گفتیم که، گیت‌ها نقش شیر کنترل آب رو دارن. در خروجی این گیت‌ها، تابع سیگموید قرار گرفته که خروجی رو بین 0 و 1 قرار بده. اگه ما خروجی حاصل از tanh رو حذف کنیم، صرفا داریم خروجی گیت سیگموید (همون شیر کنترل آب) رو در حافظه ذخیره می‌کنیم، نه خود آب رو! اینجا، دو تا موضوع رو باید از هم تفکیک کنیم: 1) شیر کنترل اطلاعات، 2) خود اطلاعات. با گیت سیگمویدی، من فقط شیر کنترل اطلاعات رو ساختم، نه خود اطلاعات رو. پس، نمی‌تونیم خروجی گیت سیگمویدی رو ببریم و با حافظه بلندمدت جمع کنیم. باید خود اطلاعات رو ببریم با حافظه بلندمدت جمع کنیم. ممکن هست، بگید که خب پس چرا برای فراموشی این کار رو کردیم؟ تفاوت در عملگرهاست! اونجا خروجی گیت فراموشی که بین 0 و 1 هست رو با حافظه بلندمدت ضرب کردیم. یعنی، گفتیم که چه میزان اطلاعات از گذشته حفظ/فراموش بشه. پس، از گیت‌های فراموشی با عملیات “ضرب” میشه برای حفظ/فراموشی اطلاعات استفاده کرد. اما، نمیشه خروجی اونها رو با فاکتور دیگه‌ای “جمع” کرد. چون اونها حاوی اطلاعاتی نیستن و صرفا شیر کنترل اطلاعات هستن.

        پاسخ
    • شکری گفت:
      2025/04/20 در 3:41 ب.ظ

      سلام، تنها جمله ای که شایسته این بخش بود این هست که کارتون حرفه ای نیست، بلکه هنرمندانه است. درود و خدا قوت

      پاسخ
      • محمد امیری گفت:
        2025/05/12 در 8:34 ق.ظ

        عالی عالی عالی

        پاسخ
      • هوسم گفت:
        2025/05/13 در 10:27 ق.ظ

        سلام
        ممنون بابت تشویق و انرژی مثبت 😊🙏🌺

        پاسخ
        • محدثه گفت:
          2025/05/15 در 10:59 ب.ظ

          سلام، خداقوت… بنده از ابتدای آموزش یادگیری ماشین تا اینجا رو خوندم و نوت برداری کردم، حقیقتا تشکر میکنم که مسیر سختی رو واسمون هموار کردین. یک سوالی داشتم، مقاله ای دارم میخونم که از pointer network استفاده کرده، همچنین از lstm, اگر ممکنه یک توضیحی درموردش بدین

          پاسخ
    • سیدحسین احمدی گفت:
      2025/04/08 در 9:07 ب.ظ

      ممنون سایتتون خیلی خوبه

      پاسخ
    • فراز گفت:
      2024/08/23 در 11:04 ق.ظ

      با سلام
      خیلی خوب توضیح دادید اما کاش منبعی که استفاده کردین را هم می گفتین برای اینکه کار شما حرفه ای باشد بهتر است که این منبع ذکر شود من آدرس منبع را برایتان می گذارم
      ###

      پاسخ
      • هوسم گفت:
        2024/08/24 در 10:17 ق.ظ

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

        پاسخ
    • نعیمه گفت:
      2024/03/16 در 12:48 ق.ظ

      خیلی خیلی ممنونم که اینقدر ساده و قابل فهم توضیح میدید. هر مبحثی یادگیریش سخت باشه برام میام تو سایت شما ببینم مطلبی منتشر شده در موردش یا نه. خیلی ممنونم.

      پاسخ
      • هوسم گفت:
        2024/05/16 در 11:24 ق.ظ

        سلام نعیمه عزیز 🌹
        خیلی ممنون بابت کامنت. باعث افتخاره 🙏

        پاسخ
    • علی ... گفت:
      2024/02/25 در 2:08 ب.ظ

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

      پاسخ
      • هوسم گفت:
        2024/05/16 در 11:25 ق.ظ

        سلام علی عزیز 🌹
        خوشحالیم که چنین نظری دارید 🙏

        پاسخ
    • Amir گفت:
      2024/01/12 در 7:44 ب.ظ

      عالی

      پاسخ
      • هوسم گفت:
        2024/05/16 در 11:25 ق.ظ

        سپاس 🌹

        پاسخ
    • moradiauob گفت:
      2024/01/12 در 12:53 ب.ظ

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

      پاسخ
    • moradiauob گفت:
      2024/01/12 در 12:51 ب.ظ

      با سلام و عرض ادب
      بسیار سپاسگزارم بابت مطالب علمی خوبتون من برای رساله دکتری جهت پیش بینی عدم قطعیت ها دنبال دقیق ترین روش پیش بینی هستم به نظر شما روش L S T M مناسب این کار است اگر نیست برای پیش بینی دقیق عدم قطعیت ها و تولید تجدید پذیرها بالاتر از این روش چه گزینه ای می تواند باشد .

      پاسخ
    • حسین گفت:
      2024/01/04 در 11:57 ق.ظ

      فقط میتونم بگم “با همین فرمون برید!”

      پاسخ
      • هوسم گفت:
        2024/05/16 در 11:26 ق.ظ

        سلام حسین عزیز 🌹
        سپاس 😊

        پاسخ
      • م. ف گفت:
        2024/06/10 در 8:53 ب.ظ

        سلام. سپاس بیکران.

        پاسخ
        • هوسم گفت:
          2024/06/11 در 10:27 ق.ظ

          🙏🌺

          پاسخ
    • نفس گفت:
      2023/10/29 در 6:20 ب.ظ

      سلام
      ممنون از شما که بی شک بهترین هستید و همیشه کاملترین توضیحات رو در هر مبحثی بابیانی شیوا و روان قرار میدید.
      بینظیرید

      پاسخ
      • هوسم گفت:
        2023/10/30 در 11:01 ق.ظ

        سلام،
        ممنون از لطفتون 😊🌹

        پاسخ
        • سمیه گفت:
          2024/08/24 در 8:36 ب.ظ

          سلام توضیحات عالی بود ،lstm با run,مقایسه شد میشه ترکیب رو باyoloتوضیح بدید و آیا کاربردی است سپاس

          پاسخ
          • هوسم گفت:
            2024/08/26 در 9:36 ق.ظ

            سلام
            ترکیب شبکه LSTM و شبکه YOLO مرسوم نیست و شاید کاربردی هم نباشه. البته، بهتر است جستجوی بیشتری انجام بدید.
            موفق باشید 🌹🙏

            پاسخ
    • nemo گفت:
      2023/08/28 در 10:18 ب.ظ

      سلام. مقاله ی خوبی بود. ته مقالتان به یک دنیا حرف نزده اشاره کردید.آیا پارت دومی در راه هست 😃😃😃😃

      پاسخ
    • محمد گفت:
      2023/08/14 در 7:13 ب.ظ

      سلام
      ممنون از آموزش خوبتون. در شبکه lstm با چند ورودی و جند خروجی (مثلا 5 ورودی و 2 خروجی) و زمان استفاده از تابع predictAndUpdateState با خطا مواجه شدم. آیا نمونه کد برای آن دارید؟

      پاسخ
    • محمد گفت:
      2023/07/27 در 6:10 ب.ظ

      عالی بود.
      یک موضوع اگر درست متوجه شده باشم برای ورودی که مثالا 4 ویژگی داشته باشد (سری زمانی با 4 متغیر) باید خروجی نیز 4 تا باشد.

      پاسخ
    • سالار بازارچی گفت:
      2023/07/21 در 9:51 ق.ظ

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

      سپاس

      پاسخ
    • farzane گفت:
      2023/07/07 در 6:14 ب.ظ

      سلام، خیلی عالی بود
      زبان طنزتون عالی‌ترش کرد، یعنی در کنار فهم خوب لبخندی بابت طنزتون روی لب ضاهر میشه، خلاصه که عالی بود دستتون درد نکنه، به خصوص آخرش :
      “اما، این پایان کار نیست، دو گیت دیگر هم داریم! نه شوخی کردم 😃 ”
      اولش گفتم ای وااای، 😃😃😃

      پاسخ
    • متین گفت:
      2023/06/30 در 8:43 ق.ظ

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

      پاسخ
      • هوسم گفت:
        2023/06/30 در 10:52 ق.ظ

        سلام
        تمرکز آکادمی هوسم در حوزه هوش مصنوعی، روی متلب نیست. جامعه فعال هوش مصنوعی سالهاست که از متلب گذر کرده و از پایتون و فریمورک‌هاش استفاده میکنه. ما هم در هوسم، همین مسیر رو دنبال می‌کنیم و برنامه‌ای برای متلب نداریم. منبع مناسبی در این زمینه نمی‌شناسیم.
        چنانچه به آموزش جامعی در حوزه یادگیری عمیق، شبکه بازگشتی و کدنویسی اونها نیاز داشتید، می‌تونید دوره یادگیری عمیق 2022 هوسم رو مشاهده بفرمایید:
        https://howsam.org/downloads/deep-learning-2022/
        همچنین، چنانچه تصمیم گرفتید با پایتون کار کنید، دوره زیر رو به شما پیشنهاد می‌کنیم:
        https://howsam.org/downloads/python-for-ai/
        موفق باشید

        پاسخ
    • بهنام گفت:
      2023/06/01 در 12:55 ب.ظ

      عالی بود

      پاسخ
    • محمد گفت:
      2023/05/11 در 2:18 ب.ظ

      سلام و خسته نباشید. منابع مختلفی دنبال می کنم اما همانند یه سری قسمت های دیگه . این قسمت بسیار دقیق تر و ساده تر از منابع دیگر نوشته شده بود . تشکر از زحمات نویسندگان این مطلب. صرفا جهت پیشنهاد عرض میکنم. به دلیل اینکه کامنت ها معمولا خیلی زیاد هستند پیشنهاد می کنم در صفحه کامنت ها را به صورت جداگانه در باکسی قرار دهید که scroll bar مجزای خودش را داشته باشد و به اسکرول بار محتوای صفحه کاری نداشته باشد. وقتی خواستم مطلب را شروع کنم اسکرول خوفناک بود یهو دیدم سریع تموم شد و بقیه اش کامنت هست !

      پاسخ
    • بهنام علیجانی گفت:
      2023/04/29 در 1:14 ق.ظ

      مجدد سلام
      یه سوال داشتم خدمتتون
      “حالا این ورودی از یک تابع تانژانت هایپربولیک باید عبور داده شود. خروجی gt بین 1- تا 1 خواهد بود. چرا بین 1- تا 1 نیاز داریم؟ ساده هست، برای اینکه ممکن است بخواهیم اثر تعدادی از درایه‌ها یا مولفه‌های موجود در C را کاهش دهیم”
      وقتی میخواهیم اثر تعدادی از درایه‌ها یا مولفه‌های موجود در C را کاهش دهیم، چرا از تابع سیگمویید استفاده نکردیم. چرا برای ما اهمیت داره که خروجی gt عددی بین 1 و -1 باشه نه عددی بین 0 تا 1؟

      پاسخ
      • رضا گفت:
        2023/11/07 در 7:32 ب.ظ

        سلام. گاهی میخوایم اثر تعدادی از درایه ها رو از بین ببریم اما گاهی میخوایم اثر برخی رو کاهشی کنیم. این دو با هم متفاوت اند. اگر بخوایم اثر درایه ها رو صفر کنیم از سیگمویید و اگر بخوایم اثر درایه ها رو کاهشی کنیم از تانژانت هایپربولیک استفاده میکنیم.

        پاسخ
    • بهنام علیجانی گفت:
      2023/04/29 در 12:57 ق.ظ

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

      پاسخ
    • شقایق گفت:
      2023/03/28 در 2:04 ب.ظ

      سلام خیلی ممنون از بیان شفافتون:)

      پاسخ
    • مُ گفت:
      2023/03/24 در 2:45 ق.ظ

      سلام، عالی،
      اگر شما سال 1995 بودید، مقاله به دلیل پیچیدگی رد نمیشد😁
      عالی👌

      پاسخ
    • Raheleh Majidi Tehran گفت:
      2023/03/22 در 2:31 ب.ظ

      سلام. سال نو رو به همه گردانندگان سایت تبریک میگم. در تعریف فرمول گیت g به جای تابع tanh از تابع sigmoid استفاده شده. این مورد سهوی هست یا فرمول این طور نوشته میشه؟

      پاسخ
    • فاطمه گفت:
      2023/02/09 در 5:19 ب.ظ

      سلام خیلی عالی بود. یه سوال گفتید شکل‌ها و فرمول‌های مختلف یکسانن. میشه این مقاله (https://doi.org/10.48550/arXiv.1801.01078) Recent Advances in Recurrent Neural Networks رو ببینید من هر کاری کردم نتونستم با فرمولها تطبیق بدم.
      تو گیت فراموشی، ورودی و خروجی مقدار c(t-1) رو هم جمع کرده
      علاوه بر این تو محاسبه c(t) علاوه برا مقدار c(t-1) مقدار گیت فراموشی رو هم ضرب میکنه
      شکلش رو هم اگر نگاه کنید از cell به گیت خروجی ورودی مستقیم داره
      لطف میکنید اگر توضیح بدید

      پاسخ
    • مینا گفت:
      2023/01/20 در 1:32 ب.ظ

      سلام
      یک دنیا سپاس برای توضیحات زیباتون
      سوالی دارم. داخل یک مقاله برای گیت ها دو تا بایاس نگذاشته فقط یکی گذاشته it = σ (Wihht−1 +Wixxt + bi ). معماری این گیتها بازم هم دو لایه فولی کانکتد هست؟ بایاس را توضیح میدید لطفا؟ من دفاع از پایان نامه دارم و برام سواله خیلی خیلی ممنون

      پاسخ
    • الی گفت:
      2022/12/24 در 12:33 ب.ظ

      سپاس از توضیحات عالی و مطلب کاربردی تون

      پاسخ
    • س م م س س گفت:
      2022/12/10 در 2:41 ب.ظ

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

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

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

        پاسخ
    • اشکان گفت:
      2022/11/02 در 3:25 ق.ظ

      تا حالا انقد روون و باحال در باره ماشین لرنینگ مطلب نخونده بودم. فقط کسی که واقعا به یه موضوعی مسلطه میتونه انقد جالب توضیح بده مطالب رو.
      مرسی

      پاسخ
    • حیدری گفت:
      2022/09/10 در 6:49 ب.ظ

      خیلب عالی توضیح دادید. فقط کاشکی اضاقه میکردید هر کئام شبکه ها در کدام دیتاست ها بیشتر استفاده میشود.

      پاسخ
    • تسنیم گفت:
      2022/08/13 در 1:13 ق.ظ

      فقط لطفا امکانش هست منابع رو هم ذکر کنید
      باز هم ممنون از آموزش بسیار خوبتون

      پاسخ
      • هوسم گفت:
        2022/08/13 در 10:28 ق.ظ

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

        پاسخ
    • تسنیم گفت:
      2022/08/13 در 1:06 ق.ظ

      سلام
      حرف ندارید،
      یک دنیا سپاس

      پاسخ
      • فاطمه گفت:
        2022/10/08 در 2:02 ب.ظ

        بسیار ساده، عالی و کاربردی بود. سپاس

        پاسخ
        • سینا گفت:
          2024/04/03 در 9:36 ق.ظ

          سلام
          وقتتون بخیر
          برای پیش بینی مصرف انرژی از شبکه lstm بخواهیم استفاده کنیم و در لایه پنهان دوتا لایه lstm داشته باشیم، ورودی های لایه اول و ورودی های لایه دوم چه چیزی هایی میتونن باشن؟

          پاسخ
    • غزاله گفت:
      2022/08/11 در 3:33 ب.ظ

      توضیحی بسیار عالی و واضح، متشکرم.

      پاسخ
    • سارا گفت:
      2022/07/07 در 4:35 ب.ظ

      عالی بود ممنون

      پاسخ
    • SAMPP گفت:
      2022/06/19 در 2:14 ق.ظ

      سلام و درود.
      بسیار سپاسگزارم بخاطر آموزش خوبتون. بسیار با حوصله و با تصاویر دقیق.
      یک سوال هم داشتم. میخواستم بدونم وقتی تعداد hidden unit ها بیشتر از یک میشه چه اتفاقی میوفته؟ مثلا وقتی این مقدار بشه 2 چرا تعداد وزن های h میشه یک ماتریس دو بعدی به ابعاد 8در2؟
      و همینطور فرمودید ورودی ها وکتور هستن، آیا وجود 2 یونیت به معنی این هست که طول وکتور ها میشه 2؟

      پاسخ
    • مسعود گفت:
      2022/06/18 در 8:02 ب.ظ

      واقعا لذت بردم.شفاف و واضح توضیح دادید.طوری که آدم احساس میکنه خودش رفته تو گیت ذخیره.
      خیلی خیلی عالی.

      پاسخ
    • مصطفی گفت:
      2022/06/09 در 8:19 ب.ظ

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

      پاسخ
      • هوسم گفت:
        2022/06/10 در 5:04 ب.ظ

        سلام
        شبکه عصبی باید یک مجموعه داده رو بارها ببینه تا یاد بگیره. یعنی تکرار و تکرار تا رسیدن به کمترین خطا…
        اگر فقط یک بار خوندید و متوجه نشدید، پس لازمه شما هم مثل شبکه عصبی بارها بخونید تا کم کم مطالب برای شما جا بیفته. شبکه عصبی LSTM ساده نیست…
        موفق باشید ❤

        پاسخ
        • سیدحسین گفت:
          2023/01/24 در 11:53 ق.ظ

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

          پاسخ
    • TD گفت:
      2022/06/02 در 11:47 ب.ظ

      من عضو هیات علمی دانشکاه هستم با ۲۰ سال سابقه. بسیار بسیار زیبا و روان و جذاب بود سپاس گزارم از وجودتان. عالی بود تا تمام آن را نخواندم آب هم نخوردم. آفرین

      پاسخ
    • فاطمه گفت:
      2022/06/02 در 9:08 ب.ظ

      سلام وقت بخیر. من یک سوال داشتم لطفا راهنماییم کنیم. دیتای آموزش من شامل 3000 سطر و سه ستون هست. که ستون ها در واقع همون ابعاد ویژگی هستن . بعد که دیتا رو به شبکه م میدم توی قسمت input_shape ارور میده . سرچ که زدم فهمیدم ورودی LSTM باید سه بعدی باشه . بعد اومدم reshape کنم به صورت (3000,3,1) باز ارور میده ، به صورت (1,3000,3)هم امتحان کردم باز ایراد میگیره بهش . نوع دیتامم array of float64 هست . نمیدونم چکار کنم. خواهش میکنم راهنماییم کنیم

      پاسخ
    • دختر خوب گفت:
      2022/05/30 در 10:03 ق.ظ

      ممنون این پست هم عالی بود
      با این جمله “اما، این پایان کار نیست، دو گیت دیگر هم داریم!” هم کلی خندیدم 😀

      پاسخ
    • عاطفه گفت:
      2022/05/03 در 1:50 ق.ظ

      چشمام قلبی شدن از این سایت و آموزش های فوق العادهعالی به زبان فارسی ♥♥ کارتون حرف نداره

      پاسخ
    • لیلا گفت:
      2022/04/15 در 7:05 ب.ظ

      سلام
      منبع پست بالا رو لطف میفرمایید

      پاسخ
    • ابوذر گفت:
      2022/04/09 در 6:10 ب.ظ

      دمون گرم
      عاالی بود
      امکان donate هم نذاشتید یه حالی بدیم بهتون و تشکر کنیم

      پاسخ
    • فاطمه گفت:
      2022/04/06 در 1:06 ب.ظ

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

      پاسخ
    • امیر گفت:
      2022/03/20 در 3:31 ب.ظ

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

      پاسخ
    • امیرمحمد گفت:
      2022/02/18 در 6:33 ب.ظ

      عااااااااااااااااااااااااااااااااااااااالی بود
      فقط بی زحمت BI-LSTM هم بزنید تنگش

      پاسخ
    • آستانی گفت:
      2022/02/14 در 12:53 ق.ظ

      خیلی عاااالی بود ممنون از توضیحات کاملتون

      پاسخ
      • تیم هوسم گفت:
        2022/02/14 در 3:31 ب.ظ

        سپاس 🌹🙏

        پاسخ
    • فاطمه گفت:
      2022/02/10 در 10:57 ق.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2022/02/10 در 12:27 ب.ظ

        ممنون 🌹🙏

        پاسخ
    • HTM گفت:
      2022/02/07 در 10:11 ب.ظ

      بسیار عالی خیلی حال کردم، موفق و سربلند باشید.

      پاسخ
      • تیم هوسم گفت:
        2022/02/08 در 10:21 ق.ظ

        ممنون 😊🌹🙏

        پاسخ
      • آرش گفت:
        2022/08/15 در 7:42 ب.ظ

        مثل همیشه عالی

        پاسخ
    • ریحانه گفت:
      2022/02/03 در 8:57 ق.ظ

      خیلی مفهوم را گویا بیان کرده بودید واقعا درک کردم مرسی از گریز های به جا در کاربرد مثال های ملموس برای فهم این مطلب
      تشکر

      پاسخ
      • تیم هوسم گفت:
        2022/02/05 در 10:50 ق.ظ

        ممنون 😊🌹🙏

        پاسخ
    • فیروزه گفت:
      2022/01/27 در 9:39 ب.ظ

      خیلی خوب بود. بعد از کلی سرچ تو اینترنت ،این سایت رو دیدم و مطلب را خیلی خوب درک کردم. بی نهایت سپاسگزارم.

      پاسخ
      • تیم هوسم گفت:
        2022/01/29 در 9:50 ق.ظ

        خیلی خوشحالیم که مطالب هوسم به شما کمک کرده.
        ممنون 🌹🙏

        پاسخ
    • سعید گفت:
      2022/01/27 در 8:28 ق.ظ

      سلام
      ممنون از توضیح عالی تون. بسیار ساده و روان بیان کردید.
      با توجه به اینکه ft و it و ot از یک ورودی و شبکه عصبی استفاده می کنند چرا نباید مقدار یکسانی داشته باشند؟ یعنی آیا ft و it و ot مقدار یکسانی خواهند داشت به عنوان خروجی شبکه عصبی کوچک؟ ممنون میشم دلیلش هم بفرمایید.
      و اینکه برای یادگیری شبکه عصبی های کوچک علاوه بر ورودی به خروجی تعیین شده هم نیاز هست. چگونه این خروجی ها که ft و it و ot هستند در پروسه یادگیری NN کوچک تعیین می شوند؟

      پاسخ
      • تیم هوسم گفت:
        2022/01/29 در 9:55 ق.ظ

        سلام
        1- دقت کنید که اگرچه ورودی‌ها در o، i و f یکسان هست، اما وزن شبکه‌ها متفاوت هست. یعنی سه شبکه متمایز داریم. زیر هر شکل از LSTM، وزن‌های w رو نوشتیم.
        2- شبکه‌های کوچک اسمی هست که ما گذاشتیم تا بهتر مطالب رو به خواننده انتقال بدیم. چنین شبکه‌ای وجود نداره. همه این شبکه‌های کوچک در دل همون شبکه عصبی LSTM قرار میگیرن.

        پاسخ
    • طاهره گفت:
      2022/01/08 در 1:18 ب.ظ

      سلام
      من به تازگی در حال یادگیری مفاهیم شبکه های عصبی هستم و بیان شفاف و روان مطالب در این سایت بسیار عالی است و از تیم هوسم ممنونم.
      سوالی نیز برایم مطرح است که ممنون میشم راهنمایی کنید. در طراحی mlp بر چه اساسی تعداد لایه ها و نرون های هر لایه را مشخص میکنیم و در شبکه LSTM نیز تعداد سلها را ؟

      پاسخ
      • تیم هوسم گفت:
        2022/01/08 در 3:38 ب.ظ

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

        پاسخ
        • طاهره گفت:
          2022/01/09 در 12:00 ب.ظ

          ممنونم🌹🙏

          پاسخ
        • سمانه گفت:
          2022/11/07 در 10:00 ب.ظ

          سلام، بسیار بسیار عالی و مفید بود، خیلی لذا بردم از مطالعه و فهمش و یک دنیا ممنون، تعداد سلها مگه همون تعداد Lstm ها یعنی همون تعداد ورودی ها نیست؟
          و یه چیز دیگه time sliding window تو این مبحث یعنی چی؟

          پاسخ
    • emad گفت:
      2022/01/08 در 12:18 ب.ظ

      من متن زیاد خوندم ولی حقیقتا این عالی ترین توضیح بود که خوندم.

      پاسخ
    • Zhino گفت:
      2021/12/20 در 3:56 ق.ظ

      بسیار عالی خیلی ممنون از سایت خوبتون

      پاسخ
    • ولی گفت:
      2021/12/12 در 7:29 ب.ظ

      یه متن علمی همراه با شوخی
      خستگی مطالعات امروز در اومد:)
      تشکر

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

        ممنون 😊

        پاسخ
    • مصطفی گفت:
      2021/12/12 در 12:16 ق.ظ

      سلام در مورد فرمول پائین شکل 11
      بیشتر توضیح میدهید؟
      من تصورم این است که فرمول نوشته شده پائین شکل 11 برای خروجی لایه hidden است که مجددا باید تابع سیگموید بر روی آن اعمال شود؟ این درست است؟

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

        سلام
        شکل و فرمول 11، مربوط به نحوه ترکیب هیدن استیت و ورودی هست. کل فرآیند به صورت زیر هست:
        * عبور هیدن استیت از لایه فولی کانکتد wh
        * عبور ورودی از لایه فولی کانکتد wi
        * جمع دو مورد بالا
        * عبور از لایه سیگموید
        این شکل و فرمول رو در پست شبکه عصبی بازگشتی بیشتر توضیح دادیم.

        پاسخ
    • احمد گفت:
      2021/12/11 در 3:35 ب.ظ

      یه دستِ قشنگ باید بزنیم به افتخار مطالب خیلی خوب آکادمی هوسم

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

        ممنون بابت انرژی مثبت 🌹🙏😊

        پاسخ
    • کیهان گفت:
      2021/12/10 در 1:02 ب.ظ

      سلام دستتون درد نکنه عالی بود

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

        ممنون از شما بابت کامنت 🌹🙏

        پاسخ
    • محمد گفت:
      2021/12/05 در 2:30 ق.ظ

      بسيار عالي ، ساده و روان

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

        ممنون محمد عزیز 🌹🙏

        پاسخ
    • Mina گفت:
      2021/12/02 در 10:36 ق.ظ

      جدا از مطلب كه خيلي خوب توضيح داده شده بود. اون قسمت گيف ها و شوخي ها عاااااالي بود.:D

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

        سلام
        ممنون 😅🙏

        پاسخ
    • سجاد گفت:
      2021/11/26 در 10:47 ق.ظ

      سلام
      ممنون از توضیحات خوبتون و خسته نباشید.
      در شکل 14 ،خروجی gt از یک تابع محرک tanh رد شده که در فرمول بالای اون توی کادر قرمز رنگ ، تابع سیگموئید نوشته شده. چند بار هم تکرار شده توی مطلب.
      در آخر که شکل رایج و کلی شبکه LSTM رو گذاشتید ، شکل 19، اون جا درست نوشته شده و با C تیلدا نمایش داده شده. لطفا چک بفرمایید.

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

        سلام
        ممنون. انشالله در اولین بروزرسانی این مورد رو اصلاح می‌کنیم.

        پاسخ
    • ناشناس گفت:
      2021/11/16 در 1:48 ب.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2021/11/17 در 10:00 ق.ظ

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

        پاسخ
    • بهار گفت:
      2021/11/09 در 2:17 ب.ظ

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

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

        سلام
        ما هم از شما ممنونیم بابت این پیام پر از انرژی و انگیزه 🌹🙏

        پاسخ
    • ساناز گفت:
      2021/11/02 در 7:55 ب.ظ

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

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

        سلام
        ممنون. دیدن چنین پیام‌هایی برای ما خیلی لذت‌بخش هست.
        با آرزوی موفقیت 🌹🙏

        پاسخ
    • محمد گفت:
      2021/09/27 در 10:13 ب.ظ

      دم شما گرم خیلی خوب بود
      واقعا لذت بردم از خواندنش

      پاسخ
      • تیم هوسم گفت:
        2021/09/28 در 5:15 ب.ظ

        سلام
        دم شما گرم که کامنت گذاشتید. 😊🙏🌹

        پاسخ
    • ParsaN95 گفت:
      2021/09/20 در 11:52 ق.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2021/09/21 در 2:40 ب.ظ

        سلام
        ما تلاش میکنیم مطالب رو ساده و روان توضیح بدیم که یادگیری اونها برای مخاطبامون ساده بشه. این فوق العاده هست که اعتماد به نفستون بره بالا و بعد به سمت بیشتر یاد گرفتن حرکت کنید.
        ممنون بابت کامنت 🌹🙏

        پاسخ
    • Hadise گفت:
      2021/09/15 در 1:48 ب.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2021/09/16 در 7:57 ب.ظ

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

        پاسخ
      • هانا گفت:
        2021/09/22 در 10:30 ب.ظ

        با سلام
        بی نهایت عالی توضیح دادین و بنده رو از سردرگمی در آوردین. شما تخصص پیاده سازی این الگوریتم ها در پایتون دارید؟

        پاسخ
        • تیم هوسم گفت:
          2021/09/23 در 11:02 ق.ظ

          سلام
          بله

          پاسخ
    • میلاد گفت:
      2021/08/13 در 5:49 ب.ظ

      بسیار عالی
      حتما با این روال موفق خواهید بود

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

        سلام
        ممنون 🌹🙏

        پاسخ
    • سوران گفت:
      2021/08/13 در 12:11 ق.ظ

      سلام
      خیلی عالی و روان و ساده توضیح دادین
      ممنون از زحماتتون

      پاسخ
      • تیم هوسم گفت:
        2021/08/13 در 11:54 ق.ظ

        سلام
        ممنون از شما که کامنت گذاشتید 🌹🙏

        پاسخ
    • sh گفت:
      2021/07/12 در 3:31 ب.ظ

      عالی بود .
      روان و کاربردی ،
      خیلی مفید بود
      ممنون

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

        سلام
        خوشحالیم که آموزش برای شما مفید بوده.
        سپاس 🌹🙏

        پاسخ
    • اکبرزاده گفت:
      2021/07/08 در 8:07 ق.ظ

      سلام
      این شبکه GRU را هم بذارید لطفا، تا کی باید منتظر باشیم آخه؟ 😉

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

        سلام
        ببخشید 😊🙏🌹
        زمان نمیدیم ولی انشالله آموزش رو مینویسیم.
        البته، سه شبکه بازگشتی RNN GRU LSTM در دوره یادگیری عمیق تدریس شده.

        پاسخ
    • اکبرزاده گفت:
      2021/06/09 در 11:31 ق.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2021/06/09 در 2:35 ب.ظ

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

        پاسخ
      • Baret گفت:
        2021/09/14 در 9:26 ق.ظ

        از ساعت ۲ شب‌ تا الان (ساعت۹:۲۳ صبح) نشستم از پایه این پکیج یادگیری عمیق
        آنقد ساده و روان که خسته نشدم

        البته با یه صبحونه و یه چایی درست کردن

        یه قهوه برم بزنم و اخریش موبایل نت هم بخونم

        فقط یع جمله :

        ناموسا دم نویسنده ش گرم :)🙏

        پاسخ
        • تیم هوسم گفت:
          2021/09/14 در 6:55 ب.ظ

          خوندن پیامتون خیلی لذت‌بخش بود. 👌😊
          نویسنده آموزش‌ها مهندس اشرفی هستن. پیامتون رو به ایشون میرسونیم. 🌹🙏
          ممنون

          پاسخ
    • سعید گفت:
      2021/06/08 در 11:11 ق.ظ

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

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

        سلام
        احتمالا به این خاطر هست که قسمت سخت مبحث رو پوشش میدن و از توضیح تکراری برای بخش ساده کار صرف‌نظر میکنن. مثلا برای ارزیابی یک شبکه برای پیش‌بینی سری زمانی، فرآیندی مشابه آموزش شبکه طی میشه. به این شکل:
        1- داده ارزیابی به شبکه داده میشه. دقیقا به همون شکلی که داده آموزش به شبکه داده شد.
        2- خروجی آخرین استپ زمانی از شبکه گرفته میشه.
        3- این خروجی، همون پیش‌بینی شبکه هست. علاوه‌براین، این خروجی رو میتونیم به معیار ارزیابی بدیم. در آموزش شبکه، این خروجی رو به تابع اتلاف میدادیم.
        پیشنهاد می‌کنیم پروژه آموزش هوش مصنوعی در بورس هوسم رو در وبلاگ مطالعه بفرمایید.
        موفق باشید 🌹🙏

        پاسخ
    • کیان آرا گفت:
      2021/05/14 در 12:56 ق.ظ

      با سلام
      در قسمتی از متن گفته شد بردارهای ورودی باید هم اندازه باشن لطفا بفرمایید برای کلماتی که اندازه طول انها متفاوت است چگونه این کار اجام میشود ؟ سوال دیگر آنکه وقتی تعدادی LSTM پشت سر هم قرار میگیرند خروجی h هر کدام چگونه قابل دسترسی است ؟؟

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

        سلام
        جواب سوال اول: اصولا کلمات طول یکسانی دارن. یعنی برای هرکلمه یک بردار به طول ثابت و مشخص (مثلا 512) داریم. بنابراین، این‌طور نیست که در یک جمله، کلمه “که” و “ایران” دو بردار با طول متفاوت باشن.
        البته، طول جملات میتونه متفات باشه. طول LSTM (تعداد زنجیره) تابعی از طول جمله هست.
        جواب سوال دوم: اگر شما ده لایه LSTM روی هم قرار بدید، h و c در اینها به‌صورت جدا تعریف میشه. یعنی، h و c در لایه اول متفاوت با h و c سایر لایه‌هاست. پس ده تا h و c داریم. حالا که جدا هستن، دسترسی بهشون راحت هست و بقیه این ماجرا میشه صرفا کدنویسی…

        پاسخ
      • لیلا گفت:
        2021/06/12 در 11:50 ق.ظ

        سلام
        من یکساله برای پایان نامم اموزش شبکه هایlstm و orelm رو لازم دارم و هرچی میگشتم منبع خوب پیدا نمیکردم یا چیزی ازش متوجه نمیشدم
        عالی عالی عالی
        خداخیرتون بده میخواستم سمیناربدم و هنوز چیزی نمیدونستم
        از اول متن که شروع کردم خوندن کلی دعاتون کردم بعدازهر چیزی که یادگرفتم
        فقط یه انتقاد سازنده!
        وقتی رسیدم به اینکه فرمودید «شبکه فولی کانکتد که قبلا توی اموزش شبکه عصبی بازگشتی گفتم …»
        دیدم حیفه که این عبارت رو لینک نکردید تا هرکس خواست همونجا بره و اون روهم بخونه
        اینطوری بازدید تون هم شبکه ای میره بالا و سئوتون قوی میشه
        راستی اگر اموزش orelm رو دارید توی سایت یا میتونید کمکی بکنید لطفا اطلاع بدید
        خیلی ممنونم
        خداخیرتون بده

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

          سلام
          خدا رو شکر، ما هم از خوندن چنین پیام‌هایی خیلی خوشحال میشیم و انرژی میگیریم.
          بابت دعای خیر هم سپاس 🌹🙏
          پیشنهادتون درباره لینک هم درست هست. انشالله در بازنگری لینک اضافه می‌کنیم.
          درمورد ORELM متاسفانه آموزشی نداریم و آموزش مناسبی نمی‌شناسیم.
          موفق باشید

          پاسخ
    • سمیه گفت:
      2021/05/08 در 12:56 ق.ظ

      سلام ممنون از توضیحات عالی شما.من خیلی به آموزش شبکه GRU احتیاج دارم.
      و در شکل 14 در ضابطه مربوطه به نظر به اشتباه بجای تانژانت هایپربولیک تایع سیگموید تایپ شده.

      پاسخ
      • تیم هوسم گفت:
        2021/05/08 در 3:02 ق.ظ

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

        پاسخ
    • فائزه گفت:
      2021/05/05 در 10:15 ق.ظ

      خیلی هم عالی

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

        سپاس 🌹🙏

        پاسخ
    • معصومه فرهادی گفت:
      2021/04/23 در 12:29 ب.ظ

      فوق العاده بود
      دم شما گرم!
      بعد از مطالعه چند منبع مختلف، با توضیحات جالب شما بود که فهمیدم چی به چیه!! واقعا عالی. خداقوت

      پاسخ
      • تیم هوسم گفت:
        2021/04/23 در 4:36 ب.ظ

        سلام
        ممنون از شما بابت کامنت که به ما انرژی داد. 🌹🙏

        پاسخ
    • ایمان گفت:
      2021/04/21 در 6:56 ب.ظ

      بسیار عالی…
      خدا قوت…

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

        سلام
        سپاس 🌹🙏

        پاسخ
    • فواد گفت:
      2021/04/07 در 3:29 ب.ظ

      سلام
      خیلی خوب بود…
      مقایسه ایی بین انواع شبکه ها دارید ؟

      پاسخ
      • تیم هوسم گفت:
        2021/04/08 در 10:39 ق.ظ

        سلام
        خیر مقایسه نداریم. ولی موضوع خوبی هست، انشالله در آینده به این موضوع میپردازیم.
        سپاس 🌹🙏

        پاسخ
      • حمیدرضا گفت:
        2022/05/12 در 10:05 ب.ظ

        اگ شعور اساتید ما نصف شما بود… دنیا جای بهتری بود

        پاسخ
    • مینا گفت:
      2021/03/29 در 12:17 ب.ظ

      عالی بود. خدا قوت

      پاسخ
      • تیم هوسم گفت:
        2021/03/29 در 1:10 ب.ظ

        سلام
        سپاس 🌹🙏

        پاسخ
    • bahman گفت:
      2021/02/28 در 12:20 ب.ظ

      با عرض سلام و خسته نباشید

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

      (جزاکم الله خیرا)

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

        سلام
        سپاس بابت کامنت و البته دعای خیر 🌹😊🙏

        پاسخ
    • معصومه گفت:
      2021/02/08 در 4:53 ب.ظ

      مطالب پیچیدرو خیلی شیرین و قابل فهم بیان کردین. تبریک و خداقوت بهتون

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

        سلام
        خوشحالیم که از آموزش راضی بودید.
        سپاس 🌹🙏

        پاسخ
    • آلاء گفت:
      2021/01/18 در 1:18 ب.ظ

      سلام و سپاس فراوان 🌹 هوسم کماکان رقبای خودش رو شکست داده و به هر گیتی میرسه خروجیش یک میشه(به غیر از فراموشی) و در جواب اخر ht فقط خودش مانده که جواب تمام سوالات است! اگر درست فهمیده باشم😃
      چشم به راه gru هستیم

      پاسخ
      • تیم هوسم گفت:
        2021/01/18 در 1:50 ب.ظ

        سلام
        سپاس 🌹🙏
        چه خفن و سخت 😅
        البته ما رقیب نداریم، ما همه باهم رفیقیم…

        پاسخ
    • بنده خدا گفت:
      2021/01/10 در 12:16 ب.ظ

      توی یه مقاله، که از یک یونیت LSTM برای RNN استفاده کرده بود. سوالم اینجاست که آیا ورودی ها به داخل LSTM می تونن اعداد حقیقی باشن و یا اینکه حتما باید به صورت باینری باشن؟ چونتوی مقاله با تبدیل کردن یک ماتریس اعداد حقیقی به اعداد صفر و یک، به نظر من کلی از دیتای با اهمیت رو ندیده گرفته بود.

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

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

        پاسخ
    • مهسا گفت:
      2021/01/06 در 11:07 ق.ظ

      آخ جووووووووون lstm هم گذاشتین

      پاسخ
      • تیم هوسم گفت:
        2021/01/06 در 11:41 ق.ظ

        😃🙏🌹

        پاسخ
        • سیدحسین احمدی گفت:
          2025/04/14 در 9:41 ب.ظ

          یک سوال دارم اگر بخواهیم یک سری زمانی را به شبکه LSTM بدهیم تا استخراج ویژگی بشود چگونه میتوانیم مثلا فرض کنید یک سری زمانی شامل مقادیر مختلف است و در بعضی جاها ما با برچسب های کلاس بندی کرده ایم چگونه ویژگیی استخراج کنیم که بشود بعد با این ویژگی ها کلاس بندی را با SVM انجام دهیم

          پاسخ

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

    جستجو برای:
    فهرست مطالب دوره
    • معرفی دوره یادگیری عمیق رایگان
    • جلسه 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
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!

      ورود

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

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