فیدیبو نماینده قانونی شبکه و بیش از ۶۰۰ ناشر دیگر برای عرضه کتاب الکترونیک و صوتی است .
کتاب یادگیری ماشینی

کتاب یادگیری ماشینی
سفری به اعماق هوشمندی

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


فقط قابل استفاده در اپلیکیشن‌های iOS | Android | Windows فیدیبو

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

درباره کتاب یادگیری ماشینی

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

ادامه...
  • ناشر شبکه
  • تاریخ نشر
  • زبان فارسی
  • حجم فایل 1.71 مگابایت
  • تعداد صفحات ۰ صفحه

بخشی از کتاب یادگیری ماشینی

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

پیاده سازی درست و منطقی

۶ سوء تفاهم درباره یادگیری ماشینی



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

اشتباهات

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

به رفتارهای ناپایدار غیرمنتظره دقت کنید



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

غفلت از مشق شب، عدم درک درست داده ها



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

توسعه، آزمایش و در نهایت اجرایی کردن مدل



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

نادیده گرفتن اشتباهات



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

داده های بیشتری انتخاب کنید



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

قاعده خارج از اصول طراحی نکنید



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

mlpack 2

mlpack 2 کتابخانه یادگیری ماشینی گسترش پذیری است که با زبان سی پلاس پلاس در سال ۲۰۱۱ نوشته شده است. (شکل ۱۱) هدف از طراحی این کتابخانه سهولت استفاده و گسترش پذیری اعلام شده است. mlpack دسترسی به الگوریتم های موجود را از طریق برنامه های ساده و اجرایی خط فرمان و کلاس های سی پلاس پلاس امکان پذیر می سازد. این مکانیزم می تواند با راه حل های یادگیری ماشینی عظیم تر ادغام شود. همچنین محققان و کاربران حرفه ای می توانند با استفاده از ماژول های زبان سی پلاس پلاس به راحتی تغییرات مورد نیاز خود را به طور داخلی در الگوریتم ها پیاده سازی کنند. این رویکرد با هدف رقابت در برابر کتابخانه های یادگیری ماشینی بزرگ تر در نظر گرفته شده است.



شکل ۱۱: نمایی از یک برنامه mlpack2

نسخه ۲ این محصول دارای تعداد زیادی ویژگی جدید و فاکتورگیری مجدد است. در نسخه جدید تعدادی الگوریتم تازه معرفی شده است و تعدادی از الگوریتم های موجود با هدف افزایش سرعت و روان تر شدن دستخوش تغییراتی شده اند. مقید سازی نکردن به زبان های مختلف از جمله معایب این کتابخانه هستند. کاربران زبان های برنامه نویسی غیر سی پلاس پلاس، همچون R یا پایتون نمی توانند از mplack استفاده کنند، مگر اینکه توسعه دهنده ای پیدا شود تا این کتابخانه را برای زبان هدف آماده سازی کند. برای مثال برای استفاده از این کتابخانه در R پروژه ای به نام RcppMLPACK طراحی شده است. این کتابخانه بیشتر برای محیط های بزرگی کاربرد دارد که یادگیری ماشینی راهکاری برای حل مشکلات آن ها شناخته می شود.

Marvin

استیو جوروستون گفته است: «کلان داده ها دردسر بزرگی هستند و یادگیری عمیق کلید حل این دردسر بزرگ است.» اگر به تحولات دنیای صنعت و فناوری نگاهی بیندازیم، آنگاه به این حقیقت آگاه می شویم که هر ده سال یک بار تحولی عظیم در این زمینه رخ داده است. اگر دهه ۹۰ میلادی تا ابتدای سال ۲۰۰۰ میلادی دوران حکم فرمایی اینترنت بود، از سال ۲۰۰۰ تا سال ۲۰۱۰ امپراطوری تلفن های هوشمند بر همه جا سیطره گسترانیده بود، از این سال به بعد دوران حکمرانی یادگیری ماشینی آغاز شده است. دورانی که تا سال ۲۰۲۰ ادامه خواهد داشت و زندگی مدرن ما را دستخوش تغییرات اساسی خواهد کرد. (شکل ۱۲) Marvin یکی دیگر از محصولات نسبتاً جدید این حوزه است. چارچوب شبکه عصبی ماروین، محصولی است که Princeton Vision Group آن را طراحی کرده است.



شکل ۱۲: سیر تحول فناوری های از سال ۱۹۱۰ تا سال ۲۰۲۰

(شکل ۱۳) این چارچوب با زبان سی پلاس پلاس نوشته شده و بر مبنای چارچوب پردازش گرافیکی کودا عمل می کند. با وجود حداقل کدها، ماروین همراه با تعدادی مدل ازپیش ساخته شده و با قابلیت استفاده مجدد در اختیار کاربران قرار گرفته است و کاربران بر حسب نیاز خود قادر به سفارشی سازی آن ها هستند.



شکل ۱۳: Marvin شبکه عصبی مناسب برای سخت افزارهای نه چندان قدرتمند

این چارچوب در مقایسه با شبکه های عمیق عصبی مشابه همچون AlexNet، VGG، GoogLeNet سریع ترین عملکرد را از خود نشان داده است. بهینه سازی برای مصرف کمتر پردازنده گرافیکی، پشتیبانی از پردازنده های گرافیکی چندگانه، فیلتر مجازی ساز، پشتیبانی از پلتفرم های مختلف همچون لینوکس، ویندوز و مک، پیاده سازی، اجرای سریع و نظایر این ها، از ویژگی های این چارچوب هستند.

Neon

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



شکل ۱۴: نمایی از پلتفرم ارائه شده از سوی nervana درخصوص یادگیری عمیق

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

۱۳ چارچوب منبع باز برای کسب مهارت در یادگیری ماشینی



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

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

ApacheSpark MLib

«Apache Spark» به دلیل اینکه بخشی از خانواده هادوپ است، ممکن است در مقایسه با رقبای خود شهرت بیشتری داشته باشد. در حالی که این چارچوب پردازش داده های درون حافظه ای خارج از هادوپ متولد شد، اما به خوبی موفق شد در اکوسیستم هادوپ خوش بدرخشد. (شکل ۱) Spark یک ابزار یادگیری ماشینی رونده است. این مهم به لطف کتابخانه الگوریتم های روبه رشدی که برای استفاده روی داده های موجود در حافظه استفاده می شوند، به وجود آمده است؛ الگوریتم هایی که از سرعت بالایی برخوردار هستند.



شکل ۱: Spack MLib یک کتابخانه یادگیری ماشینی گسترش پذیر است

الگوریتم های مورد استفاده در اسپارک دائماً در حال گسترش و تجدیدنظر هستند و هنوز به عنوان موجودیت کاملی خود را نشان نداده اند. سال گذشته در نسخه ۱.۵، تعداد نسبتاً زیادی الگوریتم جدید به این ابزار یادگیری ماشینی افزوده شد، تعدادی از آن ها الگوریتم های بهبود یافته بودند، در حالی که تعداد دیگری در جهت تقویت پشتیبانی از MLib که در پایتون استفاده می شود، عرضه شده اند؛ پلتفرم بزرگی که به یاری کاربران رشته آمار و ریاضیات آمده است. Spark نسخه ۱.۶ می تواند کارهای Spark Ml را از طریق یک پایپ لاین (مجموعه ای از عناصر پردازشی داده ای) پایدار به حالت تعلیق (Suspend) درآورده و مجدداً از حالت تعلیق خارج کند و به مرحله اجرا درآورد. آپاچی اسپارک متشکل از ماژول های یادگیری ماشینی (MLib)، پردازش گراف (GraphX)، پردازش جریانی (Spark Streaming) و Spark SQL است.

Apache Singa

چارچوب های یادگیری عمیق، بازوی قدرتمند یادگیری ماشینی به شمار می روند و توابع قدرتمندی را در اختیار یادگیری ماشینی قرار می دهند. قابلیت هایی همچون پردازش زبان طبیعی و تشخیص تصاویر از جمله این موارد هستند. Singa به تازگی به درون Apache Incubator راه پیدا کرده است؛ چارچوب منبع بازی که با هدف ساده سازی آموزش مدل های یادگیری عمیق روی حجم گسترده ای از داده ها استفاده می شود. (شکل ۲) Singa مدل برنامه نویسی ساده ای برای آموزش شبکه های یادگیری عمیق بر مبنای کلاستری از ماشین ها ارائه می کند.



شکل ۲: نمایی از یادگیری ماشینی Singa

این چارچوب از انواع رایجی از آموزش ها همچون شبکه عصبی پیچیده (Convolutional neural network)، ماشین بولتزمن محدود (Restricted Boltzmann machine) و شبکه عصبی بازگشتی (Recurrent neural network) پشتیبانی می کند. مدل ها می توانند هم زمان یکی بعد از دیگری یا در زمان های مختلف و پهلوبه پهلو (side by side) آموزش ببینند. انتخاب هر یک از این روش ها به این موضوع بستگی دارد که کدام یک برای حل مشکل بهتر جواب می دهند. Singa می تواند فرایند کلاستربندی با Apache Zookeeper را ساده تر کند.

Caffe

چهارچوب یادگیری عمیق Caffe بر مبنای بیان (expression)، سرعت (speed) و پیمانه ای بودن (modularity) ساخته شده است. گفتنی است در دنیای کامپیوترها، modularity اشاره به طراحی کامپیوترها در قالب بلوک ساختمانی دارد. این کار با هدف افزایش کارایی و کیفیت تجهیزات انجام می شود. این پروژه اولین بار در سال ۲۰۱۳ و به منظور تسریع در پروژه بینایی ماشینی طراحی شد. (شکل ۳) Caffe از آن زمان به بعد توسعه پیدا کرده و از برنامه های دیگری همچون گفتار و چندرسانه ای پشتیبانی کرده است.



شکل ۳: چارچوب یادگیری ماشینی Caffe، قدرتمند و ساده

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

Microsoft Azure ML Studio

با توجه به داده های حجیم و نیاز به مکانیزم قدرتمند محاسباتی، کلاود محیط ایده آلی برای میزبانی برنامه های یادگیری ماشینی به شمار می رود. مایکروسافت از مکانیزم پرداختی خاص خود در ارتباط با سرویس آژر و یادگیری ماشینی استفاده می کند؛ به طوری که کاربران در بیشتر نسخه های ماهیانه، ساعتی و رایگان می توانند از Azure ML Studio استفاده کنند. شایان ذکر است پروژه HowoldRobot نیز بر مبنای همین سامانه ساخته شده است. Azure ML Studio به کاربر اجازه ساخت و آموزش مدل های مطبوعش را می دهد. (شکل ۴) در ادامه توابعی در اختیار کاربران قرار می دهد که با استفاده از آن ها از سرویس های دیگر استفاده کنند.



شکل ۴: نمایی از محیط Microsoft Azure ML Studio

کاربران به ازای هر حسابی که برای یک مدل در اختیار دارند، به ۱۰ گیگابایت فضا دسترسی خواهند داشت. در کنار این فضای ذخیره سازی، مایکروسافت دسترسی به طیف گسترده ای از الگوریتم ها را برای کاربران امکان پذیر ساخته است؛ الگوریتم هایی که از سوی مایکروسافت یا شرکت های ثالث ارائه شده اند. البته به این نکته توجه کنید برای دسترسی به این چهارچوب لزوماً به حساب کاربری نیاز ندارید. مایکروسافت مکانیزمی را طراحی کرده است که در آن کاربران می توانند به طور ناشناس وارد شده و از Azure ML Studio به مدت هشت ساعت استفاده کنند.

Amazon Machine Learning

رویکرد کلی آمازون در خصوص سرویس های ابری بر مبنای الگوی خاصی قرار دارد. در این رویکرد آمازون سعی کرده است اصول زیربنایی را در اختیار مخاطبان خود قرار دهد تا کاربران با استفاده از آن ها، برنامه های سطح بالای خود را طراحی کنند و آگاه شوند که دقیقاً به چه چیزی نیاز دارند. الگویی که به این شکل از سوی آمازون ارائه شده است، اولین شکل از عرضه یادگیری ماشینی در قالب یک سرویس است و Amazon Machine Learning، اولین در نوع خود به شمار می رود. (شکل ۵)



شکل ۵: نمایی از عملکرد یادگیری ماشینی آمازون

این سرویس به داده های ذخیره شده در Amazon S۳، RedShift یا RDS متصل شده است و می تواند طبقه بندی دودویی، طبقه بندی چندکلاسی یا رگرسیون را بر مبنای داده هایی که یک مدل را ایجاد می کنند، به وجود آورد که این خدمات به میزان نسبتاً زیادی آمازون محور هستند.
با این حال، این سرویس دارای سه مشکل عمده است. اول آنکه این سرویس به داده های ذخیره شده در آمازون متکی است، دوم آنکه قابلیت وارد یا خارج کردن مدل های خروجی در آن وجود ندارد و سوم آنکه از مجموعه داده های بیش از ۱۰۰ گیگابایت برای آموزش مدل ها پشتیبانی نمی کند. با این حال، آمازون نشان داده است که چگونه یادگیری ماشینی می تواند از محصول تزیینی به محصول تجاری تبدیل شود.

Microsoft Distributed Machine Learning Toolkit see

بیشتر کامپیوترهایی که امروزه کاربران استفاده می کنند، مشکل عمده ای در ارتباط با یادگیری ماشینی دارند. توان پردازشی یک کامپیوتر منفرد برای سازمان دهی و مدیریت برنامه های یادگیری ماشینی کافی نیست. برای حل این مشکل می توان از ترفند خاصی استفاده کرد؛ به طوری که این کامپیوترها گردهم آمده و به یکدیگر متصل شوند. آن گاه برنامه های یادگیری ماشینی بر مبنای آن ها طراحی شده و اجرا شوند. ابزار یادگیری ماشینی توزیع شده DMTK، سرنام Distributed Machine Learning Toolkit، در اصل چارچوبی است که اسباب و وسایل لازم برای این مسئله را ارائه کرده است. (شکل ۶) به طوری که وظایف مربوط به یادگیری ماشینی را روی کلاستری از سیستم ها پخش کرده تا هر یک به بخشی از پردازش ها رسیدگی کنند.



شکل ۶: DMTK راهکار مایکروسافت در زمینه ایجاد سیستم های توزیع شده ویژه یادگیری ماشینی

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

Google TensorFlow

شبیه به پروژه DMTK، پروژه تانسورفلو گوگل یک چارچوب یادگیری ماشینی است که در مقیاس گره های چندگانه طراحی شده است. (شکل ۷) آنچنان که Google’s Kubernetes برای حل مشکلات داخلی گوگل طراحی شده بود، TensorFlow در قالب محصولی منبع باز ویژه کاربران عادی دنیای فناوری عرضه شده است.



شکل ۷: نمایی از دیارگرام کارکردی TensorFlow

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

Microsoft Computational Network Toolkit

اگر بر این باور هستید که DMTK پروژه جالب توجهی از سوی مایکروسافت به شمار می رود، باید بگوییم ابزار محاسباتی شبکه مایکروسافت در نوع خود جالب توجه است. CNTK یکی دیگر از ابزارهای یادگیری ماشینی است که از سوی مایکروسافت ارائه شده است. (شکل ۸) CNTK شبیه به TensorFlow گوگل است. از این رو به کاربران اجازه می دهد شبکه های عصبی خود را از طریق گراف ها ایجاد کنند. اگر CNTK را با چارچوب هایی نظیر Caffe، Theano و Torch مقایسه کنیم، مشاهده خواهیم کرد که CNTK در بعضی جهات نسبت به چارچوب های یادشده برتری هایی دارد. از جمله این برتری ها می توان به سرعت و توانایی استفاده موازی از پردازنده های چندگانه مرکزی و گرافیکی آن اشاره کرد.



شکل ۸: CNTK راهکار پیشنهادی مایکروسافت در خصوص ساخت شبکه های عصبی توسط کاربران

مایکروسافت ادعا کرده است که برای آموزش کورتانا در زمینه تشخیص سریع صدا از CNTK همراه با کلاسترهای GPU بر مبنای بستر آژر استفاده کرده است. CNTK در اصل پروژه ای توسعه یافته است؛ پروژه ای که در واحد تحقیقات مایکروسافت برای تشخیص گفتار طراحی شده است. CNTK اولین بار در آوریل ۲۰۱۵ در قالب پروژه ای منبع باز در اختیار کاربران قرار گرفت، اما در گیت هاب تحت مجوز MIT بازنشر شد.

Veles (Samsung)

Veles پلتفرم توزیع شده ای برای برنامه های یادگیری عمیق است. (شکل ۹) شبیه به TensorFlow و DMTK این چارچوب نیز به زبان سی پلاس پلاس نوشته شده است. اما از پایتون برای فرایندهای اتوماسیون و هماهنگی بین گره ها و برای انجام محاسبات از کودا یا OpenCL استفاده می کند. مجموعه داده ها قبل از آنکه به عنوان خوراکی برای تغذیه کلاسترها ارسال شوند، ابتدا تجزیه و تحلیل شده، به طور خودکار عادی سازی شده و برای کلاسترها ارسال می شوند.



شکل ۹: Veles پلتفرم توزیع شده ویژه یادگیری عمیق

طراحی Veles به گونه ای است که به کاربران اجازه می دهد با استفاده از توابع REST مدل آموزش دیده شده را بی درنگ در یک محصول استفاده کنند؛ با این فرض که سخت افزار خوبی در اختیار داشته باشند. در دنیای محاسبات، REST سرنام representational state transfer، سبکی از معماری نرم افزاری در محیط وب است. معماری REST سعی در القای کارایی، گسترش پذیری، سادگی، قابلیت حمل، قابلیت اطمینان و قابلیت دید دارد. به طور دقیق تر REST سبکی از معماری بوده که شامل مجموعه ای هماهنگ از اجزا، اتصال دهنده ها و عناصر داده ای است که درون یک سیستم توزیع شده ابری قرار دارند، جایی که بر نقش مولفه ها و مجموعه خاصی از تعامل میان عناصر داده ای به جای تمرکز بر جزئیات پیاده سازی، تاکید دارد. Veles از پایتون تنها برای کدهای ادغامی _ متصل کردن مولفه های غیرسازگار نرم افزاری _ استفاده نمی کند. آی پایتون _ در حال حاضر ژوپیتر _ ابزار مصورسازی داده ها (Data Visualization) و تحلیل می تواند برای مصورسازی و انتشار نتایج از یک کلاستر Velse استفاده شود. سامسونگ امیدوار است با عرضه این پروژه در قالب محصولی منبع باز تحرک بیشتری در توسعه آن به وجود آورد؛ به گونه ای که تعامل خوبی با پلتفرم های ویندوز و Mac OS X داشته باشد.

Brainstorm

Brainstorm پروژه ای است که بر مبنای تز پایان نامه دانشجویان مقطع دکترا، «کلاوس گرف» و «روپشف استیوستاوا» در موسسه هوش مصنوعی «Dalle Molle» واقع در لوگانو سوییس در سال ۲۰۱۵ طراحی شد. (شکل ۱۰) هدف از طراحی این پروژه پیاده سازی شبکه های عصبی عمیقی بود که بر پایه عوامل سرعت، انعطاف پذیری و سرگرم کننده ای اجرا شوند. BrainStorm با استفاده از زبان پایتون نوشته شده است. برایان استورم می تواند روی پلتفرم های مختلف اجرا و همچنین برای انجام محاسبات مختلف استفاده شود.



شکل ۱۰: BrainStorm راهکاری جدید ویژه محاسبات و پلتفرم ها مختلف

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

نظرات کاربران درباره کتاب یادگیری ماشینی

زیبا بود????????????
در 2 سال پیش توسط aba...383