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

    بلاگ

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

    پرسپترون چیست

    2020/06/01
    ارسال شده توسط هوسم
    یادگیری عمیق
    7.53k بازدید

    پرسپترون یکی از ابتدایی‌ترین شبکه‌های عصبی است. این شبکه در سال 1958 توسط فرانک روزنبلات ابداع شد. ما در این پست ابتدا نورون مک کلاک-پیتز را معرفی می‌کنیم. سپس ساختار پرسپترون را بررسی می‌کنیم. در ادامه الگوریتم یادگیری پرسپترون را معرفی می‌کنیم. در نهایت هم ساختار پرسپترون امروزی را مطرح می‌کنیم. می‌خواهید بدانید پرسپترون چیست ؟ پس با هوسم همراه باشید…

    فهرست مطالب نمایش
    1. دقیقا پرسپترون چیست ؟
    2. نورون مک‌کلاک-پیتز
    3. پرسپترون
    4. الگوریتم یادگیری پرسپترون
    5. محدودیت‌های پرسپترون روزنبلات
    6. ساختار پرسپترون امروزی

    دقیقا پرسپترون چیست ؟

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

    نورون مک‌کلاک-پیتز

    پرسپترون چیست
    شکل 1: سمت راست Walter Pitts و سمت چپ Warren McCulloch

    پیدایش نورون مصنوعی به سال 1943 برمی‌گردد. زمانی که یک متخصص اعصاب به نام Warren McCulloch  و یک ریاضی‌دان به نام Walter Pitts مقاله‌ای منتشر کردند. آنها در مقاله‌ای با عنوان «A Logical Calculus of Ideas Immanent in Nervous Activity» یک مدل از نورون ارائه دادند. مدلی که آن‌ها پیشنهاد دادند یک مدل محاسباتی ساده بر اساس منطق گزاره‌ای بود که مدلی برای نحوه عملکرد نورون‌ها برای انجام کارهای پیچیده پیشنهاد می‌کرد. 

    این نورون یک یا چند ورودی باینری (روشن/خاموش) و یک خروجی باینری داشت. مک‌کلاک و پیتز نشان دادند که حتی با چنین نورون ساده‌ای می‌توان شبکه‌ای از نورون‌ها ساخت که بتوانند هر عملیات منطقی‌ای را انجام دهند. برای مثال بیایید چند شبکه عصبی مصنوعی (ANN) برای انجام عملیات منطقی بسازیم. فرض می‌کنیم نورون زمانی فعال شود که حداقل دوتا از ورودی‌هایش 1 (on یا روشن) باشد. فعال شدن نورون یعنی خروجی آن یک یا on شود. به تصویر زیر دقت کنید:

    پرسپترون چیست
    شکل 2: پیاده‌سازی چند عملیات منطقی با استفاده از نورون مک‌کلاک-پیتز
    • شبکه (a): این شبکه یک شبکه identity یا همانی است. ورودی هرچه باشد، خروجی هم همان می‌شود.
    • شبکه (b): این شبکه عمل and را انجام می‌دهد. در صورتی که A و B، هردو یک باشند، خروجی یک است. در غیر این صورت خروجی صفر خواهد بود.
    • شبکه (c): این شبکه عمل or را انجام می‌دهد. اگر A و B، هردو صفر باشند، خروجی صفر است. در غیر این صورت خروجی یک خواهد بود.
    • شبکه (d): این شبکه عملیات منطقی پیچیده‌تری را انجام می‌دهد. اگر B روشن باشد، شبکه عمل NOT را انجام می‌دهد. اگر B خاموش باشد، شبکه همانی خواهد بود!

    در سال 1958، فرانک روزنبلات مقاله‌ای با عنوان «THE PERCEPTRON: A PROBABILISTIC MODEL FOR INFORMATION STORAGE AND ORGANIZATION IN THE BRAIN » نوشت. او در این مقاله عنوان کرد که جبر بولی زبان مناسبی برای تحقیق در حوزه شبکه‌های عصبی نیست و بهتر است از تئوری احتمال استفاده شود. او یک شبکه عصبی جدید به نام perceptron ارائه کرد که در بخش بعدی به تشریح آن خواهیم پرداخت.

    پرسپترون

    perceptron یکی از ساده‌ترین معماری‌های ANN است که در سال 1958 توسط فرانک روزنبلات معرفی شد. این شبکه مبتنی بر یک نورون متفاوت به نام TLU ساخته شده است. TLU مخفف عبارت threshold logic unit یعنی واحد آستانه‌گذاری منطقی است. TLU گاهی LTU نیز خوانده می‌شود که مخفف linear threshold unit به معنی واحد آستانه‌گذاری خطی است. در TLU، ورودی‌ها باینری نیستند، بلکه اعداد هستند. در این نورون هر ورودی یک وزن دارد. TLU جمع وزن‌دار ورودی‌های خود را محاسبه می‌کند یعنی:

    z = w1 x1 + w2 x2 + ⋯ + wn xn = xT w

    سپس نتیجه از یک تابع پله عبور خواهد کرد (hw(x) = step(z) که در آن z = xT w).

    پرسپترون چیست
    شکل 3: ساختار LTU

    رایج‌ترین تابع پله‌ای که در TLU استفاده می‌شود، تابع Heaviside است. گاهی هم از تابع sign استفاده می‌شود.

    پرسپترون چیست
    معادله 1: تابع heaviside و تابع sign

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

    پرسپترون‌ها انواع مختلفی دارند که روزنبلات سال 1962 در کتاب خود به نام «Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms» مطرح کرده است. اما معروف‌ترین آن‌ها که روزنبلات آن را آلفا-پرسپترون نامید در ادامه تشریح خواهد شد. برای سادگی ما آلفا-پرسپترون را همان پرسپترون می‌نویسیم. پرسپترون یک مدل دو کلاسه است که در آن ورودی x ابتدا به کمک یک تبدیل غیرخطی به برداری از ویژگی‌ها φ(x) تبدیل می‌شوند. این تبدیل غیرخطی قابلیت یادگیری ندارد و ثابت است. سپس از این بردار برای ساختن یک مدل خطی استفاده می‌شود:

    پرسپترون چیست
    معادله 2: خروجی پرسپترون روزنبلات

    الگوریتم یادگیری پرسپترون

    برای اینکه یک سیستم کلاس‌بندی موثر داشته باشیم باید یک تابع اتلاف نیز داشته باشیم. تابع اتلافی که بر اساس نمونه‌هایی که غلط کلاس‌بندی شدند تعریف شده باشد. در این بخش می‌خواهیم تابع اتلاف پرسپترون یا perceptron criterion را معرفی کنیم. تابع اتلاف پرسپترون به شکل زیر تعریف می‌شود:

    پرسپترون چیست
    معادله 3: معادله اتلاف پرسپترون

    که در آن M مجموعه‌ای از نمونه‌ها است که اشتباه کلاس‌بندی شده‌اند. w بردار وزن‌ها، φ بردار ویژگی و t مقدار target یا برچسب هستند. هدف این است که مقدار اتلاف پرسپترون مینیمم شود. برای مینیمم شدن این تابع اتلاف نیاز به یک الگوریتم یادگیری است. تا وزن‌ها را آنقدر تغییر دهد که ما به هدفمان که مینیمم کردن اتلاف است برسیم. پرسپترون قانون یادگیری مخصوص به خودش را داشت. قانون یادگیری پرسپترون از قانون هب الهام گرفته شده است. این قانون می‌گوید اگر یک نورون باعث فعال شدن نورون دیگری شود، اتصال بین آن دو نورون قوی‌تر می‌شود. روزنبلات برای یادگیری پرسپترون از قانونی شبیه به قانون هب استفاده کرد. قانون یادگیری پرسپترون تابع اتلاف را ملاک قرار می‌دهد. به این شکل که وزن‌هایی که باعث کاهش اتلاف می‌شوند تقویت می‌شوند. این قانون به شکل زیر مطرح شد:

    پرسپترون چیست
    معادله 4: رابطه یادگیری perceptron

    در ابتدا ، روزنبلات با استفاده از یک کامپیوتر IBM 704، پرسپترون را شبیه سازی کرد. اما در اوایل دهه 1960 او سخت افزاری ساخت که به صورت مستقیم یادگیری پرسپترون را انجام می‌داد. تصویری از این دستگاه در ادامه آورده شده است:

    پرسپترون چیست
     شکل 4: سخت‌افزارِ پرسپترون که توسط روزنبلات ساخته شده است.

    محدودیت‌های پرسپترون روزنبلات

    مطالعاتی که روی پرسپترون در دهه 60 انجام شد نشان داد که این شبکه‌ها برخی مسائل را به راحتی حل می‌کنند. اما حل یکسری مسائلِ نه چندان سخت با پرسپترون غیر ممکن به نظر می‌رسد. Marvin Minsky و Seymour Papert در سال 1969 کتابی به نام پرسپترون نوشتند که در آن تمامی توانایی‌ها و محدودیت‌های پرسپترون را مطرح کردند. آن‌ها بیان کردند که پرسپترون تنها قادر به حل مسائلی است که linearly seperable باشند، یعنی به شکل خطی تفکیک پذیر باشند. و این شبکه در حل مسائلی مانند XOR ناتوان است. اگرچه کلاس‌بندهای خطی دیگر مانند Logistic Regression نیز نمی‌توانستند چنین مسئله‌ای را حل کنند! اما انتظاری که محققان از پرسپترون داشتند بسیار بیشتر بود. همین مسئله باعث شد که بسیاری از آن‌ها کاملا از پرسپترون و شبکه‌های عصبی قطع امید کنند. در نتیجه حوزه شبکه‌های عصبی به یک خواب زمستانی عمیق فرو رفت! تا زمانی که الگوریتم پس‌انتشار خطا مطرح شد.

    ساختار پرسپترون امروزی

    ساختار نورون و پرسپترون امروزی کمی با چیزی که مک‌کلاک-پیتز و روزنبلات ابداع کرده بودند متفاوت است. امروزه دیگر خبری از تابع پله یا الگوریتم یادگیری پرسپترون نیست. بلکه از توابع فعالسازی مانند ReLU و … استفاده می‌شود. ساختار پرسپترون امروزی مشابه شکل زیر است.

    پرسپترون چیست
    شکل 5: نمایش وزن‌ها در پرسپترون

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

    پرسپترون چیست
    معادله 5: رابطه خروجی هر نورون در پرسپترون

    تمرین 1: تفاوت نورون مک‌کلاک پیتز با LTU در چه بود؟

    جواب در متن

    تمرین 2: تابع اتلاف پرسپترون چیست؟

    جواب در متن

    تمرین 3: چرا پرسپترونی که روزنبلات ابداع کرد، کارآمد نبود؟

    جواب در متن

    .

    در این پست به سوال «پرسپترون چیست» پاسخ دادیم. همچنین تاریخچه‌ای از پیدایش شبکه‌های عصبی ارائه کردیم. همچنین فهمیدیم تابع اتلاف پرسپترون چیست و الگوریتم یادگیری آن به چه شکل است. امیدوارم این آموزش مورد توجه شما قرار گرفته باشد. نظرات و سوالات خود را پایین 👇 برایمان کامنت کنید. حتما سوالات شما پاسخ داده خواهد شد.

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

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

    LLM Research یا LLM Engineering؟ راهنمای یادگیری مدل‌های زبانی بزرگ
    در چند سال اخیر، اصطلاح LLM یا Large Language Model به یکی از پرتکرارترین واژه‌ها...
    یادگیری انتقالی
    یادگیری انتقالی یا Transfer Learning به معنای استفاده از یک مدل از پیش آموزش‌دیده در...
    شبکه VGG
    شبکه VGG یکی از معماری‌های موفق و معروف در حوزه یادگیری عمیق است که در...
    مهندسی پرامپت
    امروزه، با ظهور ChatGPT و سایر ابزارهای هوش مصنوعی، طیف گسترده‌ای از افراد، از کاربران...
    مدل nanoGPT
    در سال ۲۰۱۹، OpenAI مدل GPT-2 را معرفی کرد. OpenAI، برخلاف مدل‌های بعدی (GPT-3 و...
    شگفت‌انگیزترین ایده هوش مصنوعی از نظر Andrej Karpathy
    هوش مصنوعی به سرعت در حال پیشرفت هست. به‌گونه‌ای که باید زمان و انرژی زیادی...

    10 دیدگاه

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

    • hmoosavi گفت:
      2023/07/08 در 6:56 ب.ظ

      چند سوال:
      1 – یعنی در پرسپترون امروزی هر ورودی به چند نورون داده میشود ؟
      2 – یعنی اگر 5 وردی داشته باشیم هر ورودی به 5 نورون داده میشود یا بیشتر ؟
      3 – هرکدام از نورون ها وظیفه پیدا کردن یک وزن را دارد یا همه وزنها ؟
      4 – لطفا یک مثال بزنید :
      مثلا پیشبینی قیمت خانه که قیمت خانه به متراژ – قدمت ساخت – داشتن اسانسور و پارکینگ و انباری و … بستگی دارد که اینها میشود ورودی ها وقیمت خانه میشود خروجی
      لطفا چنین مثالی بزنید
      با تشکر

      پاسخ
      • هوسم گفت:
        2023/07/08 در 7:09 ب.ظ

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

        پاسخ
        • راضیه گفت:
          2023/11/11 در 3:11 ب.ظ

          سلام من چطور میتونم معادله های پرسپترون توابع خطی حل کنم ؟

          پاسخ
      • hmoosavi گفت:
        2023/07/09 در 11:57 ق.ظ

        ولی می بینیم که طبق شکل ۵ همه ورودی ها به همه نورون ها وصل شده

        آنها را مطالعه کردم و این سوالها را پرسیدم

        پاسخ
        • هوسم گفت:
          2023/07/09 در 12:39 ب.ظ

          شکل 5 فقط یک پرسپترون (نورون) نیست. دو نورون هست که هر کدوم به تمامی ورودی ها وصل هستن. کلا اینطور باید درنظر بگیرید که تمامی ورودی ها باید به تمامی نورون ها وصل بشن.
          اگر مثلا 5 ورودی داشته باشیم، معنیش این نیست که حتما 5 نورون هم داریم. تعداد نورون دست من و شماست. اما چه یک نورون بذاریم چه 100 نورون، همه ورودی ها باید به این نورون ها وصل بشن. مثلا با 5 ورودی و 100 نورون ما 500 اتصال و طبیعتا 500 وزن خواهیم داشت. هر اتصال یک وزن. در مرحله یادگیری باید این 500 مقدار بهینه برای این 500 وزن بدست بیاد. البته، برای سادگی بایاس رو نادیده گرفتیم.

          پاسخ
    • علی گفت:
      2023/05/03 در 6:16 ق.ظ

      سلام
      تشکر بابت وقتی که برای تهیه محتوا گذاشته بودید

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

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

      پاسخ
    • عادل گفت:
      2022/02/23 در 12:57 ق.ظ

      بسیار عالی بود اگر یک مثال هم می زدید فوق العاده میشد.

      پاسخ
    • بابک گفت:
      2020/11/10 در 1:04 ب.ظ

      بسیار عالی…

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

        ممنون دوست عزیز 🌹

        پاسخ

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

    جستجو برای:
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

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

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

     

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

      ورود

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

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