امیرحسین مجد
امیرحسین مجد
خواندن ۱۴ دقیقه·۳ سال پیش

هوش مصنوعی و یادگیری ماشین

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

1- هوش مصنوعی چیست و چه رابطه ای با یادگیری ماشین دارد.

2- داده چیست و چه انواعی دارد و چگونه در یادگیری استفاده میشود

3- در چه مواردی از یادگیری ماشین استفاده میشود

4-روش های یادگیری ماشین به چند دسته تقسیم میشوند

5-چه چالش های بر سر راه یادگیری ماشین قرار دارد

6- در خصوص زبان و کتابخانه های مورد استفاده و در اخر هم یکسری منابع


تاریخچه هوش مصنوعی به گذشته خیلی دور بر می گردد از زمانی که یونانی ها در این باور بودند که بتوانند یک مغز مکانیکی درست کنندو اثارتاريخي بدست آمده نشان میدهد حتی تا ساخت این هم پیش رفته بودند.

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

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

یکی از برجسته ترین دانشمندان حوزه هوش مصنوعی آلن تورینگ بود كه در زمینه یادگیری تقویتی هم گام‌های مهمی برداشته است.

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

1-منطقی فکر کردن

2- منطقی رفتار کردند

3- مانند انسان فکر کند

4- مانند انسان رفتار کند.

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

یادگیری ماشین زیر مجموعه ای از هوش مصنوعی است اما ویژگی‌هایی دارد که از روش‌های هوش مصنوعی متمایز می کند. در هوش مصنوعی توانایی ماشین برای تقلید از رفتار انسان و اتخاذ تصمیم هوشمندانه مانند انساندر نظر گرفته مي‌شود اما در یادگیری ماشین توانایی ماشین برای یادگیری بدون نیاز به برنامه نویسی اختصاصی صورت می گیرد و مسائل را حل کند.

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

یکی از عواملی که باعث این شده که یادگیری ماشین در عصر حاضر خیلی مورد توجه ویژه توسط كاربران يا شرکت ها قرار بگیره آن است که محیط بسیار وسیعی را در اختیار برنامه نویس قرار می دهد با توجه به کتابخانه‌ها و ابزارهایی که دارد و برنامه نویس می‌تواند با توجه به آنها تمام نیازها و کارهای مد نظرش رو به خوبی انجام بدهد و برای تکمیل این جذابیت مسابقات داده ای خیلی زیادی هم حالا اجرا می‌باشد. لازم به ذکر است قسمت جدا نشدنی یادگیری ماشین داده است.

با درک اهمیت دانش و اطلاعات، بسیاری از افراد به فکر استفاده از اطلاعات افتادند و سعی کردند با استفاده از آن ها در نتایج و تصمیم گیری های صحيح و درست برسند، از تنظیم و تحلیل این اطلاعات مي‌‌توان براي اخذ تصمیمات بسیار مفیدی برای آینده استفاده کرد. این نیاز در جامعه موجب به وجود آمدن تخصصهای در این زمینه شده که افراد در خیلی از شرکت ها و سازمان ها در این موضوع مشغول به فعالیت و کار هستند. شغلهای بسیار زیادی در خصوص داده به وجود آمده است مانند تحلیلگر داده، دانشمند داد، مهندس داده و یا مهندس یادگیری ماشین که درآمدهای بسیار خوبی دارند.


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


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


وحالا مهندسی یادگیری ماشین، در درجه اول باید با ساختارهای داده و پیچیدگی آنها آشنایی داشته باشد و داشتن دانش یادگیری ماشین را هم باید جزوه الزامات کارش قرار دارد و همچنین داده را از زمان ورود تا زمانی که تبدیل به خروج شود بايد زیر نظر دارد مهندس یادگیری ماشین باشد، و دانش کاملی نسبت به الگوریتم ها و روشهای یادگیری ماشین داشته باشد.


یادگیری ماشین کاربردهای بسیار جذابی دارد مثل دستیارهای صوتی که امروزه خيلي مورد استفاده قرار می‌گیرد ويا سیستم‌هایی که یک چیزی را به ما پیشنهاد میدهد. اگه بخواهیم يك مثال در رابطه با حوزه فعالیت یادگیری ماشین بزنیم مي‌توان از کاربرد آن در حوزه صنعت معدن نام برد به این صورت که با توجه به حجم بسیار زیاد اطلاعات در حوزه صنایع معدنی و همچنین عدم قطعیت بالا، بسیار مورد استفاده قرار گرفته است. یادگیری یادگیری ماشین در قسمت پردازش تصاویر ماهواره‌ای بسیار کارآمد بوده و می‌تواند با مشخص کردن و دسته بندی تصویر نتایج مورد نظر را به دست آورد که از دقت بسیار بالایی برخوردار است. با توجه به هزینه بر بودن نمونه برداری در معادن به دست آوردن نتیجه درست از حداقل تست ها، یک بحث بسیار مفید می‌تواند باشد که با استفاده از ماشین لرنینگ و الگوریتم هایی مانند svm آن را انجام داد.

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

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

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

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

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

تعریف‌های زیادی از یادگیری ماشین وجود دارد که معروف‌ترین آن به صورت زیر است فرض کنید تکالیف t با تابع سنجشp ارزیابی می شود و با استفاده از تجربهe کارایی سیستم افزایش می یابد آن گاه می توانیم بگوییم که برنامه یاد گرفته است از تجربه با توجه به تکالیف و تابع ارزیابی استفاده کند.

در واقع t مسئله ای هست که ما انتظار داریم با استفاده از یادگیری ماشین حل کنیم. E نمونه ها که اطلاعات مورد نیاز مسئله را به ما می‌دهد می باشد و P معیاری برای بررسی اندازه‌گیری میزان دقت الگوریتم هست که به صورت درصدی میتوان آن را بیان کرد.

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

۱ یک مدل یا الگوریتم برای تصمیم گیری

۲ یک معیار برای امتیاز دهی

۳ بررسی مدل و کیفیت آن بر اساس امتیاز

۴ ایجاد تغییرات درمدل به صورت خودکار برای بهبود امتیاز

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

1- یاد گیری با نظارت

2-یادگیری بی نظارت

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

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

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

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


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

زمان بر بودن یکی از چالش های یادگیری تقویتی است.


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

یکی از ویژگی های بارز زبان پایتون قابل فهم بودن کدهای آن است و کاربرد بیشتر پایتون در صنعت باعث به وجود آمدن تفاوت اصلی آن نسبت به بقیه زبان های برنامه نویسی شده است و دارای کتابخانه‌های زیادی در حوزه یادگیری ماشین است که معروفترین آنها کتابخانه numpy ,pandas, matplotlib, scikit-learn می باشد.

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

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

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

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

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


که غیر قابل کنترل و برگشت پذیر است.

در عرصه پژوهش و نوآوری در زمینه هوش مصنوعی می توان به شرکتهای بزرگی چون همچون deep mind, openAi, facebook AI ,google AI , اشاره کرد که نقش بسیار فعالی در پیشرفت و ارائه محصولات در زمینه هوش مصنوعی داشته اند.

مطالب و کتاب های بسیار زیادی در زمینه های هوش مصنوعی و یاد گیری ماشین وجود دارد که برای اگاهی بیشتر و مطالعه معرفی میشود.1-machine learning for Dummies 2- artificial intelligence :a modern approach 3- python for data analysis 4- pattern recognition and machine larning است که در سطح های مختلف برای افراد مبتدی تا پیشرفته تهیه شده است البته لیست کتاب ها خیلی بیشتر است و تنها بخشی از ان اورده شده است.

ممنون که وقت گذاشتید مطالعه کردید

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

منبع(https://quera.ir/college/land/college/8522/)



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