Во-первых, для описания сверточной нейронной сети мы должны понять, что такое нейронная сеть. Мы будем использовать общий пример для нейронных сетей — распознавание чисел.
Как получается, что мы можем распознать серию строк как числа? Как наш мозг сопоставляет их с 4?
Что, если бы вы захотели запрограммировать что-то, способное распознавать число в изображении 28*28? Что-то подобное может стать удивительно сложным.
По сравнению с классическим машинным обучением, глубокое обучение использует больше слоев для извлечения признаков, а также для классификации, тогда как классическое машинное обучение выполняет только классификацию.
Что такое нейронная сеть?
Во-первых, нейронная сеть состоит из нейронов (которые могут хранить числа), которые связаны друг с другом. Для изображения в градациях серого 28 * 28 значения нейронов могут быть цветом каждого пикселя (0 для черного и 1 для белого). У нас было бы 784 пикселя → 784 нейрона в первом слое нашей сети.
Последний слой имеет 10 нейронов, каждый для числа. Нейрон из последнего слоя с наибольшим значением — это тот, номер которого распознан.
Каждая связь между нейронами имеет вес, и мы вычисляем значение следующего нейрона, добавляя вес * значение нейронов в предыдущем слое.
Эта сумма подвергается значению, называемому «смещением», которое, если сумма превышает, делает нейрон значимо активным.
Чтобы обучаться, настраиваются веса и смещения нейронной сети, поэтому точность результата повышается.
Что такое сверточная нейронная сеть?
Ну, мы уже говорили о сверточных слоях: это скрытые слои в нейронной сети. Они способны обнаруживать закономерности и адаптированы для задач распознавания изображений. Однако вместо того, чтобы каждый нейрон был связан с каждым нейроном в предыдущих слоях, нейроны в CNN связаны только с теми, которые находятся рядом с ним. Кроме того, все они имеют одинаковый вес.
Слои инициализируются случайными числами, а к изображению применяются фильтры для обнаружения внутри него особенностей: сначала изображение упрощается, чтобы его было легче обрабатывать и понимать.
Архитектура CNN специфична. Существует слой свертки, слой пула, слой «RELU», а также полносвязный слой.
Слой свертки применяет фильтр к изображению, который может выделить определенные функции. Слой пула снижает выборку карты объектов и ускоряет ее обработку. Далее для выполнения классификации добавляется полносвязный слой.
В чем разница между CNN и рекуррентной нейронной сетью (RNN)?
CNN — это сеть с прямой связью, которая фильтрует специальные данные, тогда как RNN возвращает данные себе: CNN могут обнаруживать закономерности в пространстве, а RNN — во времени.
Мы узнаем о RNN в следующем посте.