Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция №11 29.11.pptx
Скачиваний:
14
Добавлен:
16.12.2023
Размер:
7.11 Mб
Скачать

Дизайн И. Гайдель 2007

Искусственный интеллект, машинное и глубокое обучение

Краткая история машинного обучения

Деревья решений — это иерархические структуры, которые позволяют классифицировать входные данные или предсказывать выходные значения по заданным исходным значениям (слайд). Они легко визуализируются и интерпретируются. Деревья решений, формируемые на основе данных, заинтересовали исследователей в 2000-х, и к 2010 году им часто отдавали предпочтение перед ядерными методами.

В частности, алгоритм «Случайный лес» (Random Forest) предложил надежный и практичный подход к обучению на основе деревьев решений. Он создает большое количество специализированных деревьев решений и в последующем объединяет выдаваемые ими результаты.

Дизайн И. Гайдель 2007

Искусственный интеллект, машинное и глубокое обучение

Краткая история машинного обучения

Отличительные черты глубокого обучения

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

Глубокое обучение также существенно упрощает решение проблем, полностью автоматизируя важнейший шаг в машинном обучении, выполнявшийся раньше вручную:

конструирование признаков.

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

Однако точные представления, необходимые для решения сложных задач, обычно нельзя получить такими способами. Поэтому приходилось прилагать большие усилия, чтобы привести исходные данные к виду, более пригодному для обработки этими методами. Это называется конструированием признаков.

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

Дизайн И. Гайдель 2007

Искусственный интеллект, машинное и глубокое обучение

Краткая история машинного обучения

Инвестиции

В 2011 году, как раз перед тем, как глубокое обучение вышло на лидирующие позиции, общие инвестиции венчурного капитала в ИИ по всему миру составили меньше одного миллиарда долларов — эти деньги почти полностью ушли на практическое применение методов поверхностного машинного обучения.

К 2015 году вложения превысили пять миллиардов, а в 2017 достигли ошеломляющих 16 миллиардов (слайд). Кроме этого, крупные компании, такие как Google, Amazon и Microsoft, инвестировали деньги в исследования, проводившиеся внутренними подразделениями, и объемы этих инвестиций почти наверняка превысили вложения венчурного капитала.

Машинное обучение — и глубокое обучение в частности — заняло центральное место в стратегии продуктов многих технологических гигантов. В конце 2015 года генеральный директор Google Сундар Пичаи отметил: «Машинное обучение — это основа для решительной смены системы координат в оценивании всей нашей деятельности. Мы вдумчиво применяем его во всех наших продуктах, будь то поиск, реклама, YouTube или Play. И мы с самого начала — и систематически — применяем машинное обучение во всех этих областях» .

Дизайн И. Гайдель 2007

Искусственный интеллект, машинное и глубокое обучение

Краткая история машинного обучения

Одним из ключевых факторов, обусловивших приток новых лиц в глубокое обучение, стала демократизация инструментов, используемых в данной области. На начальном этапе глубокое обучение требовало значительных знаний и опыта программирования на C++ и владения CUDA, чем могли похвастаться очень немногие.

В настоящее время для исследований в области глубокого обучения достаточно базовых навыков программирования на Python. Это вызвано прежде всего развитием Theano и позднее TensorFlow (двух фреймворков для Python, реализующих операции с тензорами, которые поддерживают автоматическое дифференцирование и значительно упрощают реализацию новых моделей), а также появлением дружественных библиотек (например, Keras), которые делают работу с глубоким обучением таким же простым делом, как манипулирование кубиками лего.

Дизайн И. Гайдель 2007

Искусственный интеллект, машинное и глубокое обучение

Краткая история машинного обучения

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

Эти важнейшие идеи можно разделить на три категории:

простота — глубокое обучение избавляет от необходимости конструировать признаки, заменяя сложные, противоречивые и тяжелые конвейеры простыми обучаемыми моделями, которые обычно строятся с использованием 5–6 тензорных операций;

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

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

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

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

Рассмотрим конкретный пример нейронной сети, которая обучается классификации рукописных цифр.

Перед нами стоит задача: реализовать классификацию черно-белых изображений рукописных цифр (28 × 28 пикселей) по десяти категориям (от 0 до 9).

Для этого можно использовать набор данных MNIST. Этот набор содержит 60 000 обучающих изображений и 10 000 контрольных изображений, собранных Национальным институтом стандартов и технологий США (National Institute of Standards and Technology — часть NIST в аббревиатуре MNIST) в 1980-х годах. Некоторые образцы изображений рукописных цифр из набора MNIST можно видеть на слайде.

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

В машинном обучении категория в задаче классификации называется классом. Элементы исходных данных именуются образцами. Класс, связанный с конкретным образцом, называется меткой.

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

Фактически методика глубокого обучения заключается в объединении простых слоев, реализующих некоторую форму поэтапной очистки данных. Модель глубокого обучения можно сравнить с ситом, состоящим из последовательности фильтров — слоев — все более тонкой работы с данными.

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

В нашем случае сеть состоит из последовательности слоев, которые являются тесно связанными (их еще называют полносвязными) нейронными слоями. Последний слой — это десятипеременный слой классификации, возвращающий массив с десятью оценками вероятностей (в сумме дающих 1). Каждая оценка определяет вероятность принадлежности текущего изображения к одному из десяти классов цифр.

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Чтобы подготовить модель к обучению, нужно настроить еще три параметра для этапа компиляции:

оптимизатор — механизм, с помощью которого сеть будет обновлять себя, опираясь на наблюдаемые данные и функцию потерь;

функцию потерь — которая определяет, как сеть должна оценивать качество своей работы на обучающих данных и, соответственно, корректировать ее в правильном направлении;

метрики для мониторинга на этапах обучения и тестирования — здесь нас будет интересовать только точность (доля правильно классифицированных изображений).

Перед обучением мы выполним предварительную обработку данных, преобразовав в форму, которую ожидает получить нейронная сеть, и масштабируем их так, чтобы все значения оказались в интервале [0, 1].

Исходные данные — обучающие изображения — хранятся в трехмерном массиве (60000, 28, 28) типа uint8, значениями в котором являются числа в интервале [0, 255]. Мы преобразуем его в массив (60000, 28 * 28) типа float32 со значениями в интервале [0, 1]

Дизайн И. Гайдель 2007

Математические основы нейронных сетей

Представление данных

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

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

Что же такое тензор? Фактически тензор — это контейнер для данных, обычно числовых. Проще говоря, контейнер для чисел.

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

Соседние файлы в папке Лекции