Я новичок в мире ИИ. Я изучал курсы по машинному обучению и очарован мощью глубокого обучения и особенно CNN. Прежде чем углубляться в материал CNN, давайте начнем с базовой искусственной нейронной сети (ANN). Вот общее модельное представление нейронной сети.

Все идет нормально. Просто установите оптимизатор и функцию потерь в зависимости от вашей задачи. Затем получите входные данные в скрытые слои, пусть он выполнит работу по поиску взаимосвязей, чтобы предсказать цель. Не устраивает результат? Добавляйте больше слоев и узлов, тренируйтесь и повторяйте.

Он работает большую часть времени… Пока не перестанет.

Общая модель ИНС плохо работает с задачами изображения, потому что

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

Здесь на помощь приходит Сверточная нейронная сеть (CNN).

CNN может решить эти проблемы, поскольку он может

  • фиксируя пространственные отношения.
  • распознавание шаблонов, даже если они были сдвинуты или повернуты (инвариант перевода)

Хочу поделиться отрывком из книги AI 2041, стр. 59, написанной Чэнь Цюфань и Кай-Фу Ли. Это объясняет, как процесс CNN похож на то, как работают человеческие глаза.

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

Самый низкий уровень CNN — это большое количество фильтров, которые многократно применяются к изображению. Каждый из этих фильтров может видеть только небольшие непрерывные участки изображения, как и рецептивные поля… Верхние слои CNN иерархически организованы, как неокортекс.

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

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

В то время как соседние пиксели часто локально коррелируют друг с другом. Это фиксируется путем применения фильтров.

Так что же это за фильтры? И как мы можем его настроить? Вы можете спросить.

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

Как правило, первые слои сети извлекают функции низкого уровня, такие как ребра, а более глубокие уровни объединяют эти функции в более абстрактные и часто значимые формы…

На более глубоких слоях регионы затем преобразуются в одномерные слои, полностью связанные, как традиционные ИНС.

Что дальше

Источник: Сверточные нейронные сети в Python — DataCamp