Сверточные нейронные сети

Слои свертки:

Плотные слои изучают глобальные закономерности. Слои свертки изучают локальные закономерности. Местные узоры включают края, текстуры, цвет и т. д.

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

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

Умножение матриц (свертки) помогает обнаружить частотную составляющую. Матрицы Собеля помогли идентифицировать ядро, как показано ниже. Лапласиан также обнаруживает, но не ясно для этого изображения. Подробнее о градиентах изображений можно прочитать здесь.

С другой стороны, в процессе свертки Convnets извлекают импортные функции из изображения (формы и цвета ядер), а затем они передаются в плотный слой. Тогда плотные слои смогут распознать любое ядро.

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

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

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

для цветных изображений у нас есть глубина три, а для изображений в градациях серого у нас есть глубина один.

Операция свертки извлекает патчи из входной карты объектов и применяет одно и то же преобразование ко всем этим патчам, создавая выходную карту объектов. Карта выходных объектов имеет одинаковую высоту и ширину, но разную глубину в зависимости от параметра сверточного слоя. Эта глубина больше не является форматом RGB, теперь они называются фильтрами. Фильтры содержат важные данные, такие как ядро, которое закодировано. Некоторые фильтры видят цвет, некоторые видят края и пытаются найти новые черты, о которых люди никогда раньше не задумывались.

У свертки есть 2 ключевых параметра для настройки:

1.Размер извлеченного из образа патча. Обычно это либо 3*3, либо 5*5.

2. Глубина выходной карты объектов, которая представляет собой количество фильтров, вычисленных свертками. Как правило, лучше использовать степени 2 (32,64,128).

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

Шаги и отступы:

Заполнение вводится, когда нам нужны одинаковые пространственные размеры как для ввода, так и для вывода. Шаги решают, насколько уменьшить размер высоты и ширины. Шаговые свертки редко используются на практике, хотя они могут пригодиться для некоторых типов моделей; хорошо быть знакомым с концепцией. Для понижения дискретизации вместо использования шагов мы используем методы объединения. Под синими квадратами показано исходное изображение, шаг которого равен 2 с инициированным отступом (белые квадраты).

Объединение слоев

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

  1. Max Pooling: извлечение максимального значения из окна.
  2. Объединение средних значений: извлечение среднего значения из окна.

На приведенной ниже диаграмме видно, что построение нейронной сети с плотными слоями начинает переоснащаться на 150-й эпохе. На 150-й эпохе точность обучения составляет 85%, а точность проверки — почти 75%.

Когда добавляются сверточные слои, даже переоснащение начинается с 100-й эпохи, точность обучения составляет 95%, а точность проверки составляет почти 85%. Таким образом, сверточные слои и слои с максимальным объединением помогают обобщать лучше, чем просто плотные слои.

Коды для сверточных слоев и слоев max-pooling можно найти здесь.