مقدمه ای بر هوش مصنوعی (علم داده) ، قسمت اول

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

علم داده چیه؟

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

انواعه دیگش چیه؟

کلا یادگیری ماشین به سه دسته تقسیم میشه ، (چیزایه دیگم از این دسته ها گرفته شده).

  1. Supervised learning یا یادگیری نظارت شده.
  2. Unsupervised learning یا یادگیری نظارت نشده
  3. Reinforcement learning یا یادگیری تقویتی

یادگیری نظارت شده.

دقیقا همون مسئله بالا رو میشه تو دسته یادگیری نظارت شده در نظر گرفت.
دوتا چیز برا این نوع یادگیری لازم داریم:

  • داده ها
  • کلاسه داده ها یا مقداری که میخوایم پیشبینی کنیم

خوده این یادگیری به دو دسته تقسیم میشه

  1. regression یا یه معادله
  2. classification

رگرسیون

فرض کنید میخواید یه خونه بخرید.
قیمته هر خونه نسبت به هر متر مثلا 30 میلیون باشه.
ویژگیه ما (داده هامون) رو اگه در نظر بگیریم ، متراژه خونه باشه.
یعنی فقط با یه متراژ میخوایم قیمت رو محاسبه کنیم.
به معادله دقت کنید:
w*x=y
فرض کنید خونه ای که میخوایم بخریم 200 متر باشه (و y = باشه با 6000000000)
همون متری 30000000
معادله به این شکل میشه:
30000000*200=6000000000
حالا ماشین باید از کجا بفهمه که متری 30000000 میشه هر متر؟
اینجاست که بحث backpropogation میاد وسط (بعدا در موردش توضیح میدم).

کلاسیفیکیشن

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

یادگیریه نظارت نشده

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

یادگیری تقویت شده

فرض کنید که میخوایم یه بازی رو ماشین انجام بده و اون بازی مثلا یه بازی درایوینگ (رانندگی) باشه.
هر وقت که تصادف کرد ، یه مقدار به ماشین میدیم که گند زدی ، و هر وقت تونست با سرعته درست بره و تصادف نکنه ، بهش میگیم که خوبه.
(دقیقا عینه یه بچه که وقتی به گاز دست میزنه میسوزه و یاد میگیره که داغه).

مسائل

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

  1. ترجمه ماشین از چه روش یادگیری استفاده میکنه؟
  2. speech recognition چطور?
  3. فرض کنید که میخوایم یه خودرویه خودکار طراحی کنیم (خودش رانندگی کنه). 1. با در نظر گرفتنه خطراتی که میتونه داشته باشه ، ما باید از چه روش یادگیری استفاده کنیم ، 2. بدونه در نظر گرفتنه خطراتش از چه روشی استفاده کنیم بهتره. با دلیل شرح دهید.
  4. یه دیتا داریم، که فیچراش میزانه قند و فشاره خونه و یه لیبلم داریم که چربیه خونه. میخوایم چربیه خون رو اندازه بگیریم باید از چه نوع یادگیریه نظارت شده ای استفاده کنیم؟

خب ، تو کامنت دونی میبینمتون.

 

درباره امیر رضا رمضانی

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

10 Responses to مقدمه ای بر هوش مصنوعی (علم داده) ، قسمت اول

  1. 1

    درود خوبی؟ دمت گرم ادامه بده ایول.

  2. 2

    سلام. ممنون از پست. خیلی خوبه من حتما این سری پست‌ها رو دنبال می‌کنم.
    و اما جواب‌های من.
    1- Supervised learning
    2- Supervised learning
    3- به نظر من با در نظر گرفتن خطرات احتمالی ترکیب یادگیری تقویت شده و نظارت شده بهتره به این علت که دقت کار در این حالت بالا‌تره. هم ماشین یک سری داده از قبل داره که بر اساس اون‌ها از خطر جلوگیری کنه، و هم به تدریج موارد پیشبینی نشده رو هم بر اساس یادگیری تقویت شده به داده‌های خودش اضافه می‌کنه.
    بدون در نظر گرفتن خطرات احتمالی هم به نظر می‌رسه یادگیری نظارت شده به تنهایی خوب باشه.
    4- regression

  3. 3
    ethan hunt says:

    عالی ادامه بدید لطفا, ولی اینجور که من میدونم تعریف common sense سخت هست, درسته؟ گفتم از شمام اینو بپرسم, ولی سری عالی از مطالب میشه اگه ادامش بدید

    • 3.1
      امیر رضا رمضانی says:

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

  4. 4
    سیدنصیر قاضوی says:

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

  5. 5
    عطا says:

    سلام آقای رمضانی
    من که شما رو نمی شناسم ولی از پست لذت بردم
    بیا با هم دوست بشیم باشه

دیدگاهتان را بنویسید