Назаметдинов Анализ данных 2012
.pdf
связан не с программированием метода решения, а заменен процедурой обучения сети.
Нейросетевой подход опирается на простейшую биологическую модель нервной системы, а именно на низкоуровневую структуру мозга. Мозг состоит из особых клеток – нейронов, соединенных между собой многочисленными связями. Нейрон имеет входы (дендриты), ядро и разветвляющийся выход (аксон). Аксон соединяется с дендритами других нейронов с помощью синапсов. Нейрон возбуждается, иначе активизируется, если суммарный сигнал от всех дендритов нейрона превысит некоторый порог. При этом интенсивность сигнала существенно зависит от активности синапсов. Изменение «силы» синаптических связей составляет процесс обучения.
Математическая модель нейрона i представляет собой некоторую нелинейную функцию y=f(zi) от единственного аргумента zi — линейной комбинации всех входных сигналов
n |
|
zi wij x j wi0 , |
(13.1) |
i 1
где xi – сигналы на входе нейрона, wij – веса синаптических связей, w0 – пороговое значение, формирующее порог чувствительности нейрона.
Если wij=0, то говорят, связь между нейронами i и j отсутствует.
Возможные значения сигналов на входах нейрона считают заданными в интервале [0,1]. Они могут быть либо дискретными (0 или
1), либо непрерывными.
Функцию f(z) называют передаточной функцией или функцией активации. Класс функций активации достаточно широк: это могут быть пороговые функции, линейные, кусочно-линейные, колоколообразные. Однако наибольшее распространение получили нелинейные дифференцируемые S-образные (сигмоидные) функции, в качестве примера которой укажем логистическую функцию
|
1 |
|
f (z) |
1 e kz . |
(13.2) |
Выходы нейронов соединяются с входами других нейронов, образуя тем самым сеть. Естественно выделить входы (входные
271
нейроны), принимающие значения переменных извне, и выходы (выходные нейроны), соответствующие сигналам, идущим вовне системы. Кроме этого в сети могут присутствовать промежуточные (скрытые) нейроны.
Простейшая сеть имеет иерархическую структуру: входы связаны с промежуточными нейронами, образуя, как правило, полный двудольный граф; промежуточные нейроны аналогичным образом связаны со скрытыми нейронами следующего уровня (слоя) и так далее до выхода. Сети такой структуры являются сетями прямой передачи сигналов (без обратной связи). Сети прямой передачи называют также перцептронами. Такие сети имеют устойчивое поведение. Наличие обратных связей порождает класс рекуррентных сетей, делает их поведение сложным, требующим специального исследования. При решении практических задач в основном используются сети прямой передачи.
Работу сети можно описать следующим образом. На вход сети подаются значения входных переменных, затем активизируются нейроны промежуточных и выходного слоев. Для каждого нейрона очередного слоя вычисляется взвешенная сумма (13.1) выходов элементов предыдущего слоя, из которой вычитается пороговое значение w0. Полученную величину называют значением активации. Затем значение активации поступает на вход функции активации f(z), значение которой есть выход нейрона. В свою очередь, этот выход поступает на входы нейронов следующего слоя. В итоге сеть осуществляет сложное преобразование φ входного (исходного) набора данных в выходной. Как правило, число слоев не превышает трех, при этом считается, что входные переменные образуют первый слой, затем – промежуточный (он же скрытый) слой нейронов, и наконец, третий слой – выходные нейроны.
Математической основой нейронных сетей является знаменитая теорема Колмогорова, которая утверждает, что любую непрерывную функцию n-переменных φ(x1,x2,...xn), определенную на n-мер- ном единичном кубе, можно представить в виде суммы 2n+1 композиций, иначе суперпозиций, непрерывных и монотонных отображений единичных отрезков. Напомним, что под композицией функций понимается подстановка одной функции в качестве аргу-
272
мента другой. Формальная запись теоремы Колмогорова следующая:
2n 1 |
|
n |
|
|
|
|
|
hij (xi ) |
|
, |
(13.3) |
φ(x1, x2...xn ) g j |
|
||||
j 1 |
i 1 |
|
|
|
|
где gj и hij — непрерывные функции, причем hij не зависят от функции φ.
Применительно к нейросетям теорему можно проинтрепретировать так. Если известны функции hij, то любую непрерывную функцию от n переменных можно точно реализовать с помощью трехслойной нейросети подбором передаточных функций gj для 2n+1 нейронов скрытого слоя. Отметим, что теорема Колмогорова носит концептуальный характер и не указывает, как найти функции hij и как подбирать функции gj для данной функции φ.
В более поздних работах были найдены конструктивные подходы к проблеме аппроксимации функций. Показано, что сущесвуют такое число H, а также наборы чисел wij, и vi, что функция
H
φ * (x1 , x2 ,...,xn ) vi f (wi1 x1 wi 2 x2 ... win xn wi0 )
i 1
приближает данную функцию φ(x1,x2, ..., xn) с погрешностью не более ε на всей области определения. Ошибка ε составляет величину порядка 1/Н. В данной формуле в отличие от (13.3) вид функций преобразования определен – это сигмоидные функции. В терминах теории нейросетей эта теорема утверждает, что любую непрерывную функцию нескольких переменных можно с любой точностью реализовать с помощью трехслойной сети с достаточным количеством нейронов в скрытом слое.
Обучение сети
Поиск весов wij, и vi происходит в процессе обучения сети. Для этого на вход сети последовательно подаются элементы обучающей выборки Х, содержащие значения входных переменных. В задачах аппроксимации функций и дискриминантного анализа в
обучающую выборку входят также соответствующие им значения
~
выходной переменной у . В задачах кластеризации в обучающую
выборку входит лишь входные переменные. Ограничимся пока за-
273
дачами аппроксимации. Полученные на выходе сети значения у
~
сопоставляются с у . В качестве меры расхождения W широко ис-
пользуется среднеквадратическая ошибка, представляющая собой квадратный корень из суммы квадратов отклонений, нормированная на число наблюдений и переменных. Графическую интерпретацию меры расхождения в пространстве весов wij и порогов w0, являющихся параметрами сети, называют поверхностью ошибок. В ходе обучения ищется такая точка, которая доставляет глобальный минимум W. Для линейной модели с квадратичной функцией ошибок минимум будет единственным, для нелинейных возможно наличие локальных минимумов.
Предложен ряд алгоритмов обучения НС. По сути своей они представляют численные методы поиска экстремума функции многих переменных. Самый известный алгоритм – алгоритм обратного распространения [8] является градиентным методом поиска минимума функции: отталкиваясь от случайной начальной конфигурации весов и порогов, ищут градиент W, указывающий направление кратчайшего спуска по поверхности ошибок. Делается шаг в направлении градиента, вновь определяется градиент и так далее. Существуют эвристические модификации этого метода, хорошо зарекомендовавшие себя для определенного класса задач, – быстрое распространение, дельта-дельта с чертой. Для нелинейных моделей
более быстрыми часто оказываются метод сопряженных градиентов и метод Левенберга-Маркара (Марквардта – Marquardt D.W.).
Последний хорошо зарекомендовал себя в задачах нелинейной регрессии (см.гл.3).
В процессе обучения ищется минимум ошибки на обучающей выборке. Поскольку сеть обучается с целью обобщать результаты на новые наблюдения, а обучающее множество далеко не всегда является репрезентативным, возникает так называемая проблема переобучения, или излишней подгонки. Здесь уместна аналогия с регрессионным анализом. При наличии случайных возмущений добиваться нулевого расхождения между наблюденными и оцененными значениями функции отклика за счет введения дополнительных базисных функций неразумно (см.п.3). Сети с большим
274
числом нейронов моделируют более сложные функции, обеспечивая более тесную подгонку к значениям обучающей выборки, потому склонны к переобучению. В то же время сеть с малым числом нейронов может оказаться недостаточно гибкой, чтобы смоделировать обучающую выборку. Поиск подходящей архитектуры сети представляет собой итерационный процесс. Для этого вначале из обучающих наблюдений формируется контрольная выборка. По мере обучения ошибка вначале будет убывать и на обучающем, и на контрольном множествах. Если же контрольная ошибка перестала убывать или даже растет, то обучение следует прекратить, а саму сеть можно упростить, уменьшив число скрытых элементов и/или слоев. Поскольку контрольное множество оказывается включенным в процесс обучения, то для большей надежности резервируют еще одно – тестовое множество наблюдений. Это множество используется только один раз для итоговой модели.
Отбор данных
Все три набора указанных выше данных должны быть репрезентативными (представительными). Для регрессионных моделей они должны быть однородными, т.е. иметь тот же закон распределения, что и набор данных, для которого будет использоваться сеть. В задачах кластеризации обучающее, контрольное и тестовое множества должны иметь пропорцию объектов разных типов, такую же, что и в исследуемом множестве.
Предобработка данных
Данные как результат измерения в той или иной шкале перед подачей на вход НС подвергаются предварительной обработке – масштабированию. Необходимость масштабирования связана с тем, что сигмоидные функции активации хотя и определены на всей числовой оси, имеют достаточно узкий диапазон «чувствительности». Так, логистическая функция (13.2) при k=1, монотонно возрастая от 0 до 1 в диапазоне от -∞ до ∞, меняется от ≈0,05 до ≈0,95 в диапазоне от -3 до 3.
Приведение данных к единому масштабу проводится в основном линейными преобразованиями – нормировкой либо стандартизацией. При нормировке данные преобразуются в соответствии с
275
формулой xн |
x xmin |
. Ясно, что 0≤хн≤1. Недостаток норми- |
|
||
|
xmax xmin |
|
ровки в том, что при наличии резко выделяющихся наблюдений («выбросов») основная масса наблюдений будет концентрироваться в узком диапазоне возле нуля. При стандартизации переменные нормируются не на экстремальные значения, а на усредненную ха-
рактеристику – стандартное отклонение σ: xc x x . Поскольку
стандартизация не гарантирует единичную величину диапазона изменения переменных, то для стандартизованных переменных можно применить ту же функцию активации, что и для нейронов сети.
Номинальная переменная с n уровнями представляется в виде вектора с n булевыми компонентами, принимающими значение 1 в позиции i, если ee значение соответствует уровню i.
Возможность использования НС в регрессионном анализе следует из логики построения НС. Кроме того, НС оказались полезными как в задачах классификации, так и кластеризации и выделении главных компонент. Несмотря на то, что в последних отсутствует обучающая выборка, НС обладают способностью к самообучению, отыскивая во входных данных образы и кодируя их на выходе. Поясним сказанное на примере простой сети, состоящей из нескольких входных ячеек, соответствующих исходным переменным и одного выходного нейрона. Для такой сети выход определя-
|
n |
ется выражением y wi xi . Если менять веса по правилу Ойя |
|
|
i 0 |
wi |
ky(xi ywi ) , где k – множитель, регулирующий скорость обу- |
чения, то движение в направлении вектора весов будет максимизировать средний квадрат выхода у. Иначе говоря, выбранное направление совпадает с направлением первой главной компоненты. В задачах кластеризации полезными оказались самоорганизующиеся карты Кохонена. Нейронная сеть карт Кохонена относится к классу конкурентных сетей, где нейроны выходного слоя конку-
276
риуют между собой за право быть победителем. Победителем считается нейрон, веса которого наиболее близки к входному образу.
13.2. Генетические алгоритмы
Генетический алгоритм (ГА) является схемой организации перебора при поиске наилучшего решения по аналогии с таким естественным процессом, как эволюция на базе селекции (естественного отбора) популяций живых существ в борьбе за выживание. Эволюция живых организмов происходит за счет изменения хромосом. В процессе селекции отбираются хромосомы с наибольшими значениями функции приспособленности (пригодности, живучести, витальности). Именно они являются первоочередными кандидатами на создание новых хромосом в результате рекомбинации (кроссинговера, кроссовера) генов родительских хромосом. Рекомбинация генов происходит за счет скрещивания и мутации. При скрещивании создается пара новых хромосом потомков за счет комбинирования генетического материала родителей, мутация вызывает изменения в отдельных хромосомах.
Вид функций приспособленности определяется самой задачей. Так, в задачах оптимизации это сама целевая функция, в задачах управления – функция погрешности, в теории игр – стоимостная функция.
Поскольку при описании генетического алгоритма широко используются термины, заимствованные из генетики, приведем их определение. Популяция – конечное множество особей. Особь – элемент популяции, представленный в виде набора хромосом. Хромосома (иначе цепочка, кодовая последовательность) – упорядо-
ченная последовательность генов. Ген – атомарный элемент гено-
типа, в частности, хромосомы. Генотип – набор хромосом данной особи. Возможны случаи, когда генотип состоит из одной хромосомы. Аллель – значение конкретного гена. Фенотип – набор значений (множество параметров, решение, точка пространства поиска), соответствующих данному генотипу. Поколение (генерация) – новое поколение после шага работы ГА. Отметим, что каждая хромосома соответствует возможному решению задачи.
277
ГА состоит следующих основных шагов [15]:
1)формирование исходной популяции хромосом;
2)оценивание приспособленности хромосом в популяции;
3)выбор (селекция) родительских хромосом;
4)формирование потомства оператором скрещивания;
5)мутация новых особей.
ГА состоит из многократного повторения шагов 2-5 до тех пор, пока не сформируется заданное количество поколений, либо популяция достигла приемлемого качества, либо достигнут заданный уровень сходимости.
Применение ГА требует определения:
формы генетического представления решений задачи; способа создания начальной популяции;
оценочной функции, с помощью которой ранжируются решения (хромосомы) по степени их пригодности;
значения параметров ГА (размер популяции, вероятности скрещивания и мутации, количество поколений).
Проиллюстрируем работу ГА на примере поиска максимума функции f(x)=1000-(х-28)2 на отрезке [0;31]. В задаче поиска экс-
тремума, как уже отмечалось, в качестве функции приспособленности выступает сама функция: чем больше ее значение, тем больше пригодность хромосомы. Ограничимся поиском решения в классе целых чисел. Число хромосом берется равным размерности функции. В нашем случае достаточно одной хромосомы.
Кодирование решения в хромосоме – одна из ключевых проблем в ГА. Классическим является бинарный метод кодирования. В этом методе диапазон значений переменной Δ=b-a дискретизируются и представляется в двоичной форме с числом разрядов m=[log2 ] ([...] означает целое число, округленное в большую сторону). В рассматриваемом примере Δ=31-0=31, следовательно, понадобится пять двоичных разрядов. Потенциальным решением выступает любое 5- битовое число от 00000 до 11111.
Вернемся к примеру. Возьмем размер популяции равным четы-
рем и случайным образом сгенерируем четыре хромосомы (табл.
13.1).
278
|
|
|
|
|
Таблица 13.1 |
|
№ |
Хромо- |
х |
f(x) |
Относительная при- |
Накопленная |
|
сома |
способленность |
сумма |
|
|||
|
|
|
|
|||
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
01000 |
8 |
600 |
0,183=600/3278 |
0,183 |
|
2 |
11000 |
24 |
984 |
0,300 |
0,483 |
|
3 |
10011 |
19 |
919 |
0,280 |
0,763 |
|
4 |
01101 |
13 |
775 |
0,237 |
1,000 |
|
|
|
Сумма |
3278 |
|
|
|
Проведем селекцию хромосом с целью формирования «родительского пула». Кандидатами для него выступают хромосомы с наибольшей приспособленностью, тем не менее элемент случайности сохраняется. Вероятностный отбор хромосом ведется пропорционально величине их приспособленности. Для этого используются равномерно распределенные случайные числа на отрезке [0;1]: среди накопленных сумм (столбец 6 табл. 13.1) ищется номер интервала (строка табл.13.1), в который попало очередное случайное число. Пусть в нашем примере два раза выбрана хромосома 2 и по одному разу хромосомы 3 и 4.
Заметим, что описанный метод пропорционального отбора не единственный, к тому же он не лишен недостатков. Главный из них следующий: ранние поколения формируются из наиболее приспособленных хромосом, однако в последующих генерациях конкуренция ослабляется и в большей степени доминирует случайный поиск. В качестве альтернативы укажем на так называемые элитные методы, гарантирующие сохранение лучших (в смысле приспособленности) членов популяции.
Следующий этап работы ГА – рекомбинация хромосом: их скрещивание и мутация. Отбор партнеров из родительского пула производится случайно, случаен и выбор точки скрещивания. Пусть в примере для скрещивания выпали пары 2 и 3, а также 3 и 4; точка скрещивания для первой пары – после 4-го бита в хромосоме, для второй пары – после второй (табл.13.2). Само скрещивание состоит в обмене последовательностью генов в родительских хромосомах.
279
Таблица 13.2
№ |
Номера |
До скрещива- |
После скре- |
х |
f(x) |
|
хромосом |
ния |
щивания |
||||
|
|
|
||||
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
2 |
0100[0] |
11001 |
25 |
991 |
|
2 |
3 |
1001[1] |
10010 |
18 |
900 |
|
3 |
3 |
10[011] |
10101 |
21 |
951 |
|
4 |
4 |
01[101] |
01011 |
11 |
711 |
Как видно из табл.13,2, во втором поколении получено решение с большим значением целевой функции. Для внесения изменчивости в генетическую информацию применяют оператор мутации. Простейший вид мутации – одноточечная, при которой изменяется аллель родительского гена в одном из битов (0→1 либо 1→0). Возможны инверсионные мутации, при которой меняются все компоненты строки. Отметим, что мутации производятся вне зависимости от того, как они влияют на приспособленность особи. Необходимость введения оператора мутации поясним на примере рассматриваемой задачи. Предположим, что во второй и третьей хромосомах на первой позиции (локусе) стояли бы нули. Описанный алгоритм скрещивания всегда порождал бы хромосомы, в которых в первом локусе оставался бы 0, т. е. поиск велся бы среди чисел, меньших 16, тогда как решение находится в правой половине исходного отрезка.
Размер начальной популяции можно оценить из следующих соображений. Пусть m – длина хромосомы, N – размер популяции (число хромосом). Вероятность того, что конкретный локус будет содержать значение 1 либо только 0 во всех хромосомах, равна (1/2)N. Тогда вероятность того, что подобная ситуация не возникнет, т.е. в локусе представлен полный набор аллелей, есть 1-(1/2)N-(1/2)N = 1- (1/2)N-1. Соответственно вероятность Р того, что все m локусов бу-
дут |
содержать |
полный |
набор |
аллелей |
есть |
|||
P=[1-(1/2)(N-1)]m. Отсюда |
N 1 log2 |
1 |
|
|
. |
Так, для |
m=100 и |
|
|
|
|
||||||
1 m |
|
|
||||||
P |
||||||||
P=0,999 N=18.
280
