этого нейрона находится функция активации, которая преобразует четыре входных параметра в единое числовое значение. Если комбинация входных параметров превышает пороговое значение, нейрон «активируется» и предсказывает, что заявитель получит приглашение.
В качестве функции активации можно использовать разные функции в зависимости от решаемой задачи и имеющихся данных. Поскольку в этом примере мы решаем задачу классификации, то есть предсказываем, получит ли данный стажер приглашение, – наша функция активации должна предоставить нам значение вероятности получения приглашения, аналогично тому, как это делалось в главе 10 с помощью логистической регрессии[125].
В уравнениях 12.1 и 12.2 показана наиболее распространенная функция активации. Мы разбили ее на две части, чтобы ее было легче использовать (и набирать):
Вероятность приглашения =
где X = w1 × Средний балл + w2 × Курс + w3 × Специализация + w4 × Внекл. занятия + b. (12.2)
Мы надеемся, что эти уравнения уже кажутся вам знакомыми. Уравнение 12.1 – это логистическая функция из главы 10, а уравнение 12.2 – функция линейной регрессии, представленная в главе 9. Таким образом, с математической точки зрения нейронная сеть просто содержит компоненты машинного обучения и статистических алгоритмов. Уравнение линии линейной регрессии 12.2 позволяет объединить четыре входных параметра в один, а логистическая функция 12.1 «втискивает» результат в диапазон от 0 до 1, в котором должны находиться значения вероятности.
Цель сети, как и логистической регрессии, – найти наилучшие значения весов и постоянного члена (представленных в уравнении 12.2 буквами w и b соответственно и вместе называемых параметрами), которые делают выходные данные, прогнозируемые сетью, максимально близкими к фактическим выходным данным в совокупности[126]. Под «обучением» нейронной сети (как и в случае машинного обучения в целом) понимается процесс оптимизации параметров уравнений, подобных 12.2, для получения прогноза.
Как учится нейронная сеть
Главный вопрос – какими должны быть эти параметры для достижения оптимума? Ответ на него превращает нейронную сеть в полезную машину для прогнозирования. Однако в самом начале процесса обучения параметры могут быть любыми. Поэтому наш алгоритм присваивает им случайные значения в качестве отправной точки. Если бы вам нужно было вымыть руки под краном, который вы видите впервые и у которого отсутствуют метки горячей и холодной воды, то вы просто включили бы его, оценили температуру и отрегулировали ее. То же самое и здесь.
Эти начальные случайные веса неверны в том смысле, что они были установлены произвольно, а не определены в процессе обучения. Однако они позволяют с чего-то начать, а самое главное – получить числовой результат. Например, предположим, что вы берете данные двух выдающихся бывших стажеров, Уилла и Элли, и подаете их на вход нейронной сети (то есть подставляете в приведенные выше уравнения). Используя случайные параметры, мы получили результат 0,2 для Уилла и 0,3 для Элли. Другими словами, при использовании случайных значений весов и постоянных членов вероятность получения приглашения обоими претендентами оказалась низкой. Однако, поскольку это исторические обучающие данные, мы знаем, какими должны были быть выходные значения. И Уилл, и Элли получили приглашения. Истинные выходные значения в обоих случаях были равны 1, но модель предсказала низкие значения для каждого из стажеров. Итак, исходное качество предсказаний нейронной сети ужасно.
На этом этапе модель анализирует истинные значения выходных параметров (1 и 1) и отправляет сообщение о том, что текущие параметры неверны, и их необходимо скорректировать. Но как именно мы должны изменить каждый вес? Алгоритм, называемый обратным распространением ошибки[127], корректирует эти веса и решает, на сколько их необходимо увеличить или уменьшить. Может быть, придать большее значение среднему баллу? А может быть, стоит уменьшить важность курса? Затем процесс повторяется: обновленные веса снова применяются для оценки данных Уилла и Элли, и на этот раз выдаются результаты 0,4 и 0,6. Уже лучше, но еще не идеально. Алгоритм обратного распространения ошибки отправляет сигнал обратно по сети и снова корректирует веса, после чего процесс повторяется. Со временем параметры приближаются к своему гипотетическому оптимуму, при котором предсказанные значения в среднем наиболее близки к фактическим меткам[128].
Чуть более сложная нейронная сеть
В предыдущем примере мы просто взяли логистическую регрессию и превратили ее в визуализацию нейронной сети. Математика была идентичной. В связи с этим возникает вопрос: зачем вообще это делать? Зачем представлять логистическую регрессию в виде чего-то нового, называемого нейронной сетью?
Ответ на этот вопрос и реальная польза нейронных сетей заключается в том, что происходит, когда мы добавляем в сеть «скрытые» слои. Итак, давайте добавим в предыдущую сеть скрытый слой с тремя нейронами, каждый из которых содержит логистическую функцию активации. В результате мы получим сетевую структуру, показанную на рис. 12.2.
Рис. 12.2. Нейронная сеть со скрытым слоем. Средний слой «спрятан» между основным входным слоем слева и выходным слоем справа
Идея состоит в том, что нейроны в скрытом слое будут «изучать» новые и совершенно иные представления входных данных, что упростит задачу прогнозирования. Давайте посмотрим на верхний нейрон скрытого слоя: находится в середине и состоит из трех нейронов. Предположим, что в результате обучения на исторических данных верхний нейрон «научился» понимать, что средний балл кандидата, его специализация и количество внеклассных занятий – важные факторы, влияющие на вероятность получения приглашения. Это значит, что данные кандидата с высоким средним баллом, большим количеством внеклассных занятий и сложной специализацией заставят этот нейрон «активироваться» и послать сигнал, обозначающий новый признак в данных. Этот признак можно было бы назвать достижением. С математической точки зрения это означает, что в функции активации этого нейрона веса таких параметров, как средний балл, специализация и внеклассные занятия, являются «большими».
Аналогичным образом комбинация количества лет обучения и количества внеклассных занятий может заставить средний нейрон подать сигнал, соответствующий такому признаку, как опыт, а нижний нейрон может активироваться при наличии у студента подходящего набора навыков. Разумеется, все это чисто гипотетически: как и в случае анализа главных компонент, мы категоризируем признаки на основе комбинации полей, которые влияют на них сильнее всего.
Напомним, что четыре исходных входных параметра подаются на скрытый слой и выводятся в виде трех новых признаков. Затем признаки «достижения», «опыт» и «набор навыков» становятся входными данными для последнего нейрона, который берет взвешенную комбинацию этих входных данных, пропускает ее через еще одну функцию активации и выдает прогноз.
С точки зрения вычислений сеть можно рассматривать