История Си-Эн-Эн

В 1963 году ученый-компьютерщик Ларри Робертс, известный как отец компьютерного зрения, описал возможность извлечения трехмерной геометрической информации из двухмерных видов блоков в перспективе в своем исследовании под названием BLOCK WORLD. Многие исследователи по всему миру в области машинного обучения и искусственного интеллекта следили за этой работой и изучали компьютерное зрение в контексте BLOCK WORLD.

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

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

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

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

Применение нейронных сетей Convolution

1. Классификация изображений

2. НЛП

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

3. ОБНАРУЖЕНИЕ ОБЪЕКТА

Передача стиля

Почему мы используем сверточную нейронную сеть вместо глубокой нейронной сети?

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

Градиенты могут исчезать в длинной цепочке.

Терминология, используемая в сверточной нейронной сети:

Ядро: -

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

Функция активации: -

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

выход = вход x вес + смещение

Итак, мы можем видеть, что это в форме «y = MX + c». То есть это в форме прямой линии, но для получения более правильных результатов нам нужно, чтобы она была изогнутой, вот когда функция активации входит в картину.

Некоторые из известных функций активации:

Сверточные слои: -

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

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

В 2D мы будем рассматривать соседей по строкам и столбцам, используя следующую формулу

K относится к ядру или весам, а I относится к вводу. И * относится к операции свертки

Пусть a будет количеством строк, а b будет количеством столбцов. m и n задают размер матрицы.

Вот графическое представление с использованием приведенных выше формул.

Шаги:-

Шаг определяет, как наша весовая матрица должна двигаться во входных данных, т. е. прыгать на один шаг или два.

В примере мы видим, как весовая матрица перемещается в двух местах.

Прокладка: -

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

Объединение: -

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

Типы объединения: -

  1. Максимальное объединение
  2. Средний пул
  3. Глобальный пул

Слой MaxPooling: мы перемещаем окно по карте объектов, где максимальное значение в этом окне является выходным.

Средний пул: мы перемещаем окно по карте объектов, где среднее значение в этом окне является выходным.

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

Скорость обучения: -

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

ВЫБЫВАТЬ:-

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

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

Информация о наборе данных: -

  1. 60 000 размеченных цифровых изображений для обучения и 10 000 для тестирования.
  2. Изображения размером 28 на 28 пикселей в оттенках серого (784 объекта), каждое из которых представлено массивом NumPy.
  3. Метки = от 0 до 9

По сути, Модель создаст массив из 10 вероятностей, указывающих, к какому классу принадлежат цифры (от 0 до 9).

Импортируйте все библиотеки, необходимые для построения модели.

Загрузка набора данных и некоторая очистка данных

Мы изменяем изображения, чтобы получить изображения с одним цветовым каналом. Мы знаем, что значения пикселей для каждого изображения в наборе данных представляют собой целые числа без знака в диапазоне от черного до белого или от 0 до 255. Мы не знаем, как лучше всего масштабировать значения пикселей для моделирования. Таким образом, мы нормализуем значение в диапазоне от 0 до 1.

Построить модель

Модель CNN имеет два основных аспекта: извлечение признаков, состоящее из слоев свертки и объединения, и классификатор, который будет делать прогноз. Мы добавили два сверточных слоя с небольшим размером фильтра (3,3) и количеством фильтров (32), за которыми последовало максимальное объединение. Затем карты фильтров могут быть сглажены и загружены в плотные слои, которые дают окончательный результат.

Функция потерь categorical_crossentropy будет хорошей и подходящей для многоклассовой классификации.

Если у вас есть какие-либо сомнения, вы можете связаться со мной на linkedin