15 лучших книг по глубинному обучению
Интересуетесь нейросетями и машинным обучением? Собрали подборку из 15 книг по глубинному обучению, которые помогут освоить эти технологии.
Ловите свежую подборку книг Deep Learning, которая поможет свернуть горы!
Гудфеллоу Я., Бенджио И., Курвилль А. − Глубокое обучение, 2017 г.
Эта книга считается «Библией», одной из лучших книг по глубинному обучению. Несмотря на то, что она написана техническим языком, её сможет осилить и технологический новичок.
Внутри рассказывается о математических и концептуальных основах, линейной алгебре, теории вероятностей и теории информации, численных вычислениях и машинном обучении. Она описывает методы глубокого обучения, используемые практиками в отрасли. Сюда входят сети с прямой связью, регуляризация, алгоритмы оптимизации, сверточные сети, моделирование последовательностей и практическая методология. Кроме того, вы узнаете об обработке естественного языка, распознавании речи, компьютерном зрении, системе онлайн-рекомендаций, биоинформатике и видеоиграх.
Франсуа Шолле − Глубокое обучение на Python, 2018 г.
Это учебник по моделям глубокого обучения с использованием языка Python и мощной библиотеки Keras. Написанная создателем Keras и исследователем Google AI Франсуа Шолле, эта книга укрепит понимание технологии через объяснения и практические примеры. Вы исследуете сложные концепции и попрактикуетесь с приложениями в области компьютерного зрения, обработки естественного языка и генеративных моделей. К тому времени, как вы закончите, у вас будут знания и практические навыки для применения глубокого обучения в ваших собственных проектах.
Эта книга предполагает, что вы почти ничего не знаете о машинном обучении. Её цель − дать вам концепции, знания и инструменты для реализации программ, способных учиться на данных. Здесь рассматривается большое количество методов. Например, линейная регрессия или олимпиадные способы решения задач.
Вместо того, чтобы реализовывать собственные игрушечные версии каждого алгоритма, авторы используют существующие готовые к работе платформы Python вроде Scikit-Learn и TensorFlow.
Ричард Саттон, Эндрю Барто − Обучение с подкреплением, 2017 г.
Ричард Саттон и Эндрю Барто дают ясное и простое описание ключевых идей и алгоритмов обучения с подкреплением. Оно основано на том, что агент пытается максимизировать получаемый выигрыш, действуя в сложной среде с высоким уровнем неопределенности. Предназначена для специалистов в области искусственного интеллекта, нейросетевого моделирования и управления, а также студентов и аспирантов.
Ясер Абу-Мостафа, Малик Магдон-Исмаил, Сюань-Тянь Линь − Learning From Data, 2012 г.
Следующий материал в подборке книг по глубинному обучению распространяется вместе со специально подготовленными онлайн-материалами. Здесь вы найдете введение в машинное обучение, что позволяет вычислительным системам улучшать свою производительность с помощью накопленного опыта. Это короткий курс, поэтому ждите качественно структурированной информации Здесь основные темы, которые должен знать каждый. Важно, что читателям также доступны электронные, регулярно обновляемые главы книги.
Адриан Роузброк − Deep Learning for Computer Vision with Python, 2017 г.
Эта книга не только для начинающих. Специалисты разного уровня с помощью этой книги смогут создавать обычное программное обеспечение, обрабатывать естественные языки, рисовать графики, производить сложные математические вычисления, составлять фото-роботы, а также создавать программы компьютерного зрения с помощью глубокого обучения.
Это руководство познакомит вас с основами компьютерного зрения, библиотеками и лучшими практиками.
Эндрю Траск − Grokking Deep Learning
Книга научит вас строить нейронные сети глубокого обучения с нуля. Эндрю Траск расскажет об устройстве технологии изнутри. Особенно полезна тем, кто уже знаком с математикой и программированием на среднем уровне. В процессе изучения вы узнаете о том, как учатся нейронные сети, построите сети, которые смогут распознавать и анализировать изображения, играть в видеоигры, переводить текст между языками и даже писать, как Шекспир.
Андрей Бурков − The Hundred-Page Machine Learning Book, 2019 г.
Эта книга является введением в машинное обучение от специалиста мирового уровня и суперзвезды LinkedIn Андрея Буркова. Она позволит начать работу с ML в течение нескольких дней. Достаточно первых пяти глав, а остальные понравятся практикующим инженерам, желающим использовать ML в своей повседневной работе, не тратя огромное количество времени на прохождение длинных курсов.
Максим Лапань − Deep Reinforcement Learning Hands-On, 2018 г.
Это ещё одна из популярных книг по глубинному обучению. Использование алгоритмов Google в играх, победы роботов над человеком заставили технических специалистов по всему миру начать следить за технологиями машинного обучения ещё пристальнее.
Книга является исчерпывающим руководство по самым последним инструментам deep learning. Вы будете оценивать методы, включая перекрестную энтропию, учиться применять их в реальных условиях.
А ещё вы познаете основы обучения с подкреплением, сделаете робота для торговли акциями и научитесь применять естественный язык для развития чат-ботов.
Сергей Николенко, А. Кадурин, Екатерина Архангельская − Глубокое обучение. Погружение в мир нейронных сетей, 2018 г.
Одна из немногих книг по глубинному обучению на русском. Внутри много математики, теории, основ и рассуждений, охватывающих большую часть того, что касается машинного обучения. По сути, это всеобъемлющее руководство для новичков, которые желают разобраться в вопросах работы с нейронными сетями.
Джуда Перл − The Book of Why, 2018 г.
Книга от всемирно известного ученого-компьютерщика Джуды Перл. Совместно с коллегами, он развеял стереотипы о причинно-следственной связи и объяснил, как мышление позволяет исследовать существующий и возможные миры, разобрал сущность человеческого и искусственного интеллекта. Как говорят авторы, книга нужна для того, чтобы показать ширину мышления.
Сандро Сканси − Introduction to Deep Learning, 2018 г.
Краткое, лёгкое и доступное введение в машинное обучение. Преимущество этой книги перед другими в простых примерах для новичков. В ней вы найдёте популярные алгоритмы и архитектурные решения, интуитивно понятные любому начинающему разработчику. Книга охватывает важные темы: от обучения нейронных сетей, обработки языка, нейронных сетей с обратной связью, до математических предпосылок и истории искусственного интеллекта. Все примеры на языке программирования Python.
Эндрю Ын − Machine Learning Yearning, 2018 г.
Эта книга посвящена не алгоритмам машинного обучения, а тому, как заставить работать эти алгоритмы.
Чему она научит? Например, расстановке приоритетов, диагностике ошибок в системе машинного обучения, обучению систем в тестовом режиме. А ещё настройке проектов и сравнению их результатов с подобными, которые выполнены вручную человеком. Читатели узнают, когда и как применять сквозное, трансферное и многозадачное обучение.
Кристоф Молнар − Interpretable Machine Learning, 2019 г.
Книга о том, как сделать модели машинного обучения и их решения понятными.
Вы узнаете о простых, интерпретируемых моделях. Например, о деревьях решений, правилах принятия решений и линейной регрессии. Все методы интерпретации подробно объясняются: сильные и слабые стороны, техническое устройство, варианты интерпретации результатов.
Кому подходит эта книга? В первую очередь, она ориентирована на практиков машинного обучения − учёных статистиков. Но будет полезна всем, кто заинтересован в том, чтобы сделать модели машинного обучения понятными.
Майкл Нильсен − Neural Networks and Deep Learning, 2015 г.
Нейронные сети − одна из самых крутых парадигм программирования. В традиционном подходе к программированию мы разбиваем большие задачи на множество мелких и понятных. Это помогает компьютеру быстрее их выполнять. Нейронные сети учатся сами решать поступающие проблемы. По этой причине, сегодня всё больше крупных технологических компаний начинают применять технологии машинного обучения
Цель книги − помочь вам освоить основные понятия нейронных сетей, включая современные методы глубокого обучения. В процессе изучения книги, вы будете писать код, использующий нейронные сети и глубокое обучение для решения сложных задач. Таким образом, авторы рассчитывают сформировать у читателей фундаментальные навыки работы с технологией.
Понравилась подборка 15 лучших книг по глубинному обучению? Возможно, вас заинтересует следующее:
Источник: Подборка книг по глубинному обучению, которые стоит прочитать в 2019 году на FloydHub
Топ 5 Python книг для изучения Data Science и машинного обучения в 2020
Ранее мы уже выпускали статью о лучших книгах по Python, но они были о программировании в общем. Так что, теперь представляем вам 5 отличных книг, которые помогут освоить эту сферу.
Python и анализ данных
Это первая специализированная книга Python по анализу данных и науке о данных. Эта книга по Python будет охватывать все основы, которые должны знать Data Scientist программисты, такие как агрегация данных и временные ряды.
В то же время, она также содержит базовые упражнения по языку Python, которые научат вас, как применять Pandas в решении реальных проблем. Это одна из вещей, на которую всегда стоит обращать внимание в книгах и онлайн-курсах, так как мы узнаем больше о решении реальных проблем и использовании наших навыков.
Вероятно, это лучшая книга для манипулирования, обработки, управления даннымы в Python и применения Pandas в настоящих проектах.
Автоматизация рутинных задач с помощью Python
Это была наша первая книга, которую мы прочитали нашей редакцией и успели порекомендовать ее бесчисленному количеству разработчиков. До сих пор еще никто не сказал, что она стала бесполезной.
Со всем опытом изучения Python для написания скриптов и Data Science — можно сказать, что это лучшая книга для изучения Python и каждый разработчик в сфере Data Science должен изучать Python именно с помощью этой книги.
Она покрывает не только основы Python, но и дает советы в автоматизации, которые помогут в вашей ежедневной рутине. Эта книга специально была написана для Data Science специалистов и бизнес-аналитиков, которые занимаются анализом данных и имеют дело с огромным количеством данных.
Ссылка на книгу представлена тут.
Машинное обучение — книга рецептов Python
Это еще одна книга по Python, которая фокусируется на сфере Data Science, машинном обучении и deep learning. Она начинается с пары простых тем, таких как линейная регрессия и KNN, а затем идет вглубь более тяжелых идей deep learning таких как нейронные сети.
Конечно, как и многие другие книги O’Reilly, присутствует куча отличных практических примеров, которые отлично пояснены и помогут вам укрепить ваши знания.
А вот и ссылка — тык.
Поваренная книга языка Python: Рецепты освоения Python 3
Очередная книга об основах программирования на Python, которую могут использовать специалисты Data Science для изучения этого языка. Книга покажет такие темы как работа с файлами, ввод-вывод данных, структуры данных, алгоритмы и всё в таком духе. Все эти темы являются отличной базой для начала любой технической карьеры, включая Data Science и машинное обучение.
Эта книга — целый комплекс знаний, и не только может обучить вас тому, как работать с Python, но и дать представление в целом о принципах программирования, таким как объекты, классы, структуры данных и алгоритмы, которые являются основой любой программы.
Ссылка тут!
Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow. Концепции, инструменты и техники для создания интеллектуальных систем
Если вы хотите узнать о TensorFlow и изучить его, это явно лучшая книга, доступная на рынке. Несмотря на то, что она немного смутно рассказывает о машинном обучении, вторая половина книги полностью посвящена нейронным сетям. Она также охватывает такие темы, как сверточные нейронные сети, автоэнкодеры, дроп-ауты и другие важные вопросы deep learning с Tensorflow .
Другая библиотека, которую мы рекомендуем, называется Pandas. Это чрезвычайно мощный инструмент, и если вы имеете дело с данными, вам это пригодится. Мы настоятельно рекомендуем каждому программисту Data Science и машинного обучения изучать Pandas для обработки данных перед применением к своей модели.
Ссылка на книгу вот тут.
Книга «Машинное обучение без лишних слов»
Привет, Хаброжители! Все, что вам действительно нужно знать о машинном обучении, может уместиться на паре сотен страниц.Начнем с простой истины: машины не учатся. Типичное машинное обучение заключается в поиске математической формулы, которая при применении к набору входных данных (называемых обучающими данными) даст желаемые результаты.
Андрей Бурков постарался дать все необходимое, чтобы каждый мог стать отличным современным аналитиком или специалистом по машинному обучению. То, что удалось вместить в пару сотен страниц, в других книгах растянуто на тысячи. Типичные книги по машинному обучению консервативны и академичны, здесь же упор сделан на алгоритмах и методах, которые пригодятся в повседневной работе.
Отрывок.9.2.3. Определение числа кластеров
Самый важный вопрос — сколько кластеров в наборе данных? Когда векторы признаков одно-, дву- или трехмерные, можно нарисовать распределение данных на графике и увидеть «облака» точек в пространстве признаков. Каждое облако — это потенциальный кластер. Однако для D-мерных данных, с D > 3, нарисовать такой график проблематично.
Один из способов определения разумного количества кластеров основан на идее прогнозирующей силы. Суть состоит в том, чтобы разделить данные на обучающий и тестовый наборы, как это делается в обучении с учителем. Выделив обучающий и тестовый наборы, Str с размером Ntr и Ste с размером Nte соответственно, вы фиксируете количество кластеров k, запускаете алгоритм кластеризации C на наборах Str и Ste и получаете результаты кластеризации C(Str, k) и C(Ste, k).
Пусть A — результат кластеризации C(Str, k), полученный для обучающего набора. Кластеры в A можно рассматривать как области. Если образец попадает в одну из этих областей, значит, он принадлежит некоторому конкретному кластеру. Например, если применить алгоритм k средних к некоторому набору данных, в результате получится разбиение пространства признаков на k многоугольных областей, как показано на рис. 9.2.
Определим матрицу Nte × Nte совместной принадлежности D[A, Ste], элементы которой D[A, Ste](i, i`)= 1 тогда и только тогда, когда данные xi и xi` из тестового набора принадлежат тому же кластеру, согласно разбиению A. В противном случае D[A, Ste](i, i`)= 0.
А теперь прервемся и посмотрим, что у нас получилось. Мы создали разбиение A, использовав обучающий набор данных, на k кластеров. Затем построили матрицу совместной принадлежности, которая указывает, принадлежат ли два образца из тестового набора одному кластеру в A.
Очевидно, что если величина k является разумной, тогда два образца, принадлежащие одному кластеру в решении C(Ste, k), скорее всего, будут принадлежать одному кластеру в решении и C(Str, k). С другой стороны, если значение k не является разумным (слишком высокое или слишком низкое), тогда разбиения на основе обучающих и тестовых данных, вероятно, будут менее согласованными.
На рис. 9.3 показаны использованные данные, а рис. 9.4 иллюстрирует идею. Графики на рис. 9.4a и 9.4б показывают результаты C(Str, 4) и C(Ste, 4) с соответствующими областями кластеров. На рис. 9.4в показаны тестовые данные, нанесенные на области кластеров, полученных в ходе кластеризации обучающих данных. На рис. 9.4в можно видеть, что оранжевые тестовые данные больше не принадлежат одному кластеру в соответствии с областями, полученными на обучающих данных. В результате в матрице D[A, Ste] появляется множество нулей, что в свою очередь показывает, что k= 4, вероятно, не лучшее число кластеров.
Более формально прогнозирующая сила числа кластеров k определяется как
где j-й кластер из разбиения C(Ste, k) и | Aj | — число данных в кластере Aj.
С учетом разбиения C(Str, k) для каждого тестового кластера вычисляется доля пар в нем, которые также попали в один и тот же кластер, определяемый центроидом для обучающего набора. Прогнозирующая сила определяется как минимум этой величины для k тестовых кластеров.
Как показывают эксперименты, разумное количество кластеров является наибольшим k при ps(k) выше 0.8. На рис 9.5 показаны примеры определения прогнозирующей силы разных значений k для данных, делящихся на два, три и четыре кластера.
Для недетерминированных алгоритмов кластеризации, таких как k средних, которые могут генерировать разные варианты разбиения, в зависимости от начальных положений центроидов, рекомендуется выполнить несколько прогонов алгоритма кластеризации для одного и того же k и вычислить среднюю прогнозирующую силу
Другой эффективный метод оценки количества кластеров называется статистикой разрывов (gap statistic). К другим, менее автоматизированным методам, которые все еще используются некоторыми аналитиками, относятся метод «локтя» (elbow method) и метод среднего силуэта (average silhouette).
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Машинное обучение
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Книга «Машинное обучение» / Блог компании Издательский дом «Питер» / Хабр
Привет, Хаброжители к нам из типография наконец-то пришла новинка от Хенрика Бринка, Джозефа Ричардса и Марка Февероволофа.Эта книга позволит программистам, аналитикам данных, статистикам, специалистам по обработке данных и всем остальным применить машинное обучение к решению реальных задач или хотя бы просто понять, что оно собой представляет. Читатели, не прибегая к глубокому теоретическому изучению конкретных алгоритмов, получат практический опыт обработки реальных данных, моделирования, оптимизации и развертки систем машинного обучения. Для тех, кому интересна теория, мы обсуждаем математическую основу машинного обучения, объясняем некоторые алгоритмы и даем ссылки на материалы для дополнительного чтения. Основной акцент делается на практических результатах при решении поставленных задач.
Книга предназначена для тех, кто хочет применять машинное обучение к решению различных задач. В ней описываются и объясняются процессы, алгоритмы и инструменты, относящиеся к основным принципам машинного обучения. Внимание акцентируется не на способах написания популярных алгоритмов, а на их практическом применении. Каждый этап построения и использования моделей машинного обучения иллюстрируется примерами, сложность которых варьируется от простого до среднего уровня.
Структура книги
Часть I «Последовательность действий при машинном обучении» знакомит с пятью этапами основной последовательности машинного обучения:
• В главе 1 «Что такое машинное обучение?» рассказывается, что представляет собой машинное обучение и для чего оно нужно.
• В главе 2 «Реальные данные» подробно рассматриваются характерные стадии подготовки данных для моделей с машинным обучением.
• Глава 3 «Моделирование и прогнозирование» обучает с помощью распространенных алгоритмов и библиотек созданию простых ML-моделей и генерированию прогнозов.
• В главе 4 «Оценка и оптимизация модели» ML-модели подробно рассматриваются с целью оценки и оптимизации их производительности.
• В главе 5 «Основы проектирования признаков» рассказывается о том, как увеличить количество необработанных данных, используя информацию из поставленной перед нами задачи.
В части II «Практическое применение» вводятся техники масштабирования моделей, а также техники извлечения признаков из текста, изображений и временных рядов, увеличивающие эффективность решения многих современных задач с машинным обучением. Эта часть содержит три главы с практическими примерами.
• Глава 6 «Пример: чаевые для таксистов» — первая, полностью посвященная рассмотрению примера. Мы попытаемся предсказать шансы таксиста на получение чаевых.
• Глава 7 «Усовершенствованное проектирование признаков» знакомит с более сложными техниками проектирования признаков, предназначенными для извлечения значений из текстов, изображений и временных рядов.
• В главе 8 «Пример обработки естественного языка» усовершенствованные техники проектирования признаков используются для предсказания тональности рецензий на фильмы.
• Глава 9 «Масштабирование процесса машинного обучения» знакомит с техниками, дающими ML-системам возможность работать с большими объемами данных, обеспечивающими более высокую скорость прогнозирования и уменьшающими время их ожидания.
• В главе 10 «Пример с цифровой рекламой» на большом объеме данных строится модель, предсказывающая вероятность перехода по рекламному баннеру.
Как читать эту книгу
Тех, кто пока не имеет опыта в области машинного обучения, главы с 1-й по 5-ю познакомят с процессами подготовки и исследования данных, проектированием признаков, моделированием и оценкой моделей. В примерах кода на языке Python используются такие популярные библиотеки, как pandas и scikit-learn. Главы с 6-й по 10-ю включают в себя три практических примера машинного обучения наряду с такими продвинутыми темами, как проектирование признаков и оптимизация. Так как основная вычислительная сложность инкапсулирована в библиотеках, приведенные фрагменты кода легко адаптировать к вашим собственным ML-приложениям.
Об авторах
Хенрик Бринк — специалист по обработке и анализу данных и разработчик программного обеспечения, имеющий огромный практический опыт машинного обучения как в области производства, так и в сфере научной деятельности.
Джозеф Ричардс — старший научный сотрудник в области прикладной статистики и предсказательной аналитики. Хенрик и Джозеф совместно основали компанию Wise.io, которая занимается разработкой решений с машинным обучением для промышленности.
Марк Феверолф — основатель и президент компании Numinary Data Science, специализирующейся в области управления данными и предсказательной аналитики. Он работал статистиком и разработчиком аналитических баз данных в области социальных наук, химической инженерии, производительности информационных систем, планирования объема производства, кабельного телевидения и приложений для рекламы в Интернете.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Машинное обучение
Как постичь машинное обучение, если ты не великий математик
Предлагаем почитать перевод статьи Diego Isco с ресурса dev.to. Она будет полезна начинающим специалистам в области ML.Несколько месяцев назад я изучал проекты, в которых благодаря машинному обучению успешно реализуются невероятные вещи.
И я загорелся этим. Сказал, что хочу этому научиться. Неважно, насколько трудно мне будет. Я хочу научиться, и я научусь.
Будем честны: все мы слышали о зарплатах инженеров по машинному обучению. Взгляните на это.
Впечатляет, правда? Но машинное обучение еще нужно освоить — и вот тут начинается мрак.
Воодушевленный, я начал изучать работы по этой теме, и знаете что? Везде — математика! Навороченные уравнения, линейная алгебра, векторы и странные символы.
В тот вечер я плакал как ребенок. Но, как хороший технарь, утер слезы и решил учиться самостоятельно.
Да, я просто еще один нерд, пытающийся осилить машинное обучение.
Но мне скучно изучать сложные темы. Особенно во время карантина. Поэтому я хочу попробовать что-нибудь другое. Я опишу свой процесс обучения.
Попробую.
Ход обучения
Математика → Статистика → Программирование → Машинное обучение → Любительские проекты
Когда вы будете искать на YouTube видео о машинном обучении, то обязательно наткнетесь на 3 основных — от Siral Raval, Jabril и Daniel Bourke.
Все они — выше всяких похвал. Поэтому я решил взять из этих видео лучшее.
Математика
Много споров по поводу того, насколько хорошо нужно знать математику для освоения машинного обучения. Но знать точно нужно.
Возможно, некоторые из вас чертовски гениальны в математике и вам достаточно вспомнить лишь отдельные вещи. Но большинству простых смертных вроде меня нужно всему учиться с нуля.
Хорошо, а что именно нужно знать? Всего-то линейную алгебру и матанализ.
Напоминаю: я не гений в математике. Я плохо разбираюсь в математике. Я завалил матанализ на всех курсах в университете!
Так вот, можно ли освоить теорию машинного обучения, не будучи гением в математике?
Конечно же да.
Есть один нюанс. Если вы не дружите с числами, то это потому, что не понимаете основ.
Помните основы? Об основах линейной алгебры и математического анализа рассказывает на канале 3Blue1Brown Грант Сандерсон. Ему надо дать Нобелевскую премию в области образования. Он просто берет математику объясняет ее в потрясающей форме. Как ребенку. Это прекрасно.
Итак, моим первым шагом было понять основы линейной алгебры и математического анализа. Поверьте, после этого все намного проще.
Мы посмотрели и осмыслили эти видео, теперь время применить свои знания на практике — на курсе линейной алгебры от крупнейшего специалиста в сфере преподавания математики — Гилберта Стрэнга из Массачусетского технологического института.
Подумать только: получать такое же образование, что и студенты, заплатившие тысячи долларов за очный курс! Да, диплома одного из лучших университетов мира не будет, но накопленные знания — вот что в итоге имеет значение.
Что ж, мы усвоили этот длинный курс и попрактиковались, теперь черед математического анализа. В Академии Хана есть потрясающая программа, которая дает все, что надо для того, чтобы чувствовать себя уверенно, имея дело с мудреными уравнениями.
Статистика
Многих людей сбивает с толку то, насколько машинное обучение похоже на статистику. На самом деле они тесно связаны друг с другом, так что статистика — ключ к пониманию теории машинного обучения.
Поэтому сосредоточьтесь и учитесь.
А для облегчения этой задачи — бесплатный курс Probability — The Science of Uncertainty and Data от Массачусетского технологического института.
Читая учебную программу, вы можете подумать, что курс базовый, но это не так. Он охватывает достаточно тем, чтобы дать основы для понимания теории вероятности. Всем, кто любит поучиться, вот еще один курс — Statistics and Probability от Академии Хана. Это в дополнение, так что расслабьтесь.
Программирование
Если вы, как и я, инженер-программист, то для вас сейчас будет самое интересное.
Язык программирования, который необходимо знать, это Python. Король машинного обучения. Его простота делает процесс освоения материала очень легким — по крайней мере, поначалу.
Я предполагаю, что вы знаете программирование, так что не хочу пересказывать содержание курсов для изучения Python — их много. Кроме того, есть отличные книги. Вам решать, где набраться знаний.
Кому-то может быть удобнее изучать документацию или пользоваться подпиской на учебную онлайн-платформу, а у кого-то есть любимый учитель на Udemy. Главное, не забывайте практиковаться, чтобы лучше понимать, что происходит при программировании для машинного обучения.
Ладно, допустим, вы не знаете программирования, и это будет ваша первая строчка кода. В таком случае я бы выбрал Datacamp. Смело исследуйте тему самостоятельно и смотрите их курс по Python.
Машинное обучение
Мы уже далеко продвинулись. Изучили математику, статистику, алгоритмы, проплакали несколько ночей. Все ради этого момента.
Курс по машинному обучению от Эндрю Ына — наверное, один из лучших по теме. Он не для новичков, так что не убирайте далеко свои конспекты. Наконец то, как работают алгоритмы машинного обучения, сложится для вас в цельную картинку.
Еще один ресурс — это Introduction to Machine Learning for Coders. Хороший курс с детальными объяснениями алгоритмов машинного обучения.
Советую пройти оба, изучить вопрос с разных сторон, тогда вы сможете сказать, какой курс оказался наиболее понятным.
Не могу не упомянуть еще одну программу, которую очень хвалят. Но она платная: это Introduction to Machine Learning Course нa Udacity. Если у вас отложено немного денег и вы готовы инвестировать в себя, то это подходящий случай, но решайте сами.
Любительские проекты
Теперь вы уже знаете машинное обучение, но этого недостаточно. Вам нужно больше практики. Здесь вам поможет книга Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow.
После этого можно браться за любительские проекты, но уже с лучшими библиотеками машинного обучения. Если вам, как и мне, не нравится опираться на библиотеки без понимания, что к чему, то не волнуйтесь: вы уже разбираетесь. Поэтому я даю эту книгу в самом конце.
И напоследок
Прежде чем завершить, хочу дать несколько советов.
- Не бойтесь менять последовательность некоторых шагов. Возможно, вы сначала захотите изучить Python, затем линейную алгебру и только потом статистику.
- Изучив что-то, побольше практикуйтесь.
- Играйте с алгоритмами машинного обучения на любом этапе, чтобы разобраться, что к чему. Настраивайте параметры, чтобы посмотреть, что будет. Любопытство должно быть вашим оружием.
- Будьте терпеливы. Я знаю, на все это нужно время, это трудно. Но оно того стоит.
- Kaggle вам в помощь. Много Kaggle!
- Наслаждайтесь процессом, а не результатом.
Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 30 — 32 / Хабр
предыдущие главы
Предположим, ваша кривая ошибок на валидационной выборке выглядит следующим образом:
Мы уже говорили, что если ошибка алгоритма на валидационной выборке вышла на плато, вы вряд ли сможете достигнуть желаемого уровня качества просто добавляя данные.
Но трудно предположить, как будет выглядеть экстраполяция кривой зависимости качества алгоритма на валидационной выборке (Dev error) при добавлении данных. А если валидационная выборка маленькая, то ответить на этот вопрос еще сложнее из-за того, что кривая может быть зашумлена (иметь большой разброс точек).
Предположим, мы добавили на наш график кривую зависимости величины ошибки от количества данных тестовой выборки и получили следующую картину:
Посмотрев на эти две кривые можно быть абсолютно уверенными, что добавление новых данных само по себе не даст желаемого эффекта (не позволит увеличить качество работы алгоритма). Откуда можно сделать такой вывод?
Давайте вспомним следующие два замечания:
- Если мы добавляем больше данных в тренировочную выборку, ошибка алгоритма на тренировочной выборке может только увеличиться. Таким образом, синия линия нашего графика либо не изменится, либо поползет вверх и будет удаляться от желаемого уровня качества нашего алгоритма (зеленая линия).
- Красная линия ошибки на валидационной выборке обычно выше, чем синия линия ошибки алгоритма на тренировочной выборке. Таким образом, здесь ни при каких мыслимых обстоятельствах, добавлении данных не приведет к дальнейшему понижению красной линии, не сблизит ее с желаемым уровнем ошибки. Это практически невозможно, если учесть, что даже ошибка на тренировочной выборке выше желаемой.
Рассмотрение обеих кривых зависимостей ошибки алгоритма от количества данных в валидационной и в тренировочной выборках на одном графике, позволяет более уверенно экстраполировать кривую ошибки обучающегося алгоритма от количества данных в валидационной выборке.
Допустим, что у нас есть оценка желаемого качества работы алгоритма в виде оптимального уровня ошибок работы нашей системы. В этом случае приведенные выше графики являются иллюстрацией стандартного «хрестоматийного» случая как выглядит кривая обучения с высоким уровнем устранимого смещения. На наибольшем размере тренировочной выборки, предположительно, соответствующему всем данным, которые есть в нашем распоряжении, наблюдается большой разрыв между ошибкой алгоритма на тренировочной выборке и желаемым качеством работы алгоритма, что указывает на высокий уровень избегаемого смещения. Кроме того, разрыв между ошибкой на тренировочной выборке и ошибкой на валидационной выборке маленький, что свидетельствует о небольшом разбросе.
Ранее мы обсуждали ошибки алгоритмов, обученных на тренировочной и валидационной выборках только в самой правой точке выше приведенного графика, которая соответствует использованию всех имеющихся у нас тренировочных данных. Кривая зависимостей ошибки от количества данных тренировочной выборки, построенная для разных размеров выборки, используемой для обучения, дает нам более полное представление о качестве работы алгоритма, обученного на различных размерах тренировочной выборки.
Рассмотрим кривую обучения:
На этом графике зафиксировано высокое смещение, высокий разборос или оба сразу?
Синяя кривая ошибки на тренировочных данных относительно низкая, красная кривая ошибки на валидационных данных значительно выше синей ошибки на тренировочных данных. Таким образом, в данном случае смещение маленькое, но разброс большой. Добавление большего количества тренировочных данных, возможно, поможет закрыть разрыв между ошибкой на валидационной выборке и ошибкой на тренировочной выборке.
А теперь рассмотрим вот этот график:
В этом случае ошибка на тренировочной выборке большая, она существенно выше соответствующей желаемому уровню качества работы алгоритма. Ошибка на валидационной выборке так же существенно выше ошибки на тренировочной выборке. Таким образом имеем дело с одновременно большими смещением и разбросом. Вы должны искать пути уменьшения и смещения и разброса в работе вашего алгоритма.
Предположим у вас очень маленькая тренировочная выборка, состоящая всего из 100 примеров. Вы тренируете ваш алгоритм, используя случайно выбранную подвыборку из 10 примеров, затем из 20 примеров, затем из 30 и так до 100, увеличивая количество примеров с интервалом, состоящим из десяти примеров. Затем используя эти 10 точек вы строите вашу кривую обучения. Вы можете обнаружить, что кривая выглядит зашумленной (значения выше или ниже ожидаемых) на меньших размерах тренировочных выборкок.
Когда вы тренируете алгоритм всего лишь на 10 случайно выбранных примерах, вам может не повезти и это окажется особенно «плохая» тренировочная подвыборка с большей долей неоднозначных / неверно размеченных примеров. Или, наоборот, вам может попасться особенно «хорошая» тренировочная подвыборка. Наличии маленькой тренировочной выборки подразумевает, что значение ошибок на валидационной и тренировочных выборках могут подвергаться случайным флуктуациям.
Если данные, используемые для вашего приложения с использованием машинного обучения сильно смещены в сторону одного класса (как при задаче классификации котов, в которой доля негативных примеров намного больше, чем доля положительных), или если мы имеем дело с большим количеством классов (такой, как распознавание 100 различных видов животных), тогда шанс получить особенно «нерепрезентативную» или плохую тренировочную выборку также возрастает. Например, если 80% ваших примеров являются негативными примерами (y=0), и только 20% — это позитивные примеры (y=1), тогда велик шанс, что тренировочная подвыборка из 10 примеров будет содержать только негативные примеры, в этом случае очень сложно получить от обучаемого алгоритма что-то разумное.
В случае, если из-за зашумленности кривой обучения на тренировочной выборке трудно сделать оценку трендов, можно предложить два следующих решения:
Вместо обучения только одной модели на 10 тренировочных примеров, выбором с заменой несколько (скажем от 3 до 10) различных случайных тренировочных подвыборок из первоначальной выборки, состоящей из 100 примеров. Обучите модель на каждой из них и посчитайте для каждой из этих моделей ошибку на валидационной и тренировочной выборке. Посчитайте и нанесите на график среднюю ошибку на тренировочной и на валидационной выборке.
Замечание автора: Выборка с заменой означает следующее: случайно выбираем первые 10 различных примеров из 100, чтобы сформировать первую тренировочную подвыборку. Затем, чтобы сформировать вторую тренировочную подвыборку, снова снова возьмем 10 примеров, но без учета тех, которые выбраны в первой подвыборке (снова из всей сотни примеров). Таким образом, один конкретный пример может оказаться в обоих подвыборках. Это отличает выборку с заменой от выборки без замены, в случае выборки без замены, вторая тренировочная подвыборка выбиралась бы только из 90 примеров, которые не попали в первую подвыборку. На практике способ отбора примеров с заменой или без не должен играть большого значения, но отбор примеров с заменой является обычной практикой.
Если ваша тренировочная выборка смещена в сторону одного из классов, или если в нее входит много классов, выберете «сбалансированную» подвыборку, состоящую из 10 тренировочных примеров, выбранных случайным образом из 100 примеров выборки. Например, вы можете быть уверенными, что 2/10 примеров — положительные и 8/10 отрицательные. Если обобщить, то вы можете быть уверены, что доля примеров каждого класса в наблюдаемом наборе данных максимально приближена к их доле в первоначальной тренировочной выборке.
Я бы не стал заморачиваться ни с одним из этих методов до тех пор, пока построение графиков кривых ошибок не приведет к заключению, что эти кривые чрезмерно зашумлены, что не позволяет увидеть понятные тренды. Если у вас большая тренировочная выборка — скажем порядка 10 000 примеров и распределение ваших классов не очень сильно смещенно, возможно вам и не понадобятся эти методы.
Наконец, построение кривой обучения может быть дорогостоящим с вычислительной точки зрения: Например, нужно обучить десять моделей, в первой 1000 примеров, во второй 2000, и так вплоть до последней, содержащей 10 000 примеров. Обучение модели на небольших количествах данных проходит намного быстрее, чем обучение модели на больших выборках. Таким образом, вместо того чтобы равномерно распределять размеры тренировочных подвыборок по линейной шкале, как описано выше (1000, 2000, 3000, …, 10000), вы можете тренировать модели с нелинейным увеличением количества примеров, например, 1000, 2000, 4000, 6000 и 10000 примеров. Это все равно должно дать вам четкое понимание тренда засивисимости качества модели от количества обучающих примеров в кривых обучения. Конечно, этот прием актуален только в том случае, если вычислительные затраты на обучение дополнительных моделей велики.
продолжение
Книга «Машинное обучение для бизнеса и маркетинга»
Наука о данных становится неотъемлемой частью любой маркетинговой деятельности, и эта книга является живым портретом цифровых преобразований в маркетинге. Анализ данных и интеллектуальные алгоритмы позволяют автоматизировать трудоемкие маркетинговые задачи. Процесс принятия решений становится не только более совершенным, но и более быстрым, что имеет большое значение в постоянно ускоряющейся конкурентной среде.«Эта книга — живой портрет цифровых преобразований в маркетинге. Она показывает, как наука о данных становится неотъемлемой частью любой маркетинговой деятельности. Подробно описывается, как подходы на основе анализа данных и интеллектуальных алгоритмов способствуют глубокой автоматизации традиционно трудоемких маркетинговых задач. Процесс принятия решений становится не только более совершенным, но и более быстрым, что важно в нашей постоянно ускоряющейся конкурентной среде. Эту книгу обязательно должны прочитать и специалисты по обработке данных, и специалисты по маркетингу, а лучше, если они будут читать ее вместе.» Андрей Себрант, директор по стратегическому маркетингу, Яндекс.
Отрывок. 5.8.3. Модели скрытых факторов
В алгоритмах совместной фильтрации, обсуждавшихся до сих пор, большая часть вычислений выполняется на основе отдельных элементов матрицы рейтингов. Методы на основе близости оценивают отсутствующие рейтинги непосредственно по известным значениям в матрице рейтингов. Методы на основе моделей добавляют слой абстракции поверх матрицы рейтингов, создавая предиктивную модель, которая фиксирует определенные закономерности взаимоотношений между пользователями и элементами, но обучение модели по-прежнему сильно зависит от свойств матрицы рейтингов. Как следствие, эти методы совместной фильтрации обычно сталкиваются со следующими проблемами:
Матрица рейтингов может содержать миллионы пользователей, миллионы элементов и миллиарды известных рейтингов, что создает серьезные проблемы вычислительной сложности и масштабируемости.
Матрица рейтингов, как правило, очень разрежена (на практике может отсутствовать около 99 % рейтингов). Это влияет на вычислительную стабильность алгоритмов рекомендаций и приводит к недостоверным оценкам, когда у пользователя или элемента нет действительно похожих соседей. Эта проблема часто усугубляется тем, что большинство базовых алгоритмов ориентированы либо на пользователей, либо на элементы, что ограничивает их способность фиксировать все типы сходств и взаимоотношений, доступных в матрице рейтингов.
Данные в матрице рейтингов обычно сильно коррелируют из-за сходств пользователей и элементов. Это означает, что сигналы, доступные в матрице рейтингов, не только разрежены, но и избыточны, что способствует обострению проблемы масштабируемости.
Приведенные выше соображения указывают на то, что исходная матрица рейтингов может быть не самым оптимальным представлением сигналов, и следует рассмотреть другие альтернативные представления, более подходящие для целей совместной фильтрации. Чтобы изучить эту идею, вернемся к исходной точке и немного поразмышляем о характере служб рекомендаций. По сути, службу рекомендаций можно рассматривать как алгоритм, предсказывающий рейтинги на основе некоторой меры сходства между пользователем и элементом:
Один из способов определить эту меру сходства — использовать подход скрытых факторов и отобразить пользователей и элементы в точки в некотором k-мерном пространстве, чтобы каждый пользователь и каждый элемент были представлены k-мерным вектором:
Векторы должны строиться так, чтобы соответствующие размерности p и q были сопоставимы друг с другом. Иначе говоря, каждое измерение можно рассматривать как признак или понятие, то есть puj является мерой близости пользователя u и понятия j, а qij, соответственно, является мерой элемента i и понятия j. На практике эти размерности часто интерпретируются как жанры, стили и прочие атрибуты, применимые одновременно к пользователям и элементам. Сходство между пользователем и элементом и, соответственно, рейтинг можно определить как произведение соответствующих векторов:
Поскольку каждый рейтинг можно разложить на произведение двух векторов, принадлежащих пространству понятий, которое не наблюдается непосредственно в исходной матрице рейтингов, p и q называются скрытыми факторами. Успех этого абстрактного подхода, конечно, полностью зависит от того, как именно определяются и конструируются скрытые факторы. Чтобы ответить на этот вопрос, заметим, что выражение 5.92 можно переписать в матричной форме следующим образом:
где P — матрица n × k, собранная из векторов p, а Q — матрица m × k, собранная из векторов q, как показано на рис. 5.13. Основной целью системы совместной фильтрации обычно является минимизация ошибки прогнозирования рейтинга, что позволяет прямо определить задачу оптимизации относительно матриц скрытых факторов:
Если предположить, что число скрытых размерностей k фиксировано и k ≤ n и k ≤ m, задача оптимизации 5.94 сводится к задаче низкоранговой аппроксимации, которую мы рассматривали в главе 2. Чтобы продемонстрировать подход к решению, допустим на минутку, что матрица рейтингов полная. В этом случае задача оптимизации имеет аналитическое решение в терминах сингулярного разложения (Singular Value Decomposition, SVD) матрицы рейтингов. В частности, с помощью стандартного алгоритма SVD матрицу можно разложить на произведение трех матриц:
где U — матрица n × n, ортонормированная по столбцам, Σ — диагональная матрица n × m, а V — матрица m × m, ортонормированная по столбцам. Оптимальное решение задачи 5.94 можно получить в терминах этих факторов, усеченных до k наиболее значимых размерностей:
Следовательно, скрытые факторы, оптимальные с точки зрения точности прогнозирования, можно получить сингулярным разложением, как показано ниже:
Эта модель скрытых факторов, основанная на SVD, помогает решить проблемы совместной фильтрации, описанные в начале раздела. Во-первых, она заменяет большую матрицу рейтингов n × m матрицами факторов n × k и m × k, которые обычно намного меньше, потому что на практике оптимальное количество скрытых размерностей k часто невелико. Например, известен случай, когда матрицу рейтингов с 500 000 пользователей и 17 000 элементов удалось достаточно хорошо аппроксимировать с использованием 40 измерений [Funk, 2016]. Далее, SVD устраняет корреляцию в матрице рейтингов: матрицы скрытых факторов, определяемые выражением 5.97, являются ортонормированными по столбцам, то есть скрытые измерения не коррелированы. Если, что обычно верно на практике, SVD также решает проблему разреженности, потому что сигнал, присутствующий в исходной матрице рейтингов, эффективно концентрируется (напомню, что мы выбираем k размерностей с наибольшей энергией сигнала), а матрицы скрытых факторов не разрежены. Рисунок 5.14 иллюстрирует это свойство. Алгоритм близости на основе пользователей (5.14, a) свертывает разреженные векторы рейтингов для данного элемента и данного пользователя, чтобы получить оценку рейтинга. Модель скрытых факторов (5.14, б), напротив, оценивает рейтинг путем свертки двух векторов уменьшенной размерности и с более высокой плотностью энергии.
Только что описанный подход выглядит как стройное решение задачи скрытых факторов, но на самом деле он имеет серьезный недостаток из-за предположения о полноте матрицы рейтингов. Если матрица рейтингов разрежена, что имеет место почти всегда, стандартный алгоритм SVD нельзя применить напрямую, поскольку он не способен обрабатывать отсутствующие (неопределенные) элементы. Самым простым решением в этом случае является заполнение отсутствующих рейтингов некоторым значением по умолчанию, но это может привести к серьезному смещению прогноза. Кроме того, это неэффективно с вычислительной точки зрения, потому что вычислительная сложность такого решения равна сложности SVD для полной матрицы n × m, тогда как желательно иметь метод со сложностью, пропорциональной числу известных рейтингов. Эти проблемы можно решить с помощью альтернативных методов разложения, описанных в следующих разделах.
5.8.3.1. Разложение без ограничений
Стандартный алгоритм SVD — это аналитическое решение задачи низкоранговой аппроксимации. Однако эту проблему можно рассматривать как задачу оптимизации, и к ней также можно применить универсальные методы оптимизации. Один из самых простых подходов заключается в использовании метода градиентного спуска для итеративного уточнения значений скрытых факторов. Отправной точкой является определение функции стоимости J как остаточной ошибки прогноза:
Обратите внимание, что на этот раз мы не накладываем никаких ограничений, таких как ортогональность, на матрицы скрытых факторов. Вычисляя градиент функции стоимости по отношению к скрытым факторам, получаем следующий результат:
где E — матрица остаточных ошибок:
Алгоритм градиентного спуска минимизирует функцию стоимости, перемещаясь на каждом шаге в отрицательном направлении градиента. Следовательно, можно найти скрытые факторы, минимизирующие квадрат ошибки прогнозирования рейтинга путем итеративного изменения матриц P и Q до сходимости, в соответствии со следующими выражениями:
где α — скорость обучения. Недостатком метода градиентного спуска является необходимость вычисления всей матрицы остаточных ошибок и одновременного изменения всех значений скрытых факторов в каждой итерации. Альтернативным подходом, который, возможно, лучше подходит для больших матриц, является стохастический градиентный спуск [Funk, 2016]. Алгоритм стохастического градиентного спуска использует тот факт, что общая ошибка прогноза J является суммой ошибок для отдельных элементов матрицы рейтингов, поэтому общий градиент J можно аппроксимировать градиентом в одной точке данных и изменять скрытые факторы поэлементно. Полная реализация этой идеи показана в алгоритме 5.1.
Первый этап алгоритма — инициализация матриц скрытых факторов. Выбор этих начальных значений не очень важен, но в данном случае выбрано равномерное распределение энергии известных рейтингов среди случайно сгенерированных скрытых факторов. Затем алгоритм последовательно оптимизирует размерности понятия. Для каждого измерения он многократно выполняет обход всех рейтингов в обучающем наборе, прогнозирует каждый рейтинг с использованием текущих значений скрытых факторов, оценивает ошибку и корректирует значения факторов в соответствии с выражениями 5.101. Оптимизация измерения завершается по выполнении условия сходимости, после чего алгоритм переходит к следующему измерению.
Алгоритм 5.1 помогает преодолеть ограничения стандартного метода SVD. Он оптимизирует скрытые факторы, циклически перебирая отдельные точки данных, и тем самым избегает проблем с отсутствующими рейтингами и алгебраическими операциями с гигантскими матрицами. Итерационный подход также делает стохастический градиентный спуск более удобным для практических приложений, чем градиентный спуск, который изменяет целые матрицы с помощью выражений 5.101.
ПРИМЕР 5.6
По сути, подход на основе скрытых факторов — это целая группа методов обучения представлениям, способных выявлять закономерности, неявно присутствующие в матрице рейтингов, и представлять их явно в виде понятий. Иногда понятия имеют вполне осмысленную интерпретацию, особенно высокоэнергетические, хотя это не означает, что все понятия всегда имеют осмысленное значение. Например, применение алгоритма разложения матриц к базе данных рейтингов фильмов может создать факторы, приблизительно соответствующие психографическим измерениям, таким как мелодрама, комедия, фильм ужасов и т. д. Проиллюстрируем это явление небольшим числовым примером, который использует матрицу рейтингов из табл. 5.3:
Сначала вычтем глобальное среднее μ = 2,82 из всех элементов, чтобы центрировать матрицу, а затем выполним алгоритм 5.1 с k = 3 скрытыми измерениями и скоростью обучения α = 0,01, чтобы получить следующие две матрицы факторов:
Каждая строка в этих матрицах соответствует пользователю или фильму, и все 12 векторов-строк изображены на рис. 5.15. Обратите внимание, что элементы в первом столбце (первый вектор понятий) имеют наибольшие величины, а величины в последующих столбцах постепенно уменьшаются. Это объясняется тем, что первый вектор-понятие захватывает столько энергии сигнала, сколько возможно захватить с помощью одного измерения, второй вектор-понятие захватывает только часть остаточной энергии и т. д. Далее, обратите внимание, что первое понятие можно семантически интерпретировать как ось драма — боевик, где положительное направление соответствует жанру боевика, а отрицательное — жанру драмы. Рейтинги в этом примере имеют высокую корреляцию, поэтому хорошо видно, что первые три пользователя и первые три фильма имеют большие отрицательные значения в первом векторе-понятии (фильмы-драмы и пользователи, которым нравятся такие фильмы), тогда как три последних пользователя и три последних фильма имеют большие положительные значения в одном и том же столбце (боевики и пользователи, которые предпочитают этот жанр). Второе измерение в данном конкретном случае соответствует в основном смещению пользователя или элемента, которое можно интерпретировать как психографический атрибут (критичность суждений пользователя? популярность фильма?). Остальные понятия можно рассматривать как шум.
Полученные матрицы факторов не являются полностью ортогональными по столбцам, но стремятся к ортогональности, потому что это следует из оптимальности решения SVD. Это можно увидеть, рассматривая произведения PTP и QTQ, которые близки к диагональным матрицам:
Матрицы 5.103 по сути являются предиктивной моделью, которую можно использовать для оценки как известных, так и отсутствующих рейтингов. Оценки можно получить путем умножения двух факторов и добавления обратно глобального среднего:
Результаты достаточно точно воспроизводят известные и предсказывают недостающие рейтинги в соответствии с интуитивными ожиданиями. Точность оценок можно увеличивать или уменьшать, изменяя число измерений, а оптимальное число измерений можно определить на практике путем перекрестной проверки и выбора разумного компромисса между вычислительной сложностью и точностью.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Машинное обучение
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
9 покупаю книг по машинному обучению
В этой статье лучшие из книг по машинному обучению, которые стоят вашего внимания. Они находятся в свободном доступе.
Если Вы давно искали хорошие книги по машинному обучению, то эта подборка именно для Вас.
Основанная на курсе CS246 и CS35A в Стэнфордском университете, эта книга для студентов, изучающих информатику, и не требует предварительной подготовки.Эта книга была опубликована издательством Cambridge University Press.
Эта книга содержит пролог к статистическим методам обучения вместе с изолированными лабораториями
р.Это учебное пособие по глубокому обучению предназначено для тех, кто находится на ранних этапах машинного обучения и глубинного обучения в особенности. Онлайн-версия книги доступна уже сейчас бесплатно.
Эта книга знакомит вас с байесовскими методами и вероятностным программированием с вычислительной точки зрения.Книга в основном является находкой для тех, кто свободно владеет математикой.
Для тех, кто разбирается в математике, это одна из самых рекомендуемых книг для понимания магии, которая стоит за машинным обучением.
Учебное пособие по глубокому обучению с использованием Theano является обязательным для чтения, если вы готовы войти в это поле, и бесплатно.
Объясняя статистическое обучение, этот учебник объясняет использование методов машинного обучения с целью статистического вывода.Учебник доступен в Интернете бесплатно.
Эта книга может многое предложить студентам инженерных и информатики, изучающим машинное обучение и искусственный интеллект. Пособие опубликовано и написано Стивеном Марслэндом, к сожалению не бесплатно. Весь код Python доступен в Интернете. Они являются отличным справочным инструментом для изучения Python.
Эта книга также недоступна бесплатно, но ради справедливости она в нашем списке. Это совершенное практическое руководство, чтобы максимально использовать возможности машинного обучения с помощью Python.
Хотите знать, как работает Deep Learning? Вот быстрый гайд
Источник:
Список бесплатных книг по машинному обучению, которые необходимо прочитать
15 лучших книг по глубинному обучению
Интересуетесь нейросетями и машинным обучением? Собрали подборку из 15 книг по глубинному обучению, которые помогут освоить эти технологии.
Ловите свежую подборку книг Deep Learning, которая поможет свернуть горы!
Гудфеллоу Я., Бенджио И., Курвилль А. — Глубокое обучение, 2017 г.
Эта книга считается «Библией», одной из лучших книг по глубинному обучению.Несмотря на то, что она написана техническим языком, её способность осилить и технологический новичок.
Внутри рассказывается о математических и концептуальных основах, линейной алгебре, теории вероятностей и теории численных вычислений и машинном обучении. Она описывает методы глубокого обучения, использованными практиками в отрасли. Сюда входят сети с прямой связью, регуляризация, алгоритмы оптимизации, сверточные сети, моделирование последовательностей и практическая методология.Кроме того, вы узнаете об обработке естественного языка, распознавании речи, компьютерном зрении, системе онлайн-рекомендаций, биоинформатике и видеоиграх.
Франсуа Шолле — Глубокое обучение на Python, 2018 г.
Это учебник по моделям глубокого обучения с использованием языка Python и мощной библиотеки Keras. Написанный создателем Keras и исследователем Google AI Франсуа Шолле, эта книга укрепит понимание технологии через объяснения и практические примеры.Вы исследуете сложные концепции и попрактикуетесь с приложениями в области компьютерного зрения, обработки естественного языка и генеративных моделей. У вас будут знания и практические навыки глубокого обучения в ваших собственных проектах.
Орельен Жерон — Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow, 2018 г.
Эта книга предполагает, что вы почти не знаете о машинном обучении.Её цель — дать концепции, знания и инструменты для реализации программ, способных учиться на данных. Здесь рассматривается большое количество методов. Например, линейная регрессия или олимпиадные способы решения задач.
Вместо того, чтобы реализовывать собственные версии каждого алгоритма, используют используемые готовые к работе платформы вроде Scikit-Learn и TensorFlow.
Ричард Саттон, Эндрю Барто — Обучение с подкреплением, 2017 г.
Ричард Саттон и Эндрю Барто дают ясное и простое описание ключевых идей и алгоритмов обучения с подкреплением. Оно основано на том, что агент пытается максимизировать получаемую среду с высоким уровнем неопределенности. Предназначена для специалистов в области искусственного интеллекта, нейросетевого моделирования и управления, а также студентов и аспирантов.
Ясер Абу-Мостафа, Малик Магдон-Исмаил, Сюань-Тянь Линь — Учимся на данных, 2012 г.
Следующий материал в подборке книг по глубинному обучению вместе со специально подготовленными онлайн-материалами. Здесь вы найдете введение в машинное обучение, что позволяет вычислительным системам улучшить свою производительность с помощью накопленного опыта. Это короткий курс, поэтому ждите качественно структурированной информации здесь основные темы, которые должен знать каждый. Важно, что читателям также доступны электронные, регулярно обновляемые главы книги.
Адриан Роузброк — Глубокое обучение компьютерного зрения с помощью Python, 2017 г.
Эта книга не только для начинающих. Специалисты разного уровня с помощью этой книги создать обычное программное обеспечение, обрабатывать естественные языки, выполнять сложные математические вычисления, создавать программы компьютерного зрения с помощью глубокого обучения.
Это руководство познакомит вас с основами компьютерного зрения, библиотеками и лучшими практиками.
Эндрю Траск — Grokking Deep Learning
Книга научит вас строить нейронные сети глубокого обучения с нуля. Эндрю Траск расскажет об устройстве технологии изнутри. Особенно полезна тем, кто уже знаком с математикой и программированием на среднем уровне. В процессе изучения вы узнаете о том, как учатся нейронные сети, построите сети, которые могут распознавать и анализировать, играть в видеоигры, переводить текст между языками и даже писать, как Шекспир.
Андрей Бурков — Стостраничная книга по машинному обучению, 2019 г.
Эта книга вводится в машинное обучение от специалиста мирового уровня и суперзвезды LinkedIn Андрея Буркова. Она позволит начать работу с ML в течение нескольких дней. Достаточно первых пяти глав, остальные понравятся практикующим инженерам, желающим использовать ML в своей повседневной работе, не тратя огромное количество времени на прохождение длинных курсов.
Максим Лапань — Практическое занятие по глубокому обучению с подкреплением, 2018 г.
Это ещё одна из популярных книг по глубинному обучению. Использование алгоритмов Google в играх, победы роботов над людьми заставили технических специалистов по всему миру использовать технологии за технологиями машинного обучения пристальнее.
Книга является исчерпывающим руководством по последним инструментам глубокого обучения. Вы будете оценивать методы, включая перекрестную энтропию, учиться применять их в реальных условиях.
Вы должны использовать основы обучения с подкреплением, сделаете робота для торговли акциями и научитесь применять естественный язык для развития чат-ботов.
Сергей Николенко, А. Кадурин, Екатерина Архангельская — Глубокое обучение. Погружение в мир нейронных сетей, 2018 г.
Одна из немногих книг по глубинному обучению на русском. Внутри много математики, теории, основ и рассуждений, охватывает большую часть того, что касается машинного обучения. По сути, это всеобъемлющее руководство для новичков, которые желают разобраться в вопросах работы с нейронными сетями.
Джуда Перл — Книга почему, 2018 г.
Книга от всемирно известного ученого-компьютерщика Джуды Перл. Совместно с коллегами, он развеял стереотипы причинно-следственной связи и объяснил, как мышление позволяет исследовать существующий и возможные миры, разобрал сущность человеческого и искусственного интеллекта. Как говорят авторы, книга нужна для того, чтобы показать ширину мышления.
Сандро Сканси — Введение в глубокое обучение, 2018 г.
Краткое, лёгкое и доступное введение в машинное обучение.Преимущество этой книги перед другими в простых примерах для новичков. В ней вы найдёте популярные алгоритмы и архитектурные решения, интуитивно понятные любому начинающему разработчику. Книга охватывает важные темы: от обучения нейронных сетей, обработки языка, нейронных сетей с обратной связью, до математических предпосылок и истории искусственного интеллекта. Все примеры на языке программирования Python.
Эндрю Ын — Машинное обучение, 2018 г.
Эта книга посвящена не алгоритмам машинного обучения, а тому, как заставить работать эти алгоритмы.
Чему она научит? Например, расстановке приоритетов, диагностике ошибок в системе машинного обучения, обучению систем в тестовом режиме. А ещё настройка проектов и их результатов с подобными, которые выполнены вручную человеком. Читатели узнают, когда и как применять сквозное, трансферное и многозадачное обучение.
Кристоф Молнар — Интерпретируемое машинное обучение, 2019 г.
Книга о том, как сделать модели машинного обучения и их решения понятными.
Вы узнаете о простых, интерпретируемых моделях. Например, о деревьях решений, правила принятия решений и линейной регрессии. Все методы интерпретации подробно объясняются: сильные и слабые стороны, техническое устройство, варианты интерпретации результатов.
Кому подходит эта книга? В первую очередь, она ориентирована на практиков машинного обучения — учёных статистиков. Но будет полезна всем, кто заинтересован в том, чтобы сделать модели машинного обучения понятными.
Майкл Нильсен — Нейронные сети и глубокое обучение, 2015 г.
Нейронные сети — одна из самых крутых парадигм программирования. В традиционном подходе к программированию мы разбиваем большие задачи на множество мелких и понятных. Это помогает компьютеру быстрее их выполнять. Нейронные сети учатся сами решать поступающие проблемы. По этой причине, сегодня всё больше технологических компаний начинают использовать технологии машинного обучения
Цель книги — помочь вам освоить понятия нейронных сетей, включая современные методы глубокого обучения.В процессе изучения книги, вы будете писать код, использующий нейронные сети и глубокое обучение для решения сложных задач. Таким образом, авторы настроены у читателей фундаментальные навыки работы с технологией.
Понравилась подборка 15 лучших книг по глубинному обучению? Возможно, вас заинтересует следующее:
Источник: Подборка книг по глубинному обучению, которые стоит прочитать в 2019 году на FloydHub
.