Artificial Intelligence
مقدمه:
شکی نیست که امروزه هوش مصنوعی یکی از قدرتمندترین و امیدوارکنندهترین فناوریها به حساب میآید. به تازگی آنقدر هیاهوی تبلیغاتی در اطراف آن ایجاد شده است که در سراسر دنیا به یک واژه پر سر و صدا تبدیل شده است. طی چند سال آینده، هوش مصنوعی این توانایی را خواهد داشت که زندگی را اساساً تغییر دهد، همانطور که میدانیم هدف آن، ایجاد تغییراتی مثبت است.
امروزه هوش مصنوعی توسط تعداد زیادی از شرکتهای موفق از جمله آمازون، گوگل و خیلی شرکت های بزرگ دیگر مورد استفاده قرار میگیرد. هر شرکتی در تلاش است با استفاده از هوش مصنوعی به بهبود محصولات، نوآوری در خدمات و نگاهی به آینده دست یابد.
هوش مصنوعی در حال حاضر یکی از مشهورترین مفاهیم در صنعت ارتباطات است، اما همچنین باعث ایجاد جنجال بسیاری در بین متخصصان شده است. در حالی که برخی از رهبران فن آوری، مانند ایلان ماسک از تهدید هوش مصنوعی کنترل نشده ترس دارند، برخی دیگر مانند مارک هورد، معتقدند که هوش مصنوعی یک ابزار اساسی در موفقیت تجاری است.
هوش مصنوعی یا به طور اختصار AI به چنان بخش مهم و جدایی ناپذیری از جامعه مدرن ما تبدیل شده است که طبق گفتههای فوربس، در سال 2017، 51 درصد از شرکتهای مدرن مطرح، از هوش مصنوعی استفاده میکردند و ارزش این صنعت 16 میلیارد دلار بوده است.
پیشبینی میشود این رشد به صورت تصاعدی نیز بیشتر شود و در سال 2025 به 190 میلیارد دلار برسد. با ایجاد این همه هیاهوی تبلیغاتی پیرامون این فناوری، دلایل زیادی وجود دارد که افراد بیشتری علاقهمند به یادگیری AI میشوند:
- نرخ رشد کنونی هوش مصنوعی به این معنی است که هرچه زمان میگذرد، به صورت نمایی با ارزشتر میشود. این موضوع بدان معنی است که اکنون با سرمایه گذاری زمان در آن، بعداً سود سهام پرداخت خواهد شد. هرچه زودتر بتوانیم در مورد این فناوری تأثیرگذار یاد بگیریم، زودتر قادر به تأثیرگذاری با آن خواهیم بود.
- میزان توان شما برای ایجاد راهکار با علم بر این فناوری بسیار زیاد است. هوش مصنوعی در تحقیقات سرطان، ژن درمانی، تحقیقات رابط مغز و رایانه و موارد دیگر بسیار مورد استفاده قرار گرفته است.
- اگر به ارائه راهکار علاقهای ندارید، انگیزههای دیگری نیز وجود دارند. متوسط درآمد یک توسعهدهنده یادگیری ماشین سالانه حدود 114،121 دلار میباشد. این امر باعث میشود که این شغل در مجموع در 10 شغل پردرآمد حال حاضر قرار بگیرد.
- مهم تر از همه، با داشتن علم هوش مصنوعی، شما به فرصتهای زیادی برای ایجاد، تغییر یا دستیابی به اهداف شخصی خود دسترسی خواهید داشت که قبلاً نمیتوانستید داشته باشید.
دو نوع از تأثیرگذارترین تکنولوژی های هوش مصنوعی امروزی، سیستمهای یادگیری ماشین و یادگیری عمیق هستند. اما این دو دقیقاً چیستند؟ و برای این منظور، چگونه هوش مصنوعی را میتوانیم تعریف کنیم؟
هوش مصنوعی چیست؟
در واژه نامه آکسفورد آمده است که هوش مصنوعی "نظریه و توسعه سیستمهای رایانهای است که قادر به انجام وظایفی هستند که معمولاً به هوش انسانی نیاز دارند" هوش مصنوعی، در معنای اصلی خود، معطوف به ساختن ماشینهای هوشمندی است که توانایی حل مشکلات را به همان اندازه (یا بهتر از انسان) دارند.
هوش مصنوعی روشهای جدیدی برای ایجاد سیستم های حل مسئله فراهم میکند. به صورت دقیقتر، هوش مصنوعی مجموعه بزرگی از دادهها را با پردازش سریع، تکراری و الگوریتمهای دقیق ارزیابی میکند، که به برنامه این امکان را میدهد تا از الگوها یا ویژگی های دادهها یاد بگیرد و مطالعهای در مورد چگونگی تفکر، یادگیری، تصمیم گیری و کارکرد مغز انسان باشد و سرانجام این مطالعه، سیستمهای نرمافزاری هوشمندی را ارائه میدهد. هدف از هوش مصنوعی بهبود عملکردهای رایانهای است که به دانش انسان مربوط میشوند، به عنوان مثال استدلال، یادگیری و حل مسئله.
هوش مصنوعی یا همان AI چتر بزرگی است که طیف گستردهای از موضوعات مختلف را پوشش میدهد.
این نمودار پیچیدگی تمام مباحثی را که تحت کلمه واحد هوش مصنوعی قرار میگیرند یا تا حدی با یکدیگر مرتبط هستند نشان میدهد.
مهم است که این نکته را به خاطر بسپارید که کلمه هوش مصنوعی به تعداد زیادی از زمینهها و مطالعات مختلف اطلاق میشود و به یک الگوریتم یا استراتژی خاص اشاره ندارد. همانطور که گفته شد، ما میتوانیم تمام مفاهیم موجود در هوش مصنوعی را به یک تعریف خاص تعمیم دهیم که برای هر چیزی که با این عبارت برچسب خورده باشد، اعمال شود.
تعریف هوش مصنوعی به زبان ساده به استفاده از رایانه برای انجام کارهایی که معمولاً به هوش انسان نیاز دارند، گفته میشود. چنین وظایفی میتواند شامل تشخیص تصویر (که شما را ملزم به تفسیر آنچه در اطراف خود میبینید، میکند)، تشخیص گفتار (که شما را ملزم به درک زبان میکند)، تصمیم گیری پیچیده بر اساس معیارهای متعدد و سایر کارهای دیگر انجام میشود.
این تعریف همچنین باید به شما کمک کند تا گستردگی موضوعی که ما با آن سروکار داریم را کاملا درک کنید. بسیاری از زمینههای مختلف هوش مصنوعی وجود دارد که کارهای بسیار متفاوتی انجام میدهند.
به طور کلی، افراد تمایل دارند توسعه AI را به سه مرحله تقسیم کنند:
- Narrow Intelligence
این دسته که تقریباً هر الگوریتم AI که امروزه وجود دارد در این دسته قرار میگیرند، به هوش مصنوعی گفته میشود که برای انجام یک کار خاص طراحی شده است (مهم نیست که این کار چقدر پیچیده باشد. هوش مصنوعی که وظیفه آن صحبت با انسان یا بازیابی اطلاعات از اینترنت یا انجام یک بازی است، همگی نمونههایی از هوش باریک است).
- General Intelligence
این نوع هوش مصنوعی در حال حاضر هنوز وجود ندارد (و ممکن است هرگز وجود نداشته باشد). هوش عمومی به هوش مصنوعی اشاره دارد که قادر به انجام کارهای متنوعی هستند. در واقع، آنها میتوانند هر وظیفهای را که انسان قادر به انجام آن است، انجام دهند. بدیهی است که این امر به اشکال بسیار متنوعی از هوش نیاز داشته و دستیابی به آن بسیار دشوارتر است. حتی ممکن است هوش مصنوعی به هوش (آگاه از خود) نیاز داشته باشد. با این حال، در حال حاضر، این چیزی نیست جز علمی تخیلی و امید به آینده.
- Super intelligence
اصطلاحی است که توسط نیک بستروم، نویسنده کتاب مشهوری در زمینه هوش مصنوعی به نام Super intelligence ابداع شدهاست. وی فراهوشمند را چنین تعریف میکند: "هر عقلی که از عملکرد شناختی انسان تقریباً در همه حوزههای مورد علاقه فراتر رود."
چیزی مانند SkyNet را در فیلم نابودگر تصور کنید. مردم اغلب دوست دارند در مورد این موضوع به همراه سوالات اخلاقی در مورد هوش مصنوعی صحبت کنند، اما درست مثل هوش عمومی، در حال حاضر چیزی جز داستانی علمی و تخیلی نیست.
دانستن درباره این سه نوع هوش مصنوعی میتواند هنگام مطالعه یا بحث در مورد هوش مصنوعی در مباحث مختلف مفید باشد. اغلب، بسیاری از این مفاهیم مطرح میشوند و دانستن هر یک از این مفاهیم مفید است تا بتوانید از گفتگو / مقاله ارزش کسب کنید. به زبانی دیگر، هوش مصنوعی، از دیدگاه فنی، هر قطعه نرمافزاری یا الگوریتمی است که نوعی از هوش را تقلید میکند. روشهای مختلفی وجود دارد که دانشمندان به این هدف رسیدهاند. هوش مصنوعی میتواند مجموعهای از قوانین رمزنگاری شده باشد که نوعی استدلال منطقی را شبیه سازی میکند، یا میتواند مجموعهای از دستورالعملها برای نحوه رفتار یک شخصیت بازی ویدیویی باشد.
با این حال، هوش مصنوعیای که امروزه روی تلفن خود به عنوان دستیار میبینید، توسط یادگیری ماشین نیرو گرفته است و در چشمگیرترین موارد هوش مصنوعی، به احتمال زیاد توسط یادگیری عمیق نیرو میگیرد. همانطور که گفته شد، هوش مصنوعی مفهومی است که مجموعهای از روش ها و فن آوریهای مختلف را در بر میگیرد. یادگیری ماشین یا Machine Learning یا ML یکی از آنهاست. و در داخل مبحث یادگیری ماشین بسیاری از تکنیک ها وجود دارد که یکی از آنها یادگیری عمیق یا Deep Learning میباشد.
میتوانید در مورد آن اینگونه فکر کنید:
یادگیری ماشین چیست؟
یادگیری ماشین نوعی هوش مصنوعی (و زیرمجموعهای از آن) است که در تجزیه و تحلیل دادهها به منظور سازگاری با آن و تصمیم گیریهای هوشمندانه به صورت تخصصی فعالیت میکند. به زبانی بهتر، ML یک فناوری یا مجموعهای از الگوریتمها است که از دادهها میآموزد.
با یک الگوریتم یادگیری ماشین، سیستم میتواند یک مجموعه داده را تجزیه و تحلیل کند و الگوهای موجود در آن را بیاموزد. به زبان ساده، این هوش مصنوعی ساخته شده تا بسیاری از موارد را مشاهده و متوجه شود و سپس بر اساس اطلاعاتی که دریافت کرده، یک یا چند دوره عملی را انجام دهد. این امر از دلایلی است که امروزه داده ها بسیار مهم تلقی میشوند.
هرچه رایانه داده بیشتری مصرف کند، با استفاده از یادگیری ماشین میتواند الگوها و روابط خود را بیشتر بیاموزد. بنابراین، اگر رایانه "درک" خوبی از یک مجموعه داده داشته باشد، میتواند "هوشمندانه" در مورد آن پیشبینی کند.
اینها تعاریف کلی اصطلاحاتی است که در مباحث مختلف ML استفاده خواهند شد.
- الگوریتم: مجموعهای از قوانین و تکنیک های آماری برای یادگیری الگوها از داده ها استفاده میشود.
- مدل: یک مدل با استفاده از الگوریتم یادگیری ماشین آموزش مییابد.
- متغیر پیش بینی یا: Predictor Variable ویژگی داده هایی است که میتواند برای پیشبینی خروجی استفاده شود.
- متغیر پاسخ یا : Response Variable متغیر خروجی یا ویژگی که باید با استفاده از متغیرهای پیش بینی، پیشبینی شود. به زبان ساده، این متغیر همان چیزی است که شما سعی در پیش بینی آن دارید.
- داده آموزش یا : Training Data مدل یادگیری ماشین با استفاده از آموزش داده ها، ساخته میشود.
- داده تست یا: Testing Data مدل یادگیری ماشین با استفاده از تست داده، آزمایش شده است.
فرآیند یادگیری ماشین:
این روندی است که شما باید هر زمان که میخواهید مشکلی را با یادگیری ماشین حل کنید، طی کنید. این فرآیند مسیری است که یک توسعه دهنده یادگیری ماشین طی میکند و یادگیری آن فقط برای درک فرآیند مهم است.
- هدف گذاری: سعی در پیش بینی چه چیزی دارید؟ ویژگیهای هدف چیست؟ دادههای ورودی چیست؟ با چه نوع مشکلی روبرو هستید؟
- جمع آوری دادهها: چه نوع دادهای برای حل مشکل لازم است؟ آیا این دادهها موجود هستند؟ چگونه میتوانید این داده ها را به دست آورید؟
- آماده سازی دادهها: تمیز کردن داده ها شامل خلاص شدن از تناقضات موجود در مجموعه دادهها برای مناسب سازی آنها در بحث محاسبه است. شما در حال تبدیل دادهها به یک قالب مطلوب هستید.
- تجزیه و تحلیل دادههای اکتشافی: درک الگوها و روند داده ها. تمام بینشهای مفید در مورد دادهها و همبستگیها در این مرحله قابل درک هستند. این مرحله در فرآیند یادگیری ماشین بسیار مهم است.
- ساخت یک مدل یادگیری ماشین:دادههای خود را به داده های تست و آموزش تقسیم کرده و برای آموزش الگوریتم خود قرار دهید. شما میتوانید یکی از بسیار الگوریتمهای یادگیری ماشین را براساس بهترین گزینه برای این مسئله انتخاب کنید.
- ارزیابی و بهینهسازی مدل: آزمایش صحت مدل و سپس تنظیم مدل و بهینه سازی آن، می تواند خواسته شما را بطور دقیق پیشبینی کند. پس از آزمایش مدل خود، باید از صحت الگوریتم خود، نیز اطمینان پیدا کنید.
- پیشبینیها: مرحلهای است که شما از الگوریتم خود که قبلاً آموزش داده شده، برای یک نتیجهگیری ارزشمند استفاده میکنید.
انواع یادگیری ماشین:
- یادگیری نظارت شده یا : Supervised Learningتکنیکی که در آن ما با استفاده از دادههایی که دارای برچسب خوبی هستند، ماشین ها را آموزش میدهیم.
- یادگیری بدون نظارت یا: Unsupervised Learning تکنیکی است که در آن ماشین با استفاده از اطلاعات غیر برچسب دار، آموزش دیده و ما به الگوریتم اجازه میدهیم بدون راهنمایی بر اساس آن اطلاعات عمل کند.
- یادگیری تقویتییا: Reinforcement Learning بخشی از یادگیری ماشین است که در آن یک عامل در یک محیط قرار گرفته و یاد میگیرد با انجام برخی اقدامات و مشاهده پاداشهایی که از آن اعمال میگیرد، در این محیط رفتار کند.
انواع مشکلات حل شده با یادگیری ماشین:
- رگرسیون یا: Regression بطور خلاصه برای پیشبینی که در آن خروجی یک مقدار پیوسته است (مانند یک عدد) استفاده میشود. به عنوان مثال، پیش بینی قیمت چیزی میتواند یک مشکل رگرسیون باشد.
- طبقهبندییا: Classification برای نوعی از پیش بینی استفاده میشود که در آن خروجی یک مقدار طبقهای است. به معنای ساده، شما پیش بینی میکنید که یک چیز به چه گروهی تعلق دارد. به عنوان مثال، تعیین اینکه عکس یک سگ است یا یک گربه یک مشکل طبقهبندی است.
- خوشهبندی یا: Clustering برای گروهبندی موارد مشابه یا نقاط داده در خوشهها استفاده میشود. این موضوع میتواند مانند گرفتن یک دسته عکس از گربهها و سگ ها و گروهبندی گربهها با هم و سگ ها با هم باشد. (الگوریتم نیازی به تشخیص اینکه کدام عکس ها گربه است و کدام یک سگ است نداشته، فقط باید تشخیص دهد که تصاویر یکسان هستند) نوع حیوانات مانند یکدیگر ممکن است شبیه به طبقهبندی باشد اما در آن تفاوت ظریفی وجود دارد.
شبکههای عصبی (یادگیری عمیق) چیست؟
برای مدت زمان طولانی، الگوریتمهای یادگیری ماشین موانع قابل توجهی در تواناییهای آنها بودند. برخی وظایف وجود داشت که برای الگوریتم های یادگیری ماشین بسیار دشوار تلقی میشدند. وظایفی که به تفکر پیچیده نیاز داشتند، غالباً برای یادگیری ماشین ممنوع تلقی میشدند. چیزی در مورد روند فکر انسان وجود داشت که بسیار بهتر از ماشین بود.
همین بینش ایدهای در پشت شبکههای عصبی بود. ایده یک شبکه عصبی تقلید از روند فکر مغز انسان با ماشین برای دستیابی به نتایج مشابه است. کل این مدل بر اساس چگونگی شلیک سلولهای عصبی در یک شبکه به هم پیوسته در مغز انسان مدل شده است، از این رو "شبکه های عصبی" نام گذاری شده است.
شبکههای عصبی یکی از مهم ترین بخشهای حوزه هوش مصنوعی است که به عنوان یادگیری عمیق شناخته میشود و ممکن است دشوارترین قسمت هوش مصنوعی باشد، بنابراین هنگام یادگیری در مورد آن آهسته حرکت کنید و صبور باشید. درک آن ممکن است مدتی طول بکشد، اما وقتی این کار را انجام دهید، مسلماً یکی از بزرگترین موانع یادگیری در مورد هوش مصنوعی را پشت سر خواهید گذاشت.
در اواسط قرن بیستم، برخی از افراد بسیار باهوش شروع به تعجب کردند که بهترین روش برای تقلید از هوش چیست و این مسئله بطور طبیعی به این سوال منجر شد: " قدرتمندترین شکل هوش که میشناسیم کدام است؟" پاسخ، مغزمان است! و بنابراین اولین تلاش ها برای مدل سازی مغز ما به روشی ریاضی به بار نشست.
سیستمهای یادگیری عمیق، برخلاف سایر سیستم های یادگیری ماشین که قبلاً طراحی شده بودند، برای تولید دادهها بسیار به ضرب ماتریس اعتماد میکنند. به همین ترتیب، GPU های تجاری معمولاً بهترین سخت افزار برای این سیستم ها هستند، زیرا آنها قادر به تأمین سطح بالایی از نیازهای پردازش مورد نیاز برای حفظ کارایی هستند.
تفاوت یادگیری عمیق و یادگیری ماشین:
شاید مهم ترین تمایزی که باید یاد بگیریم تفاوت بین یادگیری ماشین و یادگیری عمیق باشد. اول از همه، همانطور که قبلا ذکر شد، یادگیری عمیق نوعی یادگیری ماشین است، از لحاظ فنی یک نوع یا زیرمجموعه ای از آن. ولی از طرفی یادگیری ماشین، همیشه یادگیری عمیق نیست. تمایز عمدتاً به نحوه ساخت هر دو مربوط میشود.
یادگیری ماشین در همان محیط رایانهای توسعه یافته است که بسیاری از نرم افزارهای ما در طی چند دهه گذشته ساختهاند. به همین ترتیب، به نوعی خطی است و حتی اگر برای انطباق با قانون مور (Moore) ساخته شده باشد، باز هم توسط درختان تصمیم و الگوریتم های آن محدود میشود.
از طرف دیگر، یادگیری عمیق، تمام الگوریتم های خود را در یک شبکه عصبی قرار میدهد. یادگیری عمیق برای محاسبات موازی سطح بالا طراحی شده است، چیزی که اکنون میتوانیم آن را به عنوان نسل بعدی در یادگیری ماشین در نظر بگیریم.
یک روش نسبتاً قابل اعتماد برای تعیین اینکه آیا از سیستم یادگیری عمیق استفاده میشود، ارزیابی پیچیدگی وظیفه هوش مصنوعی است. معمولاً هرچه متغیرهای غیر عددی و دلخواه بیشتری در نظر گرفته شوند، احتمال وجود یک سیستم یادگیری عمیق بیشتر است.
به عنوان مثال، توصیه های Netflix به اندازه ترجمه زبان پیچیده نیستند، حتی اگر از دادههای جمع شده از کل پایگاه کاربران اینترنت یاد بگیرند. این تمایز میتواند برای دو وظیفه مشابه، مانند دو سیستم جداگانه رانندگی خودکار اعمال شود. موردی که بیشتر به خرد کردن داده های حسگر متکی است باید سیستم یادگیری ماشین عمومی باشد، و یادگیری عمیق بیشتر به نشانه های محیطی قابل مشاهده توسط انسان تکیه میکند، چیزی مانند آنچه تسلا در حال حاضر در حال توسعه است.
آموزش تقویتی یا Reinforcement Learning:
این شاخه که به آن به صورت مختصر مفیدی در بحث ML پرداختیم، یک شاخه دیگر در هوش مصنوعی است که لزوماً به ML و DL متصل نیست، اما میتواند باشد. آموزش تقویتی الگوی متفاوتی را برای ایجاد مدل هایی ارائه میدهد که میتواند الگوهای داده هایی را بیاموزد که دقیقاً به اندازه تصاویر گربه ها و سگ ها سیاه و سفید نیستند.
این شاخه اغلب و برجسته ترین مورد برای ایجاد عواملی است که میتوانند بازی های ویدیویی را انجام دهند و معماها را حل کنند. ایده اصلی در پشت آن تعریف یک سیستم پاداش خاص برای مسئله موجود و استفاده از الگوریتمی است که میآموزد چگونه این پاداش را به حداکثر برساند. این روش میتواند منجر به برخی از کاربردهای بسیار جالب شود. OpenAI ، یک شرکت هوش مصنوعی عمومی که توسط ایلان ماسک تاسیس شده است و کارهای چشمگیری در این زمینه را انجام میدهد.
نتیجهگیری:
هوش مصنوعی تنها یک مفهوم بزرگ است که به دستهای از تکنیک های مختلف برای تلاش برای تقلید از نوعی هوش اشاره دارد. در بیشتر موارد، شبکههای عصبی، یادگیری عمیق و یادگیری ماشینی هستند که پشت برنامههایی هست که همه جا در اطراف خود میبینیم.