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


Алгоритм нейронной сети (Microsoft) (службы SSAS)

В службах Microsoft SQL Server 2005 Analysis Services (SSAS) алгоритм нейронной сети (Microsoft) создает классификационные и регрессивные модели интеллектуального анализа данных путем построения многоуровневой перцептронной сети нейронов. Так же как и алгоритм дерева принятия решений (Microsoft), при получении сведений о каждом состоянии прогнозируемого атрибута алгоритм нейронной сети (Microsoft) рассчитывает вероятность возникновения каждого возможного состояния входного атрибута. Указанные вероятности можно будет позже использовать для прогнозирования исхода прогнозируемого атрибута на основе данных о входных атрибутах.

Пример

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

Предлагаются следующие сценарии использования алгоритма нейронной сети (Microsoft):

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

Принцип работы алгоритма

Алгоритм нейронной сети (Microsoft) использует многоуровневую перцептронную сеть, также известную под названием сеть дельта-правила с обратным распространением, в состав которой может входить до трех уровней нейронов, иначе именуемых перцептронами. Такими слоями являются входной слой, необязательный скрытый слой и выходной слой. В многоуровневой перцептронной сети каждый нейрон получает один или несколько входов, а также создает один или несколько одинаковых выходов. Каждый выход является простой нелинейной функцией суммы входов, полученных нейроном. Входы направляются только вперед от узлов во входном слое к узлам в скрытом слое, чтобы в итоге попасть на выходной слой; нейроны в составе слоя не соединены друг с другом. (Если скрытый слой исключен, то входы направляются вперед от узлов входного слоя к узлам выходного слоя.) В задачи настоящей документации не входит подробное рассмотрение многоуровневых перцептронных сетей.

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

Существует три типа нейронов нейронной сети, создаваемой при помощи алгоритма нейронной сети Microsoft:

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

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

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

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

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

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

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

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

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

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

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

Использование алгоритма

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

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

Типы содержимого входных столбцов

Continuous, Cyclical, Discrete, Discretized, Key, Table и Ordered

Типы содержимого прогнозируемых столбцов

Continuous, Cyclical, Discrete, Discretized и Ordered

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

MODEL_EXISTENCE_ONLY и NOT NULL

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

Normal, Uniform и Log Normal

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

IsDescendant

PredictStdev

PredictAdjustedProbability

PredictSupport

PredictHistogram

PredictVariance

PredictProbability

 

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

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

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

Параметр Описание

HIDDEN_NODE_RATIO

Указывает соотношение скрытых нейронов к входным и выходным нейронам. Следующая формула определяет начальное количество нейронов в скрытом слое:

HIDDEN_NODE_RATIO * SQRT(Total input neurons * Total output neurons)

Значение по умолчанию равно 4,0.

HOLDOUT_PERCENTAGE

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

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

HOLDOUT_SEED

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

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

MAXIMUM_INPUT_ATTRIBUTES

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

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

MAXIMUM_OUTPUT_ATTRIBUTES

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

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

MAXIMUM_STATES

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

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

SAMPLE_SIZE

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

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

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

См. также

Основные понятия

Алгоритмы интеллектуального анализа данных
Выбор компонентов в интеллектуальном анализе данных
Использование средств интеллектуального анализа данных
Просмотр модели интеллектуального анализа при помощи средства просмотра нейронных сетей (Microsoft)

Другие ресурсы

CREATE MINING MODEL (расширения интеллектуального анализа данных)

Справка и поддержка

Получение помощи по SQL Server 2005