
Машинное обучение — это фундамент, на котором строится современный искусственный интеллект. Оно окружает нас повсюду. Но как оно работает? Что скрывается за алгоритмами, которые управляют нашим миром? Новая книга Сергея Николенко «Машинное обучение: основы» предлагает читателю путешествие в сердце этой науки. От теоремы Байеса до обобщённых линейных моделей, кейсы и задачи: от анализа ретроспективных научных исследований до эффекта «горячей руки» в баскетболе. Готовы ли вы разобраться в том, что стоит за нейронными сетями и искусственным интеллектом?
Сегодня о своей книге расскажет нашим читателям её автор — Сергей Николенко.
Коллеги, всем привет!
Меня зовут Сергей Николенко, и я алко занимаюсь искусственным интеллектом уже около двадцати лет. И всё это время я читаю лекции, в которых стараюсь рассказывать о машинном обучении подробно и строго, но интересно. Возможно, вы знаете мою предыдущую книгу в издательстве «Питер», «Глубокое обучение», о которой у меня накопилось немало cool stories. В ней мы с соавторами старались рассказать об основах, главных идеях, на которых стоят современные нейросети — и хотя многие конкретные описанные в ней архитектуры с тех пор устарели, не говоря уж о коде (книга вышла до появления трансформеров, а код в ней был на TensorFlow), её до сих пор читают, и я надеюсь, что она до сих пор может быть полезна.
Но сегодня не о ней. С тех самых пор, как мой курс машинного обучения более или менее оформился, я мечтал написать на его основе книгу, учебник, который бы начинался от азов и понемногу строил здание машинного обучения. Больших форм я никогда не боялся, так что начал книгу давно и с энтузиазмом, но, как это всегда бывает, оказалось, что работы во много раз больше, чем представляется поначалу. Активно писал я её несколько лет, с большими перерывами и депрессивными эпизодами, потом ещё несколько месяцев доделывал вёрстку, вносил замечания редактора и всё такое прочее.
И вот — готово. Книга «Машинное обучение: основы» уже доступна для заказа на разных сайтах и физически появляется в магазинах. Шестьсот страниц (25 из них, правда, список литературы), шесть больших глав. Я очень рад представить вам эту книгу, и надеюсь, что она вам понравится. На содержании останавливаться не буду, потому что этот текст я пишу для поста от издательства, к которому будет прилагаться введение в книгу — а там есть и подробный план, и его мотивация.
Enjoy!
С уважением,
Сергей Николенко
P.S. Ой, да, и подписывайтесь на мой telegram-канал: t.me/sinecor
Предисловие
Весна искусственного интеллекта
Я пишу эти строки в сентябре 2023 года, после нескольких месяцев, которые хочется назвать «весной искусственного интеллекта». За три-четыре месяца, с марта по июнь 2023 года, произошло столько новых событий, что хватило бы на несколько лет; давайте попробуем проследить последовательность событий и оценить, в каком мире мы сейчас оказались.
Непосредственные основы для моделей, которые прямо сейчас меняют мир, были заложены ещё в 2020 году, с выпуском очередной языковой модели компании OpenAI — GPT-3, где GPT означает Generative Pretrained Transformer («порождающий предобученный трансформер»). Языковая модель — это метод искусственного интеллекта, в котором модель обучается естественному языку, предсказывая недостающую часть текста, обычно следующий токен (слово или часть слова), а трансформер — это разработанный в 2017 году вид архитектуры искусственных нейронных сетей, оказавшийся очень удачным и стремительно набравший популярность; сейчас основанные на трансформерах архитектуры применяются практически во всех областях искусственного интеллекта.
Языковая модель GPT-3 — это логическое продолжение семейства языковых моделей GPT, которые появились в 2018 году, практически сразу вслед за архитектурой трансформера в целом; изначальный трансформер предназначался для машинного перевода и состоял из кодировщика и декодировщика, но очень быстро стало ясно, что хорошие архитектуры можно получить и разделив его на части: GPT — это декодировщик трансформера (не пугайтесь, если вы не знаете, что это такое, книга совсем не об этом). В третьей итерации модели были новые идеи, но они не меняли сути происходящего: GPT по-прежнему обучалась предсказывать, чем будет продолжаться текст, и делала это на огромном наборе текстов, написанных людьми; современные наборы данных для этой цели — это фактически весь доступный текстовый интернет.
Главным отличием стал масштаб: самый большой вариант GPT-3 содержал около 175 миллиардов обучаемых параметров, на два порядка больше, чем модель GPT-2 [331], предыдущая в линейке. Её обучение стало возможным благодаря прогрессу последних лет в разработке графических карт (GPU), в том числе специализированных GPU-подобных процессоров для тензорных вычислений, которые оказались очень полезными для обучения нейросетей. А в модели GPT-4 было уже 1,76 триллиона обучаемых параметров, то есть ещё в десять раз больше.
Выяснилось, что это почти механическое увеличение масштаба оказалось достаточным для того, чтобы GPT-3 вышла на новый уровень способностей: модель начала писать гораздо более длинные связные тексты на любые темы. По интернету пробежала волна примеров её поразительных способностей, однако в 2020 году GPT-3 казалась очередной вехой скорее академического развития искусственного интеллекта. Примером попытки найти практическое применение для GPT-3 стала модель OpenAI Codex, которая могла писать программный код по текстовому описанию, то есть тоже переписывать один текст в другой, только теперь на выходе получался текст не на естественном языке, а на языке программирования. Codex стала основой для GitHub Copilot и действительно набрала популярность, хотя были у неё и очевидные проблемы. Полагаться на то, что Codex сама напишет для вас программу, всё-таки было нельзя.
Следующим шагом стало развитие GPT-3 до выпущенных весной 2022 года моделей из семейства, которое OpenAI назвала GPT-3.5. Они были обучены на ещё большем объёме данных и имели некоторые дополнительные возможности по сравнению с «базовой» GPT-3, в частности умели не только продолжать текст, но и заполнять в нём пробелы. Кроме того, в семействе GPT-3.5 появились дополнительные модели: дообученные «понимать» программный код или специально дообученные на чатах для улучшения диалогов с человеком. Понимаю, что это звучит не слишком впечатляюще, но именно модели из семейства GPT-3.5 стали основой для главного прорыва.
Этот прорыв наступил с выпуском модели ChatGPT, которая представляет собой вариант GPT-3.5, дообученный таким образом, чтобы стать более полезным при разговоре с человеком. Модель, даже очень хорошо умеющая продолжать тексты, вовсе не обязательно будет отвечать на ваши вопросы и тем более стараться делать это полезным для пользователя образом: почему бы не продолжить вопрос другим вопросом или ответом в духе «Ах, отстаньте от меня»?
Поэтому исследователи из OpenAI придумали специальный метод обучения с человеческим участием — обучение с подкреплением на основе отзывов людей (reinforcement learning with human feedback, RLHF), — которым смогли дообучить GPT-3.5 так, чтобы она старалась вести диалог максимально полезным для пользователя образом. Сначала этот метод привёл к модели InstructGPT, в ноябре 2022 года вышел полноценный ChatGPT, а к началу февраля 2023 эта модель стала самым быстрорастущим программным продуктом в истории: более 100 миллионов зарегистрированных пользователей всего за два месяца.

И началось: весной 2023 года появилось огромное число моделей, либо со-
зданных на основе ChatGPT, либо продолжающих и развивающих её идеи. Я со-
брал основные вехи прошедшей весны на рис. П.1; отмечу лишь самое главное:
- 7 февраля вышел аналог ChatGPT от Microsoft, языковая модель, призванная помочь поиску Bing; этот релиз оказался несколько преждевременным, помощник от Microsoft был быстро «взломан» пользователями — в частности, пользователи узнали, что помощника от Microsoft на самом деле «зовут» Sydney, и сейчас его обычно называют именно так — и часто выдавал
- странные, а порой и откровенно агрессивные ответы;
- 24 февраля вышла языковая модель LLaMA от исследователей из FAIR; сама по себе она не лучше GPT-3.5 ни в объективных тестах, ни с точки зрения пользовательского опыта, но, в отличие от OpenAI, учёные из FAIR выпустили её с открытым кодом и опубликовали веса обученной модели; обучить новую гигантскую языковую модель — это очень вычислительно
- затратный, дорогостоящий процесс, требующий миллионов долларов, даже если вы твёрдо знаете, что хотите сделать (что вряд ли; скорее всего, вам потребуется немало экспериментов), а вот использовать уже обученную модель можно и на домашнем десктопе; выход LLaMA уже привёл к огромному числу новых проектов от независимых исследователей;
- 14 марта стало, пожалуй, главным днём этой весны искусственного интеллекта: в один и тот же день Google объявил, что интегрирует языковые модели в свою экосистему (например, Google Docs), отделившийся от OpenAI стартап Antropic выпустил свою языковую модель Claude, но оба этих события затмила OpenAI, объявившая о выпуске новой итерации своей базовой модели; GPT-4 не просто ещё лучше научилась писать тексты, но и стала мультимодальной, то есть может теперь обрабатывать тексты и изображения одновременно;
- буквально на следующий день, 15 марта, вышла очередная серьёзная версия модели MidJourney, предназначенной для создания изображений по текстовому запросу; такие text-to-image модели тоже используют трансформеры, но это отдельная тема, так что про картинки мы пока (да и вообще в этой книге) говорить не будем;
- в апреле начали появляться проекты, использующие ChatGPT как основу для новых применений, через созданный OpenAI механизм плагинов; в частности, одним из самых интересных плагинов стал AutoGPT, эксперимент, в котором из языковой модели вполне успешно попытались сделать агента, самостоятельно достигающего своих целей;
- в мае вышел Google Bard, который оказался успешнее Sydney, а ещё раньше Google анонсировал поддержку больших языковых моделей в своей экосистеме, в том числе в Google Docs и Gmail;
- к концу мая этот первоначальный «большой взрыв языковых моделей» немного утих, но новые исследования продолжали (и всё ещё продолжают) появляться с огромной скоростью; книга никак не может угнаться за темпом этих новостей, так что остановлюсь здесь.
К чему привела эта «весна»? Прежде всего стало очевидным, что мы, человечество, если ещё не стоим на самом пороге, то уже вплотную подошли к созданию сильного искусственного интеллекта, интеллекта человеческого уровня.
Это выводит на первый план вопросы, связанные с потенциальной опасностью сильного искусственного интеллекта для людей: AI человеческого уровня почти наверняка тут же его и превзойдёт хотя бы за счёт способности обрабатывать больше информации и легко копировать себя, да и нет никакого закона природы, который бы устанавливал лимит интеллекта на человеческом уровне.
Иначе говоря, мы стоим на пороге создания сущностей «более умных», чем все остальные на Земле, — я ставлю «более умных» в кавычки, потому что опять же не умею это формализовать, но понимать «ум» здесь нужно не в смысле знания фактов или умения перемножать числа, а в смысле способности успешно достигать поставленных целей.
С одной стороны, с некоторой вероятностью сильный искусственный интеллект может решить для нас массу проблем и трансформировать человеческое общество в самую буквальную, неироничную утопию. С другой стороны, интеллектуальное превосходство вызывает и опасения: в последний раз самые умные существа на Земле появились, когда мы выделились из приматов, и судьба всех остальных приматов в наше время не кажется такой уж завидной…
Но безопасность сильного искусственного интеллекта — это отдельный большой разговор; я надеюсь, что когда-нибудь мы обсудим и это, но уж точно не в этой книге. Давайте попробуем понять, что говорит нам современное состояние искусственного интеллекта с инструментальной точки зрения. В дальнейшем будем предполагать, что занятия искусственным интеллектом всё ещё не вовсе бессмысленны для людей, то есть сам AI ещё не начал делать это лучше любого человека; это всё ещё верно и в тот момент, когда я пишу эти строки, и в момент финальной редактуры текста осенью 2024 года, но весна 2023 года заставляет такие предположения подчёркивать явно. Но если людям всё-таки ещё может пригодиться эта книга, то в предисловии нам с вами важно понять две вещи: во что наука об AI превращается в наше время и как её лучше изучать?
Горький урок или повод для оптимизма?
В 2019 году Ричард Саттон, который с 2017 года разрабатывал лучшие в мире методы обучения с подкреплением в компании DeepMind, написал ставшее очень популярным небольшое эссе под названием «Горький урок» (The Bitter Lesson). В нём Саттон отмечает, что вся история искусственного интеллекта учит нас одному: сколько бы люди ни пытались придумать способы использовать свои знания о предметной области для того, чтобы улучшить модели искусственного интеллекта, все их попытки становятся совершенно бесполезными, как только в их распоряжении оказываются увеличившиеся на один-два порядка вычислительные ресурсы.
Так, например, люди несколько десятилетий пытались написать программу для игры в шахматы, используя знания людей о структуре игры, а потом оказалось, что Гарри Каспарова можно победить, по сути, обычным поиском с отсечениями, нужно лишь выделить на это достаточно много вычислительных ресурсов (мы немного поговорим об этом в разделе 1.2). Для игры в го поиск с отсечениями оказывается слишком сложным, но и там победа пришла не через использование человеческих знаний об игре, а через обучение нейросети с нуля: AlphaGo ещё обучалась на партиях, сыгранных людьми, но уже следующая модель DeepMind для этой задачи, AlphaZero, использовала только правила игры, обучаясь через партии, сыгранные с самой собой. Десятилетия, потраченные исследователями в области распознавания речи на разработку кратких и информативных признаков для человеческой речи, например MFCC1, оказались не нужны, как только признаки стало возможным обучать автоматически: ещё до разработки новых идей о самом распознавании акустическое моделирование глубокими нейросетями уже привело к существенным улучшениям, а сейчас, конечно, и само распознавание делается нейросетевыми архитектурами, причём это не специально разработанные для речи методы, а всё те же немного адаптированные трансформеры. Аналогичные примеры есть в любой области: например, в распознавании изображений свёрточные сети вы теснили разработанные людьми SIFT-признаки, как только стало возможным обучить достаточно большие свёрточные архитектуры.
Получается, что заниматься искусственным интеллектом бессмысленно: если просто подождать несколько лет, любая задача решится сама собой? Конечно, Саттон не утверждает, что новые идеи совсем не нужны и что весь прогресс всегда сводится к «тупому» масштабированию числа параметров. Например, ChatGPT, о котором мы говорили в предыдущем разделе, был основан на модели GPT-3, которая вышла ещё в 2020 году. В ChatGPT не стало существенно больше параметров, они просто начали использоваться несколько иным образом, и этого оказалось достаточно для того, чтобы академический успех превратился в весьма практическую революцию. Однако основной аргумент Саттона действительно выглядит разумно: искусственные нейронные сети «не работали», пока не было достаточно больших наборов данных и вычислительных мощностей для обучения на них, а потом вдруг «заработали» так, что многие кажущиеся более сложными вероятностные модели стали попросту не нужны.
Однако мне представляется, что такой взгляд чрезмерно пессимистичен: конечно, развитие науки не представляет собой прямую линию прогресса, на которую нанизаны аккуратно вытекающие друг из друга новые результаты. Некоторые направления оказываются принципиально тупиковыми: например, история медицины усеяна обломками теорий о гуморах, об elan vital и многом другом, что сейчас уже невозможно принимать всерьёз (впрочем, см. подраздел 2.6.3). Некоторые оказываются тупиковыми не в принципе, а на практике: так, весь искусственный интеллект превратился в машинное обучение не потому, что написать мыслящую программу без обучения принципиально невозможно — вы можете легко сесть и запрограммировать любую нейросеть, задав ей вручную любые значения весов — а потому, что у нас нет возможности придумать эти параметры «из головы» или из каких-то принципиальных соображений, приходится обучать их из данных. Но без многих результатов, полученных на этих тупиковых путях развития науки, идущий по магистральному пути паровоз «научного
мейнстрима» тоже давно забуксовал бы.
Приведу конкретный пример из нашей области: в обработке естественных языков есть важный раздел, которому я и сам в своё время посвятил немало исследовательских проектов — тематическое моделирование (topic modeling). Тематические модели могут обрабатывать большие наборы (корпусы) документов, выделяя из них темы в виде распределений на словах, что даёт возможность для интерпретации: вы можете записать самые вероятные слова в той или иной теме, прочесть их и понять, о чём «говорит» эта тема. В результате тематическая модель позволяет в краткой и понятной форме записать, о чём «говорит» и весь корпус, и каждый документ в отдельности; документы же в таких моделях представляются в виде распределения на темах.
Как ни печально мне будет видеть закат близких моему сердцу тематических моделей, я совершенно не уверен, что они останутся актуальными в ближайшие годы. Зачем прибегать к заведомо сильно упрощающим предположениям (классические тематические модели рассматривают документы как «мешки слов», то есть предполагают, что слова в теме появляются независимо друг от друга), зачем строить выводы, исходя из частотности слов в документах, если можно просто попросить языковую модель «прочитать» весь корпус документов и кратко его подытожить? Прямо сейчас такой подход, может быть, ещё не слишком эффективно бы работал, но здесь не верить в прогресс было бы странно.
Однако если мы с вами дойдём до соответствующих разделов машинного обучения (не в этой книге, но, будем надеяться, в одной из последующих), мы обязательно поговорим о тематических моделях! Дело в том, что основная тематическая модель латентного размещения Дирихле (latent Dirichlet allocation, LDA) представляет собой прекрасный пример сложной, но не слишком сложной вероятностной модели, для которой работают два основных приближённых метода вероятностного вывода: вариационные приближения к апостериорному распределению и сэмплирование по Гиббсу для его же аппроксимации. Чтобы понять, как работают современные модели машинного обучения и что они делают «под капотом», требуется понимать и концепцию вариационных нижних оценок, и то, как вести вероятностный вывод через сэмплирование, а для этого тематическое моделирование остаётся идеально подходящим примером.
Более того, даже если сама модель LDA будет уже не нужна на практике, вариационные приближения, которые она призвана иллюстрировать, полезны пуще прежнего: современные порождающие модели для изображений основаны на вариационных автокодировщиках (variational autoencoders, VAE), и, например, DALL-E, одна из основных вех на пути развития text-to-image моделей, оптимизирует, по сути, гигантскую вариационную нижнюю оценку.
Вариационные автокодировщики являют собой хороший пример и другого эффекта: когда модель VAE появилась в 2013 году, она, конечно, не прошла незамеченной, но до конца 2010-х годов мало использовалась в реальной практике. Казалось, что это интересная и красивая идея, которая, однако, на практике не приводит к достаточно хорошим результатам, — таких идей всегда было много в машинном обучении. А лучшие модели для порождения изображений во второй половине десятых годов были основаны на состязательных порождающих сетях (generative adversarial networks, GAN).
Но когда вариационные автокодировщики научились работать с дискретным латентным пространством — то есть когда к ним добавили ещё одну математическую идею, — внезапно оказалось, что они более чем способны закодировать всё, что нужно. Тогда на первый план вышли их преимущества перед состязательными сетями, особенно более простое обучение, для которого не требуется настраивать состязательное обучение нескольких сетей, пытающихся обманывать друг друга.
Так что я не вполне согласен с Ричардом Саттоном: мне представляется, что современные модели, которые действительно могут показаться простым масштабированием давно известных подходов, были бы невозможны без тех идей, которые разрабатывались в машинном обучении в последние десятилетия. И чрезвычайно быстрый темп развития современного машинного обучения только укрепляет меня в твёрдом убеждении, которое было со мной на протяжении всей моей карьеры в AI: конкретные модели приходят и уходят, самое главное — понимать
математические основы происходящего. Если вы понимаете, как устроен байесовский вывод и что делают модели машинного обучения на уровне пересчёта тех или иных распределений вероятностей, вам будет легко адаптироваться к любым изменениям, легко прочесть любую статью, даже выдвигающую совершенно новые идеи… если, конечно, сильный искусственный интеллект не заменит нас всех в ближайшем будущем, но от этого я вас вряд ли смогу застраховать.
И пусть в этой книге мы ещё не доберёмся ни до трансформеров, ни до больших языковых моделей, основы, на которых стоит современное машинное обучение, не имеют к ним прямого отношения. Эти основы, по сути, сводятся к творческому применению теоремы Байеса, то есть к математической формализации того, как новые данные влияют на наши представления о свойствах модели, её параметрах. Об этом мы в основном и будем говорить.
План книги: о чём пойдёт речь далее
Основная задача книги — дать введение в машинное обучение с вероятностной точки зрения. Мы начнём строить здание современного искусственного интеллекта прямо с фундамента, с теоремы Байеса и формулировок основных задач байесовского вывода, а затем постараемся рассмотреть самые простые модели машинного обучения — линейную и логистическую регрессию — с максимального числа разных углов, углубляясь во все возможные детали. Конкретный план в результате получается такой.
Глава 1 — вводная. Она начинается с краткого экскурса в историю искусственного интеллекта и как идеи, и как раздела компьютерных наук. А затем даёт несколько классификаций того, что происходит в искусственном интеллекте, с разных точек зрения: сначала классификацию постановок задач (обучение с учителем и без, регрессия и классификация), потом разных видов данных (табличные данные, последовательности токенов, изображения, видео и так далее), а потом применений машинного обучения. Поскольку дать обзор всех применений искусственного интеллекта в наше время уже вряд ли возможно, в последнем случае я сконцентрировался на том, как машинное обучение помогает другим наукам получать новые результаты.
В главе 2 мы начинаем закладывать тот самый фундамент: сначала вспоминаем основы теории вероятностей (да, увы, без этого никак не обойтись), потом рассматриваем теорему Байеса как основу вероятностного вывода в искусственном интеллекте, а затем подробнейшим образом анализируем самую простую модель машинного обучения — обучение параметра одной нечестной монетки. Это позволит содержательно поговорить обо всех задачах байесовского вывода на простом примере, на котором все формулы легко вывести аналитически, а интуиция
непосредственно ясна. Заканчивается глава несколькими развёрнутыми примерами того, где вероятностный вывод может пойти не так; в частности, мы обсудим кризис воспроизводимости, в последнее десятилетие затронувший многие разделы науки, и то, какие уроки мы можем из него извлечь.
Глава 3 продолжает разговор о тех разделах теории вероятностей, которые нужны в машинном обучении. После того как мы обсудим самые важные дискретные и непрерывные распределения, встречающиеся и в машинном обучении, мы в этой главе рассмотрим пример байесовского анализа равномерного распределения, что позволит глубже понять априорные распределения. А затем перейдём к теоретико-вероятностным и теоретико-информационным понятиям, играющим важную роль в искусственном интеллекте: энтропии, KL-дивергенции
и информации Фишера. Завершается глава 3 рассмотрением основных методов оптимизации, которые в машинном обучении тоже постоянно нужны.
Глава 4 полностью посвящена относительно простой, но уже совсем полноценной модели машинного обучения: линейной регрессии. Мы начнём с метода наименьших квадратов, обсудим оверфиттинг и регуляризацию «на пальцах», а затем перейдём к вероятностному анализу линейной регрессии, решив для неё все основные задачи байесовского вывода. Глава заканчивается подробно рассмотренным примером, который, надеюсь, убедит вас в пользе вероятностного рассмотрения и, в частности, в пользе получающихся из байесовского вывода
предсказательных распределений.
В главе 5 мы от задач регрессии переходим к задачам классификации. Здесь сначала стоит поговорить о геометрии задач классификации, о том, как выглядят разделяющие поверхности и как можно строить классификаторы, исходя из сугубо геометрических соображений. Затем обсудим оптимальный байесовский классификатор, которому требуются порождающие модели для классов, и перейдём к основному линейному методу классификации — логистической регрессии. Для неё мы тоже решим все основные задачи байесовского вывода, причём предсказательное распределение приведёт нас к аппарату лапласовских аппроксимаций. Затем я приведу развёрнутый пример датасета ирисов Фишера, мы обсудим несколько важных общих замечаний — перевзвешивание цен ошибок, калибровку классификаторов, априорные вероятности классов, — а закончим главу рассмотрением наивного байесовского классификатора.
Наконец, глава 6 вводит несколько важных сюжетов, которые пронизывают всё машинное обучение. Проклятие размерности объясняет, почему вероятностные задачи, возникающие в машинном обучении, действительно сложны, а методы, прекрасно работающие в низких размерностях (например, метод ближайших соседей), могут не обобщаться на высокие. Статистическая теория принятия решений приведёт нас к разложению на смещение, дисперсию и шум, которое объясняет, что нужно сбалансировать при выборе хорошей модели машинного обучения. Ядерные методы, которые мы в этой книге затронем лишь очень кратко, дадут новый взгляд на линейную регрессию и другие модели. Полноценный байесовский вывод для обоих параметров одномерного гауссиана покажет, как при байесовском выводе могут появляться совсем новые, неожиданные распределения. Оценки функции свидетельства дадут эмпирический метод Байеса для подбора гиперпараметров, а также информационные критерии
для выбора моделей. Наконец, последние разделы будут посвящены обобщениям линейных моделей: сначала мы вложим почти все представляющие интерес для машинного обучения распределения вероятностей в экспоненциальное семейство, а затем рассмотрим обобщённые линейные модели, в которые вкладываются и линейная, и логистическая регрессия.
Конечно, эта книга могла бы выглядеть как обычный учебник по азам теории вероятностей и математической статистики, «развёрнутым» в сторону машинного обучения. Но, признаться честно, мне кажется, что такую книгу и читать, и писать было бы скучновато. Поэтому, хотя подробное обсуждение многих стандартных тем всё-таки неизбежно, я постарался разбавлять это классическое изложение разными интересными сюжетами: в последующих главах я буду пытаться по ходу изложения добавлять в стандартную и для многих читателей наверняка довольно скучную информацию что-нибудь интересненькое. Например, в разделе 3.1, в котором вводятся основные дискретные распределения, мы также обсудим закон Ципфа и его критику и значение, а в разделе 6.2 о статистической теории принятия решений поговорим о парадоксальной на первый взгляд оценке Джеймса — Штейна. Будут и целые разделы, посвящённые таким «дополнительным» темам, например раздел 2.5 об анализе эффекта «горячей руки» или раздел 3.3 о том, как обучить равномерное распределение. Сюжеты эти
будут уводить нас немного в сторону от генеральной линии изложения, и они обычно будут несколько сложнее основного текста. Поэтому, во-первых, в тексте книги всегда будет отмечено, когда начинается такой раздел (звёздочками и курсивом в названиях и в оглавлении), а во-вторых, при первом или ознакомительном чтении книги их можно смело пропускать, для понимания дальнейшего они требоваться не будут.
История книги и благодарности
Эта книга выросла из курса лекций по машинному обучению, который я читаю уже много лет.
Первая версия курса появилась ещё в 2007 году, в рамках Computer Science Club при ПОМИ РАН. Здесь большое спасибо создателю и многолетнему руководителю клуба Александру Куликову, но главное спасибо — первому спонсору клуба Антону Лиходедову. Именно он в середине нулевых как-то раз сказал нам, тогда сугубо теоретическим информатикам из лаборатории математической логики ПОМИ: «Machine learning is hot; нам нужен курс по машинному обучению». Я тогда совершенно ничего не знал о машинном обучении, занимался только немного вероятностными моделями, а в целом изучал в основном высшую алгебру, но курс составить всё-таки вызвался — и с тех пор машинным обучениеми занимаюсь.
Конечно, мой курс в 2007 году был очень наивным, и те курсы, которые я читаю сейчас, имеют с ним очень мало общего. Поэтому спасибо и всем тем многочисленным организациям — и образовательным, и исследовательским, — в которых я преподавал с тех пор и до настоящего времени: Высшей школе экономики, Университету ИТМО, Академии больших данных Mail.Ru, Центру речевых технологий и многим другим. Главное спасибо здесь факультету математики и компьютерных наук Санкт-Петербургского государственного университета: как только ФМКН «отпочковался» от матмеха, руководители программы пригласили меня преподавать машинное обучение лучшим математикам-бакалаврам России и одним из лучших в мире. Не знаю, кого именно мне здесь лучше поблагодарить лично, так что назову основных руководителей и вдохновителей создания ФМКН: Станислава Смирнова, Сергея Владимировича Иванова, Николая Александровича Вавилова и Эдуарда Алексеевича Гирша.
Николай Александрович был моим первым научным руководителем в университете (СПбГУ, 2000–2005), а Эдуард Алексеевич руководил моей кандидатской диссертацией (ПОМИ РАН, 2009), так что им благодарность особая и отдельная: они научили меня тому, как быть исследователем, и без Николая Александровича и Эдуарда Алексеевича не было бы у меня никакой научной карьеры. Отдельное спасибо также Александру Львовичу Тулупьеву, который с юных лет научил меня не бояться больших форм.
И наконец, самые свежие и самые конкретные благодарности хочется высказать в адрес моих коллег, которые читали ранние версии этой книги, высказывали замечания и помогли сделать её лучше. Это (в алфавитном порядке) Антон Алексеев, Ирина Пионтковская, Гарри Прошян, Маргарита Спиричева, Александр Тарасов, Алексей Шабанов и Михаил Широких. Самое большое здесь спасибо Максиму Николаеву, который выдвинул массу замечаний и предложений, приведших к целым новым параграфам в книге. Ну а котиков я просто люблю; все рисунки с котиками, которые иллюстрируют разделы в книге, сделаны при помощи современных версий модели Stable Diffusion, в частности Flux, и модели DALL-E 3, доступной от компании OpenAI. И спасибо Майлзу, который был если не моделью, то вдохновением для чёрно-белых персонажей этой книги.
Ознакомьтесь с книгой «Машинное обучение: основы» на нашем сайте.
» Оглавление
» Отрывок
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Для Хаброжителей скидка 25% по купону — Машинное обучение
Автор: ph_piter