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


Двухклассовая нейронная сеть

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

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

Примечание

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

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

Обзор модуля

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

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

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

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

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

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

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

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

Настройка нейронной сети Two-Class

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

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

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

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

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

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

      • Имеет один скрытый слой.

      • Выходной слой полностью связан со скрытым слоем, который, в свою очередь, полностью связан с входным слоем.

      • Количество узлов во входном слое равно количеству признаков в обучающих данных.

      • Количество узлов в скрытом слое задается пользователем. Значение по умолчанию — 100.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Примечание

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

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

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

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

Результаты

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

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

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

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

Примеры

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

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

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

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

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

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

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

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