Словарь ИИ
Что такое функция активации
Коротко
Функция активации это простое нелинейное правило внутри искусственного нейрона, которое решает, какой сигнал и какой силы нейрон передаст дальше.
Математика ИИ · activation function
Михаил МозгПроверено: 1 минута чтения
Ребенку
Представь кран с водой у тебя дома. Если повернуть ручку совсем чуть-чуть, вода не течет. Повернешь сильнее, и струя становится все больше. У каждого крошечного счетчика внутри умной программы тоже есть такой кран: он решает, пропустить сигнал дальше или нет и насколько сильным. Без этих кранов программа умела бы совсем немного.
Простыми словами
Искусственный нейрон складывает входящие сигналы, умножая каждый на свой вес. Если на этом остановиться, вся сеть, сколько бы в ней ни было слоев, сведется к одной простой формуле и не сможет описать сложные закономерности. Поэтому после сложения стоит маленький переключатель. Распространенный вариант устроен совсем просто: отрицательное число превращает в ноль, а положительное пропускает как есть. Благодаря таким изломам сеть может провести границу между кошкой и собакой на фото любой сложной формы. Похоже на проволоку: из коротких прямых отрезков с изгибами можно согнуть любую фигуру, а из одной прямой нельзя.
Для бизнеса
Выбирать это правило руководителю не придется: его закладывают разработчики модели. Но от него косвенно зависят скорость и цена. Если подрядчик предлагает обучать свою нейросеть с нуля, архитектура, включая этот элемент, влияет на сроки и бюджет экспериментов. Если вы берете готовую модель, выбор уже сделан, и платите вы за ответы, а не за опыты. Риск появляется при переносе модели на другое оборудование или в другой формат: редкий вариант функции может не поддерживаться в ускоренном режиме, и ответы станут медленнее. Это проверяют тестом на целевом сервере до запуска. Как устроена работа ИИ в компании по уровням, разобрано на отдельной странице.
Для специалиста
Функция активации (activation function) это нелинейное отображение, которое применяется к выходу линейного преобразования нейрона: y = f(Wx + b). В работе Rumelhart, Hinton и Williams (Nature, 1986) об обратном распространении использовалась логистическая сигмоида 1/(1+e^(-x)); у нее и у гиперболического тангенса (tanh) производная мала на краях, что затрудняет обучение глубоких сетей. Nair и Hinton (ICML 2010) применили выпрямленные линейные блоки (rectified linear units, ReLU) в ограниченных машинах Больцмана, а Glorot, Bordes и Bengio (AISTATS 2011) показали, что глубокие сети на ReLU обучаются не хуже сетей с tanh без предобучения без учителя и дают разреженные активации. GELU (Hendrycks и Gimpel, 2016) задается как x·Φ(x), где Φ функция распределения стандартного нормального закона, и взвешивает вход по его значению, а не отсекает по знаку. Shazeer (2020) показал, что часть вариантов управляемых линейных блоков (GLU) в полносвязных подслоях трансформера дают прирост качества по сравнению с ReLU и GELU. Через такое правило должен проходить градиент, поэтому его выбирают дифференцируемым почти везде.
Пример
Разработчики переносят модель распознавания документов на новый сервер и выясняют, что ее редкая функция активации там не ускоряется. Ее заменяют распространенной ReLU, дообучают модель, и скорость обработки восстанавливается.
Связанные термины
Вопросы и ответы
Зачем нужна функция активации в нейросети?
Какие варианты используют чаще всего?
Источники
- Nair, Hinton, Rectified Linear Units Improve Restricted Boltzmann Machines, ICML 2010cs.toronto.edu
- Glorot, Bordes, Bengio, Deep Sparse Rectifier Neural Networks, AISTATS 2011proceedings.mlr.press
- Hendrycks, Gimpel, Gaussian Error Linear Units (GELUs), 2016arxiv.org
- Shazeer, GLU Variants Improve Transformer, 2020arxiv.org
- Rumelhart, Hinton, Williams, Learning representations by back-propagating errors, Nature 323, 09.10.1986cs.toronto.edu
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений