Приложение 1. Компьютерное моделирование нейросетей.
Значительная доля всех приложений нейронных сетей приходится на использование их программных моделей, обычно называемых нейроимитаторами. Разработка программы обычно стоит дешевле, а получаемый продукт представляется более наглядным, мобильным и удобным, нежели специализированная аппаратура. В любом случае, разработке аппаратной реализации нейросети всегда должна предшествовать ее всесторонняя отработка на основе теории с использованием компьютерной модели.
В этом разделе книги описываются наиболее общие принципы разработки относительно небольших нейропрограмм, обычно индивидуального использования. С целью максимального упрощения изложения выбрана простая архитектура нейронной сети — однослойный ПЕРСЕПТРОН. Теоретические основы этой сети были рассмотрены в четвертой лекции.
В завершении раздела приведены полные листинги описываемых программ, которые читатель, знакомый с программированием на ТУРБО ПАСКАЛЕ для персонального компьютера IBM PC, может использовать в учебных целях и модифицировать по своему желанию.
Принципы разработки нейроимитаторов.
Нейроимитатор представляет собой компьютерную программу (или пакет программ), которая выполняет следующие функции:
- Описание и формирование архитектуры нейронной сети
- Сбор данных для обучающей выборки
- Обучение выбранной нейросети на обучающей выборке или загрузка уже обученной сети с диска
- Тестирование обученной нейросети
- Визуализация процесса обучения и тестирования
- Решение задач обученной сетью
- Запись результатов обучения и полученных решений на диске.
Постановка задачи в терминах нейронной сети.
Постановка задачи для нейронной сети имеет определенную специфику, как читатель уже мог убедиться на протяжении всего курса. Прежде всего, необходимо решить, относится ли решаемая задача к одному из стандартных типов нейросетевых постановок: задачи классификации (категоризации), задачи построения функциональной модели (идентификации систем), задачи прогноза, задачи оптимизации и нейроматематики, задачи управления и, наконец, задачи распознавания образов и обработки сигналов. Нестандартная постановка задачи для нейроЭВМ обычно требует проведения специальных исследований и большого опыта решения других задач. На этом этапе обязательно нужно ответить на вопрос: а нужна ли вообще для решения данной задачи нейронная сеть? Вполне возможно (и часто бывает так), что решение может быть получено алгоритмическим способом. В этом случае применение нейроимитатора обычно оказывается не эффективным. Далее следует определить используемые в задаче признаковые пространства, в которые включаются параметры, играющие важную роль в данной задаче. Если вы не являетесь экспертом в рассматриваемой предметной области, то на этом этапе целесообразно получить консультации. Общение с коллегами никогда не будет вредным, даже если вас считают ведущим специалистом по данному вопросу. При построении признаковых пространств следует учесть наличие и доступность соотвествующих данных, в противном случае у вас не будет информации для обучения нейросети. И, наконец, очень полезно представить ожидаемый результат работы нейросети и способ его дальнейшего использования. Во многих случаях это приводит к упрощению постановки, и, как следствие, к более эффективному решению. Если же полученные результаты не будут соответствовать вашим ожиданиям, то это — важная причина более фундаментально подойти к задаче.
Основы обучения и тестирования моделей нейросетей
В условиях современности не составляет особенных проблем использовать готовую нейросеть для обучения ее на основе своих данных. В зависимости от типа модели, структуры и прочего можно получить различные прогнозные данные. Тут на первый план выходят задача обучения и тестирования модели.
Мы, коллектив из Московского Энергетического Института, написали эту заметку, для того чтобы сложный мир нейронных сетей стал для вас чуточку проще.
Рассмотрим основные методы обучения ИНС
На данный момент самыми используемыми являются метод обратного распространения ошибки и применение генетического алгоритма. Это объясняется их простотой и распространённостью:
Сейчас проводится активная работа над разработкой гибридных методов, однако зачастую они слишком узкоспециализированы, что мешает их распространению.
Алгоритм обратного распространения ошибки является наиболее распространённым алгоритмом обучения нейросетевой модели. Его смысл заключается в попытке минимизации функции потерь, которая вводится для оценки того, насколько точны результаты прогноза нейронной сети. Используя градиент, алгоритм корректирует веса связей в слоях.
В качестве функции потерь используются различные оценки, например:
1) средняя абсолютная ошибка (MAE):
2) среднеквадратичная функция потерь (MSE):
3) среднеквадратичное отклонение (RMSE):
Идея генетического алгоритма заключается в реализации механики селекции и принципа эволюции. Постоянно применяя генетические операции: селекцию, кроссинговер и мутацию, алгоритм изменяет самую оптимальную популяцию, отбрасывая неподходящие и генерируя новые:
В случае нейронной сети в роли популяции выступают веса, которые посредством генетического алгоритма корректируются, тем самым улучшая показатели модели:
роме генетического алгоритма также применяются другие эвристические методы оптимизации, такие как Crow Search Algorithm (CSA) и Particle Swarm Optimization Algorithm (PSO). Однако ни один метод не является универсальным.
Немного о тестировании модели, а точнее о методах оценки
При тестировании модели нейронная сеть уже не изменяется в процессе прогнозирования. Говоря в терминах задачи классификации, для оценки результатов используется метрика «Правильность».
где TP – количество истинно положительных случаев, то есть когда случай был верно классифицирован и он принадлежит выбранному целевому множеству, TN – количество истинно отрицательных случаев, то есть когда случай была верна классифицирована и он принадлежит нецелевому множеству, FP – ложно-положительный – число случаев классификации элемента нецелевого множества как целевого, FN – ложно-отрицательный – число случаев классификации элемента целевого множества как нецелевого. Таким образом, Accuracy показывает долю верных ответов.
Другими метриками являются:
где Recall – доля истинно положительных к общему числу элементов целевого множества, FPR – доля ложноположительных к общему числу элементов нецелевого множества, Precision – доля истинно положительных к общему числу элементов, классифицированных как целевые, F-мера служит мерой эффективности, показывающей среднее гармоническое Precision и Recall.
В случае задач не классификации, а прогнозирования, обычно происходит исследование графиков истинных значений и прогнозируемых.
Авторы материала: Гужов С.В., Варшавский П.Р., Башлыков М.С., Тороп Д.В.
Работа выполнена в рамках проекта «Разработка нейросетевого программного обеспечения по прогнозированию спроса на тепловую энергию объектами массового строительства города Москвы» при поддержке гранта НИУ «МЭИ» на реализацию программы научных исследований «Приоритет 2030: Технологии будущего» в 2022-2024 гг.