Pull to refresh

Comments 16

Спасибо. Очень интересно! Интересуюсь и НС и вероятностными моделями, правда, так сложилось, что пока это только хобби на этапе почитай-посмотри. Эта лекция, пролила свет на многие вещи.
А есть возможность заполучить презентацию выступления?
UFO just landed and posted this here
На видео 23:30 сам Ветров советует литературу по теме выступления.
UFO just landed and posted this here
На десятом слайде есть список тем, но там сноски, а где сами названия книг смотреть по этим сноскам я не понял. Если кто понял — буду признателен за указание.
Может быть здесь кто-нибудь подскажет.

Есть следующая задача:
Дано множество объектов. Можно ввести некоторую функцию F() от явных параметров объекта, возвращающую значение из отрезка [-1; 1], которая показывает насколько определённый объект подходит пользователю (-1 — совсем не подходит, 1 — идеально подходит). Требуется найти объекты, на которых эта функция принимает максимальное значение.
Проблема в том, что сама функция неизвестна. Она принимает на вход некоторые явные параметры объекта, про которые точно известно, что от них зависит выбор пользователя. Но пользователь даже для данного конкретного объекта не может сказать какое значение должна принимать функция. Но, например, у пользователя про объект можно узнать может ли он ему подойти, не может, или он не определился, то есть пользователь может предъявляемые ему объекты определить в один из 3-х классов.
Нужна система, которая будет предъявлять пользователю объекты из множества. В зависимости от его ответов обучаться и вычислять значение функции F() для всех объектов из множества. Чем больше ответов дал пользователь, тем лучше обучается система.
Если этого не достаточно, то можно предъявлять пары объектов и спрашивать, какой из них больше подходит.

Является ли описанная задача задачей машинного обучения?
Есть ли какие-то библиотеки или программные продукты, которые позволяют её решить с минимумом усилий? База объектов есть, явные параметры известны, надо лишь найти максимум F().
Как вообще решаются подобные задачи? Когда из множества объектов надо выбрать близкий к оптимальному, но зависимость между параметрами пользователь сам формализовать не может, а объектов очень много, так что сравнить все попарно невозможно.
Готовое решение вряд ли найдёте, но можно «собрать» его по кусочкам. Посмотрите в сторону обучения ранжированию (Learning to rank) — там стоит похожая задача: есть очень много объектов, возможно, релевантных пользователю, хочется первым делом показать самые релевантные, при этом релевантность мы рассчитывать не умеем, но можем оценить с привлечением человека.
Есть некоторые мысли, может поможет.

Пусть у нас N параметров. Мы в N-мерном пространстве. Объект — это вектор в этом пространстве. Есть идеальный вектор, оценка объекта пользователем — это скалярное произведение идеального вектора на верктор объекта. Система будет выбирать этот вектор обучаясь.
>Является ли описанная задача задачей машинного обучения?

Если я правильно понимаю, то является, и это — 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 объекта не может.
«одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова...» Видимо я сильно отстал от жизни, а то в первый раз о таком слышу :)
Sign up to leave a comment.