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

دسته بندی خطی
دسته بندی خطی ، داده ها رو بر اساس اعمال جبری خطی مقادیر ورودی تقسیم بندی میکنه. این نوع طبقه بندی در مسائلی کاربرد داره که در اون داده ها رو قراره از هم جدا کنیم و مشخص کنیم هر داده مربوط به چه چیزی هست. بنابراین این نوع دسته بندی زمانی بهتر عمل میکنه که خود داده ها هم قابلیت جداشدن خطی رو داشته باشند. برای اینکه بدونیم قابلیت جدا سازی خطی و غیر خطی یعنی چی، شکل زیر رو ببینید:

در شکل A میبینید که داده ها رو میشه با یک تفکیک کننده خطی جدا کرد، ولی در شکل B اینطوری نیست. اما این دایره هایی که در هر نمودار میبینیم چی هستند؟ این دایره ها همون داده های ما هستند. اگه یادتون باشه، گفتیم که در شبکه های عصبی، ماشین یک کلمه یا یک تصویر رو به بی نهایت نقطه و داده تقسیم میکنه.

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

در شبکه های عصبی پیشخور ، این نوع دسته بندی صورت میگرفت. با استفاده از این شبکه های عصبی، توانایی ایجاد عملگرهای منطقی مانند AND و OR وجود داشت. برای درک بهتر مفهوم خطی بودن، بهتره این عملگرها رو بررسی کنیم.
عمگرهایی که میخوایم بررسی کنیم، از نوع باینری یا منطقی هستند . ما قبلا هم با عمگرها آشنا شدیم، منتهی با عملگرهای محاسباتی مانند + و – . اما این عملگرها مخصوص اعداد حقیقی هستند. اما برای ریاضیات باینری، از عمگرهایی مانند AND,OR,NOT و غیره استفاده میکنیم. ریاضیات باینری، ریاضیاتی هست که در اون فقط دو عدد صفر و یک وجود دارن. منظور از صفر و یک در اینجا، عدد نیست، بلکه صفر به معنای خاموش، غیر فعال، غیر صحیح و .. و یک به معنای روشن، فعال ، صحیح و درست و .. می باشد.
عملگر AND
جدول این عمگر به صورت زیر هستش . این عملگر به گونه ای هست که اگه فقط یکی از دوتا ورودی ها، مقدار 0 رو داشته باشه، نتیجه 0 رو به خروجی میده. پس زمانی عمگلر AND خروجی 1 رو داره که هر دو ورودی 1 باشن ( یا هر دو ورودی فعال باشن).

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

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

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

خب پس در این جلسه، با دسته بندی خطی آشنا شدیم و برخی از مثال های اون آشنا شدیم. در جلسه بعدی، به سراغ دسته بندی غیر خطی در شبکه های عصبی و برخی از الگوریتم هایی که این دسته بندی رو انجام میدن، خواهیم رفت . پس با ما همراه باشید..
منابع
https://towardsdatascience.com/radial-basis-functions-neural-networks-all-we-need-to-know-9a88cc053448
http://www.briandolhansky.com/blog/2013/7/11/artificial-neural-networks-linear-classification-part-2
https://leonardoaraujosantos.gitbook.io/artificial-inteligence/machine_learning/supervised_learning/linear_classification
کلیدواژه ها

دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را دنبال کنید.
همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.

