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


Технический справочник по алгоритму нейронной сети Майкрософт

Нейронная сеть Microsoft использует многослойный перцептрон, также называемый сетью Back-Propagated Delta Rule, который состоит из трех слоев нейронов или перцептронов. Эти слои являются входным слоем, необязательным скрытым слоем и выходным слоем.

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

Реализация алгоритма нейронной сети Майкрософт

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

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

  • Input neurons

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

  • Hidden neurons

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

  • Output neurons

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

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

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

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

Обучение нейронных сетей

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

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

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

Замечание

Эти параметры алгоритма отличаются от свойств HOLDOUT_SIZE и HOLDOUT_SEED, которые применяются к структуре модели для определения тестового набора данных.

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

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

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

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

Выбор признаков

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

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

Алгоритм Метод анализа Комментарии
Нейронная сеть Оценка интересности

Энтропия Шеннона

Байесовский с априорным распределением K2

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

По умолчанию.
Логистическая регрессия Оценка интересности

Энтропия Шеннона

Байесовский с априорным распределением K2

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

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

Методы оценки

Оценка — это своего рода нормализация, которая в контексте обучения модели нейронной сети означает процесс преобразования значения, например дискретной текстовой метки, в значение, которое можно сравнить с другими типами входных данных и взвешенных в сети. Например, если один входной атрибут является полом и возможными значениями являются Male и Female, а другой входной атрибут — "Доход", с переменным диапазоном значений, значения для каждого атрибута не являются напрямую сопоставимыми и поэтому должны быть закодированы в общий масштаб, чтобы вычислить весовые значения. Оценка — это процесс нормализации таких входных данных числовыми значениями: в частности, для диапазона вероятностей. Функции, используемые для нормализации, также помогают равномерно распределять входные значения в равномерном масштабе, чтобы крайние значения не искажали результаты анализа.

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

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

Дискретные значения

μ = p - предварительная вероятность состояния

StdDev = sqrt(p(1-p))

Непрерывные значения

Значение в настоящий момент = 1 — μ/σ

Нет существующего значения = -μ/σ

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

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

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

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

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

В следующей таблице описаны параметры, которые можно использовать с алгоритмом нейронной сети Майкрософт.

СКРЫТОЕ ОТНОШЕНИЕ УЗЛОВ
Указывает отношение скрытых нейронов к входным и выходным нейронам. Следующая формула определяет начальное число нейронов в скрытом слое:

HIDDEN_NODE_RATIO * SQRT(Всего входных нейронов * Всего выходных нейронов)

Значение по умолчанию — 4.0.

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

Значение по умолчанию — 30.

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

Значение по умолчанию — 0.

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

Значение по умолчанию — 255.

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

Значение по умолчанию — 255.

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

Значение по умолчанию — 100.

РАЗМЕР_ВЫБОРКИ
Указывает количество вариантов, используемых для обучения модели. Алгоритм использует либо это число, либо процент общего числа случаев, не включенных в данные для проверки, как указано параметром HOLDOUT_PERCENTAGE, в зависимости от того, какое из значений меньше.

Другими словами, если для HOLDOUT_PERCENTAGE задано значение 30, алгоритм будет использовать значение этого параметра или значение, равное 70 процентам общего числа случаев, в зависимости от того, что меньше.

Значение по умолчанию — 10000.

Флаги моделирования

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

НЕ ПУСТОЙ
Указывает, что столбец не может содержать значение NULL. Ошибка возникнет, если службы Analysis Services столкнутся с null'ом во время обучения модели.

Применяется к столбцам структуры данных.

Только_наличие_модели
Указывает, что модель должна учитывать, существует ли значение для атрибута или отсутствует значение. Точное значение не имеет значения.

Применяется к столбцам модели интеллектуального анализа данных.

Флаги распространения

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

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

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

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

Требования

Модель нейронной сети должна содержать по крайней мере один входной столбец и один выходной столбец.

Входные и предсказуемые столбцы

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

колонна Типы содержимого
Входной атрибут Непрерывный, циклический, дискретный, дискретизированный, ключ, таблица и упорядоченный
Прогнозируемый атрибут Непрерывный, циклический, дискретный, дискретизированный и упорядоченный

Замечание

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

См. также

Алгоритм нейронной сети Майкрософт
Модель контента интеллектуального анализа данных для моделей нейронных сетей (Analysis Services — интеллектуальный анализ данных)
Примеры запросов модели нейронной сети