مجله هوش مصنوعی

آخرین اخبار و تکنولوژی های هوش مصنوعی را در اینجا بخوانید.

مجله هوش مصنوعی

آخرین اخبار و تکنولوژی های هوش مصنوعی را در اینجا بخوانید.

10 واقعیت درباره یادگیری ماشین


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

واقعیت ۱: دانشمندان داده و مهندسان یادگیری ماشین ۶۰ الی ۷۰ درصد زمان‌شان را صرف رفع مسائل کیفیت داده می‌کنند.

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

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

واقعیت ۲: مهندسان یادگیری ماشین زمانی برای تنظیم هایپرپارامترها اختصاص نمی‌دهند.

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

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

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

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

واقعیت ۴: تنظیم هایپرپارامتر چالش بزرگی در یادگیری بدون نظارت است.

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

واقعیت ۵: یادگیری ماشین خودکار نمی‌تواند جایگزین دانشمندان داده شود.

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

نکته کلیدی: چندی پیش، مقاله‌ای درباره یادگیری ماشین خودکار منتشر کردم. این مقاله می‌تواند اطلاعات بیشتری در اختیار علاقمندان قرار دهد. به لینک زیر مراجعه کنید.

واقعیت ۶: مدل‌های یادگیری ماشین Scikit-learn مثل تنسورفلو در صنعت کاربرد گسترده‌ای ندارند.

نکته دیگر درباره یادگیری ماشین این است که اگرچه ابزارهای ارزیابی Scikit-learn از سازگاری بسیار بالایی برخوردارند، اما کاربرد گسترده‌ای در صنعت ندارند. شبکه های عصبی به خوبی در Scikit-learn اجرا نمی‌شوند. Scikit-learn از GPU پشتیبانی نمی‌کند. سایر الگوریتم‌های موجود در عملکرد ضعیف‌تری نسبت به کتابخانه‌هایی مثل XGBoost دارند. همچنین، Scikit-learn عملکرد کُندی در دیتاست‌های بزرگ از خود نشان داده است. در مقابل، تنسورفلو گزینه‌های مناسبی برای شبکه‌های عصبی ارائه می‌کند.

نکته کلیدی: اگر تازه با یادگیری ماشین آشنا شده‌اید، توصیه می‌کنم در ابتدا Scikit-learn را یاد بگیرید تا دانش پایه‌ای خوبی برای ادامه مسیر یادگیری‌تان کسب کرده باشید. سپس، یادگیری کتابخانه تنسورفلو را در اولویت کاری‌تان قرار دهید.

واقعیت ۷: نیازی نیست دانشمندان داده از مسائل ریاضی الگوریتم‌های یادگیری ماشین آگاهی داشته باشند.

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

واقعیت ۸: در یادگیری ماشین، هیچ برنده‌ی مشخصی بین R و پایتون وجود ندارد.

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

واقعیت ۹: SQL مهارت اصلی مهندس یادگیری ماشین است.

چون %۷۰ یادگیری ماشین به کار با داده مربوط می‌شود، زبان پرسمان ساخت‌یافته (SQL) مهارت اصلی مهندس یادگیری ماشین است. شما می‌توانید اسکریپت‌های پایتون و R را در سرورهای SQL اجرا کنید. اگر به دنبال شغلی مرتبط با مهندسی یادگیری ماشین باشید، خواهید دید که SQL یکی از الزامات اصلی است.

واقعیت ۱۰: مدل‌های یادگیری ماشین دنیای واقعی در لپ‌تاپ ساخته نمی‌شوند.

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

منبع: هوشیو

استفاده از یادگیری ماشین در موبایل


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

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

لزوماً نیازی نیست کارشناس یادگیری ماشین باشید تا قابلیت‌های آن را رمزگشایی کنید. این تخصص را به عهده ما بگذارید. به راحتی اقدام به ساخت نرم‌افزارهایی کنید که قابلیت دیدن، شنیدن، حس کردن و فکر کردن با حساب رایگان Fritz AI داشته باشند.

تاخیر کمتر

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

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

تولیدکنندگان گوشی‌های هوشمند و بازیگران بزرگ در حوزه فناوری به این موضوع واقف‌اند. شرکت اپل با توسعه تراشه‌های پیشرفته‌تری برای گوشی‌های هوشمند، یکی از پیشروان اصلی این حوزه به حساب می‌آید. این شرکت برای حصول اهداف خود از سیستم Bionic استفاده کرده است؛ این سیستم از یک موتور عصبی یکپارچه بهره می‌برد که امکان اجرای مسقیم و بسیار سریع شبکه‌های عصبی در وسیله‌های هوشمند را فراهم می‌کند. اپل تمرکز ویژه‌ای هم به پلتفرم یادگیری ماشین Core ML دارد. این پلتفرم می‌تواند توجه عده کثیری از توسعه‌دهندگان نرم‌ افزارهای موبایل را به خود جلب کند. تنسورفلو (TensorFlow Lite) نیز هم‌اکنون قابلیت پشتیبانی از GPU را دارد.

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

سطح بالای امنیت و حریم خصوصی

یکی دیگر از مزایای عمدۀ رایانش مرزی که امکان درک آن در حال حاضر وجود ندارد، چگونگی عملکرد آن در افزایش سطح امنیت و حریم خصوصی کاربرانش است. تضمینِ امنیت و حریم خصوصی داده‌های نرم‌افزار یکی از بخش‌های اساسی در فعالیت حرفه‌ایِ توسعه‌دهندگان نرم‌افزار برشمرده می‌شود؛ به ویژه با توجه به قانون سخت‌گیرانۀ «مقررات عمومی حفاظت از داده‌ها (GDPR)». این قوانین جدیدِ مربوط به حریم خصوصی قطعاً می‌تواند بر فعالیت‌های توسعه نرم‌افزارهای موبایل تاثیر بگذارد. از آنجا که نیازی نیست داده‌ها برای پردازش به سرور یا ابر ارسال شوند، متخلفان فضای مجازی فرصت اندکی برای سوء استفاده از کاربران آسیب‌پذیر در حین انتقال داده دارند از این رو، حریم داده‌ها حفظ می‌شود. پس این توسعه‌دهندگان نرم ‌افزارهای موبایل این امکان را دارند تا مقررات عمومی حفاظت از داده‌ها را به سادگی در زمینه امنیت داده پیاده‌سازی کنند.

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

از بررسی موارد رایج استفاده گرفته تا چالش‌های فنیِ تبدیل مدل و غیره؛ Fritz AI Newsletter همه مسائل و اطلاعات مربوط به یادگیری ماشین در موبایل را پوشش می‌دهد.

لازم نیست به اینترنت وصل شوید.

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

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

کاهش هزینه

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


نتیجه‌گیری
جای تردید نیست که ابر (Cloud) نعمت بزرگی برای داده و محاسبات در دهه ۲۰۱۰ میلادی بوده است، اما صنعت فناوری با سرعت تصاعدی در حال پیشرفت است. یادگیری ماشین در موبایل نیز به زودی به استانداردی در نرم‌افزارهای موبایل و توسعه IoT تبدیل خواهد شد. بی‌تردید به لطف کاهش مدت تاخیر، امنیت بالا، قابلیت استفادۀ آفلاین و کاهش هزینه، توسعه‌دهندگان نرم‌افزار به آینده این فناوری خیلی امیدوار هستند. اگر علاقمند به کسب اطلاعات بیشتر درباره یادگیری ماشین در موبایل، چگونگی کارکرد و اهمیت ان در فضای توسعه موبایل هستید، می‌توانید به منابع زیر مراجعه کنید:

• Matthijs Holleman’s blog Machine, Think!
• Awesome Mobile Machine Learning:
• Artificial Intelligence at the Edge (video)
• Heartbeat

منبع: hooshio.com

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


مقاله حاضر بر آن است تا یادگیری عصبی ساماندهی شده در کتابخانه تنسورفلو را معرفی کرده و جزئیات آن را تشریح کند. «TensorFlow» یک چارچوب ساده است که افراد حرفه‌ای و تازه‌کار می‌توانند از آن برای آموزش
شبکه‌های عصبی با سیگنال‌های ساماندهی شده استفاده کنند. یادگیری عصبی ساماندهی شده (NSL) می‌تواند برای ایجاد مدل‌های دقیق و قوی در حوزه‌های بصری، درک زبانی و پیش‌بینی استفاده شود.
داده‌های ساماندهی شده کاربردهای مفیدی در خیلی از فعالیت‌های یادگیری ماشین دارند. این داده‌ها حاوی اطلاعات منطقی غنی در میان سایر نمونه‌ها هستند. برای مثال، مدل‌سازیِ شبکه‌های رونگاشت ، استنتاج گراف دانشو استدلال در خصوص ساختار زبانیِ جملات، و یادگیری اثرانگشت‌های مولکولی همگی مستلزم مدلی است که از خروجی‌های ساماندهی شده اقدام به یادگیری کند.یادگیری عصبی ساماندهی شدهاین ساختارها می‌توانند به صورت صریح (به عنوان مثال بوسیله یک گراف) و یا به صورت ضمنی (به عنوان مثال بوسیله داده های متضاد) ارائه شوند. استفاده از سیگنال‌های ساماندهی شده در طول آموزش این فرصت را به طراحان و توسعه‌دهندگان می‌دهد که دقت مدل بالاتری داشته باشند؛ به ویژه زمانی که میزان داده‌های برچسب زده شده نسبتاً کم باشد. آموزش با سیگنال‌های ساماندهی شده باعث ایجاد مدل‌های مقاوم تر می‌شود. این شیوه‌ها کاربرد وسیعی در گوگل دارند و نقش بزرگی در بهبود عملکرد مدل ایفا می‌کنند؛ مثلیادگیری تعبیه شده معنایی تصاویر .
یادگیری عصبی ساماندهی شده (NSL) یک چارچوب منبع باز برای آموزش شبکه‌های عصبی عمیق با سیگنال‌های ساماندهی شده است. این چارچوب «یادگیری عصبی گرافی» را اجرا می‌کند. این نوع یادگیری به توسعه‌دهندگان امکانِ آموزش شبکه‌های عصبی با استفاده از گرافی را می‌دهد. این گراف‌ها می‌توانند از منابع مختلفی به دست بیایند؛ از جمله این گراف‌ها می‌توان به گراف‌های «Knowledge»، داده‌های آرشیو پزشکی، داده‌های ژنومی یا روابط چندوجهی اشاره کرد. همچنین NSL از یادگیری تخاصمی استفاده می‌کند که طی آن، ساختارِ میان نمونه‌های ورودی به صورت پویا و با استفاده از آشفتگی تخاصمی ساخته می‌شوند. NSL این فرصت را به کاربران «TensorFlow» می‌دهد تا به راحتی از سیگنال‌های ساماندهی شدۀ گوناگون برای آموزش شبکه‌های عصبی استفاده کنند. این نوع یادگیری در سناریوهای یادگیری مختلف قابل استفاده می‌باشد.

 

یادگیری عصبی ساماندهی شده (NSL) چگونه کار می‌کند؟

یادگیری عصبی ساماندهی شده

در یادگیری عصبی ساماندهی شده (NSL)، سیگنال‌های ساماندهی شده (که صراحتاً در قالب گراف تعریف می‌شوند یا به صورت ضمنی در قالب نمونه‌های تخاصمی استفاده می‌شوند) برای عادی‌سازیِ آموزش شبکه‌های عصبی به کار برده می‌شوند. لذا مدل تحت اجبار قرار می‌گیرد تا پیش‌بینی‌های دقیق را یاد بگیرد (بوسیله کمینه کردن supervised loss). در همین حین، شباهت میان ورودی‌های یک ساختار را نیز حفظ می‌کند (بوسیله کمینه کردن neighbor loss). این روش، یک روش متداول است و می‌تواند در معماری‌های هر شبکه عصبی دلخواه از قبیل شبکه‌های عصبی پیشرو ، شبکه‌های عصبی پیچشیو شبکه‌های عصبی بازگشتیبکار رود.

ساخت مدل با یادگیری عصبی ساماندهی شده (NSL)

ساخت مدل به کمک یادگیری عصبی ساماندهی شده (NSL) برای بهره‌مندی از سیگنال‌های ساماندهی شده به کار ساده‌ای تبدیل شده است. با توجه به گراف و نمونه‌های آموزش، NSL ابزاری برای پردازش و ادغام این نمونه‌ها در قالب «TFRecords» فراهم می‌کند. به مثال زیر توجه کنید:

۱

۲

۳

۴

۵

python pack_nbrs.py --max_nbrs=۵ \

labeled_data.tfr \

unlabeled_data.tfr \

graph.tsv \

merged_examples.tfr

در وهله بعد، چارچوب NSL از API برای مصرف نمونه‌های پردازش شده استفاده کرده و عادی‌سازیِ گراف را مقدور می‌سازد. بگذارید نگاهی به نمونه کُد داشته باشیم:

۱

۲

۳

۴

۵

۶

۷

۸

۹

import neural_structured_learning as nsl# Create a custom model — sequential, functional, or subclass.

base_model = tf.keras.Sequential(…)# Wrap the custom model with graph regularization.

graph_config = nsl.configs.GraphRegConfig(

neighbor_config=nsl.configs.GraphNeighborConfig(max_neighbors=۱))

graph_model = nsl.keras.GraphRegularization(base_model, graph_config)# Compile, train, and evaluate.

graph_model.compile(optimizer=’adam’,

loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=[‘accuracy’])

graph_model.fit(train_dataset, epochs=۵)

graph_model.evaluate(test_dataset)

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

اگر ساختار صریحی در کار نباشد، چه باید کرد؟

اگر ساختارهای صریح (مثل گراف) وجود نداشته باشند، چه رویکردی باید در پیش گرفت؟ چارچوبِ NSL ابزارهایی را در اختیار توسعه‌دهندگان می‌گذارد تا گراف‌هایی را از داده‌های خام بسازند. در ضمن، چارچوب NSL با فراهم آوردنِ API زمینه را برای استنتاج نمونه‌های تخاصمی در قالب سیگنال‌های ساماندهی شدۀ ضمنی مهیا می‌کند. نمونه‌های تخاصمی به صورت تعامدی برای گیج کردن مدل ساخته می‌شوند؛ آموزش با چنین نمونه‌هایی معمولاً به مدل‌هایی ختم می‌شود که در مقابل آشفتگی‌های اندک ورودی، عملکرد قوی و خوبی از خود نشان می‌دهند. در نمونه کُد زیر می‌بینیم که NSL چگونه امکانِ آموزش با نمونه‌های تخاصمی را فراهم می‌کند:

۱

۲

۳

۴

۵

۶

۷

۸

import neural_structured_learning as nsl# Create a base model — sequential, functional, or subclass.

model = tf.keras.Sequential(…)# Wrap the model with adversarial regularization.

adv_config = nsl.configs.make_adv_reg_config(multiplier=۰.۲, adv_step_size=۰.۰۵)

adv_model = nsl.keras.AdversarialRegularization(model,

adv_config=adv_config)# Compile, train, and evaluate.

adv_model.compile(optimizer=’adam’,

loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’])

adv_model.fit({‘feature’: x_train, ‘label’: y_train}, epochs=۵) adv_model.evaluate({‘feature’: x_test, ‘label’: y_test})

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

منبع: hooshio.com