Здравствуйте, я пытаюсь создать программу, которая будет рассчитывать веса из алгоритма персептрона. У меня все это работает прямо сейчас, но с самыми основами, это пошаговая функция и она однослойная. Прежде чем перейти к muilti-слою, я пытаюсь сделать его оптимальным и сигмовидным.
Так что это мой вопрос, у меня есть общее представление о сигмоиде, но я не могу найти никакой информации о том, как сделать линию оптимальной, чтобы она была на одинаковом расстоянии от точек данных. У кого-нибудь есть идеи?
net = 0;
for(i=0; i<N; i++)
{
net = net + (x[i] * w[i]); //Calculates weighted sum
}
if(net >= threshold) output = 1; //Finds the output based on the net
if(net < threshold) output = -1;
Это мой текущий код для поиска переменной «y», я назвал ее здесь output, и он находит ее с помощью простой пошаговой функции, threshold = 0. Как я могу преобразовать это в сигмоид?
Следующее может работать:
output = 1 / (1 + exp(-net));
Вы также можете любить tanh(net)
или же 1 / (1 + abs(net))
функции, которые намного быстрее в соответствии с этот ответ.