Ключевые идеи
1. Глубокое обучение: принятие решений на основе данных
Глубокое обучение позволяет принимать решения, опираясь на данные, выявляя и извлекая закономерности из огромных массивов информации, которые точно связывают сложные входные данные с правильными результатами.
Решения на основе данных. Глубокое обучение превосходно справляется с поиском закономерностей в больших наборах данных, что позволяет точно сопоставлять сложные входы с нужными результатами. Это особенно важно там, где интуиция бессильна, а данные — главный ориентир. Примеры:
- анализ текстов в онлайн-разговорах на Facebook,
- поиск изображений и машинный перевод у Google, Baidu и Microsoft,
- восприятие окружающей среды и планирование движения у беспилотных автомобилей.
Успех AlphaGo. Программа AlphaGo от DeepMind, которая обыграла чемпионов мира по игре Го, — яркий пример силы глубокого обучения. Огромное пространство вариантов в Го делало задачу вычислительно сложной, но алгоритмы глубокого обучения позволили AlphaGo оценивать позиции на доске и принимать стратегические решения.
Ключ к успеху — принятие решений. Умение принимать решения на основе данных жизненно важно во многих сферах. Глубокое обучение даёт возможность выявлять и использовать закономерности в больших данных, обеспечивая точные и эффективные решения.
2. ИИ, МО и Глубокое обучение: иерархия интеллекта
Современное машинное обучение опирается на два направления: компьютеры, способные учиться на примерах, и исследования нейронных сетей.
Вложенные области. Искусственный интеллект (ИИ) — это широкая область, включающая машинное обучение (МО), которое, в свою очередь, включает глубокое обучение (ГЛ). ИИ стремится создавать интеллектуальные системы, МО разрабатывает алгоритмы, обучающиеся на данных, а ГЛ использует глубокие нейронные сети.
Истоки ИИ. ИИ родился на семинаре в Дартмутском колледже в 1956 году. Там обсуждали доказательство теорем, обработку естественного языка, планирование в играх, программы, обучающиеся на примерах, и нейронные сети.
Фокус МО. Машинное обучение — это разработка алгоритмов, которые позволяют компьютеру извлекать функции из набора данных (примеров). Чтобы понять МО, нужно разобраться в трёх понятиях: набор данных, алгоритм и функция.
3. Машинное обучение: извлечение функций из данных
Функция — это детерминированное отображение множества входных значений в одно или несколько выходных.
Детерминированные отображения. Функция всегда даёт один и тот же результат для конкретного набора входных данных. Цель машинного обучения — научиться таким функциям на основе данных.
Наборы данных и алгоритмы. Алгоритмы машинного обучения анализируют данные, выявляя повторяющиеся закономерности, которые затем представляются в виде функций. Эти функции могут быть простыми арифметическими операциями, правилами «если-то» или сложными нейронными сетями.
Нейронные сети как функции. Глубокое обучение — это часть машинного обучения, сосредоточенная на моделях глубоких нейронных сетей. Закономерности, которые извлекают алгоритмы ГЛ, — это функции, представленные в виде нейронных сетей.
4. Сложности машинного обучения: шум и смещение
Большинство наборов данных содержат шум, поэтому искать функцию, идеально соответствующую данным, не всегда разумно — это значит учиться на шуме.
Шум и плохо поставленные задачи. Машинное обучение сталкивается с проблемами из-за шума в данных и того, что множество возможных функций часто превышает количество примеров, что делает задачу плохо поставленной.
Индуктивное смещение. Чтобы справиться с этим, алгоритмы машинного обучения дополняют данные набором предположений о свойствах лучшей функции — это индуктивное смещение алгоритма.
Недообучение и переобучение. Неправильный выбор индуктивного смещения ведёт к недообучению (слишком простая функция) или переобучению (функция подстраивается под шум). Найти баланс между данными и смещением — ключ к успешной обобщающей модели.
5. Обучение с учителем, без учителя и с подкреплением
В обучении с учителем каждый пример в наборе данных помечен ожидаемым результатом.
Обучение с учителем. Здесь каждый пример имеет метку с правильным ответом. Алгоритм учится, сравнивая свои предсказания с этими метками и корректируя параметры.
Обучение без учителя. Обычно используется для кластеризации данных. В этом случае меток нет, и алгоритм пытается найти функции, группирующие похожие примеры в кластеры.
Обучение с подкреплением. Особенно важно для задач онлайн-контроля, например, управления роботами или играми. Агент учится выбирать действия в среде, чтобы получать награды.
6. Математические модели: уравнения, описывающие связи
В простейшем виде математическая модель — это уравнение, описывающее связь входных переменных с выходной.
Модели как уравнения. Математическая модель — упрощённое представление реального процесса через уравнение, связывающее входы и выход.
Линейные модели. Простейшая модель — уравнение прямой: y = mx + c, где y — выход, x — вход, m — наклон, c — сдвиг. Параметры подгоняются под данные.
Полезность модели. Модель полезна, если она соответствует реальному миру, что проявляется в смысле переменных.
7. Линейные модели: взвешенные суммы и множественные входы
Умножение входов на веса с последующим суммированием называется взвешенной суммой.
Взвешенные суммы. В основе линейной модели — сумма входных значений, умноженных на соответствующие веса. Это и есть взвешенная сумма.
Множество входов. Уравнение расширяется на несколько входов, добавляя вес для каждого. Выход — сумма произведений входов на веса.
Обучение на данных. Машинное обучение помогает найти параметры (веса) модели, используя набор данных.
8. Нейронные сети: взаимосвязанные нейроны
Сила нейронных сетей в моделировании сложных связей возникает не из-за сложных моделей, а благодаря взаимодействию множества простых нейронов.
Простые элементы, сложные сети. Нейронная сеть — это сеть простых элементов — нейронов. Их взаимодействие создаёт мощь для моделирования сложных отношений.
Слои нейронов. Нейроны организованы в слои: входной, скрытые и выходной. Глубокие сети имеют много скрытых слоёв.
Связи и веса. Каждое соединение между нейронами имеет вес, который влияет на обработку информации.
9. Функции активации: введение нелинейности
Именно нелинейное преобразование в обработке нейрона заставляет использовать функции активации.
Двухэтапная обработка. Нейрон сначала вычисляет взвешенную сумму входов, затем пропускает результат через функцию активации.
Нелинейное отображение. Функции активации вводят нелинейность, что позволяет сети учиться сложным зависимостям.
Популярные функции. Среди них пороговая, логистическая, tanh и ReLU. Выбор функции сильно влияет на работу сети.
10. Обратное распространение ошибки: обучение нейронных сетей
Машинное обучение — это поиск параметров модели с помощью данных.
Итеративное обновление весов. Обучение начинается с случайных весов, которые постепенно корректируются на основе результатов сети.
Градиентный спуск. Алгоритм ищет веса, минимизирующие ошибку, двигаясь в направлении отрицательного градиента.
Алгоритм обратного распространения. Состоит из прямого прохода и обратного, вычисляющего градиенты ошибок для каждого веса.
11. CNN и RNN: специализированные архитектуры
Адаптация структуры сети под особенности данных сокращает время обучения и повышает точность.
Архитектуры под задачи. Настройка сети под конкретные данные улучшает эффективность и качество.
Сверточные нейронные сети (CNN). Предназначены для распознавания изображений, используют совместное использование весов и пулинг для устойчивости к сдвигам.
Рекуррентные нейронные сети (RNN). Обрабатывают последовательные данные, имеют память, которая хранит выход скрытого слоя и подаёт его вместе со следующим входом.
12. Будущее: интерпретируемость и новое оборудование
В любом процессе, основанном на данных, успех зависит от того, что и как измерять.
Проблема интерпретируемости. Главный вызов глубокого обучения — понять, как модель принимает решения. Это важно для доверия и справедливости.
Новое оборудование. Потребность в быстром железе стимулирует инновации. Нейроморфные и квантовые вычисления — перспективные направления, способные изменить отрасль.
Решения на основе данных. Глубокое обучение идеально подходит для работы с большими и сложными данными, и, вероятно, сыграет ключевую роль в решении важнейших научных задач нашего времени.
Обзор отзывов
Книга «Глубокое обучение» вызывает смешанные отзывы — средний рейтинг составляет 3,91 из 5. Многие отмечают её как информативное введение в концепции глубокого обучения, особенно для тех, кто уже имеет некоторый технический опыт. Однако некоторые читатели критикуют её за излишнюю техническую сложность, несмотря на то, что книга позиционируется как доступная для широкой аудитории. Ценят исторический контекст и объяснения нейронных сетей, но математика кажется сложной для многих. Книга заслуживает похвалы за всесторонний обзор темы, но критикуется за недостаточное внимание к практическим применениям и этическим вопросам.