Классификатор нейросети в Excel, форвардное и обратное распространение, графики и таблицы.

«Рождественский календарь» по машинному обучению, день 18: Нейронная сеть-классификатор в Excel.

Понимание прямого и обратного распространения с помощью явных формул.

Делиться

594bce1e48f825e5386e5865da8a0031

После вчерашнего рассмотрения регрессора на основе нейронных сетей, мы переходим к версии классификатора .

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

Однако именно в этой версии классификатора интуиция обычно оказывается гораздо сильнее.

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

В этой статье вы увидите:

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

В этот момент возникает закономерный вопрос:
Если достаточно одного скрытого слоя, зачем тогда так много говорить о глубоком обучении?

Ответ важен.

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

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

Это лучший способ по-настоящему понять, как работает классификатор на основе нейронной сети.

Как и в случае с созданным нами вчера регрессором на основе нейронной сети, мы разделим работу на две части .

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

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

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

1. Прямое распространение

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

1.1 Простой набор данных и интуитивное понимание построения функции

Начнём с очень небольшого набора данных:

  • 12 наблюдений
  • Одна единственная функция x
  • Бинарная целевая переменная y

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

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

16e3a667df7a236a383e8afa715cbe9a

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

Сначала мы построим две логистические регрессии . Каждая из них создаст разрез во входном пространстве, как показано ниже.

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

44b20994237b1a32ce5d2c321d661e9b

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

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

8ad80244af77b04255fdd4a1db200361

1.2 Структура нейронной сети

Таким образом, визуальная диаграмма представляет следующую модель:

  • Один скрытый слой с двумя нейронами, что позволяет нам представить два фрагмента данных, которые мы наблюдаем в наборе данных.
  • Один выходной нейрон, и здесь используется логистическая регрессия.
9eb15729979bb8dfe0d371618bc7843d

В нашем случае модель зависит от семи коэффициентов :

  • Веса и смещения для двух скрытых нейронов
  • Веса и смещения для выходного нейрона

Взятые вместе, эти семь чисел полностью определяют модель.

Если вы уже понимаете, как работает классификатор на основе нейронной сети, вот вам вопрос:

Сколько различных решений может иметь эта модель?

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

1.3 Реализация алгоритма прямого распространения в Excel

Теперь мы реализуем модель, используя формулы Excel.

Для визуализации выходных данных нейронной сети мы генерируем новые значения x в диапазоне от −2 до 2 с шагом 0,02.

Для каждого значения x мы вычисляем:

  • Выходные сигналы двух скрытых нейронов (A1 и A2)
  • Конечный результат работы сети

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

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

48c6ce87b9d94faac7529810130d5fd5

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

b840c659743000460309d6da2034453a

Промежуточные значения A1 и A2 отображаются явно. Это позволяет избежать сложных, нечитаемых формул и упрощает отслеживание распространения ошибки.

2f55cc619571d2c7077d7fdfb2601d71

С помощью нейронной сети удалось успешно разделить набор данных на два отдельных класса.

97392a727e4ca1a1dcbf13c7255af53d

1.4 Прямое распространение: краткое изложение и наблюдения

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

90cca8a1a6857958ac0436d99fed4a8f

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

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

Это объясняет, почему модель может допускать несколько решений для одной и той же задачи классификации.

63654f0428d1a6f06963e456f8f76818

Самая сложная задача сейчас — определить значения этих коэффициентов.

Вот тут-то и вступает в игру обратное распространение ошибки .

2. Обратное распространение ошибки: обучение нейронной сети с помощью градиентного спуска.

После определения модели обучение становится численной задачей.

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

2.1 Напоминание об алгоритме обратного распространения ошибки

Принцип одинаков для всех моделей, основанных на весе .

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

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

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

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

82efe223fbdd457e626af6d6efd34849

Алгоритм обратного распространения ошибки можно кратко описать следующим образом:

  1. Инициализируйте веса нейронной сети случайным образом.
  2. Передайте входные данные через нейронную сеть, чтобы получить прогнозируемый выходной результат.
  3. Рассчитайте погрешность между прогнозируемым и фактическим результатом.
  4. Для вычисления градиента функции потерь относительно весов необходимо выполнить обратное распространение ошибки по сети.
  5. Обновите веса, используя вычисленный градиент и скорость обучения.
  6. Повторяйте шаги со 2 по 5 до тех пор, пока модель не сойдется.

2.2 Инициализация коэффициентов

Набор данных организован по столбцам, что упрощает расширение формул Excel.

cab4ba625ba7280491373e3142586ba9

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

012264ad6bc650fe69684f85485fc744

2.3 Прямое распространение

В столбцах от AG до BP мы реализуем этап прямого распространения. Сначала мы вычисляем две скрытые активации A1 и A2 , а затем выходные данные сети. Это те же самые формулы, которые использовались ранее для определения прямого распространения модели.

Для обеспечения читаемости вычислений мы обрабатываем каждое наблюдение отдельно . В результате у нас получается 12 столбцов для выходных данных скрытого слоя (A1 и A2) и 12 столбцов для выходного слоя.

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

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

88ae7da224bf86ad32fe18194b2338a6

2.4 Ошибки и функция стоимости

В столбцах от BQ до CN мы вычисляем погрешности и значения функции стоимости.

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

d73ac059145de3c9b65fdcfe99e165f7

2.5 Частные производные

Теперь перейдём к вычислению частных производных.

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

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

В столбцах от CO до DL мы вычисляем частные производные, связанные с a11 и a12 .

188728ef151d33341b283a013aa2db3f

В столбцах от DM до EJ мы вычисляем частные производные, связанные с b11 и b12 .

00a2930c0ee53be70872879d1f36f084

В столбцах от EK до FH мы вычисляем частные производные, связанные с a21 и a22 .

d234d08716256d37105cc31a098b499a

В столбцах от FI до FT мы вычисляем частные производные, связанные с b2 .

e81f791e136ff83da8fa22d9cb24ab7d

В завершение мы суммируем частные производные по 12 наблюдениям.

Полученные градиенты сгруппированы и показаны в столбцах от Z до FI .

5f54402257cce04090fb34c417a8b411

2.6 Обновление весов в цикле for

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

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

20bdfbcc863e45c03768b612a7f9417d

После обновления коэффициентов на каждом шаге цикла for мы пересчитываем выходные данные нейронной сети.

03c2e64739d0220997c8e25b199c39c8

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

ab84203c915292a8d1818edc356e1832

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

32157c5928d6ffec903b4b8835ff9bae

Заключение

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

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

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

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

Источник: towardsdatascience.com

✅ Найденные теги: «Рождественский, Excel, классификатор, машинное обучение, Нейронная Сеть, новости, Рождественский Календарь

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Серверный шкаф Qunnect Carina в офисе с чертежами на досках, современный дизайн.
Текст на изображении: "Программисты всё?" на черном фоне.
ideipro logotyp
Диаграмма базы данных для клона Slack с таблицами пользователей, сообщений и каналов.
ideipro logotyp
Человек работает за ноутбуком, презентация платформы GigaChat Enterprise для бизнеса.
ideipro logotyp
График загрузок мобильных приложений Claude и ChatGPT в США за февраль 2026 года.
Папа призывает священников не использовать ИИ для проповедей и лайков в TikTok.
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых