глубокое обучение на python франсуа шолле книга
Книга «Глубокое обучение на Python»
Глубокое обучение — Deep learning — это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если о глубоком обучении рассказывает Франсуа Шолле, который создал Keras — самую мощную библиотеку для работы с нейронными сетями. Познакомьтесь с глубоким обучением на практических примерах из самых разнообразных областей. Книга делится на две части: в первой даны теоретические основы, вторая посвящена решению конкретных задач. Это позволит вам не только разобраться в основах DL, но и научиться использовать новые возможности на практике.
Обучение — это путешествие длиной в жизнь, особенно в области искусственного интеллекта, где неизвестностей гораздо больше, чем определенности. Внутри приведен отрывок «Исследование и мониторинг моделей глубокого обучения с использованием обратных вызовов Keras и TensorBoard».
Об этой книге
Книга написана для всех желающих начать изучение технологии глубокого обучения с нуля или расширить свои знания. Инженеры, работающие в области машинного обучения, разработчики программного обеспечения и студенты найдут много ценного на этих страницах.
В этой книге предлагается реальное практическое исследование глубокого обучения. Мы старались избегать математических формул, предпочитая объяснять количественные понятия с помощью фрагментов кода и формировать практическое понимание основных идей машинного и глубокого обучения.
Вы увидите более 30 примеров программного кода с подробными комментариями, практическими рекомендациями и простыми обобщенными объяснениями всего, что нужно знать для использования глубокого обучения в решении конкретных задач.
В примерах используются фреймворк глубокого обучения Keras, написанный на Python, и библиотека TensorFlow в качестве внутреннего механизма. Keras — один из популярнейших и быстро развивающихся фреймворков глубокого обучения. Он часто рекомендуется как наиболее удачный инструмент для начинающих изучать глубокое обучение.
Прочитав эту книгу, вы будете четко понимать, что такое глубокое обучение, когда оно применимо и какие ограничения имеет. Вы познакомитесь со стандартным процессом интерпретации и решения задач машинного обучения и узнаете, как бороться с часто встречающимися проблемами. Вы научитесь использовать Keras для решения практических задач — от распознавания образов до обработки естественного языка: классификации изображений, временного прогнозирования, анализа эмоций, генерации изображений и текста и многого другого.
Исследование и мониторинг моделей глубокого обучения с использованием обратных вызовов Keras и TensorBoard
В этом разделе мы рассмотрим способы получения более полного доступа к внутренним механизмам модели во время обучения и управления ими. Запуск процедуры обучения на большом наборе данных и продолжительностью в десятки эпох вызовом model.fit() или model.fit_generator() напоминает запуск бумажного самолетика: придав начальный импульс, вы больше никак не управляете ни траекторией его полета, ни местом приземления. Чтобы избежать отрицательных результатов (и потери бумажного самолетика), лучше использовать не бумажный самолетик, а управляемый беспилотник, анализирующий окружающую обстановку, посылающий информацию о ней обратно оператору и автоматически управляющий рулями в зависимости от своего текущего состояния. Приемы, которые будут представлены здесь, превратят вызов model.fit() из бумажного самолетика в интеллектуальный автономный беспилотник, способный оценивать свое состояние и своевременно выполнять управляющие воздействия.
Применение обратных вызовов для воздействия на модель в ходе обучения
Многие аспекты обучения модели нельзя предсказать заранее. Например, нельзя предсказать заранее количество эпох, обеспечивающее оптимальное значение потерь на проверочном наборе. В примерах, приводившихся до сих пор, использовалась стратегия обучения с достаточно большим количеством эпох. Таким образом достигался эффект переобучения, когда сначала выполняется первый прогон, чтобы выяснить необходимое количество эпох обучения, а затем второй — новый, с самого начала — с выбранным оптимальным количеством эпох. Конечно, это довольно расточительная стратегия.
Гораздо лучше было бы остановить обучение, как только выяснится, что оценка потерь на проверочном наборе перестала улучшаться. Это можно реализовать с использованием механизма обратных вызовов в Keras. Обратный вызов — это объект (экземпляр класса, реализующего конкретные методы), который передается в модель через вызов fit и который будет вызываться моделью в разные моменты в процессе обучения. Он имеет доступ ко всей информации о состоянии модели и ее качестве и может предпринимать следующие действия: прерывать обучение, сохранять модели, загружать разные наборы весов или как-то иначе изменять состояние модели.
Вот несколько примеров использования обратных вызовов:
Рассмотрим некоторые из них, чтобы получить представление о том, как ими пользоваться: ModelCheckpoint, EarlyStopping и ReduceLROnPlateau.
Обратные вызовы ModelCheckpoint и EarlyStopping
Обратный вызов EarlyStopping можно использовать для прерывания процесса обучения, если находящаяся под наблюдением целевая метрика не улучшалась на протяжении заданного количества эпох. Например, этот обратный вызов позволит прервать обучение после наступления эффекта переобучения и тем самым избежать повторного обучения модели в течение меньшего количества эпох. Этот обратный вызов обычно используется в комбинации с ModelCheckpoint, который позволяет сохранять состояние модели в ходе обучения (и, при необходимости, сохранять только лучшую модель: версию модели, достигшую лучшего качества к концу эпохи):
Обратный вызов ReduceLROnPlateau
Этот обратный вызов можно использовать для снижения скорости обучения, когда потери на проверочных данных перестают уменьшаться. Уменьшение или увеличение скорости обучения в точке перегиба кривой потерь — эффективная стратегия выхода из локального минимума в ходе обучения. Следующий пример демонстрирует применение обратного вызова ReduceLROnPlateau:
Разработка своего обратного вызова
Если в ходе обучения потребуется выполнить какие-то особые действия, не предусмотренные ни одним из встроенных обратных вызовов, можно написать свой обратный вызов. Обратные вызовы реализуются путем наследования класса keras.callbacks.Callback. Вы можете реализовать любые из следующих методов с говорящими именами, которые будут вызываться в соответствующие моменты
Все эти методы вызываются с аргументом logs — словарем, содержащим информацию о предыдущем пакете, эпохе или цикле обучения: метрики обучения и проверки и т.д. Кроме того, обратный вызов имеет доступ к следующим атрибутам:
Это все, что нужно знать об обратных вызовах, все остальное — технические детали, информацию о которых вы легко сможете отыскать самостоятельно. Теперь вы сможете выполнять журналирование любой информации или оказывать управляющие воздействия на модель Keras в ходе обучения.
Об авторе
Франсуа Шолле (François Chollet) занимается проблематикой глубокого обучения в Google, в городе Маунтин-Вью, штат Калифорния. Является создателем Keras — библиотеки глубокого обучения, а также участником проекта по разработке фреймворка машинного обучения TensorFlow. Также занимается исследованиями в области машинного обучения, основное внимание уделяя распознаванию образов и применению машинного обучения к формальным рассуждениям. Выступал с докладами на крупных конференциях в этой области, включая «Conference on Computer Vision and Pattern Recognition» (CVPR), «Conference and Workshop on Neural Information Processing Systems» (NIPS), «International Conference on Learning Representations» (ICLR) и др.
Для Хаброжителей скидка 20% по купону — Deep Learning with Python
Глубокое обучение на Python
Библиотека программиста.
Шолле Ф. «Глубокое обучение на Python» Питер, 2018 год, 400 стр., Manning, ISBN: 978-5-4461-0770-4; (10,3 мб. pdf)
Аннотация: Глубокое обучение — Deep learning — это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если о глубоком обучении рассказывает Франсуа Шолле, который создал Keras — самую мощную библиотеку для работы с нейронными сетями.
Познакомьтесь с глубоким обучением на практических примерах из самых разнообразных областей. Книга делится на две части: в первой даны теоретические основы, вторая посвящена решению конкретных задач. Это позволит вам не только разобраться в основах DL, но и научиться использовать новые возможности на практике. Обучение — это путешествие длиной в жизнь, особенно в области искусственного интеллекта, где неизвестностей гораздо больше, чем определенности.
Содержание
Часть I. Основы глубокого обучения
1. Что такое глубокое обучение?
2. Прежде чем начать: математические основы нейронных сетей
3. Начало работы с нейронными сетями
4. Основы машинного обучения
Часть II. Глубокое обучение на практике
5. Глубокое обучение в технологиях компьютерного зрения
6. Глубокое обучение для текста и последовательностей
7. Лучшие практики глубокого обучения продвинутого уровня
8. Генеративное глубокое обучение
9. Заключение
Приложения
Приложение A. Установка Keras и его зависимостей в Ubuntu 384
Приложение B. Запуск Jupyter Notebook на экземпляре EC2 GPU 389
Глубокое обучение на Python, Шолле Ф., 2018
По кнопке выше «Купить бумажную книгу» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Найти похожие материалы на других сайтах» можно искать похожие материалы на других сайтах.
On the buttons above you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Глубокое обучение на Python, Шолле Ф., 2018.
Глубокое обучение — Deep learning — это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если о глубоком обучении рассказывает Франсуа Шолле, который создал Keras — самую мощную библиотеку для работы с нейронными сетями. Познакомьтесь с глубоким обучением на практических примерах из самых разнообразных областей. Книга делится на две части: в первой даны теоретические основы, вторая посвящена решению конкретных задач. Это позволит вам не только разобраться в основах DL, но и научиться использовать новые возможности на практике.
Обучение — это путешествие длиной в жизнь, особенно в области искусственного интеллекта, где неизвестностей гораздо больше, чем определенности.
«Глубина» глубокого обучения.
Глубокое обучение — это особый раздел машинного обучения: новый подход к поиску представления данных, делающий упор на изучение последовательных слоев (или уровней) все более значимых представлений. Под глубиной в глубоком обучении не подразумевается более глубокое понимание, достигаемое этим подходом; идея заключается в многослойном представлении. Количество слоев, на которые делится модель данных, называют глубиной модели. Другими подходящими названиями для этой области машинного обучения могли бы служить: многослойное обучение и иерархическое обучение. Современное глубокое обучение часто вовлекает в процесс десятки и даже сотни последовательных слоев представления — и все они автоматически определяются под воздействием обучающих данных. Между тем другие подходы к машинному обучению ориентированы на изучении одного-двух слоев представления данных; по этой причине их иногда называют поверхностным обучением.
В глубоком обучении такие многослойные представления изучаются (почти всегда) с использованием моделей, так называемых нейронных сетей, структурированных в виде слоев, наложенных друг на друга. Термин нейронная сеть заимствован из нейробиологии, тем не менее, хотя некоторые основополагающие идеи глубокого обучения отчасти заимствованы из науки о мозге, модели глубокого обучения не являются моделями мозга. Нет никаких доказательств, что мозг реализует механизмы, подобные механизмам, используемым в современных моделях глубокого обучения. Вам могут встретиться научно-популярные статьи, в которых утверждается, что глубокое обучение работает подобно мозгу или моделирует работу мозга, но в действительности это не так. Было бы неправильно и контрпродуктивно заставлять начинающих освоение этой области думать, что глубокое обучение каким-то образом связано с нейробиологией; вам не нужно представление «как наш мозг», и вы также можете забыть все, что читали о гипотетической связи между глубоким обучением и биологией. Намного продуктивнее считать глубокое обучение математической основой для изучения представлений данных.
Содержание.
ЧАСТЬ I. ОСНОВЫ ГЛУБОКОГО ОБУЧЕНИЯ.
Глава 1. Что такое глубокое обучение?.
Глава 2. Прежде чем начать: математические основы нейронных сетей.
Глава 3. Начало работы с нейронными сетями.
Глава 4. Основы машинного обучения.
ЧАСТЬ II. ГЛУБОКОЕ ОБУЧЕНИЕ НА ПРАКТИКЕ.
Глава 5. Глубокое обучение в технологиях компьютерного зрения.
Глава 6. Глубокое обучение для текста и последовательностей.
Глава 7. Лучшие практики глубокого обучения продвинутого уровня.
Глава 8. Генеративное глубокое обучение.
Глава 9. Заключение.
Приложение А. Установка Keras и его зависимостей в Ubuntu.
Приложение В. Запуск Jupyter Notebook на экземпляре ЕС2 GPU.
Глубокое обучение на python франсуа шолле книга
6 книг по искусственному интеллекту [Python]
[1] Python для сложных задач. Наука о данных и машинное обучение [2018] Плас Дж
Это подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы.
[2] Машинное обучение и TensorFlow [2019] Шакла
[3] Основы Data Science и Big Data. Python и наука о данных [2018] Силен
[5] Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow. Концепции, инструменты и техники для создания интеллектуальных систем [2018] Жерон
«Эта книга — замечательное введение в теорию и практику решения задач с помощью нейронных сетей. Она охватывает ключевые моменты, необходимые для построения эффективных приложений, а также обеспечивает достаточную основу для понимания результатов новых исследований по мере их появления. Я рекомендую эту книгу всем, кто заинтересован в освоении практического машинного обучения».
— Пит Уорден, технический руководитель направления TensorFlow.
Благодаря серии недавних достижений глубокое обучение значительно усилило всю область машинного обучения. В наше время даже программисты, почти ничего не знающие об этой технологии, могут использовать простые и эффективные инструменты для реализации программ, которые способны обучаться на основе данных. В настоящем практическом руководстве показано, что и как следует делать.
За счет применения конкретных примеров, минимума теории и двух фреймворков Python производственного уровня — Scikit-Learn и TensorFlow — автор книги Орельен Жерон поможет вам получить интуитивное представление о концепциях и инструментах, предназначенных для построения интеллектуальных систем. Вы узнаете о ряде приемов, начав с простой линейной регрессии и постепенно добравшись до глубоких нейронных сетей. Учитывая наличие в каждой главе упражнений, призванных закрепить то, чему вы научились, для начала работы нужен лишь опыт программирования.
— Исследуйте область машинного обучения, особенно нейронные сети.
— Используйте Scikit-Learn для отслеживания проекта машинного обучения от начала до конца.
— Исследуйте некоторые обучающие модели, включая методы опорных векторов, деревья принятия решений, случайные леса и ансамблевые методы.
— Применяйте библиотеку TensorFlow для построения и обучения нейронных сетей.
— Исследуйте архитектуры нейронных сетей, включая сверточные сети, рекуррентные сети и глубокое обучение с подкреплением.
— Освойте приемы для обучения и масштабирования глубоких нейронных сетей.
— Используйте практические примеры кода, не овладевая чрезмерно теорией машинного обучения или деталями алгоритмов.
[6] Глубокое обучение в Python [2018] Франсуа Шолле
Глубокое обучение на Python (pdf+epub)
Посоветуйте книгу друзьям! Друзьям – скидка 10%, вам – рубли
Эта и ещё 2 книги за 299 ₽
Глубокое обучение – Deep learning – это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если о глубоком обучении рассказывает Франсуа Шолле, который создал Keras – самую мощную библиотеку для работы с нейронными сетями. Познакомьтесь с глубоким обучением на практических примерах из самых разнообразных областей. Книга делится на две части: в первой даны теоретические основы, вторая посвящена решению конкретных задач. Это позволит вам не только разобраться в основах DL, но и научиться использовать новые возможности на практике.
Обучение – это путешествие длиной в жизнь, особенно в области искусственного интеллекта, где неизвестностей гораздо больше, чем определенности.
С этой книгой читают
Отзывы 2
Отличная книга для первого знакомства. Автор в начале книги обещает не приводить ни единой математической формулы – вместо них используется код на python, что облегчает восприятие рядовому программисту.
Хорошо «разжёваны» базовые задачи – классификация и регрессия.
Много внимания уделено свёрточным и рекуррентным слоям, а также методам преобразования текста в вид, с которым способны работать модели.
По ходу дела дано множество практических советов, а в отдельном разделе по шагам расписано, как надо обучать модель «правильно».
Но что касается более продвинутых вещей – генерация текста и изображений – сложилось впечатление, что достаточно быстро изложение с «всё разжёвано» превращается в «по вершкам».
По генерации текста пример игрушечный, из которого непонятно, как делать практически полезные модели. По генерации изображений приведены достаточно интересные примеры, но всё очень коротко, а потому далеко не так легко для восприятия, как начало книги.
Думаю, что в этом нет вины автора – видимо задачи посложнее регрессии и классификации требуют более солидной подготовки, иначе объём книги разрастётся в разы (но конечно хотелось бы иметь и такую книгу).
В заключении автор честно рассказывает об ограничениях глубоких сетей – а они существенные, так что рано отправлять на свалку подходы, не связанные с градиентным спуском и непрерывными функциями. В целом автор сбивает спесь, навеянную популярными статьями. Глубокие сети – это мощный инструмент, возможности которого ещё до конца не исследованы. Но известные ограничения не оставляют сомнений в том, что их одних недостаточно для решения всех стоящих проблем.