آشنایی با هوش مصنوعی

در کتاب معروف«هوش مصنوعی، یک رویکرد مدرن» دیدگاه‌های مختلف از دو بعد مورد بررسی قرار گرفته‌اند. از منظر اول هوشمندی یا در رفتار است یا در تفکرو از منظر دوم هوشمندی در انسان‌گونه بودن یا در منطقی بودن (rationality) است. اگر همهی حالات را در نظر بگیریم به چهار تعریف زیر می‌رسیم. هوش مصنوعی چیزی است که:منطقی فکر کند.منطقی رفتار کند.مانند انسان فکر کند.مانند انسان رفتار کند.فرض کنید هوشمندی مورد نظر خود را انتخاب کردیم. قدم بعدی ساخت عامل هوشمنداست. عامل می‌تواند سخت‌افزاری یا نرم‌افزاری باشد و بر حسب محیطی که عامل قرار است در آن مورد استفاده قرار گیرد، می‌تواند دارای اجزای مختلفی باشد. امروزه هر برنامه‌ای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته می‌شود. یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه­ی هوش مصنوعی در نظر گرفت.یکی از مهم‌ترین ویژگی‌های یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است ویژگی دیگر یادگیری ماشین، تغییر خود با دیدن داده‌های جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد. صنعت، دانشگاه، حوزه­ی سلامت، اقتصاد و تجارت، کسب و کارها و بسیاری دیگر، از یادگیری ماشین برای پیشبرد اهداف خود استفاده می‌کنند.زبان پایتون و R از محبوب‌ترین زبان‌های قابل استفاده برای یادگیری ماشین هستند و کتابخانه‌های بسیار قدرتمندی در این زبان‌ها برای رفع نیازهای علاقه‌مندان این حوزه در حال گسترش است.موقعیت‌های شغلی مرتبط با یادگیری ماشینتحلیل‌گر داده ( (Data Analystتحلیل‌گر داده شدن، نسبت به دیگر شغل‌های مرتبط با داده آسان‌تر است و قبل از آنها وجود داشته است.داشتن مهارت‌های برنامه‌نویسی برای تحلیل‌گر داده ضروری نمی‌باشد و می‌تواند از نرم‌افزار‌ها یا سرویس‌های وب برای انجام کارهای خود استفاده کند.دانشمند داده ( (Data Scientistدانشمند داده امور داده‌کاوی را معمولا با زبان‌های برنامه‌نویسی و کتابخانه‌های آن انجام می‌دهد ولی تحلیل‌گر از پلتفرم‌ها و نرم‌افزار‌ها استفاده می‌کند. تحلیل‌گر با همه در ارتباط است و معمولا سوالات را دیگران برایش مطرح می‌کنند اما دانشمند داده خودش سوالات را طرح می‌کند، سوالاتی که در تصمیمات شرکت تاثیرگذار هستند.مهندس داده ( (Data Engineerاو پس از مشورت با دیگر اعضای شرکت انتخاب می‌کند که چه داده‌ای از میان سیل داده­ی تولیدی در اختیار شرکت قرار بگیرد. پس از انتخاب منابع داده، داده‌های منابع مختلف را یکپارچه می‌کند و برای نگهداری بهینه­ی آن‌ها برنامه‌ریزی می‌کند.مهندس یادگیری ماشین در واقع نقطه­ی تلاقی مهندسی نرم‌افزار و علم دادهاست. این موقعیت بسیار حرفه‌ای است. مهندس یادگیری ماشین علاوه بر اینکه داده را تا رسیدن به مدل همراهی می‌کند، مسئول رساندن خروجی به کاربر نهایی نیز هست. او مدل تولید شده را بررسی می‌کند و یا پس از انجام بررسی‌های لازم، مدل نظری را وارد فرآیند عملیاتی می‌کند. او باید پیچیدگی‌های محاسباتی و حافظه‌ای را محاسبه کند و مدل طراحی شده توسط دانشمند داده را برای کار در مقیاس بزرگ آماده کند.وظایف مهندس یادگیری ماشین جنبه­ی نظری و عملیاتی دارند. به این صورت که او باید دانش کاملی از الگوریتم‌ها و روش‌های یادگیری ماشین داشته باشد. هم قبل از استقرار مدل، آن را مورد بررسی و تحلیل قرار دهد و هم بر فرآیند عملیاتی ساختن آن و محاسبه­ی پیچیدگی‌ها نظارت داشته باشد. سپس بعد از استقرار، مسئول نظارت و رسیدگی به آن خواهد بود.معمولا حقوق دانشمند داده از تحلیل‌گر داده بیشتر است و مهندس یادگیری ماشین و مهندس داده از دوتای قبلی بیشتر.مفاهیم پایهیادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا می‌کند و از آن برای آموزش خود استفاده می‌کند.دهه پنجاه میلادی یکی از مهندسان IBM که نامش آقای آرتور ساموئل بود، برای اولین بار از کلمه یادگیری ماشین استفاده کرد و تعریف زیر را برای آن ارائه داد: یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه‌نویسی صریح را می‌دهد. پس از او، آقای نیلز نیلسون کتابی تحت عنوان یادگیری ماشین منتشر کرد که اولین مدل‌های یادگیری ماشین در آن مورد بررسی قرار گرفت.با وجود اینکه به طور مستقیم در تعریف قدیمی نیامده، ویژگی اصلی یادگیری ماشین خود آموزشی یا (Self- learning) می‌باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم (یا صریح) می‌باشد. به عقیده بسیاری در آموزش الگوریتم یادگیری ماشین، نیازی به دخالت انسان برای یادگیری نیست. به بیان دیگر، الگوریتم خود، نیازهای خود را تشخیص می‌دهد و خود را ارتقا می‌دهد. این نکته را در نظر بگیرید که تعریفی که برای یادگیری ماشین ارائه می‌شود ممکن است برای همه انواع آن درست نباشد. برای مثال، در یادگیری با‌نظارت، همانطور که از اسمش پیداست یادگیری با نظارت انسان صورت می‌گیرد.دادهداده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. آنچه داده را ارزشمند می‌کند نمایندگی آن از واقعیت است و اطلاعاتی که درباره آن در اختیارمان می‌گذارد. هم‌چنین به ما این اجازه را می‌دهد که درباره ارتباط بین توصیفات مختلف یک وضعیت بپرسیم و اطلاعاتی به دست آوریم.کلمات (زبان طبیعی): داده‌ای که پردازش زبان طبیعی با آن کار می‌کند، جملات و کلمات تولید شده توسط انسان‌ها هستند، که ممکن است به صورت نوشتاری یا صوت در اختیار الگورتیم‌های کامپیوتری قرار بگیرد. برخی از کاربردهای این حوزه عبارتند از: تشخیص گفتار، دسته‌بندی نوشتارها یا نظرات، پاسخ دادن به سوالاتتصاویر: توانایی استخراج اطلاعات از داخل تصاویر امکان فوق‌العاده‌ای را در اختیار یک عامل هوش مصنوعی می‌گذارد و هدف معمولاً تشخیص شیء یا اشیای موجود در تصاویر است. از کابردهای روزمره بینایی ماشین می‌توان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، جستجو میان تصاویر بر اساس اجسام موجود در عکس، پردازش تصاویر ماهواره‌ای برای هواشناسی یا تشخیص وقایع زیست‌محیطی و ماشین‌های خودران اشاره کرد.همچنین بینایی ماشین در پزشکی نیز کاربرد دارد و مثلاً می‌تواند نیاز به متخصص رادیولوژی را برای بررسی تصاویر پزشکی اشعه ایکس، MRI یا سونوگرافی را کاهش دهد.جداول:نوع جدولی را داده ساختارمند می‌نامیم. داده‌های جدولی را می‌توان به طور کلی به ۲ زیردسته تقسیم‌بندی کرد:داده‌های عددی: مثل سن فرد یا موجودی حساب اوداده‌های دسته‌ای: مثل جنسیت یا شهر محل زندگی فردسری زمانی: در مورد بعضی از انواع داده، تغییرات آن و در نتیجه مقدار آن در طول زمان اهمیت ویژه‌ای دارد. از دیدگاه آرتور ساموئل، یادگیری ماشین با برنامه نویسی صریح تفاوت دارد. داده همان تجربه‌ای است که به عنوان ورودی به الگوریتم داده می‌شود. یادگیری نظارت شده، که یکی از انواع یادگیری ماشین است، بیشترین کاربرد را در امور یادگیری ماشین دارد.آقای تام میشل(Tom Mitchell) در کتاب یادگیری ماشین خود، یادگیری ماشین را از دید مهندسی به این شکل تعریف کرده است:اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می‌شود، با تجربه E افزایش یابد، می‌گوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده کند.تکلیف T : تکلیف T در واقع همان مساله‌ای است که ما انتظار داریم بتوانیم با یادگیری ماشین حل کنیم.تجربه E: برای انجام فرایند یادگیری، که منجر به حل تکلیف T می‌شود، ما نیازمند تعدادی نمونه (sample) هستیم که اطلاعات مورد نیاز در مورد مساله را به ما می‌دهند.در یادگیری بانظارت هر نمونه دارای یک برچسب (label) است و انتظار داریم الگوریتم بتواند با داشتن سایر ویژگی‌ها، مقدار این برچسب را برای مشتری جدید پیش‌بینی کند.سنجه‌ی :P هر مدل یادگیری ماشینی که طراحی کنیم، به هرحال به طور ۱۰۰ درصدی نتیجه درست و مناسبی را ارائه نمی‌دهد؛ بنابراین به معیاری برای بررسی و اندازه‌گیری میزان دقت این الگوریتم نیاز داریم تا در صورت نامناسب بودن دقت آن، با تغییر پارامترهای الگوریتم بتوانیم به دقت بالاتری برسیم. به این معیار سنجه‌ی P می‌گوییم.به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:1. یک الگوریتم (مدل) برای تصمیم‌گیری2. یک معیار برای امتیازدهی اینکه عمل‌کرد مدل چقدر خوب بوده3. بررسی خودکار کیفیت مدل بر اساس امتیاز4. یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدلبه طور کلی یادگیری ماشین به سه دسته کلی تقسیم‌بندی می شود.یادگیری بانظارتیادگیری بی‌نظارتیادگیری تقویتیالگوریتم‌های یادگیری نظارت‌شده، به دو دسته طبقه‌بندی (classification) و رگرسیون (regression) دسته‌بندی می‌شوند. هر دو دسته‌ی طبقه‌بندی و رگرسیون به داده‌های برچسب خورده نیاز دارند و الگوریتم پیش‌بینی آن‌ها را یاد می‌گیرد. اما این برچسب‌ها، کمی با هم تفاوت دارند.تفاوت طبقه بندی و رگرسیون: هر دو دسته یاد می‌گیرند تا برچسب داده‌ها را پیش‌بینی کنند و تنها تفاوت میان این دو دسته، به نوع این برچسب بستگی دارد. در الگوریتم‌های طبقه‌بندی برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری گسسته می‌باشد.در الگوریتم‌های رگرسیونی، برخلاف طبقه‌بندی، برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری پیوستهاست.یادگیری بدون نظارت: در این روش یادگیری، مدل به تنهایی و بدون کمک برچسب‌هایی که در روش نظارت‌شده دیدیم، باید الگوهای پنهان را پیدا کند. از یادگیری بی‌نظارت اکثرا برای تحلیل اکتشافی داده‌ها و خوشه‌بندی استفاده می‌شود. الگوریتم‌های یادگیری ماشین بی‌نظارت، به طور کلی به سه دسته خوشه‌بندی (clustering)، کاهش ابعاد (dimensionality reduction) و استخراج قانون وابستگی (association rule mining) تقسیم‌بندی می‌شود.خوشه‌بندی به معنی دسته‌بندی اتوماتیک داده‌ها به خوشه‌های همگن است، به این صورت که داده‌های هر خوشه، ویژگی‌های یکسانی داشته باشند. اولین گام برای خوشه‌بندی داده‌ها، انتخاب کردن معیاری برای خوشه‌بندی است؛ به عبارت دیگر در این گام باید معیاری برای سنجش فاصله بین داده‌ها انتخاب کنیم.روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگی‌هایی که از آن‌ها برای آموزش مدل یادگیری ماشین خود استفاده می‌کنیم. مسائل و مشکلاتی که به هنگام کار با داده‌های دارای ابعاد زیاد مطرح می ‌شود تحت عنوان the curse of dimensionality شناخته می‌شود. زمانی که ابعاد بیشتری داریم، مدل یادگیری ماشین پیچیده شده و این باعث به‌وجود آمدن بیش‌برازش (overfitting) می‌شود. بیش‌برازش باعث می‌شود که مدل یادگیری ماشین به داده‌هایی که روی آن‌ آموزش دیده وابسته شود و روی داده‌هایی که تا به حال ندیده است عملکرد مطلوبی نداشته باشد.یادگیری تقویتی، یکی از روش های یادگیری ماشین است که با ذهنیت آزمون و خطا کار می‌کند. عامل هوشمند (agent) طبق حالت جاری(state) ، حرکت(action) انجام می‌دهد و بر اساس آن حرکت بازخورد (reward) دریافت می‌کند؛ این بازخورد ممکن است مثبت یا منفی (پاداش یا تنبیه) باشد و عامل با این بازخورد خط‌مشی (policy) خود را تغییر می‌دهد. این روش از یادگیری نزدیک‌ترین حالت به یادگیری انسان است. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد.ذخیره‌سازی و پردازش بهینه­ی آرایه‌های عددی از اهمیت بسیاری برخوردار است. کتابخانه مختص این کار در پایتون نامپای نام دارد که مخفف numeric python به معنی پایتون عددی می‌باشد. یکی دیگر از کتابخانه‌های مهم اکوسیستم کار با داده پایتون، پانداس می‌باشد که از نامپای در بطن خود استفاده می‌کند. مت پلات لیب بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است. سایکت‌لرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدل‌سازی آماری است. علاوه بر موارد ذکر شده، کتابخانه‌های بسیار قدرتمند دیگری برای زمینه‌های دیگر کار با داده در پایتون وجود دارد. برای مصور سازی داده می‌توان از پلاتلی (Plotly) و سیبورن (Seaborn) هم استفاده کرد. برای امور یادگیری عمیق، پایتورچ (Pytorch) ، تنسورفلو (TensorFlow) و کراس(Keras) بیشتر مورد استفاده قرار می‌گیرند. برای پردازش متن nltk و اسپیسی (Spacy) کارایی بیشتری دارند و در زمینه پردازش عکس می‌توان از کتابخانه‌های اوپن سیوی (OpenCV) و سایکت ایمیج (scikit-image) نام برد.چالش‌های مربوط به دادهداده اساس یادگیری‌ماشین است و هیچ الگوریتم و مدلی با داده بد نمی‌تواند عملکرد خوبی داشته باشد. کمیت نامناسب داده، داده بی‌کیفیت و ویژگی‌های نامربوط از جمله چالش‌هایی است که به داده مربوط می‌شوند.تعداد ناکافی داده، داده‌ بی‌کیفیت که پر است از مقادیر اشتباه و گم‌شدهچالش های الگوریتمی: بیش‌برازش (Overfitting)، کم‌برازش (Underfitting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند.مساله زمان: زمان در یادگیری‌ماشین از دو جهت اهمیت دارد؛ هم مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیش‌بینی نمونه‌ها مصرف می‌کند. مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار می‌دهد و زمان مصرفی توسط مدل برای پیش‌بینی نمونه‌ها زمانی است که کاربر‌ نهایی تجربه می‌کند. دانشمند داده همواره سعی می‌کند هر دو زمان را کمینه کند.چرخه­ی تب تکنولوژی (Technology Hype Cycle) را اولین بار موسسه­ی گارتنر (Gartner) در سال ۱۹۹۵ مطرح کرد. این چرخه، نمودار رشد تکنولوژی‌­های مختلف را در طی زمان نشان می‌دهد. بر این اساس هر تکنولوژی ۵ مرحله­ی اصلی را طی می‌کند. به این صورت که ابتدا معرفی می‌شود و شروع به مشهور شدن می‌کند. در این مرحله اغلب شرکت‌ها به استفاده از این فناوری جدید روی می‌آورند. در مرحله­ی دوم که اوج قله است، نام آن تکنولوژی در همه‌جا شنیده شده و با جذب سرمایه‌گذار، بسیاری از استارت‌آپ‌ها شروع به معرفی و استفاده از آن می‌کنند. اما در مرحله­ی سوم محدودیت‌های این تکنولوژی شناخته می‌شود و آهسته از شهرت آن کاسته شده و بسیاری استفاده از آن را کنار می‌گذارند. در مرحله­ی چهارم، تنها برخی کسانی که در عرصه­ی آن تکنولوژی باقی ‌مانده‌اند شروع به فعالیت اصلی در این حوزه کرده و تکنولوژی شروع به رشد می‌کند تا زمانی که به مرحله پایانی یعنی پختگی و ثبات نسبی برسد.عامل‌های هوشمندی که امروزه ساخته می‌شوند معمولا در حل یک مسئله­ی خاص به هوشمندی رسیده‌اند. مثل تشخیص انسان‌های داخل تصویر یا انجام بازی شطرنج. به این نوع از هوش مصنوعی، هوش مصنوعی محدود یا ضعیف اطلاق می‌شود. در مقابل، آنچه هوش مصنوعی عمومی (artificial general intelligence) و یا قوی نامیده می‌شود، عبارت است از ساختن عامل هوشمندی که مانند انسان از هوشی عمومی برخوردار باشد که توانایی آموختن در مواجهه با هر مسئله­ی جدیدی را داشته باشد و محدود به یک زمینه یا مسئله­ی خاص نباشد.در ادامه­ی تحولات شگفتی که برای هوش مصنوعی پیش‌بینی می‌شود، از نقطه‌ای نام برده می‌شود که هم با شکوه و هم دلهره برانگیز است و آن نقطه­ی تکینگی فناوری (technological singularity) است. زمانی که پیشرفت تکنولوژی به نقطه‌ای غیرقابل کنترل و برگشت‌ناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد.هربرت سایمون که از پیشگامان هوش مصنوعی به شمار می‌رود و هم برنده­ی جایزه­ی تورینگ (معروف به نوبل محاسبات) و هم برنده­ی نوبل اقتصاد است در سال ۱۹۶۵ نوشته بود: «تا بیست سال دیگر، ماشین‌ها قادر خواهند بود هر کاری که انسان انجام می‌دهد را انجام دهند». با این حال قابل ذکر است که بسیاری از صاحب نظران معتقدند تا سال‌های دهه­ی ۲۰۴۰-۲۰۵۰ شاهد چنین تحولات شگرفی خواهیم بود.منبع: https://quera.ir/college/land/college/8522/