Как вы уже успели заметить, мы достаточно часто обращаем внимание на тему машинного обучения. Так, мы рассказывали о глубоком обучении, писали о работе с данными и адаптировали различные подборки источников по теме: 1, 2, 3.
Сегодня мы решили посмотреть на наиболее интересные вопросы и ответы по теме машинного обучения на ресурсе Quora.
Какой язык программирования лучше всего подходит для машинного обучения?
Йошуа Бенгио (глава Института Алгоритмов Машинного Обучения, Монреаль) говорит, что многие годы они программируют на Python, наряду с другими языками. Но ему бы хотелось использовать что-нибудь наподобие Python, что при этом обладало бы более мощным компилятором, способным выдавать эффективный и распределенный (по кластерам) код, который будет легко портировать.
Именно по этой причине они начали разрабатывать библиотеку Theano (нельзя сказать, что это полноценный язык – скорее набор функций для создания выражений и компилятор).
Сколько алгоритмов используется в рекомендательной системе Netflix? Существует мнение, что более 800. Так ли это?
Ксавье Аматриан (технический директор Netflix с 2011 по 2014) говорит, что все зависит от того, что подразумевается под системой рекомендаций. Если речь идет о предпочтениях на основе рейтинга, то для них используются два алгоритма.
Если же вопрос подразумевает в целом рекомендательную экосистему Netflix, то конечно же, используется куда больше алгоритмов, но никак не 800. Здесь он описывает, как работает алгоритм рекомендации фильмов.
Действительно ли необходимо получать докторскую степень, чтобы иметь хорошую работу в сфере машинного обучения? Правда ли, что в таких компаниях как Google докторская степень – это базовое требование [к кандидатам]?
Бэн Чжао (профессор информатики Калифорнийского университета) знаком со многими студентами, которые после окончания обучения получили должность в Google, Microsoft, Twitter, Linkedin и Zynga. Большинство из них получили эти должности не благодаря степени, а потому, что в свое время они вместе с Чжао проводили исследования по аналитике социальных сетей или попали в толковые руки отдела кадров.
Получение докторской степени, безусловно, дает свои преимущества. Это – возможность изучать ныне существующие проблемы и постоянно возникающие технологии работы с ними ещё несколько лет. Поэтому докторская степень точно не помешает в получении должности (если кандидат действительно хочет заниматься исключительно вопросами машинного обучения).
Что вы думаете о недавно выпущенном Yahoo своде данных по машинному обучению?
Джеймс Бейкер (занимался машинным обучением еще до того, как его стали так называть) надеется, что это подвигнет и другие компании выпустить аналогичные наборы. Он прекрасно понимает, какого объема должен быть этот набор, поэтому не собирается самостоятельно изучать его – он заинтересован в помощниках или коллаборации с кем-нибудь.
Сложность одиночной работы с подобными наборами данных, как отмечает Джеймс, состоит в том, что у исследователя может не оказаться достаточно мощностей для его обработки.
У самого Джеймса есть есть теоретическая модель глубокого обучения, которую он хотел бы применить к этому набору от Yahoo, но проблема заключается в том, что его «железо» это не потянет, кроме того, ему не хватает помощников в обслуживании его модели.
Поэтому он ищет заинтересованных лиц, а исследователям, которые находятся в подобном положении, Джеймс настоятельно рекомендует дождаться формирования команд энтузиастов – так шанс на практике воспользоваться данными от Yahoo может серьезно вырасти.
Почему существует так мало стартапов в области машинного обучения и в области обработки естественного языка?
Джозеф Туриан (консультант по вопросам Data Mining и обработки естественного языка) отмечает: дело в повышенных рисках. Большинство технологических стартапов сталкивается с относительно высокими маркетинговыми рисками, которые уравновешиваются сравнительно низкими рисками, касающимися технологической составляющей.
В сфере машинного обучения и обработки естественного языка высоки как маркетинговые, так и технологические риски – все это не позволяет основателям таких стартапов привлекать стороннее финансирование. Не в пользу основателей говорит в данном случае и тот факт, что у них далеко не всегда есть адекватное представление о бизнесе и рыночных отношениях в целом – большую часть времени специалисты по машинному обучению проводят в таких спокойных и мало подверженных влиянию «большого мира» местах, как университеты и крупные корпорации.
Джеймс Бейкер дополняет ответ Джозефа. Он подчеркивает, что [несмотря на общий пессимизм] в этих областях работает больше стартапов, чем мы привыкли думать. Он отмечает, что стартапы, использующие в работе технологии машинного обучения или обработки естественного языка, должны использовать большие объемы данных.
В этой среде их конкурентами становятся такие гиганты, как Google, Microsoft и др., поэтому, стремясь избежать конкуренции, маленькие компании просто не афишируют эту составляющую своей работы.
Какие замечательные идеи наиболее популярны в сфере машинного обучения?
Чарльз Мартин считает, что одна из них это – нейронная сеть Хопфилда, ее связь с моделью Изинга и ее применение в современной реализации глубокого обучения. Такие простые модели находят свое применение не только в статистической физике, но и в развитии современных алгоритмов глубокого обучения.
Он также отмечает важность ограниченной машины Больцмана в машинном обучении несмотря на то, что с момента появления этой архитектуры и до момента ее активного применения в моделях глубокого обучения прошло почти 20 лет.
Абинав Маурья добавляет к этому списку kernel trick (ядерный метод) для метода опорных векторов (список наиболее часто используемых функций для этого метода можно найти здесь). Другие исследователи отмечают метод максимального правдоподобия (за его понятность и простоту) и теорию приближенно правильного обучения Лесли Гэбриела Вэлианта – за то, что она широко используется в современных алгоритмах машинного обучения.
Какие алгоритмы должен использовать каждый, кто исследует данные?
У Уильяма Чена (исследователя данных в Quora) есть 3 любимых алгоритма:
- Логит-регрессия/Линейная регрессия – для бинарной классификации и регрессии
- Random Forests – для классификации
- TF-IDF – для текстового анализа
По его мнению модели регрессии крайне эффективны, а знание статистики поможет раскрыть их скрытый потенциал. Random Forests ему нравится за хорошую способность прогнозирования, а с TF-IDF удобно конвертировать текстовую информацию в числовые вектора. Другие исследователи отмечают также перцептрон, метод k-средних и рекуррентные нейронные сети.
Какое будущее ждет науку о данных?
Брайан Ланж (исследователь данных в Datascope) считает, что появятся новые источники данных: данные, которые будут генерировать сенсоры на производстве, в транспорте, даже в офисах, станут источником новой информации для исследователей.
Появятся новые инструменты, значительно упрощающие работу с данными. В первую очередь это связано с появлением открытых библиотек и активным обменом информацией между исследователями. Брайан подчеркивает: алгоритмы, которые 10 лет назад приходилось писать вручную, сейчас находятся в прямом доступе и их легко инкорпорировать в работу.
Профессия исследователя данных пополнится рядом разновидностей. По мнению Брайана, с ростом количества информации и задач, которые выполняет исследователь данных, все больше сотрудников из разных подразделений компаний начнут в той или иной мере работать в области data science – работа исследователей не будет ограничиваться одним отделом.
Дима Королев (специалист по работе с Большими данными), напротив, считает, что в будущем появится full-stack инженер по работе с данными (по аналогии с full-stack разработчиками). Он рассказывает, что, к примеру, на обработке чисел в Excel, применении различных моделей в Python или R и трансляции результатов в режиме реального/близкого к реальному времени, сейчас обычно заняты три человека. В будущем же потребуется один, который будет выполнять множество процессов от начала и до конца.
Существуют ли простые проекты по применению машинного обучения на финансовых рынках?
Владимир Новаковский (заведующий машинным обучением в Quora) считает, что любой проект, хорошо предсказывающий результаты торгов однозначно не будет простым. Он предлагает задуматься о двух областях, в которых машинное обучение может быть успешно применено в сфере трейдинга.
Первая область: прогнозирование показателей, которые опосредованно влияют на торги. Одними из таких показателей может быть волатильность (машинное обучение можно использовать для улучшения GARCH-модели волатильности), уровень безработицы или показатель инфляции.
Суть другого направления для работы заключается в анализе поведения рыночных цен.
По словам Владимира, для создания неплохого проекта, позволяющего разобраться в теме трейдинга, достаточно применить машинное обучение для анализа цен, не «перегружая» модель информацией о транзакционных издержках: конечно, с такой моделью нельзя торговать на бирже, но она может отлично подойти для того, чтобы «вкатиться» в профессию.
В чем разница между «большими данными» и «машинным обучением»?
Владимир Новаковский объясняет, что «большие данные» напрямую не связаны с какими-либо конкретными вычислениями. Например, создание технологии для агрегирования данных о миллиардах транзакций по кредиткам и формирование SQL-запросов к полученному массиву, чтобы понять, сколько операций было совершено на сумму свыше $10 – задача, относящаяся к сфере больших данных, но не имеющая отношения к машинному обучению.
Владимир отмечает, что большой объем данных для проведения вычислений не является обязательной составляющей машинного обучения – алгоритмы можно запускать и на сравнительно небольших массивах (на больших они, тем не менее, как правило, более эффективны, поэтому так часто эти два понятия между собой перекликаются).
P.S. В нашем блоге мы пишем о разработке систем связи и о первых шагах на пути к продвинутому программированию. Постараемся радовать вас регулярными публикациями, друзья.
Автор: Университет ИТМО