Вы когда-нибудь задумывались, как компьютеры могут распознавать и классифицировать изображения? Как работает распознавание лиц и компьютерное зрение?
Сверточные нейронные сети (также известные как ConvNets или CNN) - это тип нейронной сети для классификации изображений. Они могут взять изображение и классифицировать его по разным категориям, например, кошка или собака!
Сверточные нейронные сети 🦾
Сверточные нейронные сети или CNN - это тип нейронной сети, которая особенно хороша для определения функций и выполнения распознавания изображений. Основное отличие CNN от обычной нейронной сети - это ее сверточные слои, которые позволяют CNN выделять шаблоны и общие края в изображениях. (Я также освещал CNN ранее здесь)
Теперь давайте разделим CNN на несколько компонентов:
- Сверточный слой. Сверточный фильтр сглаживает изображение и отвечает за идентификацию функций.
- Функция активации ReLU: добавляет нелинейность и полосы части изображения.
- Уровень пула - концентрирует вводимую информацию и уменьшает параметр.
- Dropout Layers - предотвращает переоснащение и деактивирует нейроны в случайном порядке.
- Подключенный слой - последняя стандартная нейронная сеть прямой связи, классифицирующая изображение по метке.
Сверточный слой 👩💻
Это слой, отвечающий за распознавание деталей в изображении. Фильтр перемещается по изображениям, чтобы обнаруживать закономерности.
Думайте о фильтре как о фонарике, освещающем каждое изображение. Область, на которую попадает фонарик внутри входного изображения (синяя сетка), называется воспринимающим полем (выделено серым). Однако фонарик не освещает все одинаково, вместо этого фильтр фонарика состоит из массива весов. Это означает, что определенные части изображения оцениваются по-разному.
Значения в принимающем поле умножаются на значения в массиве весов из фильтра и складываются вместе, чтобы сформировать аспект карты характеристик (показанной в верхней сетке). Эта карта функций создается как фильтр, свертывающий или циклически перебирающий все пиксели входного изображения.
Функция активации ReLU 📈
Функция ReLU (Rectified Linear Unit Layer) помогает добавить некоторую нелинейность после всей системы линейных операций в сверточном слое. Функция ReLU также помогает устранить проблему исчезающего градиента, которая, в целом, заключается в том, что слои сети обучаются медленнее к концу из-за экспоненциального уменьшения градиента ошибки.
Вот как работает ReLU:
f (х) = макс (0, х)
Если это выглядит запутанным, не волнуйтесь, давайте разберемся ...
ReLU (x) = x, если x ≥ 0
В противном случае 0, если x ‹0
Приведенное выше уравнение означает, что все отрицательные значения меняются на ноль, а все остальное остается неизменным.
Слой объединения 💫
Назначение уровня объединения состоит в том, чтобы уменьшить параметр ввода, воспринимая его как концентрацию входной информации. (Итак, да, как и в случае с концентратом сока, мы уменьшаем дополнительный контент, который нам не нужен.) Слой объединения не всегда нужен и применяется только в тех случаях, когда нам нужно понизить выборку данных. .
Максимальное объединение - распространенный вариант для уровня объединения. Он работает аналогично сверточному фильтру, свертывая себя через входные данные. При максимальном объединении к входному объему применяется фильтр, чтобы получить только наибольшее число в этой подобласти входного изображения. Причина этого слоя заключается в том, что как только мы заметили конкретную особенность в исходном объеме ввода, точное местоположение не имеет такого значения, как относительное местоположение к другим функциям.
Вот пример максимального объединения: фильтр свертывает все значения и принимает максимальное значение в каждой подобласти (серая область слева).
Слои исключения 📍
Этот уровень имеет решающее значение для предотвращения переобучения нейронной сети. Переобучение - это когда веса и смещения в нейронной сети настолько настроены на данные обучения, что они больше не применимы к другим приложениям за пределами данные обучения. Нейронная сеть имеет точность для обучающих данных, но не применяется к другим данным. Во избежание переобучения используются выпадающие слои.
Они «отбрасывают» случайную часть активаций нейронов в этом слое, устанавливая для них ноль. Это предотвращает активизацию и передачу определенных нейронов, таким образом обучая другие части сети, чтобы они по-прежнему давали тот же правильный ответ без некоторых нейронов. .
После обучения сети этот уровень больше не нужен и по иронии судьбы «выпал» или деактивирован.
Связанный слой 💻
Это последняя стандартная нейронная сеть с прямой связью, которая берет данные из предшествующих слоев и выводит один вектор значений, содержащих вероятности для каждый из классов. Итак, чтобы разбить это на части, цель этого слоя - предоставить окончательную классификацию изображения в виде ярлыка. Эта нейронная сеть также должна пройти через процесс обратного распространения и исправления ошибок, чтобы найти наиболее точные веса и смещения.
Если вам нужно освежиться в нейросетях, ознакомьтесь с моей предыдущей статьей здесь.
Другие приложения ⚙️
CNN имеют множество реальных приложений!
Их основные способности:
- Группировать ~ сортируйте похожие объекты и группируйте их вместе.
- Распознавать ~ понимать объекты на изображении.
- Классифицируйте ~ классифицируйте визуальные элементы объекта и отсортируйте их по категориям.
Вот несколько примеров возможных применений CNN:
- Здравоохранение - точный медицинский анализ изображений.
- Реклама - персонализированная реклама на основе данных.
- Document Reader - анализ почерка, сканирование чьего-либо письма.
- Распознавание лиц - детализация лица человека.
- Климат - лучшее понимание погодных условий
- Автономные автомобили - обнаружение объектов в беспилотных автомобилях.
Ключевые выводы 📌
- Сверточные нейронные сети - это инструмент для распознавания изображений и обработки, то есть они были разработаны для обработки данных пикселей изображения.
- Сверточные нейронные сети позволяют выполнять более быстрый и эффективный анализ изображений на основе функций
- Сверточные нейронные сети состоят из нескольких компонентов, таких как сверточный фильтр, функция активации ReLU, уровни объединения, слои исключения и полносвязный слой!
Если вы хотите читать больше статей в будущем, подпишитесь на мою учетную запись!
А пока не стесняйтесь обращаться ко мне по адресу [email protected] или связываться со мной в LinkedIn.
Вы также можете прочитать мою ежемесячную рассылку здесь!
Или посетите мой личный сайт, чтобы увидеть мое полное портфолио здесь!
До следующего раза! 👋