В последнее время словосочетание «машинное обучение» (МО) стало невероятно модным.
Как и в любой раскрученной технологии, здесь энтузиазм превышает уровень продаж конкретной продукции.
Это спорно, но лишь немногие алгоритмические технологии со времен потрясающих инноваций Google 10-15 лет назад создали продукты, которые получили широкое распространение в массовой культуре.
Дело не в том, что с тех пор не было прорывов в машинном обучении, не было таких шокирующих, в основе которых лежат вычислительные алгоритмы.
Netflix может использовать умные рекомендации, но без них это Netflix. Но если бы Брин и Пейдж не проанализировали графовую структуру сети и гиперссылки в своих корыстных целях, у нас не было бы Google. Почему это? Ведь они пытались.
Немало стартапов хотели принести в массы технологии машинной обработки естественного языка, но все они в свою очередь канули в Лету после того, как люди действительно попытались их использовать.
Трудность получения хорошего продукта с помощью машинного обучения заключается не в понимании лежащей в его основе теории, а в понимании масштаба деятельности и поставленной задачи.
Понимание настолько глубокое, что вы можете интуитивно увидеть, что сработает, а что нет. Интересные задачи не имеют готовых решений.
Наш нынешний уровень в некоторых прикладных областях, например, в обработке естественного языка, в большей степени обусловлен открытиями, связанными с этой областью, чем новыми методами решения общих задач машинного обучения.
Зачастую отличие программы, используемой каждый день, от полурабочей курсовой работы заключается в особом взгляде на проблему и удачной модели решения.
Я не пытаюсь убедить вас не делать крутые продукты на основе машинного обучения.
Я просто пытаюсь объяснить, почему это так сложно.
Прогресс в машинном обучении.
За последние десять лет машинное обучение прошло долгий путь.
Когда я учился в аспирантуре, обучал линейные классификаторы классам объектов с большими запасами (т. СВМ , Машина опорных векторов ) выполнялось по алгоритму СМО .
Алгоритму требовался доступ ко всем данным одновременно.
Время обучения неприлично увеличивалось с ростом обучающей выборки.
Чтобы просто реализовать этот алгоритм на компьютере, нужно разбираться в нелинейном программировании, а для выделения существенных ограничений и точной настройки параметров нужно разбираться в черной магии.
Теперь мы знаем, как обучать почти одинаково эффективные классификаторы за линейное время в онлайн режим относительно простой алгоритм .
Аналогичные результаты появились и в теории (вероятностных) графических моделей: Марковская цепь Монте-Карло И вариационные методы упростить вывод сложных графических моделей (хотя MCMC уже довольно давно используется в статистике, в крупномасштабном машинном обучении этот метод начал использоваться лишь недавно).
Это становится смешно - сравнивайте топовые статьи в материалах Ассоциация компьютерной лингвистики (ACL) и вы увидите, что методы машинного обучения, используемые в последнее время (2011 г.
), стали намного более сложными по сравнению с теми, которые использовались в 2003 г.
В сфере образования прогресс также колоссальный.
Во время учебы в Стэнфорде в первой половине 2000-х я посещал курсы Эндрю Нг по машинному обучению и Дафны Коллер по вероятностным графическим моделям.
Оба этих курса — одни из лучших, которые я проходил в Стэнфорде.
Тогда они были доступны примерно ста людям в год. Курс Коллера, возможно, не просто лучший из курсов Стэнфорда.
Он также научил меня многому в преподавании.
Теперь эти курсы доступен каждому в Интернете .
Как человек, который на практике занимается машинным обучением (в частности, обработкой естественного языка), я могу сказать, что все эти достижения облегчили проведение многих исследований.
Однако ключевые решения, которые я принимаю, относятся не к абстрактному алгоритму, типу целевой функции или функции потерь, а к набору особенностей, характерных для конкретной задачи.
И это умение приходит только с опытом.
В итоге, хотя это и здорово, что широкая аудитория получает представление о том, что такое машинное обучение, это все же не самая сложная часть создания интеллектуальных систем.
Готовые решения не подходят для интересных задач.
Реальные проблемы, которые вы хотите решить, гораздо более неприятны.
чем абстракции, которые предлагает вам теория машинного обучения.
Возьмем, к примеру Машинный перевод .
На первый взгляд это похоже проблема статистической классификации : вы берете предложение на каком-то языке и хотите предсказать, какое предложение на вашем языке будет ему соответствовать.
К сожалению, количество предложений в любом обычном языке комбинаторно огромно.
Следовательно, решатель проблем не может быть «черным ящиком».
Любой хороший метод решения основан на разложении проблемы на более мелкие.
А затем программа учится решать эти более мелкие проблемы.
Я утверждаю, что прогресс в решении сложных задач, таких как машинный перевод, достигается за счет лучшего разделения и структурирования пространства поиска, а не за счет причудливых алгоритмов перевода, которые мы обучаем в этом пространстве.
Качество машинного перевода за последние десять лет росло семимильными шагами.
Думаю, это произошло в основном благодаря ключевым открытиям именно в области перевода, хотя общие улучшения алгоритмов тоже сыграли свою роль.
Статистический машинный перевод в его нынешнем виде восходит к замечательной работе « Математика статистического машинного перевода ", который представил шумная архитектура канала , на основе которого впоследствии будут основываться переводчики.
Если проще, это работает так: для каждого слова существуют возможные переводы на наш язык (в том числе и пустое слово, если в нашем языке нет эквивалента переводимому).
Давайте представим это как вероятностный словарь.
Полученные слова переставляются, чтобы получить предложение, уже гармоничное в нашем языке.
В этом объяснении упущено множество деталей — как работать с предложениями-кандидатами, перестановками, как обучать модели стандартных перестановок с определенного языка на целевой язык, как оценивать благозвучность результата, в конце концов.
Ключевой прорыв в машинном переводе произошел с изменением этой модели.
Вместо перевода отдельных слов новые модели стали учитывать перевод целых фраз .
Например, русское «in the Evening» примерно соответствует английскому «in the Evening».
До появления пофразового перевода модель, основанная на пословном переводе, могла получить только одно слово (модель IBM 3 позволяет получить несколько слов из каждого слова целевого языка, но вероятность увидеть хорошего перевода пока мало).
Вряд ли таким образом можно получить хорошее предложение на английском языке.
Пофразовый перевод позволяет получить более плавный и живой текст, напоминающий родную речь.
Конечно, добавление кусков фраз приводит к осложнениям.
Непонятно, как оценить часть фразы, учитывая, что такого ее разделения мы никогда не видели.
Никто нам не скажет, что «вечером» — это фраза, которая должна соответствовать какой-то фразе на другом языке.
Что здесь удивительно, так это то, что разницу в качестве перевода создает не крутая техника машинного обучения, а модель, заточенная под конкретную задачу.
Многие, конечно, пытались использовать более сложные алгоритмы обучения, но улучшение от этого было, как правило, не столь уж большим.
Франц О (Франц Ох), один из авторов фразового подхода к переводу, пришел в Google и стал ключевой фигурой в группе Translate. Хотя основы этой службы были заложены еще во времена работы Франца как исследователя в Институт информационных наук (а до этого, в аспирантуре), многие идеи, которые позволили нам выйти за рамки пофразового перевода, возникли в результате инженерной работы, связанной с масштабированием этих идей в Интернет. Эта работа дала потрясающие результаты в крупномасштабных языковых моделях и других областях НЛП.
Важно отметить, что Оч не только первоклассный исследователь, но и, судя по всему, выдающийся хакер (в хорошем смысле этого слова).
Это редкое сочетание навыков позволило нам пройти путь от исследовательского проекта до того, чем он является сейчас.
Определение задачи.
Но мне кажется, что создать хорошую модель – это еще не вся проблема.
В случае машинного перевода или распознавания речи задача четко определена, а критерии качества легко понять.
Многие из технологий НЛП, которые будут использоваться в приложениях в ближайшие десятилетия, гораздо более размыты.
Что именно должно содержать идеальное исследование по моделированию конкретного случая? разговоры , характеристика отзывов (третья лаборатория в nlp-class.org )? Как на основе этого сделать массовый продукт? Давайте рассмотрим проблему автоматическое абстрагирование .
Нам нужен продукт, который абстрагирует и структурирует контент. Однако по ряду причин эту формулировку необходимо ограничить чем-то, что можно смоделировать, структурировать и в конечном итоге оценить.
Например, в литературе по обобщению задача обычно формулируется как выбор подмножества предложений из набора документов и их упорядочивание.
? та проблема, которую необходимо решить? Хороший ли это способ аннотировать фрагмент текста, написанный длинными сложными предложениями? И даже если текст хорошо аннотирован, будут ли эти предложения Франкенштейна выглядеть естественными для читателя? Или, например, обзорный анализ.
Нужна ли людям черно-белая оценка «хорошо/плохо»? Или вам нужна более полная картина (т. е.
«еда классная, атмосфера отстой»)? Клиентов интересует отношение каждого конкретного посетителя или точный анализ совокупности отзывов? Обычно руководство отвечает на такие вопросы и отправляет их инженерам и исследователям для реализации.
Проблема в том, что машинное обучение довольно жестко ограничивает классы задач, решаемых с алгоритмической или технической точки зрения.
По моему опыту, люди, понимающие подходы к решению подобных задач и имеющие глубокое понимание проблемной области, могут предложить идеи, которых у специалистов без такого понимания просто не было бы.
Позвольте мне провести грубую аналогию с архитектурой.
Нельзя построить мост просто «как-то вот так».
Физика и сопротивление материалов накладывают строгие ограничения на проектирование, а потому нет смысла допускать к проектированию мостов людей без знаний в этих областях.
Подводя итог, если вы хотите сделать действительно крутой продукт с помощью машинного обучения, вам нужна команда крутых инженеров/дизайнеров/исследователей.
Во всем: от базовых теорем машинного обучения до проектирования систем, знаний предметной области, методов взаимодействия с пользователем и графического дизайна.
Предпочтительно специалисты мирового уровня в одной из этих областей и хорошее понимание других.
Небольшие, талантливые команды с полным набором вышеперечисленных специалистов будут хорошо разбираться в неопределенном мире дизайна и продвижения продуктов.
Для крупных компаний, где НИОКР и маркетинг расположены в разных зданиях, это не сработает. Крутые продукты будут создавать команды, в которых у всех горят глаза, которые видят весь контекст и у которых достаточно места в пресловутом гараже.
Теги: #машинный перевод #Машинное обучение #стартапы #программирование
-
Вулканический Поросенок, Или Diy Sql
19 Oct, 24 -
Темы Или События
19 Oct, 24 -
Raspberry Pi Без Проводов
19 Oct, 24