Обучающие наборы данных для нейронных сетей:как обучить и проверить нейронную сеть Python
В этой статье мы будем использовать образцы, созданные в Excel, для обучения многослойного персептрона, а затем посмотрим, как сеть работает с образцами проверки. .
Если вы хотите разработать нейронную сеть Python, вы попали в нужное место. Прежде чем углубляться в обсуждение в этой статье того, как использовать Excel для разработки обучающих данных для вашей сети, рассмотрите возможность ознакомления с остальной частью серии ниже для получения справочной информации:
- Как выполнить классификацию с помощью нейронной сети:что такое перцептрон?
- Как использовать простой пример нейронной сети персептрона для классификации данных
- Как обучить базовую нейронную сеть персептрона
- Общие сведения об обучении простой нейронной сети
- Введение в теорию обучения нейронных сетей.
- Скорость обучения в нейронных сетях
- Расширенное машинное обучение с многоуровневым персептроном
- Функция активации сигмовидной кишки:активация в многослойных перцептронных нейронных сетях.
- Как обучить многослойную нейронную сеть персептрона
- Понимание формул обучения и обратного распространения ошибки для многослойных персептронов
- Архитектура нейронной сети для реализации Python
- Как создать многослойную нейронную сеть персептрона на Python.
- Обработка сигналов с использованием нейронных сетей:проверка при проектировании нейронных сетей
- Обучающие наборы данных для нейронных сетей:как обучить и проверить нейронную сеть 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 о нейронных сетях - мы добились большого прогресса с момента выхода первой статьи, и нам еще многое предстоит обсудить!
Промышленный робот
- Как получить текущую дату и время в Python?
- Дебют нейроморфных ИИ-чипов для пиков нейронных сетей
- Как бесплатно установить симулятор и редактор VHDL
- Понимание локальных минимумов в обучении нейронной сети
- Как повысить точность нейронной сети скрытого слоя
- Сколько скрытых слоев и скрытых узлов нужно нейронной сети?
- Пять основных проблем и проблем для 5G
- Как кормить беспроводные сенсорные сети и ухаживать за ними
- Обучение по вакуумному насосу BECKER для вас и меня
- Как сократить время обучения роботизированной сварке