ماشین لرنینگ

ماشین لرنینگ به زبان ساده

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

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

برای درک بهتر این تعریف باید ابتدا ساختار کلی یک ماشین را در نظر بگیریم ؛ ماشین ها و کامپیوترهایی که ما از آن ها استفاده می کنیم ، مجموعه ای از قطعات الکترونیکی هستند که هر کدام وظیفه خاصی را بر عهده داشته و هماهنگ با یکدیگر عمل می کنند .برای مثال ، امروزه اکثر ما گوشی های هوشمند داریم و این گوشی ها از بخش های مختلفی نظیر Ram ، Hard disk ، Graphic card ، Cpu و ... تشکیل شده اند ؛ هر یک از این بخش ها چیزی جز مدار های الکترونیکی نیستند و ماشین لرنینگ نیز همانند تمامی این قسمت ها ، یک قطعه الکترونیکی است .

حال که با تعریف کلی ماشین لرنینگ آشنا شدیم بیایید باهم نگاهی کلی به قسمت های مختلف این ماشین بیندازیم ماشین لرنینگ سه قسمت اصلی دارد :

  1. مرکز اطلاعات
  2. موتور جستجو
  3. توانایی اضافه کردن یافته های جدید به مرکز اطلاعات بر اساس تجربه


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

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

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

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

ماشین لرنینگ چه کمکی به ما می کند ؟

کاربرد ماشین لرنینگ

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

تا این قسمت از مقاله متوجه کاربرد ماشین لرنینگ شدیم ، اما یک سوال اینجا مطرح است که چگونه دستگاهی که از قطعات الکترونیکی تشکیل شده است ، توانایی انجام چنین کارهایی را دارد ؟ آیا نحوه کارکرد ماشین لرنینگ مشابه مغز انسان است ؟

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

برنامه نویسی کامپیوتر چیست ؟

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

در ابتدای مقاله بیان شد که کامپیوتر از قسمت های مختلفی تشکیل شده و تمامی این قسمت ها یا الکترونیکی هستند و یا با الکترونیک سرو کار دارند ؛ در نتیجه اجزایی که کامپیوتر از آن ها تشکیل شده است ، باید تماما از قوانین الکترونیک تبعیت کنند .

در علم الکترونیک مهم ترین موضوع "ولتاژ داشتن" یا "ولتاژ نداشتن" است و بر همین اساس ما ساختاری را تهیه و تولید می کنیم که بر اساس وجود یا عدم وجود ولتاژ ، کار های مختلفی را انجام دهد . در برنامه نویسی ، ولتاژ داشتن را با عدد 1 و ولتاژ نداشتن را با عدد 0 بیان می کنیم ؛ به این دو عدد ، اعداد باینری گفته می شود ، یعنی اعداد قابل فهم برای کامپیوتر .

در نتیجه می توان برنامه نویسی را این گونه تعریف کرد :

" مجموعه ای از دستورات به زبان کامپیوتر (باینری) که اجرای آن باعث وجود ولتاژ یا عدم وجود ولتاژ در قسمتی از کامپیوتر می شود ؛ در نهایت مجموعه ای از وجود یا عدم وجود ولتاژ ها باعث می شود تا کامپیوتر یک برنامه خاص را اجرا کند . "

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

برنامه نویسی ماشین لرنینگ

برنامه نویسی ماشین لرنینگ

به طور کلی برنامه نویسی ماشین لرنینگ مبتنی بر سه اصل زیر است :

  1. متغیر های منطقی : متغیر هایی که تنها دو حالت دارند ، یا "صدق می کنند" یا "صدق نمی کنند" . در واقع عملکردی مشابه 0 و 1 دارند : صدق کردن = 1 صدق نکردن = 0

  2. ساختار شرط : ساختار شرط این امکان را به ماشین لرنینگ می دهد که قبل از اجرای برنامه ، حالت های مختلف را بررسی کند . در این ساختار ابتدا ماشین داده ای را دریافت کرده ، سپس آن را با حالت های مختلفی که از پیش برایش تعریف شده است ، مقایسه می کند ؛ حال در صورت وجود شباهت و تطابق ، برنامه کار خاصی را اجرا کرده و در غیر این صورت برنامه اجرا نمی شود .
    به بیان ساده تر ، ماشین برای آن که بتواند کاری را انجام دهد ، ابتدا باید بررسی کند که آیا داده ها در شرط های موجود صدق می کنند یا خیر
    .

  3. ساختار حلقه : ساختاری که به بر اساس ساختار شرط ، یک عمل خاص را بار ها انجام می دهد .

یادگیری ماشین لرنینگ 

تا به اینجا ، اندکی با نحوه فعالیت ماشین لرنینگ آشنا شدیم . در ادامه قصد داریم نگاهی به روش هایی که سیستم به وسیله آن ها "یادگیری" را انجام می دهد بیندازیم :
یادگیری با نظارت

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

یادگیری بدون نظارت

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

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

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

فرق ماشین لرنینگ با سیستم های اتوماتیک چیست ؟

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

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


تگ ها

نظرات 1

آفلاین
كيان
كيان 30 دی 1399 01:21
مقاله خوبى بود اما اطلاعات اشتباه هم زياد داشت، ماشين لرنينگ يه قطعه نيست! صرفاً يك شاخه برنامه نويسى هستش. درواقع يادگيرى ماشين يك سيستم ساخت الگوريتم براى كارهاى مورد نياز هستش

ارسال نظر

عکس خوانده نمی شود