چیتاگرام

در حال بارگذاری...

ثبت نام
section-icon

انجمن ها

انجمن های فعال در سایت را ببینید و تاپیک خود را برای شرکت در انجمن ها بنویسید و در بحث های علمی شرکتی کنید!

خوش آمدید به

قسمت دوم یادگیری آسان هوش مصنوعی

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

نمایش 2 پاسخ رشته ها
  • نویسنده
    نوشته‌ها
    • بسم الله
      سلام و خداقوت✌

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

      ما در شبکه عصبی که در جلسه قبل ساختیم (مدل آب و هوا) اومدیم خودمون وزن رو تعیین کردیم که کمی کار ضایعی هست.🙂
      فرض کنیم به مدت یک هفته دمای هوا رو صبح اندازه گرفته و ظهر هم آفتابی بودن یا نبودن هوا رو یادداشت می کنیم؛ حالا با اطلاعات به دست اومده و شبکه عصبی(NN) که ساختیم میایم ببینیم که آیا نتایج رو درست پیش بینی میکنه یا نه. حالا میام مقدار وزن رو با توجه به نتایج به دست اومده تعییر میدیم تا پیش بینی به واقعیت شبیه تر باشه.
      به این پروسه که با تغییر وزن پیش بینی (Prediction) مناسبی به دست بیاد به اصطلاح میگن Training
      به داده‌هایی که ازشون استفاده کردیم که ببینیم مدلمون خوب کار میکنه یا نه Training set یا Training data set می‌گیم.
      خب روند کار تو یه شبکه عصبی اینطوریه که ما یک مقدار اتفاقی به وزن می دهیم و با استفاده از اون پیش بینی ها رو حساب میکنیم بعد میریم قابلیت مدل مون رو بررسی میکنیم که چقدر پیش‌بینی‌های درستی انجام داده و بعد مقدار وزن رو تغییر میدیم تا جایی که به قابلیت پیش‌بینی مدنظرمان برسیم، به انجام متوالی این کار میگن Training loop .
      توی این پروسه مقدار وزن به صورت اتفاقی کم و زیاد نمی کنیم (توضیح بیشتر جلسات بعد) اما برای آشنایی اینطوری بگیم، هردفعه که حلقه اجرا میشه میایم ببینیم Loss کم شده یا زیاد اگه کم شده بود به وزن میگین با همین فرمون کارت رو ادامه بده (یعنی اگه مقدار وزن رو کم می کردیم بازم به کمک کردن ادامه میدیم اگه مقدار وزن رو زیاد می کردیم به زیاد کردن ادامه میدیم)؛ اگر هم دیدیم مقدار Loss زیاد میشه میگیم تو دفعه بعدی که حلقه اجرا میشه برعکس عمل کن (یعنی اگه وزن را کم می کردیم این بار زیادش میکنیم و اگه زیادش می کردیم این بار کمش میکنیم.
      ما میتونیم به جای یک ورودی چند تا ورودی داشته باشیم که هر کدوم هم در یک وزن ضرب میشن.
      y = x1.w1 + x2.w2 + x3.w3
      در عمل توی NNها یک مقداری هم به جمع حاصل از ورودی ها اضافه میکنیم که بهش میگیم بایاس(Bias) یا بایاس‌تِرم(Bias term)؛ تا بتونیم خروجی مدل رو مستقل از ورودی ها تغییر بدیم و مدل ما انعطاف‌پذیر‌تر باشه.
      y = x1.w1 + x2.w2 + x3.w3 + b
      وقتی مدل ما اینطوری تعریف شد به وزن ها و بایاس‌ترمها مجموعا میگیم پارامتر(Parameters)، که در چرخه یادگیری هی در حال به روزرسانی هستند و به همین خاطر میتونیم بهشون بگیم Learnable Parameters .
      سلول‌های مغز هم کارکردشان شبیه همین هاست اما با وجود این شباهت،جوری که اطلاعات در مغز پردازش میشه و یادگیری در شبکه های عصبی،ربط زیادی به هم نداره و این فقط یک شباهت ظاهری هست.
      پس یادمون باشه ما اینجا کارای مغز رو شبیه سازی نمی کنیم.😊

      میتونیم NN رو پیچیده‌تر هم بکنیم و به جای اینکه ورودی ها و وزن را مستقیم به خروجی بدیم یک یا چند لایه پنهان بین ورودی و خروجی داشته باشیم؛ همچنین میتونیم چندتا خروجی هم داشته باشیم.
      تعداد لایه های پنهان و سلول های هر لایه میتونه برای هر NN متفاوت باشه یعنی میتونیم بگیم هر شبکه عصبی برای خودش معماری خاص خودشو داره (Neural Network Architecture).
      حالا در مورد عکس ها؛ یه عکس از یه ماتریس یا جدولی از تعداد زیادی عدد ساخته شده. اجتماع پیکسل ها در کنار هم عکس ها را به وجود میاره مثلا وقتی میگیم دوربین گوشی ۱۲ مگاپیکسله، یعنی اگه عکسی که میگره از ۱۲ میلیون پیکسل ساخته شده.
      به ازای هر پیکسل هم یک عدد وجود داره، در عکس سیاه و سفید اگر پیکسل سیاه باشه صفر، و اگه سفید باشه ۲۵۵ و در کل ۲۵۶ حالت رنگ وجود داره به این عکسها میگن ۸ بیتی چون ۲۸ = ۲۵۶ .
      در عکس رنگی هم شبیه همین با این تفاوت که هر عکس سه تا ماتریس داره یکی تو کانال قرمز یکی تو کانال سبز یکی تو کانال آبی. رنگ هر پیکسلی با توجه به اینکه تو این کانالها چه مقداری داره تعیین میشه؛ مثلاً تو یه عکس با پیکسل ۱۰×۱۰، ۳۰۰ تا عدد داریم (صدتا برا قرمز، صدتا سبز، صدتا آبی)
      برای دادن این عکسا به NN یه روش اینکه از مثال بالا ۳۰۰ عدد را به عنوان ورودی بدیم به NN، ولی در عمل وقتی ورودی مدل ما عکس هستش NN ما یه نوع خاصی به نام Convolutional N N یا به اختصار CNN. که به ما اجازه میده عکس رو بدون تبدیل به یک لیست با همین شکل ماتریس اصلی وارد مدل کنیم.

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

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

      • سلام و خداقوت
        خیلی ممنونم بابت مطالعه و ادامه دار کردن بحث🙏

        به نکته ی خیلی خوبی اشاره کردین👌

        راستش بنده خودم هم تازه این مبحث رو شروع کردم و دارم مسیری رو که میرم همزمان تو انجمن به اشتراک میذارم، چیزی که برای بنده جالب هست اینکه با چندبار مطالعه این بخش اصلا به ذهنم خطور نکرده بود چه مبنایی برای تعیین مقدار بایاس ترم داریم🤔

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

        بازم مچکرم🙏

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

نمایش 2 پاسخ رشته ها
  • شما برای پاسخ به این موضوع باید وارد شوید.