Поделиться через


Регрессия нейронной сети

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

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

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

Примечание

применимо к: только Машинное обучение Studio (классическая модель)

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

Обзор модуля

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. В спецификации скрытого слоявыберите вариант полностью подключенный вариант. Будет создана модель с использованием архитектуры нейронной сети по умолчанию, которая для модели регрессии нейронной сети имеет следующие атрибуты:

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

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

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

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

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

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

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

  9. Для типа нормализациивыберите один из следующих методов для нормализации компонентов:

    • Группирования нормализация: группирования создает группы одинакового размера, а затем нормализует каждое значение в каждой группе, деленное на общее число групп.

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

    • Нормализация min-max: нормализация min-max линейное масштабирование всех компонентов до интервала [0, 1].

      Масштабирование в интервале [0,1] осуществляется путем сдвига значений каждого компонента таким образом, чтобы минимальное значение было равно 0, а затем деления на новое максимальное значение (которое представляет собой разницу между первоначальными максимальными и минимальными значениями).

    • Не выполнять нормализацию: нормализация не выполняется.

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

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

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

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

  13. Подключение обучающий датсет и один из обучающих модулей:

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

    • Если для параметра создать режим инструктора задать значение диапазон параметров, используйте Параметры настройки модели.

    Предупреждение

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

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

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

  14. Запустите эксперимент.

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

  1. Добавьте модуль регрессии нейронной сети в эксперимент.

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

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

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

  3. В спецификации скрытого слоявыберите Пользовательский скрипт определения. Этот параметр необходимо выбрать, если необходимо определить пользовательскую архитектуру нейронной сети с помощью языка net # .

  4. После выбора параметра скрипта пользовательского определения отображается текстовое поле Определение нейронной сети . Можно вставить в NET # script, чтобы определить пользовательскую архитектуру нейронной сети, включая число скрытых слоев, их соединения и дополнительные параметры, такие как указание сопоставлений между слоями.

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

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

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

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

  9. Для типа нормализациивыберите один из следующих методов для нормализации компонентов:

    • Группирования нормализация: группирования создает группы с равным размером, а затем нормализует каждое значение в каждой группе путем деления на общее число групп.

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

    • Min-max: нормализация по шкале min-max линейное масштабирование всех компонентов до интервала [0, 1].

      Масштабирование в интервале [0,1] осуществляется путем сдвига значений каждого компонента таким образом, чтобы минимальное значение было равно 0, а затем деления на новое максимальное значение (которое представляет собой разницу между первоначальными максимальными и минимальными значениями).

    • Не выполнять нормализацию: нормализация не выполняется.

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

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

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

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

  13. Подключение обучающий датсет и один из обучающих модулей:

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

    • Если для параметра создать режим инструктора задать значение диапазон параметров, используйте Параметры настройки модели.

    Предупреждение

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

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

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

  14. Запустите эксперимент.

Результаты

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

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

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

  • Чтобы выполнить перекрестную проверку для набора данных с меткой, подключите обученную модель к перекрестной проверке модели.

Примеры

Примеры использования этого алгоритма в экспериментах см. в следующих примерах в Коллекция решений ии Azure:

Эксперименты предоставляют дополнительную помощь по net #. Эксперименты связаны и выполняются из базовых и расширенных конфигураций:

Технические примечания

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

Дополнительные сведения о команде net #

в Машинное обучение Studio (классическая модель) можно настроить архитектуру модели нейронной сети с помощью языка Net #. Настройки, поддерживаемые языком NET #, включают:

  • Указание количества скрытых слоев и количества узлов в каждом слое
  • Указание сопоставлений между слоями
  • Определение свертки и пакетов с общим доступом к весу
  • Выбор функции активации

Модель нейронной сети определяется структурой ее графа, которая включает следующие атрибуты:

  • Число скрытых слоев
  • Число узлов в каждом скрытом слое
  • Как соединяются слои
  • Какая функция активации используется
  • Весовые коэффициенты для ребер графа

Важно!

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

Как правило, в сети имеются следующие значения по умолчанию:

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

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

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

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

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Дополнительные примеры сценариев см. в разделе Guide по языку спецификации нейронных сетей NET #.

Совет

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

Параметры модуля

Имя Диапазон Тип По умолчанию Описание
Спецификация скрытого слоя Список Топология нейронной сети Полностью связанный слой Укажите архитектуру скрытого слоя или слоев
Диаметр начальных весовых коэффициентов обучения >= double.Epsilon Тип с плавающей запятой 0.1 Укажите весовые коэффициенты узлов в начале процесса обучения
Скорость обучения [double.Epsilon;0,01] Float 0,005 Укажите размер каждого шага в процессе обучения
Импульс [0.0;1.0] Float 0,0 Укажите весовой коэффициент, применяемый во время обучения к узлам из предыдущих итераций
Определение нейронной сети Любой StreamReader При выборе параметра "Пользовательский сценарий определения" введите допустимое выражение сценария в каждой строке для определения слоев, узлов и поведения настраиваемой нейронной сети
Тип метода нормализации Список Метод нормализации Минимаксный метод нормализации Выберите тип нормализации для применения в примерах обучения
Количество скрытых узлов Любой Строка 100 Введите количество узлов в скрытом слое. В случае нескольких скрытых слоев введите список через запятую.
Количество итераций обучения >= 1 Целое число 100 Укажите количество итераций во время обучения
Случайный порядок примеров Любой Логическое Да Выберите этот параметр для изменения порядка экземпляров между итерациями обучения
Начальное значение случайного числа Любой Целое число Укажите числовое начальное значение для генерации случайных чисел. Оставьте поле пустым, чтобы использовать начальное значение по умолчанию.

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

Выходные данные

Имя Тип Описание
Необученная модель Интерфейс ILearner Необученная модель регрессии

См. также раздел

Регрессия
Список модулей в алфавитном порядке