PyTorch: Для бинарной функции активации работает ли градиентный спуск?

Рейтинг: 1Ответов: 1Опубликовано: 21.06.2023

Возникла мысль, что для одной схемы сетки в одном специальном слое будет удобна бинарная функция активации. И возникает вопрос, будет ли такое работать для градиентного спуска, т.к. у бинарной функции производная почти везде равна нулю?

Например вот такое:

class MySpecLayer(nn.Module):
    def __init__(self):
        super().__init__()
        self.linear = nn.Linear(10, 5)
    def forward(self, x):
        return (self.linear(x) > 0).float()

Т.е. возвращается ноль или один, и это значение дальшей пойдет в другой слой.

Ответы

▲ 1Принят

Если нейросеть неглубокая, то можно использовать, если же глубокая, то может происходить затухание градиента, при обратном распространении ошибки, так как у вас, судя по коду сеть состоит из 1 слоя, то по идее бинарная функция активации не должна создавать проблем.