Сверточная нейронная сеть
Замечание
Дополнительные сведения см. на вкладке "Текст и изображения ".
Возможность использовать фильтры для применения эффектов к изображениям полезна в задачах обработки изображений, таких как программное обеспечение редактирования изображений. Однако цель компьютерного зрения часто заключается в извлечении смысла или, по крайней мере, полезных сведений из изображений; это требует создания моделей машинного обучения, которые обучены распознавать особенности на основе больших объемов существующих изображений.
Подсказка
В этом уроке предполагается, что вы знакомы с основными принципами машинного обучения, и что у вас есть концептуальные знания о глубоком обучении с нейронными сетями. Если вы не знакомы с машинным обучением, рассмотрите возможность работы с модулем "Общие сведения о концепциях машинного обучения " в Microsoft Learn.
Одной из наиболее распространенных архитектур модели машинного обучения для компьютерного зрения является сверточная нейронная сеть (CNN), тип архитектуры глубокого обучения. CNN используют фильтры для извлечения числовых карт функций из изображений, а затем передают значения признаков в модель глубокого обучения для создания прогноза меток. Например, в сценарии классификации изображений метка представляет основную тему изображения (иными словами, о чём это изображение?). Вы можете обучить модель CNN, используя изображения различных видов фруктов (таких как яблоко, банан и апельсин), так что прогнозируемая метка является типом фрукта на данном изображении.
В процессе обучения для CNN ядра фильтров изначально определяются с использованием случайных значений веса. Затем, по мере продвижения процесса обучения, прогнозы моделей оцениваются в соответствии с известными значениями меток, а веса фильтров корректируются для повышения точности. В конечном итоге обученная модель классификации изображений фруктов использует весы фильтров, которые лучше всего извлекают функции, которые помогают определить различные виды фруктов.
На следующей диаграмме показано, как работает CNN-модель для классификации изображений.
- Изображения с известными метками (например, 0: яблоко, 1: банан или 2: апельсин) передаются в сеть для обучения модели.
- Один или несколько уровней фильтров используются для извлечения признаков из каждого образа, так как оно отправляется через сеть. Ядра фильтров начинаются со случайным образом назначенных весов и создают массивы числовых значений, называемых картами признаков. Дополнительные слои могут выполнять "пулирование" или "редукцию" карт признаков для создания небольших массивов, которые подчеркивают ключевые визуальные признаки, извлеченные фильтрами.
- Карты признаков преобразуются в одномерный массив значений признаков.
- Значения признаков передаются в полностью подключенную нейронную сеть.
- Выходной слой нейронной сети использует функцию softmax или аналогичную для получения результата, который содержит значение вероятности для каждого возможного класса, например, [0.2, 0.5, 0.3].
Во время обучения вероятности выходных данных сравниваются с фактической меткой класса - например, изображение банана (класса 1) должно иметь значение [0,0, 1.0, 0,0]. Разница между прогнозируемыми и фактическими оценками классов используется для вычисления потери в модели, а весы в полностью подключенной нейронной сети и ядра фильтров в слоях извлечения признаков изменяются для уменьшения потери.
Процесс обучения повторяется в течение нескольких эпох , пока не будет изучен оптимальный набор весов. Затем весовые значения сохраняются и модель можно использовать для прогнозирования меток для новых изображений, для которых метка неизвестна.
Замечание
Архитектуры CNN обычно включают несколько слоев сверточных фильтров и дополнительные слои, чтобы уменьшить размер карт функций, ограничить извлеченные значения и в противном случае управлять значениями признаков. Эти слои были опущены в этом упрощенном примере, чтобы сосредоточиться на ключевой концепции, которая заключается в том, что фильтры используются для извлечения числовых признаков из изображений, которые затем используются в нейронной сети для прогнозирования меток изображений.