Нихиль Будума

Основы глубокого обучения


Скачать книгу

Используя f(z) = z и веса, эквивалентные стоимости каждого блюда, программа присвоит линейному нейрону на рис. 1.10 определенную тройку из бургеров, картошки и газировки, и он выдаст цену их сочетания.

      Рис. 1.10. Пример линейного нейрона

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

      Нейроны с сигмоидой, гиперболическим тангенсом и усеченные линейные

      На практике для вычислений применяются три типа нелинейных нейронов. Первый называется сигмоидным и использует функцию:

      Интуитивно это означает, что, если логит очень мал, выходные данные логистического нейрона близки к 0. Если логит очень велик – то к 1. Между этими двумя экстремумами нейрон принимает форму буквы S, как на рис. 1.11.

      Рис. 1.11. Выходные данные сигмоидного нейрона с переменной z

      Нейроны гиперболического тангенса (tanh-нейроны) используют похожую S-образную нелинейность, но исходящие значения варьируют не от 0 до 1, а от −1 до 1. Формула для них предсказуемая: f(z) = tanh(z). Отношения между входным значением y и логитом z показаны на рис. 1.12. Когда используются S-образные нелинейности, часто предпочитают tanh-нейроны, а не сигмоидные, поскольку у tanh-нейронов центр находится в 0.

      Рис. 1.12. Выходные данные tanh-нейрона с переменной z

      Еще один тип нелинейности используется нейроном с усеченным линейным преобразованием (ReLU). Здесь задействована функция f(z) = max(0, z), и ее график имеет форму хоккейной клюшки (рис. 1.13).

      Рис. 1.13. Выходные данные ReLU-нейрона с переменной z

      ReLU в последнее время часто выбирается для выполнения многих задач (особенно в системах компьютерного зрения) по ряду причин, несмотря на свои недостатки[8]. Этот вопрос мы рассмотрим в главе 5 вместе со стратегиями борьбы с потенциальными проблемами.

      Выходные слои с функцией мягкого максимума

      Часто нужно, чтобы выходной вектор был распределением вероятностей по набору взаимоисключающих значений. Допустим, нам нужно создать нейросеть для распознавания рукописных цифр из набора данных MNIST. Каждое значение (от 0 до 9) исключает остальные, но маловероятно, чтобы нам удалось распознать цифры со стопроцентной точностью. Распределение вероятностей поможет понять, насколько мы уверены в своих выводах. Желаемый выходной вектор приобретает такую форму, где

:

      [p0 p1 p2 p3p9].

      Для этого используется особый выходной слой, именуемый слоем с мягким максимумом (softmax). В отличие от других типов, выходные данные нейрона в слое