Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Equipment >> Промышленный робот

Построение многослойного перцептрона на Python: практическое руководство

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

Это 12-я запись в серии разработки нейронных сетей AAC. Посмотрите, что ещё предлагает серия ниже:

  1. Как выполнять классификацию с нейронной сетью: что такое перцептрон?
  2. Как использовать простой пример перцептрона для классификации данных
  3. Как обучать базовый перцептрон
  4. Понимание простого обучения нейронных сетей
  5. Введение в теорию обучения для нейронных сетей
  6. Понимание скорости обучения в нейронных сетях
  7. Продвинутое машинное обучение с многослойным перцептроном
  8. Сигмоидная функция активации: активация в многослойных перцептронах
  9. Как обучать многослойный перцептрон
  10. Понимание формул обучения и обратного распространения для многослойных перцептронов
  11. Архитектура нейронной сети для Python-реализации
  12. Как создать многослойный перцептрон на Python
  13. Обработка сигналов с нейронными сетями: валидация в дизайне нейронных сетей
  14. Обучающие наборы данных для нейронных сетей: как обучать и валидировать Python нейронную сеть

В этой статье мы построим на нашей работе с простыми перцептронными сетями и расширим её до полностью функционального многослойного перцептрона (MLP), реализованного на Python.

Разработка понятного Python-кода для нейронных сетей

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

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

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

Построение многослойного перцептрона на Python: практическое руководство
 

Подготовка функций и переменных

Построение многослойного перцептрона на Python: практическое руководство

Библиотека NumPy обрабатывает все числовые операции, в то время как Pandas облегчает импорт обучающих данных из Excel. Мы используем логистическую сигмоиду для активации и её производную для обратного распространения. Скорость обучения, входная размерность, размер скрытого слоя и число эпох устанавливаются здесь. Случайные начальные веса генерируются с np.random.uniform(-1, 1), фиксированный seed обеспечивает воспроизводимость. Пустые массивы для скрытых pre-activation и post-activation значений также инициализируются.

Импорт обучающих данных

Построение многослойного перцептрона на Python: практическое руководство

Следуя процедуре из части 4, мы читаем датасет из Excel, отделяем целевую колонку, удаляем её из матрицы признаков, конвертируем оставшиеся данные в NumPy массив и сохраняем количество сэмплов в training_count.

Прямой проход (Feedforward)

Фаза прямого прохода вычисляет выход сети, пропагируя входы через скрытый слой к выходному узлу. Код ниже демонстрирует многопочный цикл, расчёты на сэмпл, скрытый слой pre-activation и activation, и финальное вычисление выхода.

Построение многослойного перцептрона на Python: практическое руководство

Внутри каждой эпохи мы итерируем по всем сэмплам. Для каждого сэмпла вычисляем активации скрытых узлов через скалярные произведения, применяем сигмоиду, затем вычисляем выходной узел pre-activation и post-activation. Ошибка — разница между целью и выходом.

Обратное распространение (Backpropagation)

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

Построение многослойного перцептрона на Python: практическое руководство

Сначала вычисляем термин ошибки выхода S_ERROR, затем обновляем веса скрытый-выход. Последовательно, для каждого скрытого узла, вычисляем его вклад в обновления весов вход-скрытый, используя текущий вес скрытый-выход. Этот порядок сохраняет корректные градиентные расчёты.

Построение многослойного перцептрона на Python: практическое руководство

Заключение

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

Ниже приведён полный код для справки:

Построение многослойного перцептрона на Python: практическое руководство

Скачать код


Промышленный робот

  1. Создайте свой первый шаблон AWS CloudFormation — практическое руководство
  2. Строительство Cloud Center of Excellence: стратегии успешной миграции и успеха клиентов
  3. Создание бесшовного пользовательского опыта: чертеж UX-дизайна
  4. Создание списков строк в VHDL: лучшие практики и пример
  5. Как создать самопроверяющийся тестбенч в VHDL — практическое руководство
  6. Построение надежного таймера в VHDL: подсчет тактовых циклов до часов
  7. Создание тактированного процесса в VHDL: практическое руководство
  8. Локальные минимумы в обучении нейронных сетей: миф или реальность?
  9. Создание массива объектов в Java: пошаговое руководство
  10. Сетевое программирование в Python: сокеты и продвинутые протоколы