با شات ایکس همیشه در فناوری بروز باشید
برنامه نویسی هوش مصنوعی با سی شارپ
عکس : برنامه نویسی هوش مصنوعی با سی شارپ

در این مطلب با برنامه نویسی هوش مصنوعی سی شارپ آشنا می شوید.

زیرمجموعه های یادگیری ماشینی

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

شبکه های عصبی

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

پردازش زبان طبیعی (NLP)

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

یادگیری عمیق

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

صنایعی که در حال حاضر از هوش مصنوعی استفاده می کنند

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

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

برندهای بزرگی مثل IBM، آمازون، مایکروسافت و اکسنچر (Accenture) در حال حاضر از هوش مصنوعی استفاده می کنند و همگی شان یادگیری ماشینی را در مقیاسی بزرگ برای ایجاد نوآوری اعمال کرده اند. در آینده صنایع بیشتر و بیشتری از هوش مصنوعی و یادگیری ماشینی در جهت رشد فوق العاده در بازار کار استفاده خواهند کرد. با این حال ون لوون (Van Loon) به این مسئله اشاره کرده است که لازم نیست برای کار کردن با هوش مصنوعی یا یادگیری ماشینی در یک شرکت بزرگ کار کنید. انواع و اقسام صنایع از جمله حمل و نقل، تولید، انرژی، کشاورزی و امور مالی در حال حرکت به سمت این تکنولوژی هستند.

چگونه می‌توان از هوش مصنوعی شروع کرد؟

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

ون لوون پیشنهاد می کند کسانی که در این زمینه تازه واردند با ریاضیات شروع کنند و تمام دوره های مربوط به یادگیری ماشینی را بگذرانند. به علاوه اگر کسی می خواهد به هوش مصنوعی تسلط پیدا کند باید مهارت های رایانه ای قوی‌ و همچنین مهارت های برنامه‌نویسی مثل برنامه‌نویسی C++ داشته و از الگوریتم ها سر در بیاورد. شما همچنین باید این آموزش را با دانش عمومی کسب و کار تکمیل کنید. مهم تر از همه اینکه مطمئن شوید هر آموزشی که به شما داده می شود عملی باشد.

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

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

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

نارایانان (Narayanan) به این نکته اشاره کرده است که شرکت Simplilearn با ارائه آموزش هایی که روی یادگیری قاطع و عملی تاکید دارد، یک مسیر یادگیری از مبتدی تا خیلی پیشرفته را ارائه کرده است.

یکی از معروف ترین زبان های یادگیری فعلی C# است، که برای برنامه های زیادی کاربرد دارد. برای استفاده از قدرت یادگیری ماشینی در C#، مایکروسافت بسته‌ای به نام ML.NET ساخته است که تمام قابلیت های اساسی یادگیری ماشینی را فراهم می کند.

ML.NET یک چارچوب یادگیری ماشینی منبع-باز و چند سکویی است و با ویژگی های زیر همراه است:

  • این چارچوب برای توسعه دهندگان .Net ساخت شده است. شما می توانید از مهارت C# یا F# و ML.net در هر .Net کاربردی استفاده کنید.
  • ML.NET شامل امکاناتی مثل یادگیری ماشینی خودکار (AutoML) و ابزاری مثل ML.NET CLI والگوسازی ML.NET است که ادغام یادگیری ماشینی را درون نرم افزار کاربردی تان حتی راحت تر هم می کند.
  • چارچوب و زیست بوم نسبتاً توسعه پذیرند به طوری که می توانید کتابخانه های معروف دیگری مثل Tensorflow و موارد دیگر را در این زمینه پیدا کنید.
  • در نهایت اینکه این چارچوب قابل اعتماد، خصوصی و اثبات شده است. به این معنا که چنین چارچوبی درون برنامه کار می کند و همه چیز با برنامه خودتان پیش می رود و اتفاق می‌افتد.

تاریخچۀ نسخۀ ML.NET

ML.NET برای اولین بار توسط شرکت مایکروسافت در ماه می ۲۰۱۸ برای انتشار عمومی معرفی شد. با این حال مایکروسافت به صورت داخلی از فناوری ML.net طی چند سال اخیر در برخی محصولاتش مثل Bing Ads، آفیس، ویندوز، Azure و غیره استفاده کرده است. بعد از اولین انتشار عمومی ML.Net در می ۲۰۱۸، مایکروسافت هر ماه یک نسخۀ جدید از آن را منتشر می کرد تا اینکه بالاخره در ۶ نوامبر ۲۰۱۹، مایکروسافت نسخۀ ML.Net 1.4 را منتشر کرد.

اولین نسخۀ پایدار یعنی نسخه۱٫۰ از این چارچوب در سال ۲۰۱۹ و در Build (کنفرانس توسعه دهندگان) رونمایی شد. این نسخه شامل اضافه شدن یک ابزار Model Builder(الگو سازی) و قابلیت AutoML (یادگیری ماشینی خودکار) بود. Build 1.3.1 یک پیش نمایش از آموزش شبکۀ عصبی عمیق را معرفی کرد که از اتصال C# برای Tensorflow و یک بازکنندۀ پایگاه داده استفاده می کرد که امکان الگوسازی در پایگاه داده را فراهم می کرد. پیش نمایش ۱٫۴٫۰ امتیازدهی ML.NET را در پردازنده های ARM و آموزش شبکۀ عصبی عمیق با GPU را برای ویندوز و لینوکس اضافه کرد.

نسخۀ فعلی ۱٫۴ است. ابتدا مطمئن شوید که حداقل .NET Core 3.0 ML.NET که همچنین بر روی چارچوب .NET کار می کند را نصب کرده اید. توجه کنید که ML.NET در حال حاضر باید بر روی پردازندۀ ۶۴ بیت اجرا شود.

پیش نمایش ML.NET 1.4 ویژگی جدیدی از بازکنندۀ پایگاه داده را عرضه می کند. این پیش نمایش بازکنندۀ پایگاه دادۀ بومی‌ای را معرفی می کند که امکان آموزش مستقیم در برابر پایگاه های داده رابطه‌ای را فراهم می نماید. شما می توانید از هر نوع سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) مثل سرور SQL، پایگاه دادۀ Azure SQL، Oracle، SQLite، PostgreSQL و غیره استفاده کنید.

همچنین این نسخه امکانات « طبقه بندی تصویر با آموزش مجدد شبکه های عصبی عمیق (پیش نمایش)» را معرفی کرد. این قابلیت امکانی جدید است که یادگیری انتقال DNN بومی را با ML.NET فعال می کند و هدفش طبقه بندی تصویر به عنوان اولین سناریوی سطح بالاست. به این ترتیب مثلا می توانید مدل طبقه بندی کنندۀ تصویر سفارشی خودتان را با استفاده از آموزش بومی یک مدل TensorFlow از ML.NET API با تصاویر خودتان بسازید.

از ML.NET چه استفاده‌ای می شود؟

ML.NET یک چارچوب یادگیری ماشینی برای توسعه دهندگان .NET است؛ شما می توانید از ME.NET برای ادغام الگوهای یادگیری ماشینی سفارشی درون .NET کاربردی تان استفاده کنید. علاوه بر این می توانید از ML.NET برای خیلی از سناریوها مثل تجزیه و تحلیل احساسات، پیش بینی قیمت، توصیۀ محصول، پیش بینی فروش، طبقه بندی تصویر، تشخیص اشیا، و موارد دیگر استفاده کنید.

مزایا

در ادامه به مزایای اصلی ML.Net اشاره می کنیم.

ML.Net می تواند حجم زیادی از مجموعۀ داده ها را چک کند و سپس بر اساس آن داده ها، روندها و الگوهای ممکن نتایج را فراهم آورد.

این فرآیند برای تجزیه و تحلیل داده ها به طور کاملا خودکار انجام می گیرد و طی اجرای پروژه‌های ML.Net به هیچگونه تعاملات انسانی نیاز نیست.

با افزایش تجربه از نظر حجم نمونه داده، الگوریتم نوشته شده در ML.Net دقیق‌تر و باکیفیت‌تر می شود.

الگوریتم های ML.Net برای مدیریت داده ها بسیار کارآمدند. این الگوریتم ها چند-بُعدی و چند-نوعی هستند.

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

نصب ML.NET

اگر می خواهید از ML.NET برای پروژه تان استفاده کنید باید حداقل .NET Core 3.0 را داشته باشید، پس مطمئن شوید که آن را روی رایانه تان از قبل نصب کرده اید. نکته دیگری که باید بدانید این است که ML.NET باید روی پردازندۀ ۶۴ بیتی اجرا شود. پس حتما موقع ساختن پروژۀ .NET Core تان این مورد را بخاطر داشته باشید.

نصب ML.NET با کنسول مدیریت بسته بسیار ساده است. تنها چیزی که باید از آن استفاده کنید دستور زیر است:

Install-Package Microsoft.ML

این امر با NET Core CLI هم قابل دستیابی است. فقط اگر می خواهید از این روش استفاده کنید مطمئن شوید که .NET Core SDK را نصب دارید و بعد این دستور را اجرا کنید:

dotnet add package Microsoft.ML

از طرف دیگر می توانید از گزینه Visual Studio Manage NuGet Package استفاده کنید:

https://techiethoughtss.files.wordpress.com/2020/01/ml_1.png?w=1024

بعد از آن، دنبال Microsoft.ML بگردید و آن را نصب کنید.

https://techiethoughtss.files.wordpress.com/2020/01/ml_2.png?w=1024

بسته به استفاده‌ای که از آن خواهید داشت ممکن است لازم باشد برخی بسته های اضافی مثل Microsoft.ML.ImageAnalytics، Microsoft.ML.TensorFlow یا Microsoft.ML.OnnxTransformer را هم نصب کنید.

حالا کاملا آماده‌اید که با استفاده از چارچوب ML.NET مدل خودتان را شروع کنید.

لطفا بی رودروایسی نظرتان را در مورد این مقاله یا هر چیزی که حس می‌کنید دلتان می‌خواهد به ما بگویید کامنت کنید. اگر از این مطلب خوشتان آمد فراموش نکنید که آن را با دوستانتان هم به اشتراک بگذارید. ممنون.

منبع نوشتار : سایت جالب آموز

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