Наука о данных - Брендан Тирни
Шрифт:
Интервал:
Закладка:
Функции активации, как правило, отображают выходной сигнал множественной линейной регрессии нелинейно. В качестве функций активации наиболее часто применяются логистическая функция и функция tanh (рис. 12). Обе функции принимают на вход одно значение x, являющееся выходным значением функции множественной линейной регрессии, которую нейрон применяет к своим входным данным. Также обе функции используют число Эйлера, приблизительно равное 2,71828182. Эти функции иногда называют функциями сжатия, поскольку они принимают любое значение от «плюс бесконечности» до «минус бесконечности» и отображают его в небольшом заранее определенном диапазоне. Диапазон выходных значений логистической функции составляет от 0 до 1, а функции tanh — от –1 до 1. Следовательно, выходные значения нейрона, который использует логистическую функцию в качестве своей функции активации, всегда находятся в диапазоне от 0 до 1. Тот факт, что обе функция используют нелинейные отображения, ясно по S-образной форме кривых. Причиной введения нелинейного отображения в нейрон является то, что одним из ограничений функции линейной регрессии с несколькими входами является ее линейность по определению, и если все нейроны в сети будут выполнять только линейные отображения, то и сама сеть также будет ограничена изучением линейных функций. Однако нелинейная функция активации в нейронах сети позволяет ей изучать более сложные (нелинейные) функции.
Стоит подчеркнуть, что каждый нейрон в нейронной сети выполняет очень простой набор операций:
1. Умножает каждый вход на его вес;
2. Суммирует результаты умножения;
3. Проводит этот результат через функцию активации.
Операции 1 и 2 являются просто вычислением функции регрессии с несколькими входами, а операция 3 использует функцию активации.
Все связи между нейронами в нейронной сети являются направленными, и каждая имеет свой вес. Нейрон применяет вес связи к входящему значению, которое он получает через эту связь, когда вычисляет функцию множественной входной регрессии. Рис. 13 иллюстрирует топологическую структуру простой нейронной сети. Квадраты A и B в левой части обозначают зоны памяти, которые мы используем для представления входных данных в сеть. В этих зонах обработка или преобразование данных не выполняются. Эти узлы можно считать входными или сенсорными нейронами, функция активации которых настроена таким образом, чтобы выходное значение равнялось входному[16]. Круги C, D, E и F на рисунке обозначают нейроны в сети. Бывает полезно представлять нейроны в сети организованными в слои. Сеть на рисунке имеет три слоя нейронов: входной слой содержит A и B, скрытый — C, D и E, а выходной слой содержит F. Понятие «скрытый слой» указывает на тот факт, что нейроны в этом слое не принадлежат ни входному, ни выходному слоям и в этом смысле недоступны взгляду.
Стрелки, соединяющие нейроны в сети, обозначают поток информации. Технически данная конкретная сеть является нейронной сетью с прямой связью, поскольку в сети нет петель — все соединения направлены в одну сторону, от входа к выходу. Кроме того, эта сеть считается полностью подключенной, поскольку каждый нейрон связан со всеми нейронами в следующем слое сети. Можно создать множество различных типов нейронных сетей, изменив количество слоев, число нейронов в каждом слое, тип используемых функций активации, направление соединений между слоями и другие параметры. На самом деле разработка нейронной сети для конкретной задачи во многом сводится к экспериментам по поиску наилучшей схемы.
Метки на каждой стрелке показывают вес, который узел применяет к информации, передаваемой по этому соединению. Например, есть стрелка, соединяющая C с F, которая указывает, что выходные данные из C передаются как входные данные для F и F будет применять к ним вес.
Предположим, что нейроны в сети на рис. 13 используют функцию активации tanh. Тогда вычисление, выполняемое нейроном F, может быть представлено как:
Выходные данные = tanh (ωC,FC + ωD,FD + ωE,FE).
Математическое представление обработки, выполняемой в нейроне F, показывает, что конечное выходное значение сети рассчитывается с использованием набора функций. Компоновка функций означает, что выходные данные одной функции используются в качестве входных данных для другой. В этом случае выходы нейронов C, D и E используются в качестве входов для нейрона F, поэтому функция, выполняемая в F, скомпонована из функций, выполняемых в C, D и E.
Для наглядности этого описания на рис. 14 показана нейронная сеть, которая принимает значение процентного содержания жира в организме человека и его МПК (максимальное потребление кислорода[17]) в качестве входных данных и вычисляет индивидуальный уровень физической подготовки[18]. Все нейроны в среднем слое сети вычисляют функцию на основе процентного содержания жира и МПК: f1(), f2() и f3(). Каждая из этих функций моделирует взаимодействие между входами иначе, чем две другие. Эти функции по существу представляют собой новые атрибуты, которые получены сетью из необработанных входных данных. Они схожи с атрибутом ИМТ, описанным ранее, который был рассчитан как функция веса и роста. Иногда оказывается возможным интерпретировать выходные данные нейрона внутри сети, насколько это позволяет предметная область, и понять, почему этот производный атрибут полезен для сети. Однако чаще производный атрибут, рассчитанный нейроном, не будет нести никакого смысла для человека. Просто эти атрибуты фиксируют взаимодействия между другими атрибутами, которые сеть сочла полезными. Последний узел в сети f4 вычисляет другую функцию — скомпонованную из f1(), f2() и f3(), — на выходе которой получается прогноз уровня физической подготовки, возвращаемый сетью. Опять же, эта функция не может быть значимой для человека, кроме того факта, что она определяет взаимодействие, которое, как обнаружила сеть, имеет высокую корреляцию с целевым атрибутом.