Заметки к уроку 3 из серии лекций DeepMind в 2020 г.

Большинство изображений, представленных здесь, взяты из слайдов третьей лекции DeepMind.

Фон:

Основываясь на моих заметках из урока 2, мы узнали, что такое нейронные сети (Рисунок 1). Теперь мы хотим использовать эти сети для обнаружения, анализа и классификации изображений, чтобы автоматизировать конкретную задачу.

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

Мы знаем, что нейронная сеть получает на вход вектор чисел. Итак, как мы будем передавать ему изображения?

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

Теперь мы знаем, как представлять изображения в виде векторов чисел для наших нейронных сетей. Давайте рассмотрим некоторые строительные блоки сверточной нейронной сети (CNN или ConvNet).

Примечания. Входы и выходы ConvNet — это тензоры, трехмерные объекты, ширина x высота x каналы (рис. 4).

Основные блоки:

Существует три основных типа слоев для построения архитектуры ConvNet:

1. Полносвязный слой: традиционный слой, который соединяет каждый элемент входного вектора с каждой скрытой единицей (нейроном) в этом слое (рис. 5).

2. Сверточный уровень:основной строительный блок ConvNet, выполняющий большую часть тяжелой вычислительной работы. Этот слой применяет распределение веса для сохранения топологии изображения. Ядро (фильтр или маленькое окно) скользит по изображению и выдает выходное значение в каждой позиции. Затем мы сворачиваем несколько ядер и получаем несколько карт функций или каналов (рис. 6).

Варианты операции свертки (таблица 1):

3. Слой объединения:слой, который обычно вставляется между последовательными слоями Conv. Этот слой вычисляет среднее или максимальное для небольших окон, чтобы уменьшить разрешение. Таким образом, уменьшается количество параметров и вычислений в сети (Рисунок 7).

Что такое сверточные нейронные сети?

сверточная нейронная сеть(CNN или ConvNet ) представляет собой последовательность слоев, и каждый слой ConvNet преобразует один объем активаций в другой с помощью дифференцируемой функции. ConvNets часто используются для классификации изображений и других задач компьютерного зрения.

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

Во-первых, давайте вспомним, как представить нейронную сеть в виде вычислительного графа из предыдущих заметок. (рис. 8).

Затем мы упростим приведенную выше диаграмму, чтобы включить параметры и потери (рисунок 9).

Наконец, мы чередуем сверточный и объединяющий слои для создания ConvNet, в частности, LeNet-5-a convnet для распознавания рукописных цифр (рис. 10).

Примечание. Подвыборка = объединение

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

Давайте рассмотрим архитектуру более подробно (Рисунок 11).

Первый слой — это входной слой с размером карты объектов 32 x 32 x 1 (изображение в градациях серого 32 x 32).

Затем у нас есть первый сверточный слой из 6 фильтров размером 5 x 5 и шагом 1. Функция активации, используемая в этом слое, — tanh. Результирующая карта объектов имеет размер 28 x 28 x 6.

Далее у нас есть первый средний объединяющий слой с размером фильтра 2 x 2 и шагом 2. Этот слой уменьшает разрешение изображения, не влияя на количество каналов. Результирующая карта объектов имеет размеры 14 x 14 x 6.

Далее идет второй сверточный слой из 16 фильтров с размером фильтра 5 x 5 и шагом 1. Результирующая карта признаков имеет размер 10 x 10 x 16. В этом слое также используется активация tanh.

Затем у нас есть второй средний объединяющий слой с размером фильтра 2 x 2 с шагом 2. Результирующая карта признаков уменьшается до 5 x 5 x 16.

Последний слой свертки имеет 120 фильтров с размером фильтра 5 x 5 и шагом 1. Опять же, в этом слое используется функция активации tanh. Размер выходной карты объектов составляет 1 x 1 x 120.

Далее у нас есть первый полносвязный слой с 84 нейронами. Мы также используем tanh в качестве функции активации в этом слое. Выходной размер 84.

Наконец, у нас есть последний полносвязный слой с 10 нейронами. Этот слой использует функцию активации Softmax, чтобы дать вероятность точки данных в каждом из 10 классов. Затем выбирается класс с наибольшим значением.

Вот и вся архитектура модели LeNet-5. Теперь давайте углубимся в другие модели.

Тематические исследования:

Давайте рассмотрим некоторые современные CNN, победившие в конкурсе ImageNet Large Scale Visual Recognition Challenge (рис. 12).

  • AlexNet (2012 г.): архитектура похожа на LeNet-5, но она глубже и больше: пять слоев Conv расположены друг над другом, за которыми следуют три полностью связанных слои (рис. 13).

  • VGGNet(2014): очень глубокая сеть. Он складывает множество сверточных слоев перед объединением. Более того, он использует те же свертки, чтобы избежать снижения разрешения. Архитектура VGGNet имеет до 19 уровней с ядрами 3 x 3 и пулом только 2 x 2 (рис. 14).

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

Помимо распознавания изображений:

Помимо распознавания изображений, мы можем использовать консети для выполнения других задач компьютерного зрения, таких как: (рисунок 16)

  • Распознавание изображений:идентификация или классификация одного или нескольких объектов на изображении.
  • Обнаружение объектов:для локализации и классификации одного или нескольких объектов на изображении, в результате чего для каждого обнаруженного объекта создаются ограничивающие рамки.
  • Семантическая сегментация: маркировка одной или нескольких конкретных областей интереса на изображении. Он рассматривает несколько объектов в одной категории как один объект.
  • Сегментация экземпляров:обнаружение и выделение каждого интересующего объекта на изображении. Он идентифицирует отдельные объекты в этих категориях.

Что дальше?

Следующие — заметки из лекции 4 из серии DeepMind по глубокому обучению: Видение за пределами классификации: Задача I: Обнаружение объектов.