Как можно хранить и обрабатывать многомерные массивы в линейных по памяти структурах? Что дает обучение нейронных сетей из триллионов триллионов нейронов и как можно осуществить его без переобучения? Можно ли обрабатывать информацию «на лету», не сохраняя поступающие последовательно данные? Как оптимизировать функцию за время меньшее чем уходит на ее вычисление в одной точке? Что дает обучение по слаборазмеченным данным? И почему для решения всех перечисленных выше задач надо хорошо знать математику? И другое дальше.
Люди и их устройства стали генерировать такое количество данных, что за их ростом не успевают даже вычислительные мощности крупных компаний. И хотя без таких ресурсов работа с данными невозможна, полезными их делают люди. Сейчас мы находимся на этапе, когда информации так много, что традиционные математические методы и модели становятся неприменимы. Из лекции Дмитрия Петровича вы узнаете, почему вам надо хорошо знать математику для работы с машинным обучением и обработкой данных. И какая «новая математика» понадобится вам для этого. Слайды презентации — под катом.
Дмитрий Ветров окончил ВМиК МГУ, кандидат физико-математчиеских наук. Автор более 120 научных публикаций. Дмитрий Петрович разработал курсы «Байесовские методы машинного обучения» и «Графические модели», которые читает в МГУ и в Школе анализа данных Яндекса. Принимал участие в нескольких междисциплинарных исследовательских проектах по разработке новых методов машинного обучения и вероятностного вывода (когнитивные науки, медицина, неорганическая химия, и др.). Руководит исследовательской группой байесовских методов.
Комментарии (16)
artemonster
30.06.2015 21:24+1Посоветуйте хорошую литературу на темы из презентации, пожалуйста.
kenoma
30.06.2015 21:37На видео 23:30 сам Ветров советует литературу по теме выступления.
oleg0xff
02.07.2015 15:52На десятом слайде есть список тем, но там сноски, а где сами названия книг смотреть по этим сноскам я не понял. Если кто понял — буду признателен за указание.
barmaley_exe
02.07.2015 23:46Я не знаю, но это известные книги известных авторов, я Вам и так скажу:
Koller09 – Probabilistic Graphical Models: Principles and Techniques
Bishop06 – Pattern Recognition and Machine Learning
Bengio14 – не совсем верно, т.к. книга ещё не вышла, но (пока ещё) можно почитать черновик.
yupic
06.07.2015 01:45+1Может быть здесь кто-нибудь подскажет.
Есть следующая задача:
Дано множество объектов. Можно ввести некоторую функцию F() от явных параметров объекта, возвращающую значение из отрезка [-1; 1], которая показывает насколько определённый объект подходит пользователю (-1 — совсем не подходит, 1 — идеально подходит). Требуется найти объекты, на которых эта функция принимает максимальное значение.
Проблема в том, что сама функция неизвестна. Она принимает на вход некоторые явные параметры объекта, про которые точно известно, что от них зависит выбор пользователя. Но пользователь даже для данного конкретного объекта не может сказать какое значение должна принимать функция. Но, например, у пользователя про объект можно узнать может ли он ему подойти, не может, или он не определился, то есть пользователь может предъявляемые ему объекты определить в один из 3-х классов.
Нужна система, которая будет предъявлять пользователю объекты из множества. В зависимости от его ответов обучаться и вычислять значение функции F() для всех объектов из множества. Чем больше ответов дал пользователь, тем лучше обучается система.
Если этого не достаточно, то можно предъявлять пары объектов и спрашивать, какой из них больше подходит.
Является ли описанная задача задачей машинного обучения?
Есть ли какие-то библиотеки или программные продукты, которые позволяют её решить с минимумом усилий? База объектов есть, явные параметры известны, надо лишь найти максимум F().
Как вообще решаются подобные задачи? Когда из множества объектов надо выбрать близкий к оптимальному, но зависимость между параметрами пользователь сам формализовать не может, а объектов очень много, так что сравнить все попарно невозможно.barmaley_exe
06.07.2015 17:16Готовое решение вряд ли найдёте, но можно «собрать» его по кусочкам. Посмотрите в сторону обучения ранжированию (Learning to rank) — там стоит похожая задача: есть очень много объектов, возможно, релевантных пользователю, хочется первым делом показать самые релевантные, при этом релевантность мы рассчитывать не умеем, но можем оценить с привлечением человека.
vlad9486
13.07.2015 19:22Есть некоторые мысли, может поможет.
Пусть у нас N параметров. Мы в N-мерном пространстве. Объект — это вектор в этом пространстве. Есть идеальный вектор, оценка объекта пользователем — это скалярное произведение идеального вектора на верктор объекта. Система будет выбирать этот вектор обучаясь.
Truf
16.07.2015 20:36>Является ли описанная задача задачей машинного обучения?
Если я правильно понимаю, то является, и это — active learning.
Грубо говоря, функция F (допустим линейная y=AX+c, где X — вектор признаков, A — вектор их весов) будет выдавать число > 0, если объект принадлежит классу 1, и < 0 — если классу 2. Есле abs(F(x)) < eps, то к классу 3 (не определился). Это обычный классификатор, который вы обучаете, предъявляя объекты с готовыми ответами. Потом можете либо просто применять функцию F на объекты, либо выдрать из нее коэффициенты и изучать, какие зависимости они описывают.
Экзотическим здесь является именно процесс обучения путем опроса пользователя.
Мне кажется, это реализовано в одном из режимов Vowpal Wabbit. Правда, я VW в таком режиме никогда не использовал. По моим ощущениям, в нем он должен классифицировать объекты, а в случае, если классификатор сомневается больше чем задано — то запрашивать правильный ответ у пользователя. В идеале, со временем он все реже и реже будет прибегать к помощи оператора.
Вот статья мейнтенера VW про этот алгоритм (он не единственный, реализованный в VW): papers.nips.cc/paper/4014-agnostic-active-learning-without-constraints.pdf
И т.к. VW — opensource, то его всегда можно допилить (что я периодически делаю) и легко подключить к любой внешней системе (в виде статической библиотеки, например).
>Если этого не достаточно, то можно предъявлять пары объектов и спрашивать, какой из них больше подходит.
А вот этого VW точно не умеет и не будет уметь. Он реализует online learning для работы с большими объемами данных. Он хранит только коэффициенты функции (регрессора) и не хранит сами данные. Update and forget. Поэтому сравнивать 2 объекта не может.
kluwert
17.07.2015 15:01-1«одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова...» Видимо я сильно отстал от жизни, а то в первый раз о таком слышу :)
spice_harj
Спасибо. Очень интересно! Интересуюсь и НС и вероятностными моделями, правда, так сложилось, что пока это только хобби на этапе почитай-посмотри. Эта лекция, пролила свет на многие вещи.