Во-первых, для описания сверточной нейронной сети мы должны понять, что такое нейронная сеть. Мы будем использовать общий пример для нейронных сетей — распознавание чисел.

Как получается, что мы можем распознать серию строк как числа? Как наш мозг сопоставляет их с 4?

Что, если бы вы захотели запрограммировать что-то, способное распознавать число в изображении 28*28? Что-то подобное может стать удивительно сложным.

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

Что такое нейронная сеть?

Во-первых, нейронная сеть состоит из нейронов (которые могут хранить числа), которые связаны друг с другом. Для изображения в градациях серого 28 * 28 значения нейронов могут быть цветом каждого пикселя (0 для черного и 1 для белого). У нас было бы 784 пикселя → 784 нейрона в первом слое нашей сети.

Последний слой имеет 10 нейронов, каждый для числа. Нейрон из последнего слоя с наибольшим значением — это тот, номер которого распознан.

Каждая связь между нейронами имеет вес, и мы вычисляем значение следующего нейрона, добавляя вес * значение нейронов в предыдущем слое.

Эта сумма подвергается значению, называемому «смещением», которое, если сумма превышает, делает нейрон значимо активным.

Чтобы обучаться, настраиваются веса и смещения нейронной сети, поэтому точность результата повышается.

Что такое сверточная нейронная сеть?

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

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

Архитектура CNN специфична. Существует слой свертки, слой пула, слой «RELU», а также полносвязный слой.

Слой свертки применяет фильтр к изображению, который может выделить определенные функции. Слой пула снижает выборку карты объектов и ускоряет ее обработку. Далее для выполнения классификации добавляется полносвязный слой.

В чем разница между CNN и рекуррентной нейронной сетью (RNN)?

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

Мы узнаем о RNN в следующем посте.