image
Главная // Курс по ИИ для начинающих // Урок 2.7. Этапы нейросетевого моделирования на примере задачи, решаемой при помощи ИНС

Урок 2.7. Этапы нейросетевого моделирования на примере задачи, решаемой при помощи ИНС

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

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

  • с учителем
  • без учителя
  • с подкреплением.

Говоря по-простому, нейронная сеть — это черный ящик. Вы подаете на вход, какие-либо значения, и получаете от нее ответ на выходе. 

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

Чтобы нейронная сеть построила эту зависимость правильно, пройдите 9 шагов. Эти шаги часто называют этапами нейросетевого моделирования.

Этапы нейросетевого моделирования

  1. Постановка задачи
  2. Выбор источника обучающей выборки
  3. Выбор архитектуры нейронной сети для решения задачи
  4. Определение структуры нейронной сети (кол-во и тип входных и выходных данных, количество скрытых слоев)
  5. Подготовка обучающей выборки
  6. Выбор алгоритма обучения
  7. Проведение обучения нейросетевой модели
  8. Оценка адекватности работы модели
  9. Применение нейросетевой модели на практике

Пример решения задачи прогноза погоды в Москве при помощи нейронной сети

1. Постановка задачи

Предположим, вы хотите решить задачу прогнозирования метеоусловий. Для простоты возьмем только один параметр — температуру воздуха.

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

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

2. Выбор источников обучающей выборки

В качестве источника данных можно использовать достоверные данные из любого агрегатора погоды (Яндекс.Погода, Gismeteo и др.).

3. Выбор архитектуры нейронной сети

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

4. Определение структуры нейронной сети

На вход нейронной сети рекомендуем подавать два значения. Месяц от 1 до 12 и значение температуры. Сеть будет содержать два нейрона первого слоя. Определим число скрытых слоев, например 2 слоя по 3 нейрона в каждом. И один нейрон выходного слоя. Получится структура изображенная на картинке ниже.

Пример структуры нейронной сети для прогноза погоды в Москве
Пример структуры нейронной сети для прогноза погоды в Москве

   

5. Подготовка обучающей выборки

У вас есть выборка примеров для обучения — значения температуры воздуха в Москве в разбивке по месяцам и по дням за 10 лет. То есть 365*10 = 3650 строк. Эти цифры нужно нормировать в диапазоне от -1 до 1 (см. статью Способы нормализации данных). 

Фрагмент обучающей выборки для прогнозы погоды в Москве
Фрагмент обучающей выборки для прогнозы погоды в Москве


Стоит подумать над исключением аномальных значений, например +1-2 градус в в июне, или +5-10 градусов в январе, так как это экстремальные значения. Если их не исключать сеть может давать худший прогноз, т. к. будет учитывать эти аномалии, встречающиеся раз в несколько десятилетий.

Выборка должна быть разделена на обучающую и тестовую. Обучающую выборку используем для обучения, тестовую для проверку адекватности модели.

6. Выбор алгоритма обучения

В качестве алгоритма обучения НС можно выбрать метод обратного распространения ошибки (см. урок 2.4.) или любой градиентный метод.

7. Проведение обучения нейросетевой модели

Проводим обучение нейронной сети при помощи Python или любого другого пакета прикладных программ. Обучение ведем до достижения заданной ошибки или числа эпох.

8. Оценка адекватности работы модели 

Оценку адекватности проводим на тестовых данных. Например, можно рассчитать среднеквадратичную ошибку для 10-20 примеров, если она будет выше 80-90%, то модель можно использовать для прогноза. Если нет — тогда есть три варианта:
— сеть необходимо дообучить, добавив в обучающую выборку новые примеры,
— использовать другие алгоритмы обучения (оптимизаторы в Python),
— изменить структуру сети (число скрытых слоев и/или количество нейронов в них),

9. Применение нейросетевой модели на практике

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

Выводы

Мы рассмотрели в общем виде, как происходит нейросетевое моделирование. Данный алгоритм применим не только для простых задач. Его можно масштабировать и использовать для обучения сложных моделей с множеством параметров.

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

Небольшое домашнее задание

В качестве задачи на подумать, можете самостоятельно концептуально решить вот эту задачу.

Текст задачи: Сетевая компания, обслуживает город N, поставляя IP-адреса частным лицам. Компания хочет обработать данные клиентов, разделив клиентов на три класса: бедные, среднего достатка и богатые. 

Вопросы:

  1. Предложите по каким параметрам можно оценить клиентов, просматривая их трафик?
  2. Какую модель(-ли) нейронной сети можно использовать для данной задачи? Нарисуйте схему.
  3. Какое количество нейронов необходимо во входном и выходном слое? Почему?

Ответ под спойлером:




Оставить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Похожие новости

Искусственный интеллект — это просто!