Использование активаций
Активации могут использоваться как через слой activations, так и через аргумент activations, поддерживаемый всеми предыдущими слоями:
from keras.layers import Activation, Dense model.add(Dense(64)) model.add(Activation(‘tanh’)) |
Эта запись эквивалентна:
model.add(Dense(64, activation=’tanh’)) |
В качестве активации можно также передать функцию TensorFlow/Theano/CNTK по элементам:
from keras import backend as K model.add(Dense(64, activation=K.tanh)) |
Доступные активации
elu
keras.activations.elu(x, alpha=1.0) |
Экспоненциальный линейный блок.
Аргументы
- x: Входной тензор.
- alpha: Скаляр, наклон отрицательного сечения.
Возвращает
Экспоненциальную линейную активацию: x если x > 0 и alpha * (exp(x)-1) если x < 0.
Ссылки
- Быстрое и точное глубокое сетевое обучение с помощью экспоненциальных линейных блоков (ELU)
softmax
keras.activations.softmax(x, axis=-1) |
Функция активации Softmax.
Аргументы
- x: Входной тензор.
- axis: Integer, ось, по которой применяется нормализация софтмакса.
Возвращает
Тензор, выход софтмакс-трансформации.
Исключение
- ValueError: если dim(x) == 1.
selu
keras.activations.selu(x) |
Масштабируемая экспоненциальная линейная единица (SELU).
SELU равна: scale * elu(x, alpha), где apha и scale являются предопределенными константами. Значения alpha и scale выбираются таким образом, чтобы среднее и дисперсия входов сохранялись между двумя последовательными слоями до тех пор, пока веса правильно инициализированы (см. lecun_normal initialization), а количество входов «large enough» (см. Ссылки для дополнительной информации).
Аргументы
- x: Тензор или переменная для расчета функции активации.
Возвращает
Масштабированную экспоненциальную активацию: scale * elu(x, alpha).
Примечание
- Используется вместе с инициализацией «lecun_normal».
- Используется вместе с вариантом исключения «AlphaDropout».
Ссылки
- Самонормализованные нейронные сети https://arxiv.org/abs/1706.02515
softplus
keras.activations.softplus(x) |
Функция активации Softplus.
Аргументы
- x: Входной тензор.
Возвращает
активация Softplus: log(exp(x) + 1).
softsign
keras.activations.softsign(x) |
Функция активации softsign.
Аргументы
- x: Входной тензор.
Возвращает
Активация softsign: x / (abs(x) + 1).
relu
keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)keras.activations.softsign(x) |
Спрямленный линейный блок.
При значениях по умолчанию он возвращает по элементам. max(x, 0).
В противном случае: f(x) = max_value для x >= max_value, f(x) = x для threshold <= x < max_value, f(x) = alpha * (x — threshold).
Аргументы
- x: Входной тензор.
- alpha: float. Наклон отрицательной части. По умолчанию ноль.
- max_value: float. Порог насыщения.
- threshold: float. Пороговое значение для пороговой активации.
Возвращает
Тензор.
tanh
keras.activations.tanh(x) |
Функция активации гиперболического тангенса.
Аргументы
- x: тензор ввода.
Возвращает
Гиперболическая активация: tanh(x) = (exp(x) — exp(-x)) / (exp(x) + exp(-x))
sigmoid
keras.activations.sigmoid(x) |
Функция активации сигмоида.
Аргументы
- x: тензор ввода.
Возвращает
Сигмоидальная активация: 1 / (1 + exp(-x)).
hard_sigmoid
keras.activations.hard_sigmoid(x) |
Функция активации жествкая сигмоида.
Быстрее вычисляет, чем активацию сигмоида.
Аргументы
- x: тензор ввода.
Возвращает
Активация жесткая сигмоида:
- 0 если x < -2.5
- 1 если x > 2.5
- 0.2 * x + 0.5 если -2.5 <= x <= 2.5.
exponential
keras.activations.exponential(x) |
Экспоненциальная (базовая) функция активации.
Аргументы
- x: тензор ввода.
Возвращает
Экспоненциальная активация: exp(x).
linear
keras.activations.linear(x) |
Функция линейной (т.е. идентификационная) активации.
Аргументы
- x: тензор ввода.
Возвращает
Входной тензор, без изменений.
По «Расширенным активациям» (Advanced activations)
Активации, более сложные, чем простая функция TensorFlow/Theano/CNTK (например, Обучаемые активации, поддерживающие состояние) доступны в виде уровней расширенной активации, и их можно найти в модуле keras.layers.advanced_activations. Они включают PReLU и LeakyReLU.