Функция sigmoid
Функция sigmoid применяет сигмоидное преобразование к каждому элементу входного тензора. Она принимает на вход тензор произвольной формы и возвращает новый тензор той же формы, каждый элемент которого вычисляется по формуле 1 / (1 + exp(-x)). Эта функция также известна как логистическая функция и часто используется в качестве функции активации в нейронных сетях, а также для преобразования выходов модели в вероятности.
При больших положительных значениях результат стремится к 1, при больших отрицательных - к 0. В точке 0 значение функции равно 0.5. Функция является монотонно возрастающей и имеет S-образную форму.
Синтаксис
torch.sigmoid(input_tensor)
Пример
Давайте применим сигмоидную функцию к одномерному тензору чисел:
import torch
t = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
res = torch.sigmoid(t)
print(res)
Результат выполнения кода:
tensor([0.1192, 0.2689, 0.5000, 0.7311, 0.8808])
Пример
Сигмоидная функция работает с тензорами любой размерности. Применим её к двумерному тензору:
import torch
t = torch.tensor([
[-3.0, -1.5, 0.0],
[1.5, 3.0, 4.5]
])
res = torch.sigmoid(t)
print(res)
Результат выполнения кода:
tensor([
[0.0474, 0.1824, 0.5000],
[0.8176, 0.9526, 0.9890]
])
Пример
Сигмоидную функцию можно использовать как слой в нейронной сети через torch.nn.Sigmoid. Результат работы одинаков:
import torch
sigmoid_layer = torch.nn.Sigmoid()
t = torch.tensor([-1.0, 0.0, 1.0])
res = sigmoid_layer(t)
print(res)
Результат выполнения кода:
tensor([0.2689, 0.5000, 0.7311])
Пример
Сигмоидная функция часто используется для преобразования выходов модели в вероятности. Давайте зафиксируем зерно для воспроизводимости и применим функцию к случайным числам:
import torch
torch.manual_seed(0)
t = torch.randn(5) * 2
res = torch.sigmoid(t)
print(res)
Результат выполнения кода:
tensor([0.1068, 0.8988, 0.1164, 0.7073, 0.9736])
Смотрите также
-
функцию
tanh,
которая также является S-образной функцией, но возвращает значения в диапазоне от -1 до 1 -
функцию
softmax,
которая преобразует вектор в распределение вероятностей -
функцию
relu,
которая является более простой и популярной функцией активации -
функцию
exp,
которая вычисляет экспоненту, используемую в формуле сигмоиды