Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Статьи

Понимание CNN через Excel

В публикации объясняется работа сверточных нейронных сетей (CNN) через создание простой модели в Excel. Рассматриваются принципы восприятия изображений машинами, от классического машинного обучения к CNN, включая кросс-корреляцию и фильтры. Это помогает понять фундаментальные вычисления глубокого обучения без сложных инструментов.

18 ноября 2025 г.
12 мин
7

Искусственный интеллект часто воспринимается как загадочная система. Известно, что она извлекает знания из данных, но возникает вопрос: каким образом это происходит на самом деле.

В этой публикации будет создана небольшая сверточная нейронная сеть (CNN) прямо в таблицах Excel, чтобы разобраться поэтапно в механизме работы CNN с изображениями.

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

Эта публикация входит в серию материалов о реализации алгоритмов машинного обучения и глубокого обучения в Excel.

1. Как машины воспринимают изображения

1.1 Два подхода к обнаружению объектов на изображении

При попытке выявить объект на фото, например кошку, применяются два основных метода: детерминированный и основанный на машинном обучении. Рассмотрим, как эти методы функционируют на примере распознавания кошки.

Детерминированный метод подразумевает ручное создание правил.

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

Затем машина применяет эти правила и вычисляет степень соответствия.

Детерминированный подход к обнаружению кошки на изображении
Детерминированный подход к обнаружению кошки на изображении

Метод машинного обучения предполагает отсутствие ручных правил.

Вместо этого машине предоставляются многочисленные примеры: фото с кошками и без них. Затем она самостоятельно определяет, что отличает кошку.

Подход машинного обучения к обнаружению кошки на изображении
Подход машинного обучения к обнаружению кошки на изображении (кошки сгенерированы ИИ)

Здесь может возникнуть ощущение таинственности.

Обычно утверждается, что машина сама разберется, но ключевой вопрос: как именно?

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

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

1.2 Что такое изображение

Кошка имеет сложную форму, но для ясности возьмем простой пример: распознавание рукописных цифр из набора данных MNIST.

Сначала определим, что такое изображение.

Цифровое изображение можно рассматривать как сетку пикселей. Каждый пиксель — это числовое значение, указывающее на яркость, от 0 для белого до 255 для черного.

В Excel такую сетку можно изобразить таблицей, где каждая ячейка соответствует одному пикселю.

Рукописные цифры MNIST
Рукописные цифры MNIST из набора данных MNIST

Исходное разрешение цифр — 28 x 28. Однако для упрощения расчетов используется таблица 10×10. Она достаточно компактна для быстрых вычислений, но сохраняет общую форму.

Поэтому разрешение уменьшается.

Например, рукописная цифра «1» может быть представлена сеткой 10×10 в Excel, как показано ниже.

Изображение как сетка чисел
Изображение как сетка чисел

1.3 До глубокого обучения: классическое машинное обучение для изображений

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

В этом подходе каждый пиксель превращается в отдельный признак. Например, изображение 10×10 содержит 100 пикселей, следовательно, 100 признаков на входе.

Алгоритм учится связывать комбинации значений пикселей с метками, такими как «0», «1» или «2».

Классическое машинное обучение для распознавания изображений
Классическое машинное обучение для распознавания изображений

Фактически, с таким простым методом машинного обучения логистическая регрессия демонстрирует довольно высокие результаты с точностью около 90%.

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

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

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

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

2. Создание CNN поэтапно в Excel

2.1 От сложных CNN к простой в Excel

При обсуждении сверточных нейронных сетей часто упоминаются глубокие и запутанные архитектуры, такие как VGG-16. Множество слоев, тысячи параметров и бесчисленные операции — все это кажется очень сложным, и утверждается, что невозможно полностью понять механизм работы.

Архитектура VGG-16
Архитектура VGG-16

Основная концепция слоев заключается в последовательном выявлении шаблонов.

С примером рукописных цифр зададим вопрос: какая может быть самая простая архитектура CNN?

Сначала для скрытых слоев, до применения множества слоев, уменьшим их количество. Сколько? Один. Верно: всего один.

Что касается размеров фильтров? В реальных слоях CNN обычно применяются фильтры 3×3 для обнаружения мелких шаблонов. Но начнем с крупных.

Каких? 10×10!

Да, почему бы и нет?

Это также означает отсутствие необходимости сдвигать фильтр по изображению. Таким образом, входное изображение напрямую сравнивается с фильтром, и видно, насколько они совпадают.

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

Теперь определим количество фильтров. Установим 10 — это минимум. Почему? Потому что цифр 10, поэтому нужно минимум 10 фильтров. Как они определяются, будет рассмотрено в следующем разделе.

На изображении ниже приведена схема этой самой простой архитектуры сверточной нейронной сети:

Самая простая архитектура CNN
Самая простая архитектура CNN

2.2 Обучение фильтров (или их ручное создание)

В реальной CNN фильтры не задаются вручную. Они обучаются в процессе тренировки.

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

В упрощенном примере в Excel фильтры не обучаются.

Вместо этого они создаются вручную, чтобы понять их суть.

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

Например, нарисовать фильтр, совпадающий с формой 0, другой для 1 и так далее.

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

Каждый фильтр тогда будет отражать «среднюю форму» числа.

Здесь снова проявляется грань между человеком и машиной. Можно позволить машине открыть фильтры или применить собственные знания для их ручного построения.

Верно: машины не определяют характер операций. Это делают исследователи в области машинного обучения. Машины擅长 выполнять циклы и находить оптимальные значения для заданных правил. В простых случаях люди всегда превосходят машины.

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

Для задания числовых значений фильтров можно опираться на собственные знания или на обучающий набор данных.

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

Средние значения как фильтры
Средние значения как фильтры

2.3 Как CNN обнаруживает шаблоны

Теперь, когда фильтры готовы, требуется сравнить входное изображение с этими фильтрами.

Центральная операция в CNN называется кросс-корреляцией. Это основной механизм, позволяющий машине сопоставлять шаблоны на изображении.

Она состоит из двух простых шагов:

  1. Умножение значений/скалярное произведение: каждый пиксель входного изображения умножается на пиксель в той же позиции фильтра. Это означает, что фильтр «осматривает» каждый пиксель изображения и оценивает, насколько он похож на шаблон в фильтре. Да, если оба значения велики, результат будет большим.
  2. Суммирование результатов: произведения от этих умножений складываются, образуя одно число. Это число отражает, насколько сильно входное изображение соответствует фильтру.
Пример кросс-корреляции для одного изображения
Пример кросс-корреляции для одного изображения

В упрощенной архитектуре фильтр имеет тот же размер, что и входное изображение (10×10).

Из-за этого фильтр не сдвигается по изображению.
Вместо этого кросс-корреляция применяется один раз, сравнивая все изображение с фильтром напрямую.

Это число указывает, насколько хорошо изображение соответствует шаблону в фильтре.

Если фильтр похож на среднюю форму рукописной «5», высокое значение означает, что изображение, вероятно, «5».

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

2.4 Создание простой CNN в Excel

Теперь можно собрать небольшую CNN от начала до конца, чтобы увидеть весь процесс в действии.

  1. Вход: матрица 10×10 представляет классифицируемое изображение.
  2. Фильтры: определяются десять фильтров размером 10×10, каждый из которых отражает среднее изображение рукописной цифры от 0 до 9. Эти фильтры служат детекторами шаблонов для каждой цифры.
  3. Кросс-корреляция: каждый фильтр применяется к входному изображению, генерируя одно значение, измеряющее, насколько изображение соответствует шаблону фильтра.
  4. Решение: фильтр с наивысшим значением определяет предсказанную цифру. В фреймворках глубокого обучения этот этап часто реализуется функцией Softmax, преобразующей все значения в вероятности.
    В упрощенной версии в Excel достаточно взять максимальное значение, чтобы установить, какую цифру изображение, скорее всего, представляет.
Кросс-корреляция входной цифры с десятью средними фильтрами цифр. Наивысшее значение, нормализованное Softmax, идентифицирует вход как «6»
Кросс-корреляция входной цифры с десятью средними фильтрами цифр. Наивысшее значение, нормализованное Softmax, идентифицирует вход как «6»

2.5 Свертка или кросс-корреляция?

На этом этапе может возникнуть вопрос, почему сеть называется сверточной, если описанная операция — на самом деле кросс-корреляция.

Разница тонкая, но простая:

  • Свертка подразумевает отражение фильтра по горизонтали и вертикали перед сдвигом по изображению.
  • Кросс-корреляция применяет фильтр напрямую, без отражения.

По историческим причинам термин «свертка» сохранился, хотя в CNN фактически выполняется кросс-корреляция.

Как видно, в большинстве фреймворков глубокого обучения, таких как PyTorch или TensorFlow, при «свертках» используется кросс-корреляция.

Кросс-корреляция и свертка
Кросс-корреляция и свертка

Вкратце:

CNN называются «сверточными» по имени, но «кросс-корреляционными» на практике.

3. Создание более сложных архитектур

3.1 Маленькие фильтры для обнаружения детализированных шаблонов

В предыдущем примере применялся один фильтр 10×10 для сравнения всего изображения с одним шаблоном.

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

Теперь можно продвинуться дальше.

Вместо одного глобального фильтра используются несколько меньших фильтров размером 5×5. Эти фильтры анализируют локальные области изображения, выявляя детали вместо всей формы.

Рассмотрим пример с четырьмя фильтрами 5×5, примененными к рукописной цифре.

Входное изображение делится на 4 меньшие части по 5×5 пикселей каждая.

Все еще можно начинать со средних значений всех цифр. Таким образом, каждый фильтр генерирует 4 значения вместо одного.

Меньшие фильтры в CNN для распознавания цифр
Меньшие фильтры в CNN для распознавания цифр

В конце можно применить функцию Softmax для итогового предсказания.

Но в этом простом случае также возможно просто суммировать все значения.

3.2 Что если цифра не в центре изображения

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

Решение довольно прямолинейное: сдвигать фильтр по изображению.

Возьмем простой пример: размер входного изображения — 10×14. Высота остается прежней, ширина — 14.

Фильтр все еще 10 x 10, и он сдвигается горизонтально по изображению. В результате получается 5 кросс-корреляций.

Положение изображения неизвестно, но это не проблема: достаточно взять максимальное значение из 5 кросс-корреляций.

Это и есть слой максимального пулинга.

Максимальный пуллинг в простой CNN
Максимальный пуллинг в простой CNN

3.3 Другие операции, используемые в CNN

В этой публикации объясняется, почему каждый компонент полезен в CNN.

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

Кроме того, в CNN часто применяются последовательные слои или нелинейные функции активации.

Эти шаги делают модель более гибкой, устойчивой и способной к обучению более богатым шаблонам.

Почему они именно полезны?

Этот вопрос оставляется для самостоятельного размышления.

Теперь, когда основная идея понятна, стоит подумать, как каждый из этих шагов помогает CNN развиваться дальше, и можно попробовать привести конкретный пример в Excel.

Заключение

Моделирование CNN в Excel — это увлекательный и практический способ увидеть, как машины распознают изображения.

Работая с небольшими матрицами и простыми фильтрами, можно разобраться в основных этапах CNN.

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