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

Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона

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

Если вы хотите разработать Python нейронную сеть, вы в правильном месте. Перед погружением в Excel-ориентированную подготовку данных, рассмотрите остальную серию ниже для фундаментального контекста:

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

Что такое обучающие данные?

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

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

Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона
 

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

Квантификация обучающих данных

Все входы и выходы должны быть числовыми. Строки вроде «сливовидная» или «восхитительная» не могут быть поданы напрямую в сеть. Квантизация конвертирует качественные дескрипторы в числовые шкалы. Например, форма может быть закодирована от –1 (идеальная сфера) до +1 (экстремально вытянутая). Вкусовое качество может быть оценено по пятибалльной шкале и затем one-hot закодировано в пятиэлементный выходной вектор.

Следующая диаграмма иллюстрирует one-hot кодирование для пятиклассовой классификации.

Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона
 

One-hot кодирование хорошо согласуется с логистической сигмоидной активацией, производящей значения близкие к 0 или 1 вне узкой переходной зоны. Использование единственного выходного узла с целевыми значениями 0–4 сместило бы сеть к экстремумам и привело к бессмысленным предсказаниям.

Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона

Создание обучающего датасета

Python нейронная сеть, упомянутая в части 12, импортирует сэмплы из Excel-файла. Данные, используемые здесь, расположены так:

Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона
 

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

 =RANDBETWEEN(-10, 10)/2 

Выход выводится из следующего правила:

 =IF(AND(A2>0, B2>0, C2<0), 1, 0) 

Таким образом, сеть учится, что сэмпл помечается 1 только когда input_0 > 0, input_1 > 0 и input_2 < 0; иначе он получает 0.

Для этой простой проблемы 5 000 случайно сгенерированных сэмплов и одна эпоха достаточно для достижения высокой классификационной точности.

Обучение сети

Настройте сеть с входной размерностью три (I_dim = 3), четырьмя скрытыми узлами (H_dim = 4) и скоростью обучения 0,1 (LR = 0.1). Замените строку training_data = pandas.read_excel(...) на путь к вашей таблице. Если у вас нет Excel, Pandas также читает ODS файлы.

Запуск обучающего скрипта на ноутбуке 2,5 GHz Windows с 5 000 сэмплами завершается за несколько секунд. Если вы используете полный скрипт MLP_v1.py, валидация автоматически начнётся после обучения.

Валидация сети

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

Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона
 

Следующий фрагмент демонстрирует простую рутину валидации:

 # Прямой проход для получения пост-активационного значения
output = sigmoid(np.dot(W_out, hidden_output))
# Порог для получения бинарного предсказания
prediction = 1 if output > 0.5 else 0
# Сравнение с целью и накопление правильных предсказаний

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

Если np.random.seed(1) опущен, инициализация весов будет варьироваться между запусками, вызывая флуктуации точности. За 15 запусков с указанными параметрами (5 000 обучающих, 1 000 валидационных сэмплов) точность варьировалась от 88,5% до 98,1%, в среднем 94,4%.

Заключение

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


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

  1. Получение текущей даты и времени в Python: практическое руководство
  2. Innatera представила первые нейроморфные AI чипы для ультра-низкоэнергопотребляющих пограничных приложений
  3. Бесплатный симулятор и редактор VHDL: руководство для студентов
  4. Локальные минимумы в обучении нейронных сетей: миф или реальность?
  5. Оптимизация размера скрытого слоя для повышения точности нейронной сети
  6. Выбор правильного числа скрытых слоёв и узлов в нейронной сети
  7. Топ-5 вызовов 5G: навигация по спектру, стоимости, покрытию, устройствам и безопасности
  8. Развертывание и управление беспроводными сенсорными сетями в 엔терпрайзе
  9. Повышение экспертизы с экспертным обучением по вакуумным насосам BECKER
  10. Ускорение обучения робототехнической сварке: сократите время, повысьте эффективность