Чому громади NLP та машинного навчання зацікавлені у глибокому навчанні?


24

Сподіваюся, ви можете мені допомогти, оскільки у мене є деякі запитання на цю тему. Я новачок у галузі глибокого навчання, і хоча я робив кілька навчальних посібників, я не можу співвідносити чи відрізняти поняття одне від одного.


8
В основному тому, що вони дають найсучасніші результати та усувають необхідність у конструюванні функцій.
Емре

2
Я б запропонував не використовувати NLP та ML разом у такому контексті, як якщо б вони були порівнянними структурами. Вони є двома чітко окремими полями ІМХО. Незважаючи на те, що НЛП використовує багато підходів, методів, алгоритмів та інструментів МЛ, НЛП - це прикладне поле, тоді як МЛ - це (більше) загальне.
Олександр Блех

Відповіді:


27

Навіщо використовувати глибокі мережі?

Спробуємо спочатку вирішити дуже просту задачу класифікації. Скажімо, ви модеруєте веб-форум, який іноді переповнюється спам-повідомленнями. Ці повідомлення легко впізнати - найчастіше вони містять конкретні слова, такі як "купити", "порно" тощо, та URL-адресу до зовнішніх ресурсів. Ви хочете створити фільтр, який буде попереджати вас про такі підозрілі повідомлення. Це виявляється досить просто - ви отримуєте список функцій (наприклад, список підозрілих слів та наявність URL-адреси) та тренуєте просту логістичну регресію (ака перцептрон), тобто модель на зразок:

g(w0 + w1*x1 + w2*x2 + ... + wnxn)

де x1..xnваші особливості (чи наявність конкретного слова, або URL-адреси), w0..wn- коефіцієнти засвоєні та g()це логістична функція, щоб результат був між 0 і 1. Це дуже простий класифікатор, але для цього простого завдання він може дати дуже хороші результати, створюючи межа лінійного рішення. Якщо припустити, що ви використовували лише дві функції, ця межа може виглядати приблизно так:

лінійна межа

Тут дві осі представляють особливості (наприклад, кількість зустрічей конкретного слова у повідомленні, нормалізованого навколо нуля), червоні точки залишаються для спаму, а сині точки - для звичайних повідомлень, тоді як чорна лінія показує лінію розділення.

Але незабаром ви помітите, що деякі хороші повідомлення містять багато випадків слова "купуй", але немає URL-адрес або розширеного обговорення виявлення порно , насправді не посилаючись на порнофільми. Лінійна межа рішення просто не може впоратися з такими ситуаціями. Натомість вам потрібно щось подібне:

нелінійна межа

Ця нова нелінійна межа прийняття рішень набагато гнучкіша , тобто може вмістити дані набагато ближче. Існує багато способів досягти цієї нелінійності - ви можете використовувати поліноміальні функції (наприклад x1^2) або їх комбінацію (наприклад x1*x2) або спроектувати їх на більш високий вимір, як у методах ядра . Але в нейронних мережах прийнято вирішувати це шляхом комбінування перцептронів або, іншими словами, шляхом побудови багатошарового персептрона. Нелінійність тут походить від логістичної функції між шарами. Чим більше шарів, тим складніші візерунки можуть бути покриті MLP. Одношаровий (персептрон) може обробляти просте виявлення спаму, мережа з 2-3 шарами може вловлювати складні комбінації функцій, а мережі з 5-9 шарів, які використовуються великими дослідницькими лабораторіями та компаніями, такими як Google, можуть моделювати цілу мову або виявляти котів на зображеннях.

Це важлива причина наявності глибокої архітектури - вони можуть моделювати більш складні візерунки .

Чому глибокі мережі важко навчити?

Маючи лише одну особливість та лінійну межу прийняття рішень, насправді достатньо мати лише 2 приклади навчання - один позитивний та один негативний. При наявності декількох ознак і / або нелінійної кордоні рішення вам потрібно кілька порядків більше прикладів , щоб охопити всі можливі випадки (наприклад , вам потрібно не тільки знайти приклади з word1, word2і word3, а й усіма можливими їх комбінацією). А в реальному житті вам потрібно мати сотні та тисячі функцій (наприклад, слова мовою або пікселі на зображенні) та принаймні кілька шарів, щоб мати достатню нелінійність. Розмір набору даних, необхідний для повного тренування таких мереж, легко перевищує 10 ^ 30 прикладів, що робить абсолютно неможливим отримати достатню кількість даних. Іншими словами, завдяки багатьом можливостям і безлічі шарів наша функція прийняття рішення стає занадто гнучкоювміти точно це навчитися .

Однак є способи навчитися цьому приблизно . Наприклад, якщо ми працювали в імовірнісних налаштуваннях, то замість того, щоб вивчати частоти всіх комбінацій усіх функцій, ми могли б припустити, що вони є незалежними та вивчають лише окремі частоти, зводячи повний і необмежений класифікатор Байєса до Naive Bayes і, таким чином, вимагаючи багато, набагато менше даних для вивчення.

У нейронних мережах було кілька спроб (значущо) зменшити складність (гнучкість) функції прийняття рішення. Наприклад, конволюційні мережі, широко використовувані в класифікації зображень, передбачають лише локальні зв'язки між пікселями, що знаходяться поблизу, і, таким чином, намагаються лише вивчити комбінації пікселів всередині невеликих "вікон" (скажімо, 16x16 пікселів = 256 вхідних нейронів) на відміну від повних зображень (скажімо, 100x100 пікселів = 10000 вхідних нейронів). Інші підходи включають конструкторську функцію, тобто пошук конкретних, виявлених людиною дескрипторів вхідних даних.

Власне виявлені функції є дуже перспективними насправді. Наприклад, для обробки природних мов іноді корисно використовувати спеціальні словники (наприклад, слова, що містять специфічні для спаму слова) або заперечувати заперечення (наприклад, " не добре"). А в комп’ютерному зорі такі речі, як дескриптори SURF або Хаар-подібні функції , майже незамінні.

Але проблема з ручною інженерною функцією полягає в тому, що потрібні буквально роки, щоб придумати хороші дескриптори. Більше того, ці особливості часто є специфічними

Непідконтрольне пошуку

Але виявляється, що ми можемо отримати хороші функції автоматично з даних, використовуючи такі алгоритми, як автокодери та обмежені машини Больцмана . Я детально описав їх у своїй іншій відповіді , але коротше вони дозволяють знаходити повторні шаблони у вхідних даних та перетворювати їх у функції вищого рівня. Наприклад, з урахуванням лише значень пікселів рядків як вхідних даних, ці алгоритми можуть ідентифікувати та передавати більш високі цілі ребра, потім з цих країв будувати фігури тощо, доки ви не отримаєте дійсно дескрипторів високого рівня, як зміни обличчя.

глибоке навчання

Після такої (непідконтрольної) пошукової мережі, як правило, перетворюється в MLP та використовується для звичайного навчання під керівництвом. Зауважте, що попередня перевірка проводиться пошарово. Це значно скорочує простір рішення для алгоритму навчання (і, отже, необхідної кількості навчальних прикладів), оскільки йому потрібно лише вивчити параметри всередині кожного шару, не враховуючи інших шарів.

І за його межами...

Протягом певного часу тут спостерігаються непідконтрольні пошукові роботи, але останнім часом було виявлено інші алгоритми, які покращують навчання як разом, так і з попередньою підготовкою та без неї. Одним з помітних прикладів таких алгоритмів є випадання - проста техніка, яка випадковим чином «випадає» деякі нейрони під час тренувань, створюючи певні спотворення і не дозволяючи мережам надто близько стежити за даними. Це все ще гаряча тема дослідження, тому я залишаю це читачеві.


3
Прекрасне пояснення це!
Dawny33

6

Спочатку ми повинні зрозуміти, для чого нам потрібно глибоке навчання. Для побудови моделей ML потрібні тестові дані з мітками (під наглядом чи без нагляду). У багатьох областях у міру зростання даних важко підтримувати дані з мітками. Мережам глибокого навчання не потрібні мічені дані. Алгоритми глибокого навчання можуть визначити мітки. Таким чином, це усуває необхідність того, щоб фахівці з домену розробили етикетки для даних, що дуже важливо в області розпізнавання мовлення, комп’ютерного зору та розуміння мови. Розпізнавання зображень Google Cat - дуже цікавий експеримент. Також цікаво знати "Джеффрі Хінтона" професора, якого найняв Google.

http://www.wired.com/2014/01/geoffrey-hinton-deep-learning/

Ви можете отримати більше розуміння, вивчаючи в цьому рамках.


1
Глибоке навчання не може з'ясувати мітки (як це могло бути?), А лише засвоїти функції. Для вирішення таких завдань, як класифікація чи регресія, вам все-таки потрібна деяка кількість мічених даних та контрольоване навчання.
подруга

0

Глибоке навчання існує вже давно. Машини CNN, RNN, Boltzmann впевнено виглядають як нові методи, але вони були розроблені давно. Перевірте історію глибокого навчання

https://en.wikipedia.org/wiki/Deep_learning#History

Відродження глибокого навчання пояснюється тим, що з цього часу обчислювальні сили зростали експоненціально. З ноутбуком, оснащеним графічними процесорами, ви зможете навчити складну модель глибокого навчання - це дуже малий час порівняно з попередніми днями. Модеми глибокого навчання також є дуже ефективними емпірично. Сучасний стан зображень, мови та багатьох полів - це моделі глибокого навчання.

Я вважаю, що завдяки цим чинникам ми можемо бачити, що велика кількість співтовариств NLP / ML змістила свою увагу на глибоке навчання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.