Машинное обучение (Machine learning, ML). Обучение математических моделей алгоритмом Нейронных сетей (Neural networks) методами регрессии и классификации
Нейронные сети — это тип алгоритма машинного обучения/глубокого обучения, который имитирует работу человеческого мозга. Они состоят из нескольких слоев нейронов, которые соединяются друг с другом и взаимодействуют друг с другом посредством функции активации. Нейронные сети используют входные слои (данные на входе), скрытые слои (содержат искусственные нейроны, обрабатывающие данные) и выходные слои (которые генерируют результат из обработанных данных). Алгоритм Нейронных сетей относится к категории алгоритмов обучения с учителем и используются для предсказания как непрерывных (регрессия), так и категориальных (классификация) выходных переменных. Эта функция нашего программного обеспечения делает технологию машинного обучения доступной широкому кругу пользователей.
Вы можете загрузить пример структурированного табличного файла для создания математической модели и предсказания алгоритмом Нейронных сетей для регрессионного анализа: XLSX и для классификации XLSX .
Для импорта могут быть использованы структурированные данные из табличных файлов: Книга Excel (*.xlsx); Двоичная книга Excel (*.xlsb); Электронная таблица OpenDocument Spreadsheet (*.ods).
Где применяется
Анализ данных методом нейронных сетей может быть применён:
- как эффективная (стоимость, время, ресурсы) альтернатива " Планированию экспериментов "для поиска оптимальных режимов входных параметров;
- для предварительной или альтернативной оценки выходных параметров, когда измерительные процедуры таких параметров проводятся дорогостоящими и/или длительными испытаниями;
- для экспертных систем поддержки приятия решений (СППР), когда решения связаны с рисками совершения ошибок человеком.
Файлы моделей данных
В нашем программном обеспечении могут быть использованы обученные математические модели Нейронных сетей для библиотеки scikit-learn, созданные на других компьютерах и сохранённые в файлах (*.sav).
Нейронные сети методом регрессии для непрерывных величин (измерений) на входе и выходе
Рисунок 1. Окно перехода к функциям машинного обучения (Machine learning, ML). Выведен список выпадающего меню при наведении курсора мыши на пункт главного меню.
Рисунок 2. Окно функций машинного обучения (Machine learning, ML). Выведена подсказка при наведении курсора мыши на кнопку перехода к функциям нейронных сетей (регрессия и классификация).
Рисунок 3. Окно перехода к функциям управления алгоритмами машинного обучения методами нейронных сетей (регрессия и классификация). Выведена выпадающая подсказка при наведении курсора мыши на кнопку перехода к панели управления алгоритмами нейронных сетей (регрессия).
Рисунок 4. Окно функции управления алгоритмом машинного обучения методом нейронных сетей (регрессия). Выбрана предсказываемая переменная. Установлены значения по умолчанию: количество скрытых слоёв и количество нейронов в каждом скрытом слое, количество итераций (эпох). Установлена галочка в чек-боксе для сохранения модели в соответствующей папке приложения (SCCPython\resources\Model_AI). Над схемой нейронной сети выведены значения характеристик и показателей точности обученной математической модели. В области построения представлен график "Схема нейронной сети, Актуальные vs. Предсказанные значения".
Рисунок 5. Окно функции управления алгоритмом машинного обучения методом нейронной сети (регрессия). Изменены значения полей количества скрытых слоёв и нейронов в каждом скрытом слое нейронной сети.
Рисунок 6. Окно функции управления алгоритмом машинного обучения методом нейронной сети (регрессия). Открыт выпадающий список с типами графиков оценки математической модели.
Рисунок 7. Окно функции управления алгоритмом машинного обучения методом нейронной сети (регрессия). В области построения представлен график "Актуальные vs. Предсказанные значения" для тестового набора данных.
Рисунок 8. Окно функции управления применением математической модели нейронной сети (регрессия). В области построения представлен график "Актуальные vs. Предсказанные значения" для тестового набора данных. График масштабирован по оси X для отображения меньшего количества точек (от 140 до 196) с помощью инструмента "Масштаб" под графиком.
Функция загрузки файла с сохранённой математической моделью нейронной сети (регрессия) и её применение к вашим данным для предсказания, аналогична функции, описанной на странице Деревьев решений (регрессия) .
При наличии в импортируемых данных одного или нескольких столбцов независимых переменных с категориальными значениями, например, [мужчина, женщина], будет проведена автоматическая процедура "Горячего кодирования" для преобразования таких данных в новые столбцы с числовыми кодами [0, 1]. Преобразованные горячим кодированием данные будут сохранены в исходном файле [xlsx] на новом листе.
Причины, по которым точность математической модели методом Нейронной сети (регрессия) может дать низкую точность
- Ограниченный объем данных: Если у вас есть ограниченное количество данных для обучения модели, нейронная сеть может не иметь достаточного количества информации для создания точной модели. Большие и разнообразные данные часто необходимы для обучения нейронной сети с высокой точностью.
- Неподходящая архитектура сети: Выбор подходящей архитектуры нейронной сети очень важен. Если выбранная архитектура нейронной сети не соответствует специфическому набору данных или проблеме регрессии, это может привести к низкой точности модели. Необходимо провести эксперименты с различными типами слоев, количеством скрытых единиц и структурой сети для достижения лучших результатов.
- Недостаточно обучения: Обучение нейронной сети может быть сложным процессом, требующим достаточного числа эпох и грамотного настройки гиперпараметров. Если модель не обучена в течение достаточного количества эпох или с неправильно выбранными гиперпараметрами, это может привести к низкой точности модели.
- Переобучение: Нейронная сеть может столкнуться с проблемой переобучения, если обучающая выборка слишком мала, а модель имеет слишком много параметров. Это может привести к плохой обобщающей способности модели и низкой точности на новых данных. При переобучении рекомендуется использовать методы регуляризации, такие как снижение скорости обучения или введение ограничений на норму весов.
- Некорректная предобработка данных: Некорректная предобработка данных, такая как масштабирование, нормализация или обработка выбросов, может существенно влиять на точность модели нейронной сети. Необходимо тщательно анализировать и подготавливать данные перед обучением модели.
- Несбалансированные данные: Если ваш набор данных содержит неравномерное количество примеров разных значений целевой переменной, это может привести к низкой точности модели. В таких случаях можно применить техники взвешивания примеров.
- Проблемы с выборкой данных: Если данных выбраны случайным образом или некорректно, это может привести к низкой точности модели. Важно тщательно выбирать данные, чтобы они были репрезентативными для задачи регрессии.
Нейронные сети методом классификации для непрерывных величин (измерений) на входе и категориальных данны (классов) на выходе
Пример 1. По результатам клинических анализов пациента необходимо приять решение по его диагнозу, например болен/не болен.
Пример 2. Необходимо сделать вывод о принадлежности объекта или события к конкретному классу (типу) по результатам измерений множества его характеристик (свойств).
Рисунок 9. Окно функции управления обучением и оценкой математической модели нейронной сети (классификация). Выведена выпадающая подсказка при наведении курсора мыши на кнопку перехода к панели управления алгоритмами нейронных сетей методом классификации.
Рисунок 10. Окно функции управления обучением и оценкой математической модели нейронной сети (классификация). Выбрана предсказываемая категориальная переменная (переменная классов). Установлены значения по умолчанию: количество скрытых слоёв и количество нейронов в каждом скрытом слое, количество итераций (эпох). Установлена галочка в чек-боксе для сохранения модели в соответствующей папке приложения (SCCPython\resources\Model_AI). Над схемой нейронной сети выведены значения характеристик и показателей точности обученной математической модели. Открыт выпадающий список с графиками оценки математической модели. В области построения представлен график "Схема нейронной сети, Актуальные vs. Предсказанные значения".
Рисунок 11. Окно функции управления обучением и оценкой математической модели нейронной сети (классификация) с графиками "матриц путаницы (confusion matrix)".
Функция загрузки файла с сохранённой математической моделью нейронной сети (классификация) и её применение к вашим данным для предсказания, аналогична функции, описанной на странице Деревьев решений (классификация) .
При наличии в импортируемых данных одного или нескольких столбцов независимых переменных с категориальными значениями, например, [мужчина, женщина], будет проведена автоматическая процедура "Горячего кодирования" для преобразования таких данных в новые столбцы с числовыми кодами [0, 1]. Преобразованные горячим кодированием данные будут сохранены в исходном файле [xlsx] на новом листе.
Причины по которым точность математической модели методом Нейронной сети (классификация) может дать низкую точность
- Недостаточное количество данных: Если модель обучается на небольшом объеме данных, это может привести к низкой точности. Чем больше данных доступно для обучения, тем более точной может быть модель.
- Неправильная архитектура нейронной сети: Выбор подходящей архитектуры нейронной сети имеет важное значение. Несоответствие архитектуры данным или задаче классификации может сказаться на точности модели.
- Неправильно подобранные гиперпараметры: Нейронные сети имеют множество гиперпараметров, которые нужно правильно настроить. Неправильный выбор гиперпараметров может привести к низкой точности модели.
- Использование некорректных признаков: Выбор правильных и релевантных признаков также важен. Использование неподходящих или нерелевантных признаков может снизить точность классификации.
- Неправильная предобработка данных: Некорректная предобработка данных может влиять на точность модели нейронной сети. Это может включать в себя неправильное масштабирование, нормализацию или обработку выбросов.
- Неправильный выбор функции потерь: Функция потерь нейронной сети должна быть подходящей для конкретной задачи классификации. Неправильный выбор функции потерь может повлиять на точность модели.