кто-нибудь делал классификацию четных и нечетных чисел с персептроном? - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь сделать классификатор персептрона для нечетных и четных чисел. Я реализую это с нуля. Я создал функцию с именем nn, которая принимает целое число в качестве входных данных и затем выводит ответ, либо 1, либо -1, соответственно, для да и нет.

До определения функции я определил переменные веса и смещения, значение из которых выбираются случайным образом и являются глобальными (теперь я знаю, что глобальных переменных следует избегать, но поскольку это тест, меня это пока не волнует).

Затем существует функция поезда , который принимает ввод и желаемый вывод. Поскольку переменные веса и смещения являются глобальными, они могут легко получить к ним доступ. Функция обучения вызывает функцию nn, чтобы увидеть результат. Если выходные данные и требуемые выходные данные не совпадают, обновляются переменные веса и смещения. Для этого я использую дельта-правило. Формула выглядит следующим образом:

updated_weight=current_weight+learning_rate * (desired_output - current_output)*provided_input.

Это делается до тех пор, пока вывод не будет правильным.

Сама функция nn содержит это:

z=weight*x+bias
return 1/(1+math.exp(-z))

Здесь, x является вводом для nn.

Функция смещения обновляется так же, как и веса. Дело в том, что входные числа увеличиваются (что, конечно, ожидается), а весовые коэффициенты смещаются в отрицательные числа. После тренировки в течение некоторого времени некоторые цифры корректируются, как и ожидалось, но другие перепутались. Это нормально, и я должен продолжать тренировки? Это решит эти проблемы в конечном счете? Честно говоря, я pesimisti c об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...