3. 2000-е годы: В начале 2000-х годов развитие вычислительных мощностей и доступность больших объемов данных привели к росту интереса к глубокому обучению и CNN. В 2012 году команда, возглавляемая Джеффри Хинтоном, представила AlexNet – архитектуру CNN, которая значительно улучшила результаты в задаче распознавания изображений на конкурсе ImageNet. Это событие ознаменовало начало "золотого века" глубокого обучения. AlexNet использовала глубокую архитектуру с восемью слоями, включая слои свертки и полносвязные слои, и стала первой моделью, использующей GPU для ускорения вычислений.

4. Современные достижения: В последующие годы были разработаны такие архитектуры, как VGG, GoogLeNet, ResNet и многие другие. Эти сети показали выдающиеся результаты в различных задачах компьютерного зрения и вдохновили на дальнейшие исследования и развитие технологий глубокого обучения. Например, VGGNet упростила архитектуру, используя последовательные слои свертки с маленькими ядрами, а ResNet ввела концепцию остаточных связей, позволяющих строить очень глубокие сети.

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

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

Глава 1. Основные концепции и архитектура CNN

– Нейронные сети и их компоненты

– Развитие архитектуры CNN

– Ключевые элементы: свертка, активация, пулинг, нормализация


Нейронные сети и их компоненты

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


Нейрон (перцептрон)

Нейрон, или перцептрон, является основным строительным блоком нейронной сети. Он работает следующим образом:

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

2. Суммирование: Входные сигналы взвешиваются и суммируются. К этой сумме добавляется смещение (bias), которое помогает модели лучше адаптироваться к данным.

3. Активация: Применяется функция активации, которая добавляет нелинейность в модель и позволяет сети учить сложные зависимости.

4. Выход: Итоговое значение передается дальше по сети или используется как итоговый результат.

Пример

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

1. Входные сигналы: Представьте, что у нас есть изображение размером 3x3 пикселя. Каждый пиксель имеет значение интенсивности от 0 (черный) до 255 (белый). Пусть эти значения будут: 45, 70, 120, 80, 200, 150, 30, 60, 90.

2. Суммирование: Каждый пиксель умножается на свой весовой коэффициент. Например, весовые коэффициенты могут быть установлены случайным образом перед обучением: 0.2, -0.3, 0.4, 0.1, -0.5, 0.7, 0.3, -0.6, 0.9. Нейрон также имеет смещение (bias), допустим, 1.0. Суммирование происходит следующим образом: