CBIR:Content Base Image Retrival

بازیابی تصویر محتوا محور

CBIR:Content Base Image Retrival

بازیابی تصویر محتوا محور

بررسی کتاب یادگیری عمیق با تنسور فلو 2 و کراس


Deep learning with TensorFlow 2 and Keras

نویسندگان این کتاب شامل :آنتونیو گولی علاقه زیادی به ایجاد و مدیریت فناوری جهانی استعداد ، برای نوآوری و اجرا دارد. تخصص اصلی او در رایانش ابری ، یادگیری عمیق و موتورهای جستجو است .در حال حاضر  او به عنوان مدیر مهندسی برای دفتر CTO ، Google Cloud  خدمت میکند.

آمیتا کاپور ، دانشیار گروه الکترونیک ، SRCASW ، دانشگاه دهلی ، و به طور فعال به آموزش شبکه های عصبی وهوش مصنوعی در 20 سال گذشته مشغول بوده است.

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

ویرایش اول این کتاب در آپریل 2017 و ویرایش دوم که هم اکنون ان را بررسی میکنیم در دسامبر 2019 توسط انتشارات packt به چاپ رسیده است.

این کتاب به طورکلی شیکه های عصبی عمیق با تنسورفلو2 وکراس ،شبکه های عصبی وتکنیکهای یادگیری عمیق را در کنار تنسورفلو وکراس آموزشمیدهد.در این کتاب یاد میگیریم که چگونه برنامه های کاربردی یادگیری عمیق را در قوی ترین ، محبوبترین ومقیاس پذیرترین stack یادگیریدستگاه موجود بنویسید.تنسورفلو یک کتابخانه یادگیری ماشین از برنامه های کاربردی پیشرفته است در حالیکه کراس یک API قدرتمند وساده پایتون برای دسترسی به تنسورفلو ارائه می دهد.تنسور فلو 2 ادغام کامل Keras را فراهم میکند ویادگیری ماشین را آسانتر وراحتتر از گذشته میکند.این کتاب همچنین شبکه های عصبی را با تنسورفلو معرفی می کند، از طریق برنامه های اصلی در رگرسیون ،Connvents ، GAN ، (CNNs) ها ، NLP،RNNS اجرا میشود.

برای دانلود این کتاب اینجا کلیک کنید.

در ادامه به بررسی اجمالی هر فصل می پردازیم.  

فصل اول :اساسهای شبکه عصبی با TensorFlow 2 :

در این فصل ما اصول اولیه TensorFlow ، یک کتابخانه منبع باز توسعه یافته را توسط Google برای یادگیری ماشین و یادگیری عمیق یاد می گیریم. همچنین در این فصل می آموزیم که اصول اولیه  شبکه های عصبی چیست ،اینکه پرسپترون و پرسپترون چند لایه چیست .علاوه بر این ،  ما همچنین به بررسی یکسری از توابع فعالسازی مفید (sigmoid و ReLU) می پردازیم و نحوه آموزش شبکه با الگوریتم های backprop را براساس الگوریتم های گرادیان کاهشی ، SGD یا رویکردهای پیچیده تر مانند Adam و RMSProp گفتیم.

TensorFlow  یک کتابخانه نرم افزار منبع باز قدرتمند است که توسط Google توسعه یافته است.ویژگیهای برتر تنسورفلو به قرار زیر است :

·         این برنامه با همه زبانهای محبوب مانند Python ، C ++ ، Java ، R و Go کار می کند.

·         Keras-یک API شبکه عصبی سطح بالا که با آن ادغام شده است، TensorFlow (در 2.0 ، Keras به API استاندارد برای تعامل با TensorFlow  تبدیل شد). این API نحوه تعامل اجزای نرم افزار را مشخص می کند.

·         TensorFlow امکان استقرار مدل و سهولت استفاده در تولید را می دهد.

·         مهمتر از همه ، TensorFlow از پشتیبانی جامعه بسیار خوبی برخوردار است.

Keras یک API زیبا برای ترکیب اجزای سازنده برای ایجاد و آموزش عمیق مدلهای یادگیری است Keras . را می توان با چندین موتور یادگیری عمیق از جمله Google TensorFlow ، Microsoft CNTK ، Amazon MxNet و Theano  ادغام کرد. با شروع باTensorFlow 2  ، Keras به عنوان API استاندارد سطح بالا پذیرفته شده است، تا حد زیادی کدگذاری را ساده کرده و برنامه نویسی را بصری تر می کند.

فصل دوم : TensorFlow 1 , 2

TensorFlow 2.0 یک اکوسیستم توسعه غنی است که از دو بخش اصلی آموزش و خدمت تشکیل شده است: آموزش شامل مجموعه ای از کتابخانه ها برای رسیدگی به مجموعه داده ها است (tf.data) ، مجموعه ای از کتابخانه ها برای ساخت مدل ها ، از جمله کتابخانه های سطح بالا (tf. Kerasand Estimators) ، کتابخانه های سطح پایین (tf.*) ، و مجموعه ای ازمدلهای از پیش آموزش(tf.Hub) ، که در فصل 5 ،Networks Advanced Convolutional Neural بحث خواهد شد. آموزش می تواند در CPU ها ، GPU ها و TPU ها از طریق استراتژی های توزیع انجام شود و نتیجه را می توان با استفاده از کتابخانه های مناسب ذخیره کرد. خدمت می تواند در چندین سیستم عامل ، از جمله on-prem ، ابر ، Android ، iOS ، Raspberry Pi ، هر کدام مرورگر پشتیبانی از جاوا اسکریپت و Node.js  اتفاق بیفتد. بسیاری از پیوندهای زبانی از جمله پایتون ، C ، C#، جاوا ، Swift ، R و دیگران پشتیبانی می شوند . نمودار زیر معماری TensorFlow 2.0 را که در این فصل مورد بحث قرار گرفته است خلاصه می کند:


·          tf.kerasمیتواند برای بارگذاری مدلها به روشی بسیار کارآمد استفاده می شود.

·         tf.keras  وEstimatore کتابخانه های سطح بالا هستند که در آن قدرت TensorFlow 1.x هنوز از طریق کتابخانه های سطح پایین tf.* قابل دسترسی است. tf.kerasاز محاسبات بصورت حریصانه  پشتیبانی می کند در حالی که هنوز عملکرد نمودارهای محاسباتی سطح پایین را از طریق عملکرد tf.function حفظ می کند.  tf.hubis مجموعه ای زیبا از مدلهای از پیش آموزش داده شده که می توانند بلافاصله مورد استفاده قرار گیرند.

·         استراتژی های توزیع اجازه می دهد تا آموزش بر روی CPU ها ، GPU ها و TPU ها اجرا شود.

·         SavedModel را می توان در چندین سیستم عامل ارائه کرد.

در این فصل ما تفاوت های اصلی بین TensorFlow 1.x و 2.x  را مورد بحث قرار داده ایم و ویژگیهای جدید قدرتمند موجود در 2.x را بررسی کردیم. موضوعات کلیدی که در این فصل مورد بحث قرار گرفت: نمودار محاسباتی در TensorFlow 1.x ومزایای TensorFlow 2.x ، مانند پشتیبانی از اجرای حریصانه ، توزیع و آموزش TPU.

فصل سوم : رگرسیون

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

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

این فصل API TensorFlow Estimator را توضیح می دهد و از آن برای پیاده سازی رگرسیون خطی و لجستیک برای برخی از مجموعه داده های کلاسیک استفاده می کند.

فصل چهارم : شبکه های عصبی کانولوشن

در فصل های قبل ما در مورد DenseNets بحث کردیم که در آن هر لایه وجود دارد و به طور کامل به لایه های مجاور متصل شده است. ما به یکی از کاربردهای این شبکه های متراکم در طبقه بندی مجموعه داده های کاراکترهای دست نویس MNIST  نگاه کردیم . در آن زمینه ،هر پیکسل در تصویر ورودی به یک نورون با مجموع 784 (28 × 28 پیکسل) نورون های ورودی اختصاص داده شده است. با این حال ، این استراتژی در ساختار فضا و روابط بین هر تصویرنفوذ نمی کند. به طور خاص ، این قطعه کد یک DenseNet است که نقشه بیت نشان دهنده هر رقم نوشته شده را به یک بردار مسطح  تبدیل می کند جایی که ساختار فضایی محلی حذف شده است. حذف ساختار فضایی مشکل است زیرا اطلاعات مهم از بین می روند.

شبکه های عصبی کانولوشن (به طور خلاصه، connets یا cnns) دراطلاعات مکانی نفوذ می کند، و بنابراین برای طبقه بندی تصاویر بسیار مناسب هستند. این شبکه ها از معماری ad hoc با الهام از داده های بیولوژیکی برگرفته از آزمایشات فیزیولوژیکی انجام شده بر روی قشر بینایی استفاده میکنند. همانطور که در فصل 2 ،در مورد  TensorFlow1.x و 2.x بحث کردیم، بینایی ما بر اساس چندین سطح قشر است ، که هر کدام بیشتروبیشتر  اطلاعات ساختار یافته را  تشخیص می دهد. ابتدا ، پیکسل های تک را می بینیم ، پس از آن ما اشکال هندسی ساده و سپس عناصر پیچیده تر مانند اشیا ، صورت ، بدن انسان ، حیوانات و غیره را تشخیص می دهیم.

خلاصه ای از مطالب در مورد ConvNets : CNN  ها  کانولوشن و جمع آوری عملیات در 1 بعد برای داده های صوتی و متنی در طول زمان ابعاد ، در دو بعد برای تصاویر در امتداد ابعاد (ارتفاع × عرض) و در سه بعد برای فیلم ها در طول (ارتفاع × عرض × زمان) بکار می برند. برای تصاویر ، کشیدن فیلتر بر روی حجم ورودی ، نقشه ای را ایجاد می کند که پاسخهای فیلتر برای هر موقعیت مکانی را تهیه میکند.

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

در این فصل یاد گرفته ایم که چگونه از روشهای یادگیری عمیق برای تشخیص کاراکترهای دست نویس با دقت بالا MNISTاستفاده کنیم. ما از مجموعه داده CIFAR-10 برای ایجاد یک طبقه بندی کننده یادگیری عمیق با 10 دسته و مجموعه داده ImageNet برای ایجاد طبقه بندی دقیق با 1000 دسته استفاده کردیم. علاوه بر این ، ما نحوه استفاده از شبکه های بزرگ یادگیری عمیق مانند VGG16و شبکه های بسیار عمیق مانند عنوان InceptionV3 را بررسی کردیم.ما با بحث در مورد یادگیری انتقال به پایان رسیدیم.

فصل پنجم : شبکه های عصبی کانولوشن پیشرفته

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

امروزه مشاهده پردازش چند حالته ، جایی که متن ، تصاویر ، صدا و ویدئوها برای دستیابی به عملکرد بهتر با هم در نظر گرفته می شوند ، اغلب با استفاده از CNN ها همراه با تعدادی تکنیک دیگر مانند RNN و یادگیری تقویتی غیر معمول نیست. البته ، چیزهای بیشتری برای در نظر گرفتن وجود دارد ، و CNN ها نیز این موضوع را اخیراً در بسیاری از حوزه های دیگر مانند استنتاج ژنتیکی [13] به کاربرده اند، که حداقل در نگاه اول ، از محدوده اصلی طراحی خود فاصله دارند.

در این فصل ، ما همه انواع اصلی ConvNets را مورد بحث قرار داده ایم.

فصل ششم : مولد شبکه های متخاصم :

این فصل یکی از هیجان انگیزترین شبکه های عصبی عمیق عصر ما را مورد بررسی قرارمی دهد: GAN ها. برخلاف شبکه های تبعیض آمیز ، GANها توانایی تولید تصاویر بر اساس توزیع احتمال فضای ورودی را دارند.اولین مدل GAN توسط یان گودفلو پیشنهاد شد و از آن برای تولید ارقام دست نویس استفاده کرد. ما در ادامه به بررسی DCGAN ها رفتیم که در آن شبکه های عصبی کانولوشن استفاده شده برای اینکه تصاویر ایجاد کنید و ما تصاویر قابل توجه افراد مشهور ، اتاق خواب وحتی آثار هنری آلبوم تولید شده توسط DCGAN ها را دیدیم. سرانجام ، فصل به کاوش در برخی از معماریهای فوق العاده  GAN: SRGAN ، CycleGAN و InfoGAN خواهیم پرداخت. فصل همچنین شامل پیاده سازی CycleGAN در TensorFlow 2.0 می باشد.

فصل هفتم : جاسازی کلمات

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

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

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

فصل هشتم : شبکه های عصبی عود کننده

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

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

ما ابتدا به داخلی سلولهای اصلی RNN و نحوه برخورد با آنها وابستگی های متوالی در ورودی نگاه می کنیم. همچنین با برخی از محدودیت ها از سلول اصلی (پیاده سازی SimpleRNN در Keras  ) آشنا خواهیم شد و ببینید چگونه دونوع محبوب سلول SimpleRNN  حافظه کوتاه مدت بلند  (LSTM ) و Gated Recurrent Unit (GRU)  بر این محدودیت غلبه می کند.

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

در نهایت ، ما به معماری مبدل ، که ترکیبی از ایده های  CNN ها ، RNN ها و مکانیسم های توجه میباشد،نگاه خواهیم کرد. از معماری مبدل برای ایجاد معماری های جدید مانند BERT  استفاده شده است.

فصل نهم : رمزگذارهای خودکار

در این فصل ما نگاهی گسترده به نسل جدید مدلهای یادگیری عمیق : رمز گذارهای خودکار داشته ایم . ما با رمزگذار خودکار vanilla شروع کردیم ، و سپس به بررسی  انواع آن: رمزگذارهای خودکار پراکنده ، رمزگذارهای خودکار Denoising ، رمزگذارهای خودکارstacked، و رمزگذارهای کانولوشن پرداختیم. ما از رمزگذارهای خودکار برای بازسازی تصاویر استفاده کردیم ، و همچنین نشان دادیم که چگونه می توان از آنها برای پاکسازی نویز از تصویر استفاده کرد.

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

فصل 10 : یادگیری بدون ناظر

این فصل شامل الگوریتم های اصلی یادگیری بدون نظارت می باشد. ما از طریق مناسبترین الگوریتم ها برای کاهش ابعاد ، خوشه بندی وبازسازی تصویر انجام دادیم. ما با الگوریتم کاهش ابعاد PCA شروع کردیم ، سپس ما خوشه بندی را با استفاده از k-means و نقشه های خود سازماندهی شده انجام دادیم. بعد از این ما مطالعه کردیم ماشین محدود بولتزمن و دید یم چگونه می توانیم از آن برای هر دو بعد کاهش و بازسازی تصویراستفاده کنیم. سپس در ادامه این فصل بهstacked RBM ، یعنی شبکه های باور عمیق ، و ما DBN متشکل از سه لایه RBM را در مجموعه داده MNIST آموزش دادیم. سرانجام ، ما در مورد رمزگذارهای خودکار مختلف آشنا شدیم ، به مانند GAN ها ، می توانند پس از یادگیری توزیع فضای نمونه ورودی ، تصاویررا ایجاد کنند.

این فصل ، همراه با فصل های 6 و 9 ، مدل هایی را که آموزش دیده اند ، با استفاده از یادگیری بدون نظارت پوشش می دهد.

فصل 11: یادگیری تقویتی

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

فصل 12: TensorFlow and Cloud

در این فصل ما ارائه دهندگان خدمات مختلف ابری را که می توانند قدرت محاسباتی لازم برای آموزش ، ارزیابی و بکارگیری مدل ها یادگیری عمیق را فراهم کنند بررسی کردیم. ما ابتدا با درک انواع خدمات رایانش ابری که امروز موجود است ، شروع کردیم. این فصل آمازون ، گوگل و مایکروسافت IaaS را مورد بررسی قرار دادیم،که خدمات ایجاد ماشین مجازی دارند. گزینه های مختلف زیرساخت های موجود در هر مورد ، مورد بحث قرار گرفت. بعد ، ما به طور خاص به خدمات SaaS ، Notebook Jupyter روی ابرنقل مکان کردیم. این فصل شامل Amazon SageMaker ، Google نوت بوک های Colaboratory و Azure میباشد. فقط آموزش یک مدل کافی نیست ؛در نهایت ما می خواهیم آن را به روشی مقیاس پذیر مستقر کنیم. بنابراین ، ما وارد آن شدیم

TensorFlow Extended ، که به کاربران امکان می دهد مدلهای یادگیری ماشین  را با  روشی مقیاس پذیر ، ایمن و مطمئن توسعه داده و در آنها مستقر کنند. در نهایت ، ما TensorFlow Enterprise را معرفی کردیم ،به عنوان  آخرین پیشنهاد در اکوسیستم TensorFlow ، و ویژگی های آن را به طور مختصر مورد بحث قرار دادیم.

فصل 13: TensorFlow برای موبایل و اینترنت اشیا و TensorFlow.js

در این فصل نحوه استفاده از TensorFlow Lite برای دستگاه های تلفن همراه را و اینترنت اشیا و برنامه های کاربردی واقعی را در دستگاه های Android مستقر شده را مورد بحث قرار داده ایم. سپس ، ما درباره آموزش متحد برای آموزش توزیع شده در هزاران (میلیون) نفر دستگاه های تلفن همراه ، با در نظر گرفتن مسائل مربوط به حریم خصوصی صحبت کردیم. قسمت آخر فصل به TnsorFlow.js برای استفاده TensorFlow با vanilla javascript یا Node.js اختصاص داده شده است.

فصل 14 : مقدمه ای بر AutoML

هدف AutoML این است که متخصصان حوزه ای را که با تکنیکهای یادگیری ماشین  آشنا نیستند ، فعال کنند تا بتوانند به آسانی از تکنیک های ML استفاده کنند. هدف اصلی کاهش میزان منحنی یادگیری شیب دار و هزینه های هنگفت راه حل های دستی یادگیری ماشین با ساختن کل خط لوله یادگیری ماشینیend-to-end  (آماده سازی داده ها ،مهندسی ویژگی و تولید مدل اتوماتیک) بصورت اتوماتیک تر می باشد.

پس از بررسی راه حل پیشرفته موجود در پایان سال 2019 ، ما در مورد چگونگی استفاده از Cloud AutoML برای متن ، فیلم و تصاویر و دستیابی به نتایج قابل مقایسه با مدلهای دست سازبحث شده است. AutoML احتمالاً همان است سریعترین موضوع تحقیقاتی که در حال رشد است و خواننده علاقمند می تواند آخرین نتایج آن را درhttps://www.automl.org  درک کنید.

فصل 15: ریاضی پشت یادگیری عمیق

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

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

خطا از طریق توابع مانند MSE یا آنتروپی متقاطع برای مقادیر غیر پیوسته مانند بولی (فصل 1 ، بنیادهای شبکه عصبی با TensorFlow 2.0) محاسبه می شود. از الگوریتم بهینه سازی گرادیان کاهشی برای تنظیم وزن نورونها با محاسبه گرادیان تابع کاهشی استفاده می شود. انتشار مجدد گرادیان را محاسبه می کند و کاهش  گرادیان از گرادیان ها برای مدل آموزش استفاده می کند. کاهش میزان خطای پیش بینی ها ، دقت را افزایش می دهد و امکان بهبود مدل های یادگیری ماشین را می دهد. کاهش گرادیان  تصادفی ساده ترین کاری است که احتمالاً می توانید با یک قدم در جهت گرادیان  انجام دهید. این فصل ریاضیات پشت بهینه سازهای دیگر مانند Adam و RMSProp(فصل 1) را پوشش نمی دهد. با این حال ، آنها شامل استفاده از لحظات اول و دوم از گرادیانت ها هستند. اولین لحظه شامل متوسط کاهش نمایی ازگرادیانت های  قبلی و لحظه دوم شامل کاهش  تصاعدی میانگین گرادیانت مربع قبلی است.

سه ویژگی بزرگ از داده های شما وجود دارد که استفاده از یادگیری عمیق را توجیه می کند ، در غیر این صورت ممکن است فقط از یادگیری ماشین معمولی استفاده کنید: (1) ورودی با ابعاد بالا(متن ، تصاویر ، سیگنال های صوتی ، فیلم ها و سری زمانی اغلب مثال خوب هستند) ، (2) برخورد با سطوح تصمیم گیری پیچیده که نمی توان تقریب آنها را با عملکرد چند جمله ای درجه پایین تعیین کرد، و (3) داشتن مقدار زیاد از داده های آموزشی موجود

مدلهای یادگیری عمیق را می توان یک نمودار محاسباتی دانست که توسط چندین جزء اصلی مانند Dense (فصل 1) ، CNN ها (فصل های 4 و 5) ، جاسازی (فصل 6) ، RNN ها (فصل 7) ، GAN ها (فصل 8) ،رمزگذارهای خودکار (فصل 9) و ، گاهی اوقات ، اتخاذ اتصالات میانبر مانند "peephole", "skip", and "residual “زیرا به گردش روان داده ها کمک می کند(فصل 5 و 7) ساخته شده است. هر گره در نمودار tensor ها را به عنوان ورودی می گیرد وtensor ها را به عنوان خروجی تولید می کند. همانطور که گفته شد ،آموزش  با تنظیم وزنها  در هرگره با انتشار مجدد اتفاق می افتد، جاییکه کلید اصلی کاهش خطا درخروجی نهایی گره (ها) توسط گرادیان کاهشی می باشد.

این فصل پایه ریاضیات را ارائه کرده است. همانطور که بحث شده است ، این موضوع کاملاً پیشرفته است و لزوماً برای تمرین کنندگان لازم نیست.

فصل 16 : واحد پردازش Tensor

TPU ها تراشه های ASIC بسیار ویژه ای هستند که در Google برای اجرای عملیات ریاضی سیستم شبکه عصبی به روشی بسیار سریع توسعه یافته اند. هسته از محاسبه یک ضرب سیستولیک می باشد که ضربهای  چند نقطه ای را (ردیف* ستون) به طور موازی محاسبه می کند ، بنابراین محاسبه عملیات یادگیری عمیق اولیه را تسریع می کند. یک TPU را بعنوان یک پردازنده هدف خاص برای یادگیری عمیق در نظر بگیرید ، که روی عملیات ماتریسی یا تانسوری متمرکز شده است. گوگل تاکنون سه نسل از TPU ، به علاوه یک TPU Edge اضافی برای IoT  را اعلام کرده است.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد