1. ПрограмиранеГолеми данниData ScienceMachine Learning vs. Deep Learning: Обясняване на дълбоките разлики в обучението от други форми на AI

От Джон Пол Мюлер, Лука Мюлер

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

Дълбокото обучение не е просто ребрандиране на стара технология, персептрон, открита през 1957 г. от Франк Розенблат в аеронавигационната лаборатория Корнел. Дълбокото обучение работи по-добре поради допълнителната изтънченост, която добавя чрез пълноценното използване на мощни компютри и наличието на по-добри (не само повече) данни. Дълбокото обучение също предполага дълбока качествена промяна в възможностите, предлагани от технологията, заедно с нови и удивителни приложения. Наличието на тези възможности модернизира стари, но добри невронни мрежи, превръщайки ги в нещо ново. Следващата статия описва как дълбокото обучение постига своята задача.

Добавяне на още слоеве за задълбочено обучение

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

Тъй като може да използва много слоеве, дълбокото обучение може да реши проблеми, които са извън обхвата на машинното обучение, като разпознаване на изображения, машинен превод и разпознаване на реч. Когато е снабдена само с няколко слоя, невронната мрежа е перфектен универсален приближател на функции, който е система, която може да пресъздаде всяка възможна математическа функция. Когато е снабдена с много повече слоеве, невронната мрежа става способна да създаде във вътрешната си верига от матрични умножения сложна система от представителства за решаване на сложни проблеми. За да разберете как работи сложна задача като разпознаването на изображения, помислете за този процес:

  1. Система за дълбоко обучение, обучена да разпознава изображения (като мрежа, способна да различава снимки на кучета от тези с котки), определя вътрешните тегла, които имат способността да разпознават тема на картината. След като открие всеки отделен контур и ъгъл в изображението, мрежата за дълбоко обучение сглобява всички такива основни черти в съставни характерни характеристики. Мрежата съвпада с такива функции до идеално представителство, което осигурява отговора.

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

Едно от най-ранните постижения на задълбоченото учене, което накара обществеността да осъзнае потенциала си, е котешкият неврон. Екипът на Google Brain, управляван по това време от Andrew Ng и Jeff Dean, събра 16 000 компютъра, за да изчисли мрежа за дълбоко обучение с повече от милиард тежести, като по този начин даде възможност да се обучава без надзор от видеоклипове в YouTube. Компютърната мрежа дори може да определи сама, без каквато и да е човешка намеса, каква е котка и учените от Google успяха да изкопаят от мрежата представяне за това как трябва да изглежда самата мрежа (вижте статията за Wired, обсъждаща невронните мрежи) ,

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

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

Всеки опит за комбиниране и тестване на сложни мрежи завършваше с неуспех, защото алгоритъмът за обратно разпространение не можеше да актуализира слоевете по-близо до входа, като по този начин прави всяко обучение от сложни данни, дори когато такива данни са били налични по това време, почти невъзможно. Днес дълбоките мрежи са възможни благодарение на проучванията на учени от Университета в Торонто в Канада, като Джефри Хинтън, който настояваше да работи върху невронни мрежи, дори когато им се струваше, че са най-старомоден подход за машинно обучение.

Професор Хинтън, ветеран от областта на невронните мрежи (той допринесе за дефинирането на алгоритъма за размножаване), и неговият екип в Торонто разработиха няколко метода за заобикаляне на проблема с изчезващите градиенти. Той отвори полето за преосмисляне на нови решения, които превръщат нервните мрежи в решаващо средство в машинното обучение и AI отново.

Професор Хинтън и неговият екип също са запомнящи се за това, че са сред първите, които тестват използването на GPU, за да ускорят обучението на дълбока невронна мрежа. През 2012 г. те спечелиха открит конкурс, организиран от фармацевтичната компания Merck и Kaggle (последният уебсайт за състезания за наука за данни), използвайки най-новите си открития в дълбочина. Това събитие привлече голямо внимание към тяхната работа. Можете да прочетете всички подробности за революционното постижение на екипа на Hinton с невронни мрежови слоеве от това интервю за Джефри Хинтън.

Промяна на активациите за задълбочено обучение

Екипът на Джефри Хинтън успя да добави още слоеве към невронна архитектура поради две решения, които предотвратиха проблеми с обратното разпространение:

  • Те предотвратиха проблема с експлодиращите градиенти, като използват по-интелигентната мрежа за инициализация. Избухващ градиент се различава от изчезващ градиент, защото може да накара мрежата да се взриви, тъй като взривяващият се градиент става твърде голям, за да се справи. Мрежата ви може да експлодира, освен ако правилно не инициализирате мрежата, за да не й позволите да изчисли големи теглото. Тогава решавате проблема с изчезващите градиенти, като променяте мрежовите активации. Екипът разбра, че преминаването на сигнал през различни слоеве за активиране има тенденция да овлажнява сигнала за обратно разпространение, докато не стане твърде слаб, за да премине вече, след като проучи как работи сигмоидното активиране. Те използваха ново активиране като решение за този проблем. Изборът кой алгоритъм да се използва падна към стар тип активиране на ReLU, който означава преправени линейни единици. Активирането на ReLU спря приетия сигнал, ако беше под нулата, като осигури нелинейността, характерна за невронните мрежи, и остави сигнала да премине така, както беше, ако е над нулата. (Използването на този тип активиране е пример за комбиниране на стара, но все пак добра технология с текущата технология.) Изображението по-долу показва как работи този процес.
Функция за активиране на ReLU при задълбочено обучение

ReLU работи невероятно добре и оставя сигнала за обратно разпространение да пристигне до първоначалните дълбоки мрежови слоеве. Когато сигналът е положителен, неговата производна е 1. Можете също така да намерите доказателство за производната ReLU в търсенето. Обърнете внимание, че скоростта на промяна е постоянна и еквивалентна на единица, когато входният сигнал е положителен (докато, когато сигналът е отрицателен, производната е 0, като по този начин предотвратява преминаването на сигнала).

Можете да изчислите функцията ReLU, като използвате f (x) = max (0, x). Използването на този алгоритъм увеличи скоростта на тренировка много, което позволява бързото трениране на още по-дълбоки мрежи, без да се появят мъртви неврони. Мъртъв неврон е този, който мрежата не може да активира, защото сигналите са твърде слаби.

Добавяне на регуларизация чрез отпадане за задълбочено обучение

Другото въведение в задълбоченото обучение, направено от екипа на Hinton за завършване на първоначалното решение за задълбочено обучение, насочено към регулиране на мрежата. Регулирана мрежа ограничава теглото на мрежата, което предпазва мрежата от запаметяване на входните данни и генерализиране на моделите на свидетели на данни.

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

Както виждате от лявата страна на изображението по-долу, тежестите обикновено работят, като умножават входовете си в изходи за активациите. За да изключите активирането, кодът умножава маска, направена от произволна комбинация от единици и нули с резултатите. Ако невронът се умножи по един, мрежата предава своя сигнал. Когато един неврон се умножи по нула, мрежата спира сигнала си, принуждавайки другите неврони да не разчитат на него в процеса.

дълбоко отпадане от обучението

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