Наборы данных для обучения нейронной сети [закрыты]
-
12-09-2019 - |
Вопрос
Я ищу несколько относительно простых наборов данных для тестирования и сравнения различных методов обучения искусственных нейронных сетей.Я хотел бы, чтобы данные, которые не потребуют слишком большой предварительной обработки, преобразовывались в мой формат ввода списка входов и выходов (нормализованный до 0-1).Любые ссылки приветствуются.
Решение
Почему бы не попробовать что-нибудь простое, например, функцию sin в качестве обучающих данных?Поскольку вы сравниваете методы обучения и на самом деле не заботитесь о том, для чего вы обучаете сеть, это должно работать, и генерировать обучающие данные должно быть легко.
Обучите сеть, используя sin(x), где x - это входные данные, а выходные данные - значение функции.Дополнительным преимуществом в вашем случае является то, что абсолютное значение результата уже находится в диапазоне 0-1.Это в равной степени работало бы с другими математическими функциями.
Другие советы
https://archive.ics.uci.edu/ml является хранилищем наборов данных машинного обучения Калифорнийского университета в Ирвине.Это действительно отличный ресурс, и я считаю, что все они находятся в CSV-файлах.
Некоторые ресурсы являются
Функция sinC .
+---- | sin(x) | ------- when x != 0 | x sinC = | | | 1 otherwise +----
В
sin(x)
действуйте так, как сказал @adrianbanks.Для тестирования какой-то новой модификации какого-то алгоритма используются старые добрые тесты на n-четность.
Набор данных Iris, набор цифровых данных semeion, написанных от руки, и т.д., любые другие функции и многое другое.
Репозиторий машинного обучения UCI: archive.ics.uci.edu/ml/datasets.html
- Вот еще один ресурс, содержащий множество наборов данных регрессии: www.dcc.fc.up.pt /~ltorgo//Regression/DataSets.html .Многие из них вы получите из репозитория UCI ML.
- Вы можете получить наборы данных из https://www.kaggle.com/ для различных практических наборов данных.
Я не думаю, что вам потребуется много предварительной обработки с ними.Как и для категориальных переменных, вы можете быстро заменить их двоичными с помощью текстового редактора GUI.Например , в Морское ушко набор данных имеет один категориальный атрибут, Пол, который имеет три значения "M" для мужчины, "F" для женщины, "I" для младенца.Вы можете нажать Ctrl + R в своем текстовом редакторе и заменить все вхождения буквы "M" на 1,0,0
, все вхождения "F" с 0,1,0
и все возникновение "Я" с 0,0,1
(учитывая, что файл находится в формате CSV).Это позволит произвести быструю замену категориальных переменных.
Если вы находитесь в R, тогда вы можете использовать normalizeData
функция, которая поставляется вместе с Пакет RSNNS чтобы масштабировать и нормализовать ваши данные в 0 и 1.
Если вы находитесь в другой среде, такой как октава или matlab - математическая лаборатория, вы можете просто потратить некоторое время на написание своего кода.Я не осведомлен о доступных функциях в этих средах, я использую свой код для масштабирования и / или нормализации данных.
Когда вы используете функции, ваша работа значительно упрощается, и как только вы подготовите данные, сохраните измененные данные в файле.
Помните одну вещь: целью обучения нейронной сети является не просто обучение сети таким образом, чтобы она хорошо работала на определенном обучающем наборе.Основная цель состоит в том, чтобы обучить сеть таким образом, чтобы у нее была наилучшая ошибка для новых данных, которые сеть не видела (прямо или косвенно).
http://neuroph.sourceforge.net/sample_projects.html Существует множество примеров проектов и известных данных.
Вот некоторые базы данных рукописного ввода и другие базы данных для учебных целей.
http://www.cs.nyu.edu /~roweis/data.html
В качестве интересного примечания, ~роуэйс покончил с собой в 2010 году после ссоры со своей женой: http://www.huffingtonpost.com/2010/01/14/sam-roweis-nyu-professor-_n_421500.html.
Я изучал ANNS в качестве студента, используя их для выполнения OCR (оптического распознавания символов).Я думаю, что это хороший вариант использования.
Отсканируйте две страницы текста, извлеките буквы и сформируйте обучающие / тестирующие наборы данных (например8x8 пикселей приводит к 64 входным узлам), пометьте данные.Обучите ANN и получите оценку, используя тестовый набор данных.Измените топологию сети / параметры и настройте сеть для получения наилучшего результата.
Вы могли бы найти несколько интересных наборов данных из NLP, от NER до классификации изображений, ограничиваясь здесь:https://dataturks.com/projects/trending