پایتون

مشاوره و آموزش در حوزه مهارت ها

پنجشنبه ۲۶ شهریور ۰۵

۳ کاربرد اصلی پایتون

۱۲۳ بازديد

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



توسعه وب

چهارچوب های وب که براساس پایتون بنا شده اند، اخیرا برای توسعه وب بسیار محبوب گشته اند. این چهارچوب های وب به شما کمک می کنند تا کد سمت سرور (کد بک-اند (به یادداشت پایان مقاله رجوع کنید)) را در پایتون ایجاد کنید. این کدی است روی سرور شما اجرا می شود.
چرا به یک چهارچوب وب نیاز داریم؟
به دلیل این که چهارچوب وب به ایجاد “منطق سایت” کمک می کند. این شامل نقشه برداری از URL های مختلف پرداختن به پایگاه های داده و تولید پرونده های HTML که کاربران در مرورگرهای خود مشاهده می کنند، می شود.
از کدام چهارچوب پایتون باید استفاده کنیم؟
Django و Flask دو مورد از محبوب ترین چهارچوب های وب پایتون هستند. اگر تازه کار را شروع کرده اید توصیه می کنیم از یکی از این دو استفاده کنید.
تفاوت بین Django و Flask چیست؟
مهم ترین تفاوت:
Flask سادگی و انعطاف پذیری را فراهم می کند. (به شما امکان تصمیم گیری در چگونگی پیاده سازی کارها را می دهد.)
Django تجربه ای فراگیر را در اختیار شما قرار می دهد: شما یک پنل ادمین، رابط های پایگاه داده، یک ORM و ساختار دایرکتوری برای برنامه ها و پروژه های خود دریافت می کنید.
اگر روی تجربه و فرصت های یادگیری متمرکز شده اید، یا اگر می خواهید کنترل بیشتری در مورد اجزای مورد استفاده داشته باشید (مثلا این که از کدام پایگاه داده می خواهید استفاده کنید و چگونه می خواهید با آنها تعامل داشته باشید)، Flask را انتخاب کنید. اما اگر روی محصول نهایی متمرکز هستید، مانند زمانی که در حال کار روی یک سایت خبری، یک فروشگاه الکترونیکی یا یک وبلاگ هستید و می خواهید همیشه یک روش مشخص و واضح برای انجام کارها وجود داشته باشد Django را انتخاب کنید.
به عبارت دیگر، اگر مبتدی هستید احتمالا Flask انتخاب بهتری است زیرا جزئیات کمتری دارد. همچنین اگر می خواهید سفارشی سازی بیشتری داشته باشید، Flask انتخاب بهتری است. از طرف دیگر، اگر به دنبال ساختن مستقیم چیزی هستید، Django به شما امکان می دهد سریع تر به آن را محقق کنید.

علوم داده: شامل یادگیری ماشین، تجزیه و تحلیل داده ها و مصورسازی اطلاعات

قبل از شروع، بیایید بررسی کنیم که یادگیری ماشین چیست. بهترین راه برای توضیح یادگیری ماشین این است که از یک مثال ساده استفاده کنیم. فرض کنید می خواهید برنامه ای بسازید که بتواند به طور خودکار آنچه را که در یک تصویر وجود دارد، تشخیص دهد.
بنابراین، با توجه به تصویر زیر می خواهید برنامه شما تشخیص دهد که این سگ است.
کاربردهای پایتون و توسعه وب و علوم داده و یادگیری ماشین
و با توجه به تصویر زیر می خواهید برنامه شما تشخیص دهد که این یک نیمکت است.
کاربردهای پایتون و توسعه وب و علوم داده و یادگیری ماشین
ممکن است فکر کنید می توان این کار را به راحتی با نوشتن چند خط کد انجام داد. به عنوان مثال، اگر پیکسل های قهوه ای روشن زیادی در تصویر وجود داشته باشد، می توان گفت که این سگ است. یا اگر لبه های صاف در تصویر وجود داشت، نیمکت است. اما این نوع رویکرد نمی تواند دقیق باشد. اگر یک سگ سفید در تصویر وجود داشته باشد چه می شود؟ اگر تصویر فقط قسمتهای گرد نیمکت را نشان دهد چه می شود؟
این جاست که یادگیری ماشین وارد عمل می شود.
می توانید هزار تصویر از سگ و هزار تصویر از نیمکت به الگوریتم یادگیری ماشین بدهید. آن گاه، تفاوت بین یک سگ و یک نیمکت را می آموزد و هنگامی که تصویر جدیدی از یک سگ یا یک نیمکت ارائه می دهید، می تواند تفاوت آن ها را تشخیص دهد.
این روند بی شباهت به نحوه یادگیری یک کودک نیست. یک کودک چگونه تفاوت یک سگ و یک نیمکت را می آموزد؟ احتمالا با استفاده از یک دسته مثال. شما به صراحت به کودک نمی گویید،”اگر چیزی خزدار است و موهای قهوه ای روشن دارد ، احتمالا یک سگ است.” فقط می گویید ، “این یک سگ است. و آن یک نیمکت است.”
الگوریتم های یادگیری ماشین نیز تقریبا به همین روش کار می کنند.
شما می توانید همان ایده را برای موارد زیر اعمال کنید:
سیستم های توصیه گر(YouTube ، Amazon و Netflix)، تشخیص چهره، تشخیص صدا
الگوریتم های یادگیری ماشین متداول که شاید درباره آن ها شنیده باشید عبارتند از:
• شبکه های عصبی
• یادگیری عمیق
• ماشین های بردار پشتیبان
• جنگل های تصادفی
برای حل مسئله برچسب زدن به تصویر می توانید از هر یک از الگوریتم های فوق استفاده کنید.

پایتون برای یادگیری ماشین

کتابخانه ها و چهارچوب های یادگیری ماشین متداولی برای پایتون وجود دارد. دو مورد از محبوب ترین آن ها scikit-Learn و TensorFlow هستند. اگر تازه یک پروژه یادگیری ماشین را شروع کرده اید ، توصیه می کنم ابتدا با scikit-Learn شروع کنید. اما اگر کاری با بهره وری بالا را آغاز کرده اید، توصیه می کنم که از TensorFlow استفاده کنید.

تجزیه و تحلیل داده ها و مصورسازی اطلاعات

برای درک بهتر این موضوع از یک مثال ساده استفاده می کنیم. فرض کنید شما در شرکتی کار می کنید که محصولات را به صورت آنلاین می فروشند. به عنوان یک تحلیل گر داده، شما می توانید نموداری مانند نمودار زیر ترسیم کنید:
کاربردهای پایتون و توسعه وب و علوم داده و یادگیری ماشین
از این نمودار می توان برداشت کرد که آقایان بیش از ۴٠٠ دستگاه، و خانم ها حدود ٣۵٠ دستگاه از این محصول را در یک روز مشخص (یکشنبه) خریداری کرده اند. به عنوان یک تحلیل گر داده ممکن است برای این تفاوت توضیحات احتمالی ارائه دهید. یکی از توضیحات بارز احتمالی این است که این محصول در مردان از محبوبیت بیشتری برخوردار است. یک توضیح احتمالی دیگر این است که مردان به دلایلی بیشتر تمایل به خرید این محصول در روز یکشنبه دارند. برای درک این که کدام یک از این توضیحات صحیح است، می توانید نمودار دیگری مانند این نمودار را ترسیم کنید.
کاربردهای پایتون و توسعه وب و علوم داده و یادگیری ماشین
به جای این که داده ها را فقط برای یکشنبه نشان دهیم، ما به مدت یک هفته به تحلیل داده ها می پردازیم. همان طور که می بینید، این تفاوت در طول روزهای مختلف ثابت است. از این تحلیل ساده، می توان نتیجه گرفت که قانع کننده ترین توضیح برای این تفاوت این است که این محصول صرفا در بین مردان محبوب تر از زنان است.
از طرف دیگر ، اگر نمودار زیر را مشاهده می کردید نتیجه چه تفاوتی داشت؟

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

تجزیه و تحلیل داده ها و مصورسازی اطلاعات با پایتون

یکی از محبوب ترین کتابخانه ها برای مصورسازی اطلاعات، Matplotlib است.
این یک کتابخانه خوب برای شروع کار است زیرا:
شروع کار با آن آسان است
برخی از کتابخانه های دیگر مانند seaborn بر اساس آن بنا شده اند. بنابراین، یادگیری Matplotlib به شما در یادگیری سایر کتابخانه ها کمک خواهد کرد.

اسکریپت نویسی

اسکریپت نویسی چیست؟
اسکریپت نویسی معمولا به نوشتن برنامه های کوچک اشاره دارد که به منظور اتوماسیون کارهای ساده طراحی شده اند. پایتون برای این نوع کارها مناسب است زیرا دارایترکیبی نسبتا ساده بوده و نوشتن آن بسیار آسان است. همچنین نوشتن برنامه های کوچک با آن و آزمایش آن سریع است.
در مورد توسعه بازی چطور؟
می توانید از کتابخانه ای به نام PyGame برای توسعه بازی ها استفاده کنید؛ اما این متداول ترین کتابخانه نیست. شما می توانید از آن برای ساختن یک پروژه سرگرمی استفاده کنید، اما اگر در مورد توسعه بازی جدی هستید، این کتابخانه را توصیه نمی کنیم. در عوض Unity که یکی از محبوب ترین موتورهای بازی است را پیشنهاد می کنیم. Unity این امکان را به شما می دهد تا برای بسیاری از سیستم عامل ها، از جمله Mac ، Windows ، iOS و Android ، بازی ایجاد کنید.

در مورد برنامه های دسک تاپ چطور؟
می توانید از Tkinter استفاده کنید ، اما به نظر نمی رسد که بهترین انتخاب باشد. درعوض، زبان هایی مانند Java ، C # و C ++ برای این امر محبوبیت بیشتری دارند.

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

فرض کنید می خواهید برنامه ای مانند اینستاگرام بسازید. باید برای هر نوع دستگاهی که می خواهید پشتیبانی کنید، کد فرانت-اند ایجاد کنید. به عنوان مثال:
Swift برای iOS
Java برای Android
JavaScript برای مرورگرهای وب
هر مجموعه کد بر روی هر نوع دستگاه / مرورگر اجرا می شود. این مجموعه کد است که تعیین می کند چیدمان برنامه چگونه باشد و وقتی روی دکمه کلیک می شود ظاهر آن ها چه تغییر کند و …. شما همچنین به توانایی ذخیره اطلاعات و عکس های کاربران نیاز دارید؛ و باید آن ها را روی سرور خود (نه فقط در دستگاه های کاربران) ذخیره کنید.
اینجاست که کد بک-اند(کد سمت سرور) وارد می شود. برای انجام کارهایی مانند پیگیریاین که چه کسانی یکدیگر را دنبال می کنند،فشرده سازی عکس ها، پیشنهاد صفحاتی که علایق کاربران را در بر می گیرد و غیره.
به بیان ساده این تفاوت بین کد بک-اند و کد فرانت اند است.
به هر حال ، پایتون تنها انتخاب برای نوشتن کد بک-اند نیست. گزینه های محبوب دیگری نیز از جمله Node.js وجود دارد که مبتنی بر JavaScript است.

۱۲ کارایی شگفت انگیز یادگیری پایتون

۱۱۶ بازديد

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

کارایی یادگیری ماشین با پایتون



1. سادگی خواندن و نوشتن در پایتون 

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

2. مجموعه عظیمی از کتابخانه های مرتبط  در پایتون

پایتون برای اهداف یادگیری ماشینی مجموعه گسترده ای از کتابخانه ها را در اختیار دارد. اینها شامل Python NumPy ، SciPy ، scikit-Learn و موارد دیگر است. که برای تمام کارهای ذاتی یادگیری ماشین کاربرد دارند..
scikit-Learn– برای داده کاوی ، تجزیه و تحلیل داده ها و یادگیری ماشین مناسب است.
pylearn– انعطاف پذیر تر از scikit-Learn میباشد.
کتابخانه ماژولار PyBrain با الگوریتم های یادگیری ماشین انعطاف پذیر ، آسان و قدرتمند و محیط های از پیش تعریف شده برای آزمایش و مقایسه الگوریتم ها مناسب است.
orange – کمک به تجسم و تجزیه و تحلیل داده ها با منبع باز ، دارای مؤلفه هایی برای یادگیری ماشین ، دارای پسوندهایی برای سنجش بیومتریک و استخراج متن، پشتیبانی از داده کاوی از طریق برنامه نویسی بصری یا برنامه نویسی پایتون است.
PyML– چارچوب تعاملی شی گرا برای یادگیری ماشین ، که در پایتون نوشته شده است.
Milk_ دارای SVM ، k-NN ، جنگلهای تصادفی ، درختان تصمیم گیری ، که انتخاب ویژگی را انجام می دهد.
Shogun– ابزار یادگیری ماشین ، متمرکز بر روش های کرنل بزرگ مقیاس و SVM ها میباشد.
Tensorflow_کتابخانه شبکه عصبی سطح بالا میباشد.

برنامه های کاربردی آموزش ماشین با پایتون

1. پیش بینی گزینه های موسیقی

ماشین لرنینگ با پایتون - دستیار صوتی

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

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

  • برنامه های کاربردی آموزش ماشین با پایتون
  • غربالگری اولیه ترکیبات دارویی
  • پیش بینی میزان موفقیت بر اساس عوامل بیولوژیکی
  • فن آوری های تحقیق و توسعه مانند نسل بعدی توالی
  • فرآیندهای بیماری را درک کنید.
  • درمان هایی مؤثر برای بیماری ها طراحی کنید.
  • شخصی سازی ترکیبات دارویی.
  • داروهای ارزان تر با همانندسازی بهبود یافته تولید کنید.
  • تحقیق و توسعه روش های تشخیصی و درمانی.

3. تشخیص چهره

تشخیص چهره-یادگیری ماشین با پایتون

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

4. دستیاران شخصی مجازی 

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

 5. خدمات رسانه های اجتماعی

فیسبوک _یادگیری ماشین با پایتون
این برنامه از یادگیری ماشینی برای نظارت بر فعالیت شما استفاده می کند. چه پروفایل هایی را که بازدید می کنید ، چه افرادی را برای آن ها درخواست دوستی میفرستید یا افرادی که درخواست های آنها را می پذیرید وهمینطور افرادی که برچسب گذاری می کنید …
فیس بوک امیدوار است تجربه غنی تری را در پلتفرم خود به شما ارائه دهد ، بنابراین شما مرتباً از یادگیری ماشین با پایتون در آن استفاده خواهید کرد.

6. اتومبیل های خودران 

لتومبیل های خودران با ماشین لرنینگ

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

7. پشتیبانی آنلاین مشتری

پشتیبانی آنلاین مشتری با ماشین لرنینگ

وب سایتهای آموزشی و سیستم عاملهای خرید اغلب یک گپ زنده را برای کمک به سوالات خود ایجاد می کنند. بازدید کننده ای با کلی سؤال بی جواب ،احتمالاً خرید خود را ترک می کند.ولی برخی از وب سایتها از یک ********bot برای جلب اطلاعات به وب سایت استفاده می کنند و سعی می کنند به سؤالات مشتری بپردازند.

8. نظارت تصویری

نظارت تصویری

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

9. توصیه های محصول

پشتیبانی مشتری با کمک پایتون و یادگیری ماشین

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

10. برنامه های قیمت گذاری بیمه

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

11. ترجمه خودکار

یادگیری ماشین با پایتون

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

12. تشخیص کلاهبرداری های آنلاین


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

 

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

به غیر از مواردی که ذکر کردیم ، می توانیم از Machine Learning برای اهداف زیر استفاده کنیم :

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

 موارد ذکر شده همگی در مورد برنامه های کاربردی یادگیری ماشین با پایتون میباشد. امیدوارم توضیحات ما در این خصوص  برایتان مفید بوده باشد.

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

آموزش دیپ لرنینگ چگونه می توان با استفاده از دیپ لرنینگ در پایتون ، FaceID را در آیفون X اجرا کرد؟

۱۲۲ بازديد

مقدمه:

یکی از ویژگی های بحث برانگیز آیفون X روش باز کردن قفل با استفاده از تشخیص چهره ( FaceID ) است که جایگزین TouchID شده است. اپل پس از ساخت تلفن بدون حاشیه، مجبور شد روش جدیدی را برای باز کردن قفل گوشی به شکلی آسان و سریع ایجاد کند. در حالی که برخی از رقبا به قرار دادن سنسور اثر انگشت در موقعیتی جدید بسنده کردند، اپل تصمیم گرفت در شیوه باز کردن تلفن روشی نوآورانه و انقلابی را ایجاد کند؛ یعنی نگاه کردن به صفحه نمایش گوشی! به لطف بهره گیری از یک دوربین جلوی پیشرفته و بسیار کوچک، آیفون X قادر به ایجاد نقشه سه بعدی از چهره کاربر است. علاوه بر این، تصویری از چهره کاربر با استفاده از یک دوربین مادون قرمز ضبط می شود که نسبت به تغییرات در نور و رنگ محیط پایداری بیشتری دارد. با استفاده از دیپ لرنینگ ، تلفن های هوشمند قادر هستند با جزئیات کامل تری چهره کاربر را ضبط کنند، بنابراین هر بار که تلفن توسط صاحب آن برداشته می شود او را تشخیص می دهند. در کمال تعجب، اپل اظهار داشته است که این روش حتی از TouchID نیز ایمن تر بوده و میزان خطای برجسته آن ١:١٠٠٠٠٠٠ است.
ما به نحوه ایجاد این فرآیند با استفاده از دیپ لرنینگ و چگونگی بهینه سازی هر مرحله تمرکز کردیم. در این مقاله، نشان می دهیم که چگونه الگوریتم شبیه به FaceID را می توان با استفاده از Keras پیاده سازی کرد. آزمایش های نهایی با استفاده از Kinect، یک دوربین RGB بسیار محبوب، که دارای خروجی بسیار مشابه دوربین های جلوی آیفون X است، انجام شده اند.

مفهوم FaceID:

اجرای FaceID در Keras و دیپ لرنینگ و دیپ لرنینگ در پایتون و شبکه های عصبی و iphone x

فرآیند تنظیم FaceID

شبکه های عصبی FaceID عملکرد پیچیده ای دارند. اولین قدم، تجزیه و تحلیل دقیق نحوه عملکرد FaceID در آیفون X است. در TouchID، کاربر مجبور است ابتدا با لمس مکرر حسگر، اثر انگشت خود را ثبت کند. پس از حدود ١۵ نمونه گیری مختلف، تلفن هوشمند فرایند ثبت را تکمیل کرده و TouchID آماده فعالیت خواهد بود. به طور مشابه در FaceID نیز کاربر باید صورت خود را ثبت کند. فرایند بسیار ساده است: کاربر فقط به گوشی نگاه می کند و سپس به آرامی سرش را به دنبال یک دایره می چرخاند. بنابراین صورت در حالت های مختلف ثبت می شود. حالا قفل صفحه نمایش آماده فعالیت است. این روش ثبت سریع  و شگفت آور می تواند در مورد الگوریتم های یادگیری اساسی چیزهای زیادی به ما بگوید. به عنوان مثال، شبکه های عصبی در FaceID تنها عمل طبقه بندی را انجام نمی دهند. انجام طبقه بندی برای یک شبکه عصبی به معنای یادگیری این است که آیا شخصی که به آیفون نگاه می کند کاربر واقعی آن است یا خیر. بنابراین باید از برخی داده های آموزشی جهت پیش بینی “درست” یا “نادرست” استفاده کند. اما علی رغم موارد متعدد استفاده از دیپ لرنینگ ، در اینجا این رویکرد مؤثر نیست. ابتدا شبکه عصبی باید با استفاده از داده های جدید به دست آمده از چهره کاربر، آموزش ببیند. این امر نیازمند زمان، انرژی و داده های آموزشی از چهره های مختلف برای تشخیص تصویر است. بعلاوه، این روش امکان آموزش اپل در حالت آفلاین را فراهم نمی کند. اما FaceID با شبکه عصبی پیچشی Siamese (توضیح در بخش بعد) طراحی شده که در حالت آفلاین توسط اپل برای ثبت چهره آموزش می بیند.

چهره ها و اعداد در شبکه های عصبی ( شبکه عصبی Siamese )

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

اجرای FaceID در Keras و دیپ لرنینگ و دیپ لرنینگ در پایتون و شبکه های عصبی و iphone x

 توجه کنید که معماری شبکه عصبی چگونه شباهت بین ارقام را یاد می گیرد و به طور خودکار آنها را در دو بعد دسته بندی می کند. تکنیک مشابهی روی صورت ها اعمال می شود.

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

مزیت نهایی استفاده از دیپ لرنینگ در تشخیص تصویر

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

اجرای FaceID در Keras و دیپ لرنینگ و دیپ لرنینگ در پایتون و شبکه های عصبی و iphone x

هنگامی که ظاهر شما تغییر می کند، FaceID سازگار می شود

 

اجرای FaceID در Keras

در مورد همه پروژه های دیپ لرنینگ اولین چیزی که ما نیاز داریم داده است. ایجاد مجموعه داده های ما به زمان و همکاری بسیاری از افراد نیاز دارد و این می تواند بسیار چالش برانگیز باشد. به همین دلیل از مجموعه داده های چهره RGB-D موجود در اینترنت کمک گرفتیم. در این مجموعه داده، افراد با اشکال مختلف و جهات مختلف وجود دارند. همان طور که در هنگام استفاده از آیفون اتفاق می افتد.
در ابتدا یک شبکه عصبی پیچشی بر اساس معماری SqueezeNet ایجاد کردیم. شبکه عصبی به شکلی آموزش داده می شود که فاصله بین تصاویر یک شخص را به حداقل رسانده و فاصله بین تصاویر اشخاص مختلف را به حداکثر برساند. پس از آموزش ، شبکه قادر است چهره ها را در آرایه های ١٢٨ بعدی ترسیم کند. به گونه ای که تصاویر یک شخص در کنار هم طبقه بندی شده و از تصاویر افراد دیگر فاصله دارد. این بدان معنی است که برای باز کردن قفل، شبکه فقط باید فاصله بین تصاویر ذخیره شده در مرحله ثبت چهره و تصویری که در هنگام باز کردن قفل دریافت می کند، محاسبه کند. اگر فاصله زیر یک آستانه مشخص باشد، (هرچه کمتر باشد از امنیت بیشتری برخوردار است) قفل دستگاه باز می شود.

آزمایش شبیه سازی FaceID

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

اجرای FaceID در Keras و دیپ لرنینگ و دیپ لرنینگ در پایتون و شبکه های عصبی و iphone x

مرحله ثبت تصویر برای یک کاربر جدید با الهام از روند FaceID

 

حال ببینیم چه اتفاقی می افتد اگر همان کاربر سعی کند با حالت های مختلف چهره قفل دستگاه را باز کند.

اجرای FaceID در Keras و دیپ لرنینگ و دیپ لرنینگ در پایتون و شبکه های عصبی و iphone x

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

 

از طرف دیگر ، تصاویر RGBD از افراد مختلف به طور متوسط فاصله ١/١ را ایجاد می کند.

اجرای FaceID در Keras و دیپ لرنینگ و دیپ لرنینگ در پایتون و شبکه های عصبی و iphone x

فاصله های چهره در فضای تعبیه شده برای کاربران مختلف

بنابراین، آستانه ای در حدود ۴/٠ باید برای جلوگیری از باز کردن قفل دستگاه توسط دیگران کافی باشد.

آموزش دیپ لرنینگ را در آکادمی آمانج تجربه کنید.