• مقدمه ای بر یادگیری عمیق شبکه های عصبی یادگیری عمیق

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

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

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

    ممکن است به نظر برسد که برنده شدن در یک بازی رومیزی برای حل مشکلات واقعی غیرقابل اجرا به نظر می رسد، اما اصلاً اینطور نیست. Go طوری طراحی شده است که توسط هوش مصنوعی بی نظیر باشد. برای انجام این کار، او باید یک چیز مهم را برای این بازی یاد بگیرد - شهود انسانی. اکنون با کمک این توسعه، می توان بسیاری از مشکلاتی را که قبلاً برای رایانه غیر قابل دسترس بودند، حل کرد.

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

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

    یادگیری عمیق چیست؟

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

    دایره بیرونی به طور کلی هوش مصنوعی است (مثلاً رایانه ها). کمی جلوتر - یادگیری ماشینی و کاملاً در مرکز - یادگیری عمیق و شبکه های عصبی مصنوعی.

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

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

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

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

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

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

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

    روش های یادگیری عمیق

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

    • یادگیری با معلم
    • یادگیری بدون معلم

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

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

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

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

    اهمیت یادگیری عمیق

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

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

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

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

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

    میکروسرویس های یادگیری عمیق

    در اینجا مروری کوتاه بر خدمات مرتبط با یادگیری عمیق است.

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

    • افزونه برای Theano توسط Google
    • ویرایش شده در Python و Numpy
    • اغلب برای حل طیف خاصی از مشکلات استفاده می شود
    • هدف کلی نیست تمرکز اصلی بر بینایی ماشین
    • ویرایش شده در C++
    • دارای رابط پایتون

    دوره های آموزش عمیق آنلاین

    گوگل و Udacity برای ایجاد یک دوره آموزش عمیق رایگان، که بخشی از دوره Udacity Machine Learning است، با یکدیگر همکاری کرده اند. این برنامه توسط توسعه دهندگان با تجربه ای هدایت می شود که می خواهند زمینه یادگیری ماشینی و به ویژه یادگیری عمیق را توسعه دهند.

    یکی دیگر از گزینه های محبوب دوره یادگیری ماشین Andrew Ng است که توسط Coursera و Stanford پشتیبانی می شود.

    1. یادگیری ماشین - استنفورد توسط اندرو نگ در Coursera (2010-2014)
    2. یادگیری ماشین - Caltech توسط یاسر ابومصطفی (2012-2014)
    3. یادگیری ماشین - کارنگی ملون اثر تام میچل (بهار 2011)
    4. شبکه های عصبی برای یادگیری ماشین - جفری هینتون در کورسرا (2012)
    5. کلاس شبکه عصبی- هوگو لاروشل از دانشگاه شربروک (2013

    کتاب های یادگیری عمیق

    در حالی که منابع در بخش قبل از یک پایگاه دانش نسبتاً گسترده استفاده می کنند، برعکس، یادگیری عمیق Grokking برای مبتدیان هدف قرار می گیرد. همانطور که نویسندگان می گویند: "اگر شما 11 کلاس را تکمیل کرده اید و تقریباً نحوه نوشتن در پایتون را می دانید، ما به شما یادگیری عمیق را آموزش می دهیم."

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

    1. یادگیری عمیق توسط یوشوا بنجیو، ایان گودفلو و آرون کورویل (2015)
    2. "شبکه های عصبی و یادگیری عمیق" نوشته مایکل نیلسن (2014)
    3. "یادگیری عمیق" توسط Microsoft Research (2013)
    4. "آموزش های یادگیری عمیق" توسط آزمایشگاه LISA، دانشگاه مونترال (2015)
    5. "نورال تاک" اثر آندری کارپاتی
    6. "مقدمه ای بر الگوریتم های ژنتیک"
    7. "رویکرد مدرن به هوش مصنوعی"
    8. مروری بر یادگیری عمیق و شبکه های عصبی

    فیلم ها و سخنرانی ها

    Deep Learning Simplified یک کانال فوق العاده در یوتیوب است. این اولین ویدیوی آنهاست:

    (انتشارات منینگ).

    این مقاله برای افرادی در نظر گرفته شده است که قبلاً تجربه قابل توجهی در زمینه یادگیری عمیق دارند (به عنوان مثال، کسانی که قبلاً فصل های 1-8 این کتاب را خوانده اند). دانش زیادی را فرض می کند.

    یادگیری عمیق: نمای هندسی

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

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

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

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

    محدودیت های یادگیری عمیق

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

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

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

    خطر انسان‌سازی مدل‌های یادگیری ماشین

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

    به‌ویژه، این امر در «مثال‌های متخاصم» بیشتر مشهود است، یعنی نمونه‌هایی از داده‌های ورودی شبکه یادگیری عمیق که مخصوصاً برای طبقه‌بندی اشتباه انتخاب شده‌اند. قبلاً می‌دانید که می‌توانید صعود گرادیان را در فضای داده ورودی انجام دهید تا نمونه‌هایی تولید کنید که فعال‌سازی، به عنوان مثال، یک فیلتر شبکه عصبی کانولوشنال خاص را به حداکثر می‌رسانند - این اساس تکنیک تجسم‌سازی است که در فصل 5 به آن پرداختیم (توجه داشته باشید: یادگیری عمیق با کتاب‌های پایتون)، درست مانند الگوریتم Deep Dream از فصل 8. به روشی مشابه، از طریق شیب صعود، می‌توان تصویر را کمی تغییر داد تا پیش‌بینی کلاس را برای یک کلاس مشخص به حداکثر برساند. اگر از یک پاندا عکس بگیریم و یک گرادیان "گیبون" اضافه کنیم، می‌توانیم شبکه عصبی این پاندا را به عنوان گیبون طبقه‌بندی کنیم. این هم به شکنندگی این مدل‌ها و هم به تفاوت عمیق بین تبدیل ورودی به خروجی که هدایت می‌کند و ادراک انسانی خودمان گواهی می‌دهد.

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

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

    تعمیم محلی در مقابل تعمیم حد

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

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

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

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

    نتیجه گیری

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

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

    آینده یادگیری عمیق

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

    در سطح بالا، در اینجا زمینه های اصلی که به نظر من امیدوارکننده است، آمده است:

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

    پس برو جلو

    مدل ها به عنوان برنامه

    همانطور که قبلاً اشاره کردیم، یک توسعه تحول آفرین ضروری که می توان در زمینه یادگیری ماشین انتظار داشت، در حال دور شدن از مدل هایی است که صرفاً عملکرد دارند. الگو شناسیو فقط قادر است تعمیم محلی، به مدل های قادر به انتزاعاتو استدلالکه می تواند برسد تعمیم نهایی. همه برنامه های فعلی هوش مصنوعی با سطح پایه استدلال توسط برنامه نویسان انسانی کدگذاری سختی دارند: به عنوان مثال، برنامه هایی که بر الگوریتم های جستجو، دستکاری نمودار، منطق رسمی تکیه دارند. به عنوان مثال، در برنامه DeepMind AlphaGo، بیشتر "هوش" روی صفحه توسط برنامه نویسان خبره طراحی و کدگذاری می شود (مثلاً جستجوی درختی با استفاده از روش مونت کارلو). یادگیری بر روی داده های جدید فقط در زیر ماژول های تخصصی - شبکه های ارزش و شبکه های سیاست رخ می دهد. اما در آینده، چنین سیستم های هوش مصنوعی می توانند بدون دخالت انسان به طور کامل آموزش داده شوند.

    چگونه می توان به این امر دست یافت؟ بیایید یک نوع شبکه شناخته شده را در نظر بگیریم: RNN. نکته مهم این است که RNN ها نسبت به شبکه های عصبی پیشخور کمی محدودیت های کمتری دارند. این به این دلیل است که RNN ها کمی بیشتر از تبدیل های هندسی ساده هستند: آنها تبدیل های هندسی هستند که به طور مداوم در یک حلقه for انجام می شوند. زمان بندی حلقه توسط توسعه دهنده تنظیم می شود: این یک فرض شبکه داخلی است. به طور طبیعی، RNN ها هنوز در آنچه می توانند نشان دهند محدود هستند، عمدتاً به این دلیل که هر یک از مراحل آنها هنوز یک تبدیل هندسی قابل تمایز است و به دلیل روشی که آنها اطلاعات را گام به گام از نقاطی در یک فضای هندسی پیوسته (بردارهای حالت) عبور می دهند. اکنون شبکه های عصبی را تصور کنید که با برنامه نویسی اولیه به همان روشی "افزایش" می یابند برای حلقه ها- اما نه فقط یک حلقه for-coded منفرد با حافظه هندسی رمزگذاری شده، بلکه مجموعه بزرگی از برنامه‌نویسی اولیه که مدل می‌تواند آزادانه به آنها دسترسی داشته باشد تا قابلیت‌های پردازشی خود را گسترش دهد، مانند if branchs، while دستورات، ایجاد متغیر، ذخیره سازی دیسک برای حافظه بلند مدت، عملگرهای مرتب سازی، ساختارهای داده پیشرفته مانند لیست ها، نمودارها، جداول هش و موارد دیگر. فضای برنامه ای که چنین شبکه ای می تواند نشان دهد بسیار گسترده تر از آن خواهد بود شبکه های موجودیادگیری عمیق، و برخی از این برنامه ها می توانند به قدرت تعمیم عالی دست یابند.

    در یک کلام، از این واقعیت دور خواهیم شد که از یک طرف «هوش الگوریتمی کدگذاری شده» (نرم افزار دست نویس) و از سوی دیگر «هوش هندسی آموزش دیده» (یادگیری عمیق) داریم. در عوض، ما مخلوطی از ماژول های الگوریتمی رسمی را دریافت می کنیم که این توانایی را فراهم می کند استدلالو انتزاعاتو ماژول های هندسی که فرصت ها را فراهم می کنند شهود غیررسمی و تشخیص الگو. کل سیستم با مشارکت کم یا بدون مشارکت انسانی آموزش داده خواهد شد.

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

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


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

    فراتر از پس انتشار و لایه های قابل تمایز

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

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

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

    یادگیری ماشین خودکار

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

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

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

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

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

    یادگیری مادام العمر و استفاده مجدد از روال های مدولار

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

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

    کاری که ما در واقع انجام می‌دهیم زمانی که دوباره مدل را در کارهای مختلف به کار می‌بریم، استفاده از وزنه‌های از قبل آموزش‌دیده‌شده برای مدل‌هایی است که انجام می‌دهند. توابع عمومیمانند استخراج ویژگی های بصری. شما این را در عمل در فصل 5 مشاهده کردید. من انتظار دارم که در آینده یک نسخه کلی تر از این تکنیک در همه جا استفاده شود: ما نه تنها از ویژگی های قبلاً آموخته شده (وزن های مدل فرعی)، بلکه از معماری های مدل و روش های آموزشی استفاده خواهیم کرد. همانطور که مدل ها بیشتر شبیه برنامه ها می شوند، ما شروع به استفاده مجدد خواهیم کرد کارهای روزمرهدرست مانند توابع و کلاس ها در زبان های برنامه نویسی معمولی.

    به این فکر کنید که فرآیند توسعه نرم‌افزار امروزی چگونه به نظر می‌رسد: هنگامی که یک مهندس مشکل خاصی را حل می‌کند (برای مثال درخواست‌های HTTP در پایتون)، آن را به عنوان یک کتابخانه انتزاعی برای استفاده مجدد بسته‌بندی می‌کند. مهندسانی که در آینده با مشکل مشابهی مواجه می شوند به سادگی به دنبال کتابخانه های موجود می گردند، آنها را دانلود کرده و در پروژه های خود استفاده می کنند. به همین ترتیب، در آینده، سیستم‌های فرا یادگیری قادر خواهند بود برنامه‌های جدیدی را با غربال کردن یک کتابخانه جهانی از بلوک‌های قابل استفاده مجدد در سطح بالا جمع‌آوری کنند. اگر سیستم شروع به توسعه روال های مشابه برای چندین کار مختلف کند، نسخه قابل استفاده مجدد «انتزاعی» از روال را منتشر می کند و آن را در کتابخانه جهانی ذخیره می کند. این فرآیند امکان را برای انتزاعات, جزء مورد نیازبرای دستیابی به "تعمیم نهایی": می توان گفت که یک برنامه فرعی که برای بسیاری از وظایف و زمینه ها مفید است، برخی از جنبه های تصمیم گیری را "انتزاعی" می کند. به نظر نمی رسد این تعریف از "انتزاع" مفهوم انتزاع در توسعه نرم افزار باشد. این روال ها می توانند هندسی (ماژول های یادگیری عمیق با نمایش های از پیش آموزش دیده) یا الگوریتمی (نزدیک به کتابخانه هایی که برنامه نویسان مدرن با آنها کار می کنند) باشند.

    نقاشی: یک سیستم فرا یادگیری که قادر است به سرعت مدل‌های ویژه کار را با استفاده از الگوریتم‌های قابل استفاده مجدد (الگوریتمی و هندسی) توسعه دهد و در نتیجه به «تعمیم نهایی» دست یابد.

    خط پایانی: دید بلند مدت

    به طور خلاصه، در اینجا چشم انداز بلند مدت من برای یادگیری ماشین است:
    • مدل‌ها بیشتر شبیه برنامه‌ها خواهند شد و قابلیت‌هایی خواهند داشت که بسیار فراتر از تبدیل‌های هندسی پیوسته داده‌های اصلی است که اکنون با آن کار می‌کنیم. شاید این برنامه‌ها به مدل‌های ذهنی انتزاعی‌ای که افراد در مورد محیط خود و خودشان دارند بسیار نزدیک‌تر باشند و به دلیل ماهیت الگوریتمی‌شان بتوانند قوی‌تر تعمیم دهند.
    • به طور خاص، مدل ها مخلوط خواهند شد ماژول های الگوریتمیبا استدلال رسمی، جستجو، توانایی انتزاع - و ماژول های هندسیبا شهود غیررسمی و تشخیص الگو. AlphaGo (سیستمی که به برنامه‌نویسی و معماری دستی فشرده نیاز داشت) نمونه‌ای اولیه از ادغام هوش مصنوعی نمادین و هندسی است.
    • آن ها خواهند رشد کرده باشدبه طور خودکار (و توسط برنامه نویسان انسانی نوشته نشده است)، با استفاده از قطعات مدولار از یک کتابخانه جهانی از زیر روال های قابل استفاده مجدد - کتابخانه ای که با جذب مدل های با کارایی بالا از هزاران وظیفه و مجموعه داده های قبلی تکامل یافته است. هنگامی که سیستم یادگیری فلزی الگوهای رایج حل مسئله را تعریف کرد، آنها به روتین های قابل استفاده مجدد تبدیل می شوند - بسیار شبیه توابع و کلاس ها در برنامه نویسی مدرن- و به کتابخانه جهانی اضافه شد. این است که چگونه توانایی انتزاعات.
    • کتابخانه جهانی و سیستم رشد مدل مربوطه قادر به دستیابی به نوعی "تعمیم افراطی" انسان نما خواهد بود: در مواجهه با یک کار جدید، یک موقعیت جدید، سیستم قادر خواهد بود یک مدل کاری جدید برای این کار با استفاده از یک روش بسیار جمع آوری کند. مقدار کمی از داده ها، به لطف: 1) برنامه های اولیه غنی مانند برنامه، که در تعمیم ها خوب هستند و 2) تجربه گسترده در حل مسائل مشابه. به همان ترتیبی که افراد می توانند به سرعت یک بازی ویدئویی پیچیده جدید را یاد بگیرند، زیرا آنها تجربه قبلی بسیاری از بازی های دیگر را دارند و به این دلیل که مدل های مبتنی بر تجربه قبلی انتزاعی و شبیه برنامه هستند، نه اینکه محرک را صرفاً به عمل تبدیل کنند.
    • اساساً، این سیستم در حال رشد مدل یادگیری مداوم را می توان به عنوان هوش مصنوعی قوی تعبیر کرد. اما انتظار نداشته باشید که یک آخرالزمان روبوی منحصر به فرد رخ دهد: این یک فانتزی ناب است که از فهرست طولانی سوء تفاهم های عمیق در درک هوش و فناوری زاده شده است. با این حال، این انتقاد به اینجا مربوط نمی شود.

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

  • آن چیست؟

    یادگیری عمیق شاخه ای از یادگیری ماشینی است که از مدلی الهام گرفته از ساختار مغز - تعامل نورون ها - استفاده می کند.

    خود این اصطلاح در دهه 1980 ظاهر شد، اما تا سال 2012 ظرفیت کافی برای پیاده سازی این فناوری وجود نداشت و تقریباً هیچ کس به آن توجه نکرد. پس از یک سری مقالات توسط دانشمندان مشهور، انتشارات در مجلات علمی، این فناوری به سرعت محبوب شد و مورد توجه رسانه های بزرگ قرار گرفت - نیویورک تایمز اولین رسانه ای در جهان بود که در این مورد نوشت. یکی از دلایل مطالب این بود کار علمیمتخصصان دانشگاه تورنتو، الکس کریژفسکی، ایلیا ساتسکور و جف هینتون. آنها نتایج مسابقه تشخیص تصویر ImageNet را توصیف و تجزیه و تحلیل کردند، جایی که شبکه عصبی یادگیری عمیق آنها با اختلاف زیادی برنده شد - سیستم 85٪ از اشیاء را شناسایی کرد. از آن زمان، تنها یک شبکه عصبی عمیق برنده این رقابت شده است.

  • صبر کنید، یادگیری ماشینی چیست؟

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

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

  • یادگیری عمیق چگونه کار می کند؟

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

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

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

    به زبان ساده: 1.اگر برنامه ای نوشتید که شطرنج بازی می کند، این هوش مصنوعی است. 2.اگر در همان زمان او بر اساس بازی های استادان بزرگ یا بازی در برابر خودش یاد می گیرد - این یادگیری ماشینی است. 3.و اگر از آن نه چیزی، بلکه یک شبکه عصبی عمیق یاد بگیرد، این یک یادگیری عمیق است..

  • یادگیری عمیق چگونه کار می کند؟

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

  • و چه چیزی قبلاً با آن توسعه یافته است؟

    بیشتر پروژه های یادگیری عمیق در تشخیص عکس یا صدا، تشخیص بیماری استفاده می شود. به عنوان مثال، قبلاً در آن استفاده می شود ترجمه های گوگلاز تصویر: فناوری یادگیری عمیق به شما امکان می دهد تعیین کنید که آیا حروف در تصویر وجود دارد یا خیر، و سپس آنها را ترجمه کنید. پروژه دیگری که با عکس ها کار می کند یک سیستم تشخیص چهره به نام DeepFace است. او قادر است چهره انسان را با دقت 97.25٪ تشخیص دهد - تقریباً با دقت یک شخص.

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

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

  • چرا یادگیری عمیق زودتر معرفی نشد؟

    قبلاً پرهزینه، دشوار و وقت گیر بود - پردازنده های گرافیکی قدرتمند، کارت های ویدیویی و اندازه حافظه مورد نیاز بود. رونق یادگیری عمیق دقیقاً با استفاده گسترده از پردازنده‌های گرافیکی مرتبط است که باعث افزایش سرعت و کاهش هزینه‌های محاسباتی، قابلیت‌های تقریباً نامحدود ذخیره‌سازی داده‌ها و توسعه فناوری «داده‌های بزرگ» می‌شود.

  • آیا این فناوری پیشرفت است، آیا همه چیز را تغییر خواهد داد؟

    به سختی می توان با اطمینان گفت، نظرات متفاوت است. از یک طرف، گوگل، فیس بوک و سایر شرکت های بزرگ تاکنون میلیاردها دلار سرمایه گذاری کرده اند و خوش بین هستند. به گفته آنها، شبکه های عصبی یادگیری عمیق می توانند تغییر کنند دستگاه فناورانهصلح یکی از متخصصان اصلی یادگیری ماشین - Andrew Yng - می گوید: "اگر شخصی بتواند یک کار را در یک ثانیه در ذهن خود انجام دهد، به احتمال زیاد این کار در آینده نزدیک خودکار خواهد شد." یونگ یادگیری ماشینی را «الکتریسیته جدید» می‌نامد - این یک انقلاب تکنولوژیکی است و شرکت‌هایی که آن را نادیده می‌گیرند خیلی سریع خود را ناامیدانه پشت رقابت خواهند دید.

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

    سرگئی نیکولنکو، یکی از نویسندگان Deep Learning: «تاریخ هوش مصنوعی قبلاً دو «زمستان» را می شناسد که موجی از هیاهو و انتظارات متورم با ناامیدی به دنبال داشت. اتفاقاً هر دو بار با شبکه های عصبی متصل شد. اولین بار در اواخر دهه 1950 تصمیم گرفته شد که پرسپترون روزنبلات بلافاصله به ترجمه ماشینی و کامپیوترهای خودآگاه منجر شود. اما البته به دلیل محدودیت های سخت افزاری، داده ها و نبود مدل های مناسب به نتیجه نرسید.

    و در اواخر دهه 1980، وقتی متوجه شدند که چگونه هر معماری شبکه های عصبی را آموزش دهند، اشتباه مشابهی را مرتکب شدند. به نظر می رسید که اینجاست، کلید طلایی که هر دری را باز می کند. این نتیجه گیری ساده لوحانه ای نبود: در واقع، اگر یک شبکه عصبی را از اواخر دهه 1980 بگیرید، آن را به طور مکانیکی بزرگتر کنید (تعداد نورون ها را افزایش دهید) و آن را بر روی مجموعه داده های مدرن و سخت افزار مدرن آموزش دهید، واقعاً بسیار خوب کار خواهد کرد! اما نه داده‌ها و نه سخت‌افزار در آن زمان در دسترس نبودند و انقلاب یادگیری عمیق باید تا اواخر دهه 2000 به تعویق بیفتد.

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

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

    03.05.2017 دیمیتری ایلووفسکی، اکاترینا چرنیاک

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

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

    اولین کار بر روی یادگیری عمیق(یادگیری عمیق) به اواسط قرن بیستم باز می گردد. در اوایل دهه 1940، وارن مک کالوچ و والتر پیتس یک مدل رسمی از مغز انسان را پیشنهاد کردند - یک شبکه عصبی مصنوعی، و کمی بعد فرانک روزنبلات کار آنها را تعمیم داد و یک مدل شبکه عصبی را در رایانه ایجاد کرد. اولین کار بر روی آموزش شبکه های عصبی با استفاده از الگوریتم پس انتشار به دهه 1960 برمی گردد (الگوریتم خطای پیش بینی را محاسبه می کند و با استفاده از روش های بهینه سازی تصادفی آن را به حداقل می رساند). با این حال، مشخص شد که، با وجود زیبایی و ظرافت ایده شبیه سازی مغز، آموزش شبکه های عصبی "سنتی" زمان زیادی می برد و نتایج طبقه بندی در مجموعه داده های کوچک با نتایج به دست آمده قابل مقایسه است. با روش های ساده تر، مانند ماشین های بردار پشتیبانی (Support Vector Machine, SVM). در نتیجه، شبکه‌های عصبی به مدت 40 سال فراموش شدند، اما امروزه هنگام کار با حجم زیادی از داده‌ها، تصاویر و متون بدون ساختار دوباره مورد تقاضا هستند.

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

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

    یکی از محبوب ترین کاربردهای شبکه های عصبی، ساخت بردارهای کلمات مرتبط با حوزه معناشناسی توزیعی است: اعتقاد بر این است که معنای یک کلمه را می توان از معنای بافت آن، از کلمات اطراف آن فهمید. در واقع، اگر ما با کلمه ای در یک متن به زبان شناخته شده آشنا نباشیم، در بیشتر موارد می توانیم معنای آن را حدس بزنیم. مدل ریاضیمقادیر کلمات به‌عنوان بردار کلمات عمل می‌کنند: ردیف‌هایی در یک ماتریس بزرگ «کلمه متن» که بر روی مجموعه نسبتاً بزرگی از متون ساخته شده‌اند. "زمینه" برای یک کلمه خاص می تواند کلمات همسایه باشد، کلماتی که در ساخت نحوی یا معنایی یکسان با کلمه داده شده گنجانده شده اند، و غیره. در سلول های چنین ماتریسی، فرکانس ها را می توان ثبت کرد (چند بار کلمه در این وجود دارد. زمینه)، اما اغلب از ضریب اطلاعات متقابل مثبت زوجی (Positive Pointwise Mutual Information، PPMI) استفاده می کنند، که نشان می دهد ظاهر یک کلمه در یک زمینه خاص چقدر غیر تصادفی است. چنین ماتریس‌هایی را می‌توان با موفقیت برای خوشه‌بندی کلمات یا جستجوی کلماتی که از نظر معنایی به کلمه جستجو شده نزدیک هستند، استفاده کرد.

    در سال 2013، توماس میکولوف مقاله‌ای را منتشر کرد که در آن استفاده از شبکه‌های عصبی را برای یادگیری بردارهای کلمات، اما برای ابعاد کوچک‌تر پیشنهاد کرد: یک شبکه عصبی با ساده‌ترین معماری بر روی تاپل‌ها (کلمه، زمینه‌ها)، در خروجی، هر کلمه آموزش داده شد. بردار 300 عنصر اختصاص داده شد. معلوم شد که چنین بردارهایی نزدیکی معنایی کلمات را بهتر منتقل می کنند. برای مثال می توان از آنها برای تعریف عملیات حسابی جمع و تفریق معانی استفاده کرد و معادلات زیر را به دست آورد: "پاریس - فرانسه + روسیه = مسکو"; "شاه - مرد + زن = ملکه." یا یک کلمه اضافی در ردیف "سیب، گلابی، گیلاس، بچه گربه" پیدا کنید. دو معماری skip-gram و CBOW (کیف پیوسته کلمات) با نام کلی word2vec در کار ارائه شده است. همانطور که بعداً در نشان داده شد، word2vec چیزی بیش از فاکتورسازی یک ماتریس متن کلمه با وزن‌های PPMI نیست. اکنون مرسوم است که word2vec را به معناشناسی توزیعی و نه به یادگیری عمیق نسبت دهیم، با این حال، استفاده از یک شبکه عصبی به عنوان انگیزه اولیه برای ایجاد این مدل عمل کرد. علاوه بر این، مشخص شد که بردارهای word2vec به عنوان یک نمایش راحت از معنای یک کلمه عمل می کنند که می تواند به شبکه های عصبی عمیق مورد استفاده برای طبقه بندی متن تغذیه شود.

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

    ورودی شبکه عصبی کانولوشن جمله ای است که در آن هر کلمه قبلاً با یک بردار (بردار بردارها) نشان داده شده است. به عنوان یک قاعده، از مدل های word2vec از پیش آموزش دیده برای نمایش کلمات به عنوان بردار استفاده می شود. یک شبکه عصبی کانولوشن از دو لایه تشکیل شده است: یک لایه پیچشی "عمیق" و یک لایه پنهان منظم. لایه پیچیدگی به نوبه خود از فیلترها و یک لایه "subsampling" تشکیل شده است. فیلتر نورونی است که ورودی آن با استفاده از پنجره‌هایی تشکیل می‌شود که در متن حرکت می‌کنند و تعداد معینی از کلمات را به ترتیب انتخاب می‌کنند (به عنوان مثال، یک پنجره به طول "سه" سه کلمه اول، کلمات از دوم تا چهارم را انتخاب می‌کند. ، از سوم تا پنجم و غیره) . در خروجی فیلتر، یک بردار تشکیل می شود که تمام بردارهای کلمات موجود در آن را جمع می کند. سپس در لایه زیر نمونه برداری، یک بردار متناظر با کل جمله تشکیل می شود که به عنوان حداکثر جزء به جزء تمام بردارهای فیلتر خروجی محاسبه می شود. آموزش و پیاده سازی شبکه های عصبی کانولوشنال آسان است. برای آموزش آنها از الگوریتم پس انتشار خطای استاندارد استفاده می شود و با توجه به اینکه وزن فیلترها به طور مساوی توزیع شده است (وزن i-امین کلمه از پنجره برای هر فیلتر یکسان است) تعداد پارامترها برای یک شبکه عصبی کانولوشن کوچک است. از نقطه نظر زبان شناسی محاسباتی، شبکه های عصبی کانولوشن ابزار قدرتمندی برای طبقه بندی هستند، اما پشت آن هیچ شهود زبانی وجود ندارد، که تجزیه و تحلیل خطاهای الگوریتم را بسیار پیچیده می کند.

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

    برای آموزش مدل‌های زبان، به پیکره‌های بزرگی نیاز است - هر چه مجموعه آموزشی بزرگ‌تر باشد، مدل «می‌داند» جفت‌های بیشتری از کلمات را می‌شناسد. استفاده از شبکه های عصبی برای توسعه مدل های زبان، میزان داده های ذخیره شده را کاهش می دهد. یک معماری شبکه ساده را تصور کنید که در آن کلمات i-2 و i-1 ورودی هستند و شبکه عصبی کلمه i را به عنوان خروجی پیش بینی می کند. بسته به تعداد لایه های پنهان و تعداد نورون های روی آنها، شبکه آموزش دیده را می توان به عنوان تعدادی ماتریس متراکم با ابعاد نسبتاً کوچک ذخیره کرد. به عبارت دیگر، به جای یک مجموعه آموزشی و همه جفت کلمات، می تواند تنها چند ماتریس و لیستی از کلمات منحصر به فرد را ذخیره کند. با این حال، چنین مدل زبان عصبی امکان ارتباط طولانی بین کلمات را نمی دهد. این مشکل توسط شبکه های عصبی تکراری حل می شود (شکل 3) که در آنها وضعیت داخلی لایه پنهان نه تنها پس از رسیدن کلمه جدید به ورودی به روز می شود، بلکه به مرحله بعدی نیز منتقل می شود. بنابراین، لایه پنهان شبکه تکراری دو نوع ورودی را می پذیرد: وضعیت لایه پنهان در مرحله قبل و کلمه جدید. اگر یک شبکه عصبی تکراری یک جمله را پردازش کند، حالت های پنهان به شما اجازه می دهند تا ارتباطات طولانی را در جملات به خاطر بسپارید و انتقال دهید. به طور تجربی، بارها تأیید شده است که شبکه‌های عصبی مکرر جنسیت فاعل را در یک جمله به یاد می‌آورند و ضمایر صحیح (she - her, he - him) را هنگام تولید یک جمله انتخاب می‌کنند، اما برای اینکه به صراحت نشان دهند که این نوع اطلاعات دقیقاً چگونه است. ذخیره شده در یک شبکه عصبی یا نحوه استفاده از آن، هنوز شکست خورده است.

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

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

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

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

    ادبیات

    1. توماس میکولوف و. al. برآورد کارآمد بازنمایی کلمات در فضای برداری، arxiv.org. آدرس: http://arxiv.org/pdf/1301.3781.pdf
    2. لوی اومر، یوآو گلدبرگ، ایدو داگان. بهبود شباهت توزیعی با درس های آموخته شده از جاسازی کلمات. Transactions of Association for Computational Linguistics 3. - 2015. - P. 211-225. نشانی اینترنتی: https://www.transacl.org/ojs/index.php/tacl/article/view/570/124 (دسترسی در 2017/05/18).
    3. پاول ولیخوف. یادگیری ماشینی برای درک زبان طبیعی // Open Systems.DBMS. - 2016. - شماره 1. - P.18–21. آدرس اینترنتی: (تاریخ دسترسی: 1396/05/18).
    4. کریستوفر منینگ. زبانشناسی محاسباتی و یادگیری عمیق زبانشناسی محاسباتی. - 2016. URL: http://www.mitpressjournals.org/doi/full/10.1162/COLI_a_00239#.WQH8MBhh2qA (دسترسی در 2017/05/18).

    دیمیتری ایلووفسکی ([ایمیل محافظت شده]) - کارمند آزمایشگاه بین المللی سیستم های هوشمند و تحلیل سازه، اکاترینا چرنیاک ([ایمیل محافظت شده]) - مدرس مرکز آموزش مداوم، دانشکده علوم کامپیوتر، دانشکده عالی اقتصاد دانشگاه تحقیقات ملی (مسکو). این کار در چارچوب برنامه تحقیقاتی پایه دانشکده عالی اقتصاد دانشگاه تحقیقات ملی انجام شد.



    یادگیری عمیق چیست؟ 3 مارس 2016

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


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

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

    بیایید به مثالی از یک کار تشخیص تصویر نگاه کنیم: قبلاً، چگونه - آنها یک تصویر عظیم (1024 × 768 - حدود 800000 مقادیر عددی) را در یک شبکه عصبی معمولی با یک لایه قرار دادند و کامپیوتر را تماشا کردند که به آرامی می میرد، خفه شدن از کمبود حافظه و ناتوانی در درک اینکه کدام پیکسل برای تشخیص مهم است و کدام نه. ناگفته نماند اثربخشی این روش. در اینجا معماری چنین شبکه عصبی معمولی (کم عمق) وجود دارد.

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

    در سال 2006، چندین محقق مستقل به طور همزمان این مشکل را حل کردند (علاوه بر این، ظرفیت های سخت افزاری قبلاً به اندازه کافی توسعه یافته اند، کارت های ویدئویی به اندازه کافی قدرتمند ظاهر شده اند). این محققان عبارتند از: جفری هینتون (و همکارش روسلان سالاخوتیدینوف) با تکنیک پیش‌آموزش هر لایه شبکه عصبی با یک ماشین محدود بولتزمن (من را به خاطر این اصطلاحات ببخشید ...)، یان لکون با شبکه‌های عصبی کانولوشن و یوشوایا. Bengio با رمزگذارهای خودکار آبشاری. دو نفر اول بلافاصله به ترتیب توسط گوگل و فیس بوک جذب شدند. در اینجا دو سخنرانی وجود دارد: یک - هینتون، دیگری - لیاکوناجایی که آنها توضیح می دهند که یادگیری عمیق چیست. هیچکس بهتر از آنها نمی تواند به شما بگوید. یکی دیگه عالیه سخنرانی Schmidhuber در مورد توسعه یادگیری عمیق، همچنین یکی از ارکان این علم است. و هینتون همچنین یک دوره عالی در مورد نورون ها دارد.

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

    فقط این ویدیو را تماشا کنید که تشخیص می دهد دوربین در زمان واقعی چه چیزی می بیند.

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

    به‌طور ساده، شبکه‌های کانولوشنال شبکه‌هایی هستند که عنصر ساختاری اصلی یادگیری، گروهی (ترکیبی) از نورون‌ها (معمولاً یک مربع 3 × 3.10 × 10 و غیره) است و نه یک. و در هر سطح از شبکه، ده ها گروه از این قبیل آموزش می بینند. شبکه ترکیبی از نورون ها را پیدا می کند که اطلاعات مربوط به تصویر را به حداکثر می رساند. در سطح اول، شبکه ابتدایی ترین و از نظر ساختاری ساده ترین عناصر تصویر را استخراج می کند - می توانید بلوک های سازنده را بگویید: مرزها، ضربه ها، بخش ها، تضادها. بالاتر - ترکیبات در حال حاضر پایدار از عناصر سطح اول، و غیره تا زنجیره. من می خواهم یک بار دیگر بر ویژگی اصلی یادگیری عمیق تأکید کنم: خود شبکه ها این عناصر را تشکیل می دهند و تصمیم می گیرند که کدام یک از آنها مهم تر هستند و کدام نه. این مهم است، زیرا در زمینه یادگیری ماشین، ایجاد ویژگی کلیدی است و اکنون به مرحله ای می رویم که رایانه خود یاد می گیرد که ویژگی ها را ایجاد و انتخاب کند. خود دستگاه سلسله مراتبی از ویژگی های اطلاعاتی را به خود اختصاص می دهد.

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


    در سطح دوم، از قبل عنصری از عناصر سطح اول خواهد بود. در سوم - از دوم. باید فهمید که این تصویر فقط یک نمایش است. اکنون در مصارف صنعتی، چنین شبکه هایی از 10 تا 30 لایه (سطح) دارند.

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

    اطلاعات بیشتر در مورد شبکه های کانولوشنال -