• Основной единицей нейронной сети является нейрон. Нейроны принимают какие-то входные данные и срабатывают или нет, в зависимости от силы этих входных данных. В ИНС выход функции активации определяет, сработает ли нейрон. Выпрямленная линейная единица (ReLU) имеет выход 0, если вход отрицательный, и необработанный выход в противном случае.
  • То, что в наши дни ReLU используются почти исключительно в нейронных сетях, в значительной степени исторически сложилось. Примерно в 2010 году было обнаружено, что они тренируются намного быстрее, чем ранее стандартные сигмовидные нейроны. С тех пор исследования показали, что они также улучшают обобщение. Переобучение всегда является потенциальной проблемой для нейронных сетей и машинного обучения в целом; Кажется, что ReLU значительно уменьшает эту проблему.

Мы будем использовать ReLU. ReLU — это функция, которая выводит либо 0, либо исходный ввод, в зависимости от того, был ли ввод отрицательным или положительным (соответственно). Таким образом, мы можем заменить строку вывода в нашем коде на:

если вывод › 0:

выход = 1

иначе:

выход = 0

И теперь у нас есть очень простая нейронная сеть, которая может научиться распознавать "как" в алфавитном супе.

ПОЯСНЕНИЕ:

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

ReLU определяется выражением f(x)=max(0,x). Функция возвращает 0, если она получает отрицательный ввод, но для любого положительного значения x она возвращает это значение обратно.

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

ПРИМЕР ИЗ РЕАЛЬНОЙ ЖИЗНИ:

  • Предположим, вы создаете компьютер, который может определять, является ли каждая буква в алфавитном супе буквой А. Вы начинаете с массива букв и хотите создать еще один массив, в котором каждая буква А заменена буквой А. 1, а каждая вторая буква заменена на 0. Обычно это делается с помощью матричного умножения плюс член смещения, а затем сигмовидная функция, чтобы сжать все между 0 и 1.
  • Но для этого требуется 26 чисел для весов, одно число для смещения и еще 26 чисел для вывода. Вместо этого мы могли бы использовать ректифицированные линейные единицы (ReLU), которые требуют только двух чисел: одного веса и одного смещения.
  • Чтобы увидеть, как это работает, давайте выполним первый шаг нашей нейронной сети, который заключается в умножении входных данных на некоторые веса и суммировании результатов:
  • выход = ввод × вес + смещение
  • Итак, как мы можем превратить это во что-то, что всегда будет выводить только 0 или 1? Ответ оказывается очень простым: нам просто нужно убедиться, что при умножении на любую букву, кроме «А», мы получим отрицательное число. Итак, предположим, что вместо суммирования входных данных мы суммируем их абсолютные значения:
  • выход = |ввод| × вес + смещение

И теперь у нас есть очень простая нейронная сеть, которая может научиться распознавать "как" в алфавитном супе.