Мультиклассовая нейронная сеть

Важно!

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

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

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

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

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

Примечание

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

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

Обзор модуля

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

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

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

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

Дополнительные сведения о нейронных сетях

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

Между входным и выходным слоями можно вставить несколько скрытых слоев. Большинство задач прогнозирования можно легко выполнить только с одним или несколькими скрытыми слоями. Однако последние исследования показали, что глубокие нейронные сети (DNN) с множеством уровней могут быть очень эффективны в сложных задачах, таких как распознавание изображений или речи. Для моделирования повышения глубины семантики используются последовательные уровни.

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

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

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

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

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

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

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

  3. Hidden layer specification (Спецификация скрытого слоя). Выберите тип создаваемой сетевой архитектуры для создания.

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

      • Один скрытый слой.
      • Выходной слой полностью подключен к скрытому слою.
      • Скрытый слой полностью подключен ко входному слою.
      • Количество узлов во входном слое определяется количеством признаков в обучающих данных.
      • Количество узлов в скрытом слое может быть задано пользователем. Значение по умолчанию — 100.
      • Количество узлов в выходном слое зависит от количества классов.
    • Скрипт настраиваемого определения. Выберите этот параметр, чтобы создать пользовательскую архитектуру нейронной сети с помощью языка NET #. Можно определить количество скрытых слоев, их соединения и дополнительные параметры, такие как указание сопоставлений между слоями. Дополнительные сведения о NET # см. в разделе net # далее в этой статье.

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

  5. Количество скрытых узлов. Этот параметр позволяет настроить количество скрытых узлов в архитектуре по умолчанию. Введите количество скрытых узлов. По умолчанию используется один скрытый слой со 100 узлами.

  6. Скорость обучения. Определите размер шага, выполняемого на каждой итерации, перед исправлением. Более высокие значения скорости обучения могут ускорить сходимость модели, но при этом возможен выход за локальный минимум.

  7. Число итераций обучения: Укажите максимальное число раз, которое алгоритм должен обработать обучающие варианты.

  8. The initial learning weights diameter (Начальный диаметр весовых коэффициентов обучения). Задайте весовые коэффициенты узлов в начале процесса обучения.

  9. The momentum (Момент). Укажите весовой коэффициент, применяемый во время обучения к узлам из предыдущих итераций.

  10. Тип нормализации: выберите метод, используемый для нормализации компонентов. Поддерживаются следующие методы нормализации:

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

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

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

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

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

  11. Shuffle examples (Случайный порядок примеров). Выберите этот параметр, чтобы разместить варианты в итерациях в случайном порядке.

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

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

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

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

  14. Подключение набор данных для обучения и один из обучающих модулей:

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

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

    Примечание

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

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

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

Результаты

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

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

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

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

Примеры

Примеры использования этого алгоритма обучения см. в разделе примеры экспериментов в Коллекция решений ии Azure. Эксперименты связаны между собой и описаны в одном документе, в котором конфигурации представлены по порядку от простых к сложным:

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

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

Настройка нейронной сети с помощью сценария

в Машинное обучение 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;1,0] Тип с плавающей запятой 0.1 Укажите размер каждого шага в процессе обучения
Импульс [0.0;1.0] Float 0,0 Укажите весовой коэффициент, применяемый во время обучения к узлам из предыдущих итераций
Определение нейронной сети Любой StreamReader При выборе параметра Пользовательский сценарий определения введите допустимое выражение сценария в каждой строке для определения слоев, узлов и поведения настраиваемой нейронной сети.
Тип метода нормализации Список Метод нормализации Минимаксный метод нормализации Выберите тип нормализации для применения в примерах обучения
Количество итераций обучения >= 1 Целое число 100 Укажите количество итераций во время обучения
Случайный порядок примеров Любой Логическое значение True Выберите этот параметр для изменения порядка экземпляров между итерациями обучения
Начальное значение случайного числа Любой Целое число Укажите числовое начальное значение для генерации случайных чисел. Оставьте поле пустым, чтобы использовать начальное значение по умолчанию.
Разрешить неизвестные категориальные уровни Любой Логическое значение True Параметр указывает, следует ли создавать дополнительный уровень для неизвестных категорий. Если проверочный набор данных содержит категории, отсутствующие в обучающем наборе, то они сопоставляются с этим уровнем.

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

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

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

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