vse-knigi.com » Книги » Разная литература » Зарубежная образовательная литература » Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун

Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун

Читать книгу Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун, Жанр: Зарубежная образовательная литература / Науки: разное. Читайте книги онлайн, полностью, бесплатно, без регистрации на ТОП-сайте Vse-Knigi.com
Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун

Выставляйте рейтинг книги

Название: Как учится машина. Революция в области нейронных сетей и глубокого обучения
Автор: Ян Лекун
Дата добавления: 14 апрель 2025
Количество просмотров: 46
Возрастные ограничения: Обратите внимание! Книга может включать контент, предназначенный только для лиц старше 18 лет.
Читать книгу
1 ... 42 43 44 45 46 ... 82 ВПЕРЕД
Перейти на страницу:
смотрит на одно и то же место, один из 59 других нейронов можно настроить для обнаружения менее четких контуров.

За слоем ReLU обычно следует слой пулинга, выполняющего операции аналогичные тем, которые делают сложные клетки Хьюбела и Визеля. Карта признаков на выходе слоя ReLU разделена на окна, или, скорее, «тайлы» размером, например, 4 × 4, которые не перекрываются. Если карта признаков имеет размер 1000 × 1000, то на ней будет 250 × 250 тайлов размером 4 × 4. Каждый нейрон в слое пулинга берет одно из этих окон и вычисляет его максимальное значение. Другими словами, в окне имеется 16 чисел, и нейрон выдает на выходе наибольшее из них. Это называется «максимальным пулингом». Для каждого окна на всех картах признаков есть один такой нейрон. Всего на выходе слоя будет 60 × 250 × 250 нейронов.

Рис. 6.6. Сверточная сеть

Сверточная сеть состоит из укладки трех типов слоев: свертки, нелинейной передаточной функции и пулинга в сочетании с подвыборкой. Здесь первый слой состоит из четырех карт признаков, каждая из которых сворачивает входное изображение с набором весов (5 × 5 в данном примере). Результат передается через передаточную функцию. Каждая карта признаков следующего слоя, аналогично сложным клеткам, объединяет ответы небольшого окна нейронов из соответствующей карты признаков в предыдущем слое. Выходы слоя пулинга обладают более низким разрешением по сравнению с их входами. Это делает представление устойчивым в случае небольших смещений характерных паттернов во входном изображении. На следующем слое каждая карта признаков выполняет свертку всех карт признаков предыдущего слоя и добавляет результаты. За ним также следует слой пулинга. Слои укладываются подобным образом до самого выходного слоя.

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

Сверточная сеть состоит из набора слоев сверток, ReLU и пулинга. Типовая архитектура ее такова:

Conv → ReLU → Pool → Conv → ReLU → Pool → Conv → ReLU → Conv

В настоящее время сверточная сеть может иметь около сотни таких слоев. Эталоном можно считать сеть ResNet-50 (младший брат которой, ResNet-34, показан на рис. 6.8). Этот тип сети включает в себя «короткие замыкания» в соединениях между слоями. Она была предложена в 2015 г. Каймингом Хэ, исследователем из лаборатории Microsoft Research в Пекине. В дальнейшем Кайминг перешел на работу в FAIR в Менло-Парке, Калифорния.

Рис. 6.7. Визуализация паттернов, обнаруживаемых единицами сверточной сети на разных слоях

Паттерны первого слоя очень похожи на то, что нейробиологи наблюдают в зрительной коре головного мозга млекопитающих (источник: Zeiler and Fergus, NYU).

Рис. 6.8. Сверточная сеть ResNet-34 Кайминга Хэ

В этой сети 34 слоя (не считая передаточных функций), как и следует из ее названия. Особенностью данной структуры является наличие «чехарды» соединений, называемых остаточными соединениями, которые обходят пары слоев. Старший брат этой сети – ResNet-50 стал стандартом в распознавании изображений (источник: Kaiming He).

Рис. 6.9. Каждый круг представляет собой сверточную сеть определенного типа

По оси X отложено количество операций, необходимых для расчета вывода изображения (в миллиардах), по оси Y – скорость распознавания в ImageNet. Размер круга представляет количество параметров (в миллионах), то есть занятость памяти (источник: Alfredo Canziani, NYU).

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

Подведем итоги

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

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

Обнаружение, локализация, сегментация и распознавание объектов

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

Одним из первых применений данной идеи было чтение рукописных слов: символы в слове или почтовом индексе часто касаются друг друга, и их трудно разделить, чтобы распознавать по отдельности. Теперь было достаточно лишь перетащить окно ввода сверточной сети слева направо по всему слову (рис. 6.10).

Рис. 6.10. Применение сверточной сети для обнаружения объекта на большом изображении со скользящим окном

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

Рис. 6.11. Сверточная сеть применяется к изображению для обнаружения, локализации и распознавания нескольких объектов (рукописные цифры)

Столбцы слева представляют собой активацию модулей на трех слоях сети. Последовательность выхода указывает для каждой позиции входного окна распознанную категорию цифры, которая находится в середине окна. Модуль постобработки извлекает из него последовательность символов с наивысшим баллом. Этот принцип будет широко использоваться в будущем для обнаружения объектов на естественных изображениях.

Для каждой позиции во входном окне сеть создает категорию символа, находящегося в центре. Сверточная сеть легко выполняет эти вычисления для всех возможных входных окон. Достаточно адаптировать размеры слоев к размерам входа и вычислить свертки на всем изображении (рисунки 6.10 и 6.11). Выход представляет собой серию векторов, каждый из которых зависит от того или иного входного окна.

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

1 ... 42 43 44 45 46 ... 82 ВПЕРЕД
Перейти на страницу:
Комментарии (0)