Сегодня лекция одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова, который руководит департаментом больших данных и информационного поиска на факультете компьютерных наук, работающим во ВШЭ при поддержке Яндекса.

Как можно хранить и обрабатывать многомерные массивы в линейных по памяти структурах? Что дает обучение нейронных сетей из триллионов триллионов нейронов и как можно осуществить его без переобучения? Можно ли обрабатывать информацию «на лету», не сохраняя поступающие последовательно данные? Как оптимизировать функцию за время меньшее чем уходит на ее вычисление в одной точке? Что дает обучение по слаборазмеченным данным? И почему для решения всех перечисленных выше задач надо хорошо знать математику? И другое дальше.



Люди и их устройства стали генерировать такое количество данных, что за их ростом не успевают даже вычислительные мощности крупных компаний. И хотя без таких ресурсов работа с данными невозможна, полезными их делают люди. Сейчас мы находимся на этапе, когда информации так много, что традиционные математические методы и модели становятся неприменимы. Из лекции Дмитрия Петровича вы узнаете, почему вам надо хорошо знать математику для работы с машинным обучением и обработкой данных. И какая «новая математика» понадобится вам для этого. Слайды презентации — под катом.



Дмитрий Ветров окончил ВМиК МГУ, кандидат физико-математчиеских наук. Автор более 120 научных публикаций. Дмитрий Петрович разработал курсы «Байесовские методы машинного обучения» и «Графические модели», которые читает в МГУ и в Школе анализа данных Яндекса. Принимал участие в нескольких междисциплинарных исследовательских проектах по разработке новых методов машинного обучения и вероятностного вывода (когнитивные науки, медицина, неорганическая химия, и др.). Руководит исследовательской группой байесовских методов.

Комментарии (16)


  1. spice_harj
    28.06.2015 19:36
    +2

    Спасибо. Очень интересно! Интересуюсь и НС и вероятностными моделями, правда, так сложилось, что пока это только хобби на этапе почитай-посмотри. Эта лекция, пролила свет на многие вещи.


  1. kenoma
    28.06.2015 19:45
    +2

    А есть возможность заполучить презентацию выступления?


    1. Zalina Автор
      29.06.2015 15:32
      +1

      Добавили слайды под кат.


  1. lockywolf
    29.06.2015 14:21

    У Хокинга нет Нобелевской Премии. Увы.


  1. SkidanovAlex
    30.06.2015 08:39

    На 9:01 w0 должно быть под скобкой, нет?


  1. artemonster
    30.06.2015 21:24
    +1

    Посоветуйте хорошую литературу на темы из презентации, пожалуйста.


    1. kenoma
      30.06.2015 21:37

      На видео 23:30 сам Ветров советует литературу по теме выступления.


      1. artemonster
        30.06.2015 22:22

        спасибо. мотал время от времени — пропустил видимо.


      1. oleg0xff
        02.07.2015 15:52

        На десятом слайде есть список тем, но там сноски, а где сами названия книг смотреть по этим сноскам я не понял. Если кто понял — буду признателен за указание.


        1. barmaley_exe
          02.07.2015 23:46

          Я не знаю, но это известные книги известных авторов, я Вам и так скажу:

          Koller09 – Probabilistic Graphical Models: Principles and Techniques
          Bishop06 – Pattern Recognition and Machine Learning
          Bengio14 – не совсем верно, т.к. книга ещё не вышла, но (пока ещё) можно почитать черновик.


          1. oleg0xff
            02.07.2015 23:47

            Спасибо


  1. yupic
    06.07.2015 01:45
    +1

    Может быть здесь кто-нибудь подскажет.

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

    Является ли описанная задача задачей машинного обучения?
    Есть ли какие-то библиотеки или программные продукты, которые позволяют её решить с минимумом усилий? База объектов есть, явные параметры известны, надо лишь найти максимум F().
    Как вообще решаются подобные задачи? Когда из множества объектов надо выбрать близкий к оптимальному, но зависимость между параметрами пользователь сам формализовать не может, а объектов очень много, так что сравнить все попарно невозможно.


    1. barmaley_exe
      06.07.2015 17:16

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


    1. vlad9486
      13.07.2015 19:22

      Есть некоторые мысли, может поможет.

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


    1. 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 объекта не может.


  1. kluwert
    17.07.2015 15:01
    -1

    «одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова...» Видимо я сильно отстал от жизни, а то в первый раз о таком слышу :)