както преподава ANDREW NG, курс ЗА ДЪЛБОКО ОБУЧЕНИЕ

БЕЛЕЖКИ ОТ ЛЕКЦИИ

Дълбокото обучение е подполе на машинното обучение, което бързо се разраства и води до много разработки, коитовече са трансформирали традиционните интернет бизнеси като уеб търсене и реклама.

През последните няколко години задълбоченото обучение се разви от разчитането на рентгенови изображения до предоставянето на персонализирано образование, прецизното земеделие и дори до самоуправляващите се автомобили.

През следващите десетилетия ще имаме възможност да изградим невероятен свят и общество, задвижвани от AI, и може би вие ще играете голяма роля в създаването на това общество, задвижвано от AI.

Какво точно е AI? AI е новото електричество. Преди около 100 години електрификацията на нашето общество трансформира всяка голяма индустрия като транспорт, производство, здравеопазване, комуникация и много други.

Днес дълбокото обучение е едно от най-търсените умения и технологиив света.

Какво е невронна мрежа?

Невронната мрежа е математическият модел на човешкия мозък и нервната система.

Нека започнем с примера за прогнозиране на цените на жилищата. Да предположим, че имате набор от данни с шест къщи и ние знаем цената и размера на тези къщи. Искаме да напаснем функция за прогнозиране на цената на тези къщи по отношение на техния размер.

Ако сте запознати с линейната регресия, ще поставим права линия през тези точки от данни. Тъй като знаем, че нашите цени не могат да бъдат отрицателни, завършваме с хоризонтална линия, която минава през 0.

Синята линия е функцията за прогнозиране на цената на къщата като функция от нейния размер. Можете да мислите за тази функция като за много проста невронна мрежа.

Входът към невронната мрежа е размерът на къща, означен с 'x', който влиза във възел (обикновено единичен неврон) и след това извежда прогнозираната цена, която обозначаваме с 'y '.

Ако това е невронна мрежа с един неврон, много по-голяма невронна мрежа се формира чрез вземане на много от единичните неврони и подреждането им заедно.

Можете да мислите за този неврон като за една тухла Лего. Вие образувате по-голяма невронна мрежа, като подреждате много от тези тухли Lego.

Пример за основна невронна мрежа с повече функции

Контролирано обучение с невронни мрежи

Има много шум около невронните мрежи и може би част от този шум е оправдан, като се има предвид колко добре работят. И все пак се оказва, че досега почти цялата икономическа стойност, създадена от невронните мрежи, е била чрез един тип машинно обучение, наречено контролирано обучение.

Нека да видим какво означава това и да разгледаме някои примери.

При контролирано обучение имаме някакъв вход x и искаме да научим функция, преобразуваща се в някакъв изход y. Например, точно както в приложението за прогнозиране на цените на жилищата, нашият принос бяха някои характеристики на дома и целта ни беше да оценим цената на жилище, y.

Ето някои други примери, при които невронните мрежи са приложени много ефективно.

Може да въведем изображение и да искаме да изведем индекс от едно до хиляда, опитвайки се да разберем дали тази картина може да е един от хиляда различни класа изображения. Това може да се използва за маркиране на снимки.

Скорошният напредък в разпознаването на реч също беше много вълнуващ. Сега можете да въведете аудио клип в невронна мрежа и тя да изведе текстов препис.

Машинният превод също постигна огромни удари благодарение на дълбокото обучение, при което сега можете да накарате невронна мрежа да въведе изречение на английски и директно да изведе изречение на китайски.

При автономно шофиране можете да въведете картина на това, което има пред колата ви, както и информация от радар и въз основа на това вашата мрежа може да бъде обучена да ви казва позицията на другите автомобили на пътя. Това се превръща в ключов компонент в системите за автономно шофиране.

Различните видове невронни мрежи са полезни за различни приложения.

  • В приложението за недвижими имоти ние използваме универсална архитектура на стандартна невронна мрежа.
  • За приложения с изображения често ще използваме конволюционна невронна мрежа (CNN).
  • Аудиото е най-естествено представено като едномерна времева поредица или като едномерна времева последователност. Следователно за данни от последователност често използваме повтаряща се невронна мрежа (RNN).
  • Език, английски и китайски, азбуките или думите идват една по една и езикът също е представен като последователни данни. RNN често се използват за тези приложения.
  • За по-сложни приложения, като автономно шофиране, където имате изображение, което може да предполага повече структура на CNN (конволюционна невронна мрежа) и радарна информация, което е нещо съвсем различно. Възможно е да се стигне до по-персонализирана или по-сложна архитектура на хибридна невронна мрежа.

Примери за невронни мрежи

Структурирани и неструктурирани данни

Машинното обучение се прилага както за структурирани данни, така и за неструктурирани данни.

Структурирани данни означава основно бази данни с данни. Например при прогнозиране на цените на жилищата може да имате база данни или колона, която ви казва размера и броя на спалните.

При прогнозиране дали даден потребител ще щракне върху реклама или не, може да имаме информация за потребителя, като възраст, известна информация за рекламата и след това етикети, които се опитвате да предвидите.

Структурираните данни означават, че всяка от характеристиките, като размер на къщата, брой спални или възраст на потребителя, има много добре дефинирано значение. Обратно, неструктурираните данни се отнасят до неща като аудио, необработено аудио или изображения, където може да искате да разпознаете какво има в изображението или текста. Тук характеристиките може да са стойностите на пикселите в изображението или отделните думи в част от текста.

Благодарение на невронните мрежи компютрите сега са много по-добри в интерпретирането на неструктурирани данни в сравнение само преди няколко години. Това създава възможности за много нови вълнуващи приложения, които използват разпознаване на реч, разпознаване на изображения, обработка на текст на естествен език много повече, отколкото беше възможно дори само две или три години.

Невронните мрежи трансформираха контролираното обучение и създават огромна икономическа стойност. Оказва се, че основните технически идеи зад невронните мрежи съществуват понякога в продължение на много десетилетия, така че защо тогава те едва сега започват да се развиват и работят толкова добре.

Защо Deep Learning се развива?

Ако основната техническа идея зад невронните мрежи за задълбочено обучение съществува от десетилетия, защо едва сега започват да се развиват?

За да отговорим на този въпрос, начертаваме фигура, където по оста x нанасяме количеството етикетирани данни, които имаме за дадена задача, а по оста y нанасяме ефективността на нашия алгоритъм за обучение (точност).

Например искаме да измерим точността на нашия класификатор за нежелана поща или точността на нашата невронна мрежа за определяне на позицията на други автомобили за нашия самоуправляващ се автомобил.

Ако начертаем ефективността на традиционните алгоритми за обучение като опорна векторна машина или логистична регресия като функция от количеството данни, ще получим следната крива:

Как да преодолеем проблема с платото на производителността?

В този режим на по-малки комплекти за обучение относителното подреждане на алгоритмите не е много добре дефинирано.

Често уменията на инженерните характеристики са това, което определя производителността!

През последните 20 години натрупахме много повече данни, отколкото традиционните алгоритми за обучение успяха ефективно да се възползват. Огромно количество човешка дейност сега е в дигиталната сфера, където прекарваме толкова много време в интернет.

С невронните мрежи се оказва, че ако обучите много голяма невронна мрежа, нейната ефективност често става все по-добра и по-добра.

В ранните дни на съвременния възход на задълбочено обучение беше мащаб от данни и мащаб от изчислителни ограничения, които ограничаваха способността ни да обучаваме много големи невронни мрежи на CPU или GPU. Но сравнително наскоро имаше огромни алгоритмични иновации, всички от които се опитват да накарат невронните мрежи да работят много по-бързо.

Напримерпревключването от сигмоидна функция към функция ReLU е един от огромните пробиви в невронните мрежи с голямо въздействие върху тяхната производителност.

Нека разгледаме по-подробно защо превключването от сигмоидна към ReLU функция се справи толкова добре с производителността на NN.

Един от проблемите при използването на сигмоидни функции в машинното обучение възниква в тези региони: ›5 и ‹-5. Тук наклонът на функцията с градиент е почти нула. Това означава, че обучението става бавно, когато се прилага градиентно спускане.

Градиентът е нула и параметрите се променят много бавно, което се поддава на много бавно обучение.

За функцията Rectified Linear Unit градиентът е равен на 1 за всички положителни стойности на входа. Много по-малко вероятно е градиентът постепенно да се свие до 0, а наклонът на линията вляво е 0. В крайна сметка, просто чрез превключване от сигмоидната функция към функцията RELU направи алгоритъм, наречен градиентно спускане, за работи много по-бързо.

Често имате идея за архитектура на невронна мрежа и искате да я приложите в код. Бързото изчисление е важно, тъй като процесът на обучение на невронна мрежа е много итеративен и може да отнеме много време. Прилагането на нашата идея след това ни позволява да проведем експеримент, който ви казва колко добре се справя нашата невронна мрежа. След това, като го гледате, се връщате, за да промените детайлите на вашата невронна мрежа и след това обикаляте този кръг отново и отново.

Цялата изследователска общност за дълбоко обучение е невероятна в изобретяването на нови алгоритми и непрекъснатия напредък на този фронт. Способностите на много големите невронни мрежи от изчислителна гледна точка ще продължат да се подобряват, тъй като обществото ще продължи да изхвърля все повече и повече цифрови данни.