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

Обучающие наборы данных для нейронных сетей:как обучить и проверить нейронную сеть Python

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

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

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

Что такое тренировочные данные?

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

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

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


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

Количественная оценка данных обучения

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

Для формы вы можете присвоить каждому помидору значение от –1 до +1, где –1 представляет собой идеально сферическую форму, а +1 - чрезвычайно удлиненную. Что касается качества еды, вы можете оценить каждый помидор по пятибалльной шкале от «несъедобного» до «восхитительного», а затем использовать однократное кодирование для сопоставления оценок с пятиэлементным выходным вектором.

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


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

Таким образом, мы не хотим настраивать эту сеть с одним выходным узлом, а затем предоставлять обучающие образцы, которые имеют выходные значения 0, 1, 2, 3 или 4 (это будет 0, 0,2, 0,4, 0,6 или 0,8. если вы хотите оставаться в диапазоне от 0 до 1); функция логистической активации выходного узла решительно отдает предпочтение минимальному и максимальному рейтингу.

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

Создание набора данных для обучения

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

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

 =RANDBETWEEN (-10, 10) / 2 

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

 =ЕСЛИ (И (A2> 0, B2> 0, C2 <0), 1, 0) 

Таким образом, вывод истинен, только если input_0 больше нуля, input_1 больше нуля, а input_2 меньше нуля. В противном случае это неверно.

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

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

Вам нужно будет установить размерность входных данных равной трем ( I_dim =3, если вы используете мои имена переменных). Я настроил в сети четыре скрытых узла ( H_dim =4), и я выбрал скорость обучения 0,1 ( LR =0,1).

Найдите training_data =pandas.read_excel (...) заявление и вставьте имя своей электронной таблицы. (Если у вас нет доступа к Excel, библиотека Pandas также может читать файлы ODS.) Затем просто нажмите кнопку «Выполнить». Обучение с использованием 5000 образцов занимает всего несколько секунд на моем ноутбуке с Windows 2,5 ГГц

Если вы используете полную программу «MLP_v1.py», которую я включил в Часть 12, проверка (см. Следующий раздел) начинается сразу после завершения обучения, поэтому вам необходимо подготовить данные проверки перед обучением сети. .

Проверка сети

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

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


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

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

Помните, что если у вас есть np.random.seed (1) закомментированы, веса будут инициализироваться разными случайными значениями каждый раз, когда вы запустите программу, и, следовательно, точность классификации будет меняться от одного запуска к другому. Я выполнил 15 отдельных прогонов с параметрами, указанными выше, 5000 обучающих образцов и 1000 проверочных образцов.

Самая низкая точность классификации составила 88,5%, самая высокая - 98,1%, а средняя - 94,4%.

Заключение

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


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

  1. Как получить текущую дату и время в Python?
  2. Дебют нейроморфных ИИ-чипов для пиков нейронных сетей
  3. Как бесплатно установить симулятор и редактор VHDL
  4. Понимание локальных минимумов в обучении нейронной сети
  5. Как повысить точность нейронной сети скрытого слоя
  6. Сколько скрытых слоев и скрытых узлов нужно нейронной сети?
  7. Пять основных проблем и проблем для 5G
  8. Как кормить беспроводные сенсорные сети и ухаживать за ними
  9. Обучение по вакуумному насосу BECKER для вас и меня
  10. Как сократить время обучения роботизированной сварке