Дорожная карта математических дисциплин для машинного обучения, часть 2 (вероятности)

    Вместо введения


    Давным давно была первая часть, теперь настало время для второй части! Здесь затронем вопросы, связанные с теорией вероятностей.


    Как и в прошлой статье, будем выделять несколько "уровней" погружения в предмет и его проработку. На самом деле, я считаю, что каждый предмет надо проходить несколько раз на разных "уровнях" сложности: сначала вы погружаетесь в предмет, привыкаете к "словарю", к типичной постановке задач и методам их решения. Через некоторое время, обогащенные знаниями из других областей, вы готовы вновь пройти курс, но уже на несколько более высоком уровне. Вас теперь уже могут интересовать не только стандарные задачи, но и ограничения методологии, нестандартные подходы, возможно какая-то философия, из которой вырос предмет (вечный спор между "frequentist school" и "bayesian school").


    Напомню, что мы выделяем три "уровня" сложности:


    1. Bring it on — основная рабочая лошадка; это книги, что называется, «must have».
    2. Hurt me plenty — уровень повыше, позволяет оглядеть с высоты птичьего полёта уровень 1, систематизирует знания, объединяет различные области знаний.
    3. Nightmare — для сильных духом, уровень мехмата, для любителей математики и башен из слоновой кости.

    В большинстве случаев я указываю те книги, которые либо прочел сам, либо которые пользуются большой популярностью в (математическом) сообществе — их советуют на stackoverflow, goodreads, quora и т.д.


    Классическая вероятность


    Я убежден, что нет смысла прыгать сразу через три ступеньки и сходу погружаться в мир байесовского вывода, не изучив предварительно классические разделы: теорию вероятностей и статистику.


    Что (минимально) я должен знать после курса по классической вероятности?


    • Базовые понятия: событие, (собственно) вероятность, условная вероятность (одного события при условии, что произошло какое-то событие);
    • Случайные величины, их распределения, мат. ожидание, дисперсия;
    • Независимость случайных величин: обычная/попарная, в чем различие, корреляция;
    • Классические примеры распределений: Бернулли, геометрическое, биномиальное, Пуассон, экспоненциальное, нормальное;
    • Предельные теоремы: закон больших чисел, центральная предельная теорема;

    Практически любой учебник по теории вероятностей покрывает упомянутые темы (и как правило — много чего ещё). Это самый базовый аппарат, на котором строятся уже более сложные модели.


    Что я должен знать дополнительно, чтобы комфортно ощущать себя в машинном обучении?


    • Условное математическое ожидание: во всей общности это довольно сложное понятие, но к счастью, для дискретных и абсолютно непрерывных случайных величин (а эти два класса покрывают бОльшую часть того, с чем приходится сталкиваться обычному смертному в вероятностых моделях) определяется не очень трудно, и достаточно принять "на веру" всего несколько теорем без вмешательства сигма-алгебр и интегралов Лебега и прочей фигни.
    • Многомерное нормальное распределение: основная рабочая лошадка регрессионного анализа. Можно целый курс прочесть по геометрии этого распределения (собственно, это обычно и происходит, когда читают курс по линейной регрессии).
    • Марковские цепи: ещё одна отправная точка многих методов и моделей (от MCMC до марковских случайных полей)
    • Сопряженные распределения: Бета, Гамма;
    • Вероятности отклонений: неравенства Маркова, Хёфдинга/Чернова;
    • Контрпримеры: помимо основных теорем неплохо бы знать, когда теоремы нарушаются и почему;

    Bring it on


    Из англоязычных источников я очень рекомендую книгу Blitzstein & Hwang "Introduction to Probability"; есть соответствующая страничка в интернете, посвященная курсу: stat110. Там же есть ссылки на курс на youtube и курс на edx stat110x. Советую пробовать все три источника и выбирать то, что ближе вам. В 110х дополнительно есть автоматическая проверка задач и некоторые симпатичные визуализации и симуляции.
    Книга очень хороша своей подборкой задач, решения к части из них можно найти на том же сайте. Вообще я очень рекомендую решать как можно больше задач: от простых на "набить руку" до содержательных. Дополнительно к главам идет бонус в виде симуляций и численных экспериментов на R.


    Из российских аналогов: есть хороший курс от Райгородского на coursera/лектории МФТИ/openedu (см. например openedu). Есть своя специфика: много задач в курсе посвящены случайным графам.
    По книгам можно посоветовать:


    1. Классический учебник Е.С. Вентцель "Теория вероятностей". Приятный литературный русский язык и бонус — задачи в виде "ведется обстрел такой-то позиции..."
    2. Очень-очень классная книга от Чжун Кай Лай, АитСахлиа Фарид: "Элементарный курс теории вероятностей. Стохастические процессы и финансовая математика". Много задачек, от простых до "на подумать".

    Hurt me plenty


    Опять же из англоязычного есть хороший курс от MIT
    Как учебник я бы советовал Grimmett, Stirzaker "Probability and random processes" , и соответствующий задачник (с прорешанными!!! задачами): One Thousand Exercises in Probability.
    Отдельно выделю очень интересную книгу от Michael Mitzenmacher, Eli Upfal: "
    Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis (2nd Edition)". Примечательна эта книга тем, что применяет вероятностные методы в "real-world" задачах. Ну и много не самых стандартных тем: от хэширования до VC-размерности.


    На русском языке:


    1. Хорошая книга от Тутубалина "Теория вероятностей" от 2008 года;
    2. "Курс теории вероятностей" от Гнеденко;
    3. Конспект курса теории вероятностей от Н. Черновой: Чернова;
    4. Феллер, тома 1-2. Второй том мне кажется несколько устаревшим, во всяком случае в него включены темы, которые сейчас не всегда рассказываются (скажем, тауберовы теоремы, функции Бесселя и т.д.). Тем не менее, каждый, кто заинтересован вероятностью, должен хотя бы раз открыть эту книгу. Чаще всего рекомендуют издание 1984-го года (зеленое).

    Особо крепкие могут попробовать пройти курс на Степике: Храбров. Но там маловато задачек для набивания руки, и он приближен уже к третьему "уровню". Данный курс является немного усеченным онлайн-аналогом курса, читающегося в computer science center: тут.


    Также отдельно упомяну курс от Райгородского в ШАДе: здесь. Опять же, есть своя специфика, связанная с научными интересами преподавателя, уклон в вероятностные методы в графах.


    Nightmare


    Этот раздел содержит книги уровня мехмата МГУ. В них абсолютно строго излагаются основы теории вероятностей с опорой на теорию меры и интеграл Лебега. Такие вещи конечно же никогда не помешают, но
    Вот уж каких книг на русском языке полно, можно взять любую, все очень хорошие:


    1. Ширяев, "Вероятность";
    2. Боровков, "Теория вероятностей";
    3. Коралов, Синай, "Теория вероятностей и случайные процессы", книга интересна тем, что содержит также материал по марковским случайным полям — кажется, это редкий гость на русском языке.

    По онлайн-курсам это пожалуй любой курс с Лекториума, в котором содержится слово "вероятность", например: этот


    Смысла советовать книги на английском не вижу: наши и так достаточно хорошие.
    Тем не менее, если вам неудержимо хочется читать на английском, то упомяну:


    1. RICK DURRETT, "Probability, Theory and Examples";
    2. Kai Lai Chung, "A course in probability theory";

    Unclassified


    Сюда включу то, что не подпадает под классификацию.


    Одна книга, которую я люблю


    Есть одна книга, сложность которой я не берусь определить. Я даже не могу сказать, на кого она рассчитана: для новичков это overkill; продвинутые чаще берут книги третьего уровня.
    Тем не менее, я обязан упомянуть об этой книге: David Williams, "Weighing the Odds".
    Ничего более говорить не буду, пусть каждый сам для себя решит, что он думает о ней. Лично для меня это абсолютная жемчужина, но не для всех.


    Cheatsheets


    Например, есть очень-очень классные cheatsheets ("шпаргалки"), которые очень кратко освещают то, что обычно проходят семестр. Вот мои любимые:


    1. Нумер 1;
    2. Нумер 2;

    Задачники


    Задачники использовать можно и нужно. Вероятность в некотором смысле поначалу контр-интуитивна, и нужно решать много задач, чтобы к ней привыкнуть.


    1. One Thousand Exercises in Probability — я уже его упоминал ранее, но пишу еще раз. Стоит взглянуть, можно использовать независимо от учебника от тех же авторов;
    2. Кельберт, Сухов " Вероятность и статистика в примерах и задачах" — трехтомник, недавно вышедший под эгидой МЦНМО. Задачки там довольно жёсткие, я бы даже сказал, что они слxожные. В него стоит иногда поглядывать для общего развития, но я бы наверное не рекомендовал штудировать "от и до".
    3. "Стохастический анализ в задачах" под редакцией Гасникова — классное пособие от преподов МФТИ; там есть много интересных и классических задачек, но всё идет несколько вперемешку, поэтому это уже для тех, кто более-менее освоился в материале;
    4. Для любителей математики можно посоветовать сборники задач от Ширяева, например "Вероятность в теоремах и задачах";
    5. Множество хороших задач содержится в учебнике Blitzstein & Hwang "Introduction to Probability";

    Как это посчитать?


    Задачи и задачники это хорошо, но также вы должны уметь "запрограммировать" численный эксперимент, проверить руками (с помощью компьютера, конечно) центральную предельную теорему; прикинуть вероятность события через моделирование; подготовить себя к восприятию байесовских методов (MCMC и далее) и вероятностного программирования вообще.


    Если вы счастливый пользователь python/julia, то я вам искренне советую почитать лекции QuantEcon, хотя бы те, что непосредственно связаны с теорией вероятностей; вообще же существует великое множество книг, которые так или иначе показывают, как моделировать какие-либо вещи в R/Python/Julia.


    Что далее?


    Из вероятности остались совсем не затронутыми математическая статистика и байесовский подход. К моему сожалению, в этих областях я читал меньше книг, а следовательно, и советы будут иметь меньшую ценность. Непонятно, писать ли, и насколько подробно.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Писать ли подборку по мат. статистике и байесовскому подходу?

    • 100,0%Писать76
    • 0,0%Не стоит0
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 12

      0
      Спасибо за статью! Обязательно пишите продолжение по матстату!
      От себя: удваиваю рекомендованный автором www.edx.org/course/probability-the-science-of-uncertainty-and-data — очень крутой курс с понятными объяснениями (сигма-алгебр там нет), при этом довольно сложный, настолько что во время его прохождения ни на какую другую учебу сил уже не было. В мае в очередной раз запускается его продолжение (точнее оба курса объединены в одной магистерской программе) — курс по матстату www.edx.org/course/fundamentals-of-statistics, думаю его тоже пройти. Кто-нибудь проходил уже кстати?
        0
        Я его проходил, он обязательно будет в подборке по матстату, потому что это единственный курс по статистике, который я бы рекомендовал пройти всем. По моим ощущениям, он был посложнее, чем курс по теорверу. Решали просто огромное количество задач, домашки здоровые, но много повторений того, что было ранее. Есть также курс на степике/CSC (ведет Л. Грауэр), он довольно сильно приближен к мехматскому, поэтому мне совсем не нравится.

        В целом, с курсами по мат. статистике следующая беда: без теории они превращаются в набор несвязных рецептов (и таких курсов много, например на моем любимом степике курсы от института Биоинформатики больше тяготеют именно к рецептурному знанию).

        С теорией они становятся жутко сложными, потому что условное мат. ожидание, потому что сигма-алгебры, потому что непонятна связь с практикой. В этом направлении также много курсов и книг — практически любую российскую книгу по статистике открыть можно (Боровков, Ивченко/Медведев, ...).

        В итоге «середнячка» очень мало, и поэтому мне упомянутый курс очень «зашёл»: он не перегружен доказательствами теорем, при этом после него остается какое-то цельное ощущение.
          0
          Спасибо!
            0
            А раз уж такое дело, может вы еще и про всю программу www.edx.org/micromasters/mitx-statistics-and-data-science чего-нибудь расскажете? Остальные курсы в ней стОят того чтобы их пройти?
              0

              Остальные я не проходил, возможно когда-нибудь руки доберутся ) по машинному обучению впрочем курс выглядит довольно мощно, даже EM-алгоритм имеется. Может кто-то ещё знает? И всегда можно спросить на стэковерфлоу или кворе, как им эти курсы

          0
          После прочтения книг по ТВиМС остается очень много вопросов. Где посоветуете их задавать?
            0

            Вопросы конечно лучше задавать не после, а во время чтения книг ) я обычно сначала пытаюсь ответить сам, потом какое-то время ищу ответы в интернете, на stackexchange есть особый подраздел как по математике, так и по всякому анализу данных, статистике и тд. Если там ничего не находится, я пытаюсь самостоятельно свой вопрос сформулировать и запостить, чаще всего в течение дня можно получить первые ответы.
            Так что из англоязычных это quora, stackexchange.


            Из русских это однозначно форум dxdy, раздел "помогите решить/разобраться", но во-первых там довольно строгие правила оформления вопроса, во-вторых, просят сначала предъявить свои попытки решения и что не получилось, в-третьих, часто там дают не ответ, а подсказку, чтобы сами дальше думали :)


            Ну и тематические чаты в telegram, например есть хороший чат по языку R rlang_ru, где отвечают не только про R, но и про статистику в общем.


            Не могу не отметить плюс онлайн курсов — обычно там к каждому уроку есть тематический раздел форума, где можно спросить что то именно по этому уроку/степу. Если курс с датами, то ответят быстро; если со свободным стартом, то придется подождать.


            Иногда люди объединяются и читают какую-нибудь книжку одновременно и вместе и собираются на тематические встречи. Так, к примеру, сейчас есть такой запуск по Стэнфордскому курсу по NLP на базе МФТИ; бывает, читают всякие байесовские штуки в антикафе Кочерга. Такая деятельность отнимает больше времени, но недооценивать эту совместную деятельность нельзя: она даёт более глубокое понимание.

            0
            Спасибо за статью!
            Подскажите, в какую категорию вы отнесли бы курсы по матанализу (из двух частей) и линалу от CSC на степике. Стоит ли начинать с них по вашему мнению?
              0
              Скорее ко 2-му, чем к 1му. В англоязычных школах есть разделение нашего анализа на собственно Calculus (что-то более-менее прикладное, считать руками, упор на технику, взятие интегралов и производных и т.д.) и Analysis (что-то более теоретическое, приближенное к мехматскому курсу).

              Курсы на stepik от Храброва номер 1, номер 2, номер 3 как раз ближе к Analysis, так что зависит от того, какие цели вы преследуете. Я их проходил, но я не думаю, что это те курсы, которые должен пройти каждый ) Т.е. если вы имеете непосредственное отношение к математике, то такой курс нормально будет пройти, они примерно соответствуют первым двум курсам по анализу от мехмата МГУ (может, чуть попроще, но несильно). Если вы хотите только освоить язык и некоторые приложения, то это явно избыточно, но никакое обучение «даром» не проходит в любом случае. Если только начинать знакомиться с анализом, то я бы не советовал — можно не потянуть и разочароваться в математике вообще.

              Так что нужно искать что-то по запросам «calculus MOOC», таких курсов много, но я не могу сориентировать, какой из них лучше, поскольку мне на мехмате матана хватило с лихвой, и я после окончания больше в эту тему особо не залезал. Смотрел только немного вот этот, мне он показался более-менее приличным, но он уже после того, как основные понятия освоены.

              Линейную алгебру можно изучать в двух «ипостасях», как это обычно делается в зарубежных вузах.
              Первое знакомство — это обычно курс уровня Стрэнга, то есть матрицы, строки, векторы, пространства строк-столбцов, определители, некоторые матричные разложения, может быть немного собственные вектора.
              Второе знакомство — это курс наподобие Axler, т.е. это абстрактные линейные пространства (с уже наработанными конкретными примерами из курса №1), линейные преобразования, жорданова форма, квадратичные формы, приведение к главным осям и т.д.
              Есть большой спор, от чего нужно идти: от общего к частному (т.е. начиная с курса №2, а потом к курсу №1) или от частных примеров к обобщениям (от курса №1 к курсу №2). Всем «заходит» по-разному.
              На Степике по линейной алгебре есть 2 курса, насколько я помню:
              1. Linear algebra: problems and methods больше похож на курс Axler. Я его прошел, и он мне понравился :)
              2. Линейная алгебра мне понравился меньше, если выбирать между курсами в духе Стрэнга, то тут конечно лучше слушать самого маэстро )
                0
                Большое спасибо за супер подробный ответ!
                P.S. Прошу прощения за вопрос по матану, который был описан в первой части дорожной карты. Читал перед тем как задать вопрос здесь, но про курсы на степике не отложилось в голове.
                Спасибо еще раз.
              0
              Спасибо за превосходные статьи!

              У меня возник следующий вопрос, быть может автор или кто-то из комьюнити знает: есть ли где-то агрегатор подобных «дорожных карт» для изучения иных областей?
              В целом, концепт кажется просто отличным, ведь обладая подобного рода наглядными картами, человек сможет ориентироваться в том, что, как и для чего он изучает/хотел бы изучить.

              Кроме того интересно узнать, существует ли практика применения «дорожных карт» в каких-либо российских вузах? Мне кажется, это как минимум полезная фича для улучшения образования.
                0
                Насколько я понимаю, обычно это называют на английском языке mindmap или вроде того.
                Такую вещь я встречал вроде бы дважды или трижды:

                1. На сайте OCW MIT, который я не перестаю хвалить, есть подобная карта по ВСЕМ курсам от MIT: карта.
                2. На сайте Александа Дайняка упоминаются ассоциативные карты понятий, но насколько я понял, он их применяет в рамках одного курса, например по его курсу Дискретные структуры, но есть и другие.
                3. В лекции Шкляева в помощь первокурснику мехмата МГУ есть карта взаимозависимости мехматских курсов друг от друга: в районе 1ой минуты

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое