Компонент "Регрессия нейронной сети"

Создает модель регрессии с помощью алгоритма нейронной сети

Категория: Машинное обучение/Модель инициализации/Регрессия

Обзор компонентов

В этой статье описывается компонент в конструкторе Машинного обучения Azure.

Этот компонент используется для создания модели регрессии с помощью настраиваемого алгоритма нейронной сети.

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

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

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

Настройка регрессии нейронной сети

Нейронные сети обладают широкими возможностями настройки. В этом разделе описывается создание модели с помощью двух методов:

  • Создание модели нейронной сети с использованием архитектуры по умолчанию

    Если вы принимаете архитектуру нейронной сети по умолчанию, используйте панель Свойства, чтобы задать параметры, управляющие поведением нейронной сети, например число узлов в скрытом слое, скорость обучения и нормализацию.

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

  • Определение пользовательской архитектуры для нейронной сети

    Используйте этот вариант, если требуется добавить дополнительные скрытые слои или полностью настроить архитектуру сети, ее подключения и функции активации.

    Этот способ подходит для тех, кто уже в какой-то мере знаком с нейронными сетями. Для определения архитектуры сети используется язык Net#.

Создание модели нейронной сети с использованием архитектуры по умолчанию

  1. Добавьте компонент Регрессия нейронной сети в конвейер в конструкторе. Вы можете найти этот компонент в разделе Машинное обучение, Инициализация в категории Регрессия.

  2. Укажите, как вы хотите обучать модель, настроив параметр Create trainer mode (Создать режим учителя).

    • Single Parameter (Один параметр). Выберите этот вариант, если уже знаете, как хотите настроить модель.

    • Диапазон параметров: используйте этот вариант, если вы не знаете наилучшие параметры и хотите выполнить перебор параметров. Выберите диапазон значений для итерации и в процессе Настройка гиперпараметров модели выполните итерацию по всем возможным сочетаниям указанных параметров, чтобы определить гиперпараметры, которые приводят к оптимальным результатам.

  3. В разделе Hidden layer specification (Спецификация скрытого слоя) выберите Fully connected case (Полное подключение). Будет создана модель с использованием архитектуры нейронной сети по умолчанию, которая для модели регрессии нейронной сети имеет следующие атрибуты:

    • Сеть имеет ровно один скрытый слой.
    • Выходной слой полностью подключен к скрытому уровню, а скрытый слой полностью подключен к входному уровню.
    • Число узлов в скрытом слое можно задать пользователем (значение по умолчанию — 100).

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

  4. Задайте значение для параметра Number of hidden nodes (Число скрытых узлов). По умолчанию используется один скрытый слой со 100 узлами. (Этот параметр недоступен, если вы определяете пользовательскую архитектуру с помощью Net#.)

  5. для параметра Learning rate (Скорость обучения) введите значение, которое определяет шаг, выполненный на каждой итерации, до осуществления коррекции. Большее значение для скорости обучения может привести к тому, что модель сходится быстрее, но она может перезахотить локальную миниму.

  6. Для параметра Number of learning iterations (Число итераций обучения) укажите максимальное число обработок обучающих вариантов по алгоритму.

  7. Для параметра The momentum (Импульс) введите значение, которое будет применяться во время обучения в качестве веса для узлов из предыдущих итераций.

  8. Выберите параметр Shuffle examples (Перемешать примеры), чтобы изменить порядок вариантов между итерациями. Если этот параметр не выбран, варианты будут обрабатываться в одном и том же порядке при каждом запуске конвейера.

  9. В параметре Random number seed (Случайное начальное значение) можно ввести необязательное значение, которое будет использоваться в качестве начального. Указывать начальное значение полезно, когда необходимо проверить повторяемость несколькими запусками одного и того же конвейера.

  10. Подключите набор данных для обучения и выполните обучение модели:

    • Если для параметра Создать режим учителя задано значение Одиночный параметр, подключите отмеченный набор данных и компонент Обучение модели.

    • Если для параметра Create trainer mode выбран вариант Parameter Range, подключите набор помеченных данных и обучите модель с помощью модуля Настройка гиперпараметров модели.

    Примечание.

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

    Если передать в компонент Настройка гиперпараметров модели один набор значений параметров, когда он ожидает диапазон настроек для каждого параметра, он проигнорирует эти значения и использует значения по умолчанию для средства обучения.

    Если выбран вариант Parameter Range (Диапазон параметров) и указано одно значение для любого параметра, это единственное заданное значение будет использоваться во время очистки, даже если другие параметры меняются в диапазоне значений.

  11. Отправьте конвейер.

Результаты

После завершения обучения:

  • Чтобы сохранить моментальный снимок обученной модели, выберите вкладку Выходные данные на правой панели компонента Обучение модели. Щелкните значок Зарегистрировать набор данных, чтобы сохранить модель как компонент для повторного использования.

Следующие шаги

Ознакомьтесь с набором доступных компонентов для машинного обучения Azure.