LeNet

Модель LeNet - одна из самых простых моделей архитектуры. Мы начинаем с двухмерного ввода, поскольку LeNet обучается на черно-белых входах. Все слои свертки в LeNet используют свертку 5x5 без заполнения с момента заполнения. Для объединения слоев в модели используется среднее объединение. После последнего уровня объединения к нему присоединяется полностью связанный слой и, наконец, еще один полностью связанный слой для прогнозирования выходных данных.

Мы видим, что отсутствие отступов приводит к сужению ввода на каждом уровне. Чтобы добавить нелинейности, LeNet использует функцию сигмоида / tanh вместо ReLU, которая сегодня более популярна. Хотя эта модель довольно старая, многие нейронные сети сегодня по-прежнему используют шаблон, аналогичный модели: один или несколько сверточных слоев, за которыми следует объединение, а затем еще один сверточный слой, за которым следует слой объединения, за которым следует полностью связанный слой и, наконец, выходной слой.

AlexNet

AlexNet содержит 5 сверточных слоев, за которыми следуют 3 полностью связанных слоя, и принимает входные данные формы 227x227x3. Помимо архитектуры, эта модель отличается от LeNet следующим образом:

  1. Использует максимальный пул вместо среднего пула
  2. Использует отступы в некоторых слоях
  3. Использует ReLU в качестве функции нелинейности
  4. Использует выпадение после каждого полностью подключенного слоя

VGG16

VGG16 отличается от AlexNet тем, что он использует свертку 3x3 для всех сверточных слоев, а также использует максимальное объединение 2x2. После сверточных слоев следуют 3 полностью связанных слоя. Число 16 в VGG16 означает, что имеется 16 слоев, имеющих веса.

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

ResNets

По нашей интуиции, точность нейронной сети должна увеличиваться по мере того, как мы углубляемся. Однако проблема с очень глубокой нейронной сетью - исчезающий градиент. Концепция исчезающего градиента заключается в том, что во время обратного распространения, когда мы движемся назад, градиенты имеют тенденцию становиться меньше. Это заставит более ранние слои учиться медленнее по сравнению с более поздними слоями и приведет к снижению точности. ResNet решает для нас проблему исчезающего градиента, но прежде чем погрузиться в остаточную сеть, нам сначала нужно понять, что делает остаточный блок.

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

ResNet - это просто нейронная сеть, состоящая из одного или нескольких остаточных блоков.

Мы видим, что в ResNet по мере увеличения количества слоев ошибка обучения уменьшается, что не всегда верно в простой нейронной сети.

Начальная сеть

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

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

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