Как взаимодействие человека и ИИ может превзойти глубокое обучение.

В наши дни в новостях об ИИ доминирует глубокое обучение. Чего не видят люди - глубокое обучение можно превзойти. Не поймите меня неправильно. Глубокое обучение - это прекрасно. Это открывает новые измерения машинного обучения. Его потрясающие результаты на изображениях впечатляют как специалистов по данным, так и заинтересованную публику. Помимо анализа изображений, вы можете найти новые интересные результаты в области анализа текста и временных рядов. Все это здорово; Но переоценен. Недавний пост на Kaggle показал, что подход линейной регрессии превзошел нейронные сети. Так в чем же был фокус? Как можно легко проверить глубокое обучение помощника?

Не такой уж секретный соус глубокого обучения

Современные архитектуры нейронных сетей обладают некоторыми важными особенностями, которые делают их успешными во многих случаях использования. Они способны решать нелинейные задачи, хорошо получать сложные входные данные и могут выполнять внутренний выбор функций.

Наиболее часто цитируемый секрет - это внутренняя генерация признаков. Архитектуры глубокого обучения сами создают новые параметры в своих узлах. Вы можете свести это к простому утверждению:

В глубоком обучении инженерия архитектуры - это новая разработка функций Стивен Мерити, старший научный сотрудник Salesforce.

Хотя это сильная сторона, она дает больше степеней свободы. В конечном итоге это приводит к тому, что вам нужно ввести достаточно информации, чтобы установить эти степени свободы. Важно отметить, что информация должна поступать из большего количества строк, а не из большего количества функций. На самом деле, чем больше функций, тем сложнее проблема. Это называется проклятием размерности.

Пример из реальной жизни

На практике вы часто сталкиваетесь с вариантами использования с ограниченным количеством записанных примеров. Недавно у меня был случай использования, когда я работал над письменными записями о техническом обслуживании. Инженеры записывали причины технического обслуживания. Это было на больших машинах, где их нет миллионов. Это привело к нескольким сотням строк ошибок. Сценарий использования заключался в том, чтобы определить актуальность для других отделов.

Загрузка этих записей в алгоритм глубокого обучения не дала никаких хороших результатов. Язык записей технического обслуживания богат терминологией, зависящей от варианта использования. Ограниченное количество строк не позволяло структуре глубокого обучения изучить основные факторы.

Передача знаний с помощью Feature Engineering

Мы действительно знали, что детали V120–3 и V120–4 относятся к одному типу. Таким образом, мы можем заменить оба одним токеном V120. Что мы сделали, так это перенесли в модель знания о мире, создав новые функции.

Хотя это звучит банально, у него есть два захватывающих аспекта. Во-первых, разработка этой функции может снизить сложность и нелинейность проблемы. Мы «устанавливаем» степени свободы модели вручную. Линейная регрессия Скотта Келлера имела множество инженерных особенностей. Я утверждаю, что эта линейная регрессия, таким образом, решает нелинейную проблему с подходом, очень похожим на вручную созданное ядро ​​в SVM.

Другая, более важная часть - это то, что мы подаем информацию о мире. Этой информации не было в исходных данных! Мы передаем в модель информацию о синонимах или отношениях. Это уникальное свойство инженерной мысли. У нас есть автоматизированные подходы, такие как word2vec или GloVe, которые пытаются понять значение слова. Но всем им нужны данные. Если у вас нет соответствующих данных, вы не сможете извлечь эти шаблоны. С другой стороны, человек знает эти отношения и может их подкрепить. Проверить партнера?

Большие данные спешат на помощь; Нет!

Распространенный ответ на проблему ограниченных данных - большие данные. Но это (к сожалению) часто бесполезно. Давайте оснастим нашу машину кучей датчиков. Эти датчики подключены к облачной среде. Теперь мы можем анализировать терабайты данных; Это супер круто, но, скорее всего, бесполезно.

Мы снова работаем над этими несколькими сотнями приведенных примеров, где инженер записал, что произошло. Конечно, мы можем дополнить каждую строку дополнительной информацией о состоянии машины. Но более релевантных строк мы не генерируем. Большие данные часто означают не большой размер выборки, а большой объем информации на строку.

Трансферное обучение - ответ?

Лучше ли глубокое обучение? По правде говоря, не совсем. На переднем крае глубокого обучения многие ученые пытаются применить переносное обучение к структурам глубокого обучения. Одна из ключевых идей - перенести отношения между словами или лежащими в основе образцами изображений в другие варианты использования. Идея состоит в том, что сеть, которая идентифицирует линию на изображении, также может быть полезна в других приложениях.

Эта область глубокого обучения зарождается на заднем дворе. Но рано или поздно он ударит по коммерческим приложениям. Если вас интересует, как проводить трансферное обучение в глубоком обучении, прочтите отличную запись в блоге Себастьяна Рудера.