Deep Learning - что же делать, кого бить |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2016-08-03 23:36
Нигде, наверно, нет такой насущной необходимости в синергии знаний разных областей науки - как в области машинного обучения и Deep Learning. Достаточно открыть капот TensorFlow и ужаснуться - огромное количество кода на python, работающее с тензорами внутри- C++, вперемешку с numpy, для выкладки в продакшн требующее чуток покодить «на плюсах», вприкуску с bazel (это так волнует, всю жизнь мечтал об этом!). И другая крайность - ребята из Deeplearning4j прокляли python к чертовой матери и вращают тензоры на старой и доброй java. Но дальше всех ушли, похоже, студенты из университета Нью-Йорка - люди, причем не только студенты, причем давно и серьезно жгут на Luajit + nginx (аминь по католически). Ситуация осложняется недавним демаршем Google DeepMind в отношении «дедушки torch»: все проекты переводят на свой внутренний движок, родившийся из DistBelief.
Полнейший хаос и бардак. Экспертов - «в топку» Но начнем с конца. Стоит ли тратить время на изучение Deep Learning, насколько он нужен бизнесу и что это вообще такое? Вспомним, что «классическое» машинное обучение работает же, и неплохо, но, НО- требуется тщательный выбор и магическо-ненаучные манипуляции с атрибутами с привлечением экспертов в предметной области - а это долго, дорого и хрупко. Всем хочется дать машине данные и чтобы она САМА всему научилась (вот тебе архив с книжками - завтра научись писать новые; вот тебе фотографии - учись рисовать). И не отвлекайся, красавица, работай. И это стало получаться. Хорошо известные работающие неплохо примеры, которым не нужны эксперты по языку - это машинный перевод. Ну весело же - берем корпус с переводами, учим нейронку и вуаля - она переводит не хуже, а даже лучше чем Moses. Еще пример, где DeepLearning расцвел в свое красе - машинное зрение. Тоже весело - несколько слоев нейронки разного типа (сверточные, pooling) и чудо - сеть классифицирует изображение быстрее и иногда точнее человека. И опять - обучается этому только на данных, фичи выбираются автоматически в ходе обучения. Прекрасно! Еще перспективный пример - рекуррентые нейронки для чатботов и для моделирования языка. Тем не менее, Amazon релизит продукт, который внутри себя представляет ETL + старую, добрую, «бесплатную» логистическую регрессию! «Безумие» и отвага. Теория и практика Жизнь так устроена, что математически хорошо подкованные коллеги обычно пишут на «не очень удобном с точки зрения эксплуатации под высокими нагрузками языке». При этом эти коллеги - очень умные, знают много, множат матрицы в уме и отличают логистическую регрессию от дискриминантного анализа. А опытные опытные опытные инженеры хайлоада, больших данных и энтерпрайза, ангелы DevOps - хорошо программируют в больших объемах и это потом «не протухает», в уме переводят код в ассемблер - но вряд ли даже за отпуск смогут освоить и объяснить на пальцах принцип работы LDA, ссылаясь на Beta-распределение. И не стоит этим матерым бойцам показывать «программирование» в «ipython notebook» - запрут в серверной и заставят переписать код на ANSI C за ночь ;-) Непонятно пока, что с этим всем делать - Google нанимает ученых со всего мира, сплавляет их с программистами А пока - учимся договариваться, нет выхода. Что же делать? Что делать, чтобы разобраться и преуспеть - постоянно учиться и приобретать смежные знания! Хорошие алгоритмы, качественные модели, которые учатся на данных без помощи экспертов - нужны бизнесу, как никогда. Deeplearning очень интенсивно развивается, эта активная область научных исследований и проникает в нашу жизнь все глубже. Благо, обучая модели на GPU (а эту возможность поддерживают уже многие фреймворки) - можно ускориться раз в 10. Не хватает скорости - стартуем на кластере. TensorFlow умеет это из коробоки, Deeplearning4j - масштабируется на Spark. Да, нужно привыкнуть к научному стилю изложения - но со временем становится понятно, что вариантов Deep Learning архитектур и решаемых ими задач не так уж и много, и постепенно проясняется механика работы каждого класса решений. Если тебе трудно понять трехэтажные матрицы, описывающие физику нейронок - отложи WorldOfTanks, потрать одни выходные на вводный курс по линейной алгебре и все со временем откроется. Ученые создают модели, а мы, инженеры - их только используем; ну иногда комбинируем. И никогда не нужно кидаться в крайности. Вот напоследок вкусная и интересная статья, как Google реализовал свою рекомендательную систему для Google Play - видно, что начинали с классического, правда «широкого» классификатора, а закончили Deep&Wide и с неплохими показателями качества модели :-) Всем удачи, вдохновения, энергии и новых, интересных задач и красивых, эффективных решений! Источник: habrahabr.ru Комментарии: |
|