Я пытаюсь сохранить вещи вниз около 80 символов по простой причине: еще много, чем это означает, что мой код становится слишком сложным. Чрезмерно подробное свойство/имена методов, имена классов, и т.д. наносит столько же ущерба сколько краткие.
я - прежде всего, кодер Python, таким образом, это производит два набора ограничений:
, Когда Вы начинаете достигать двух или трех уровней добавления отступа, Ваша логика становится сбивающей с толку. Если Вы не можете сохранить единственный блок на той же странице, Ваш код становится слишком сложным и хитрым для запоминания. Если Вы не можете сохранить одну строку в 80 символах, Ваша строка становится чрезмерно сложной.
легко в Python записать относительно краткий код (см. codegolf) за счет удобочитаемости, но еще легче записать подробный код за счет удобочитаемости. Вспомогательные методы не являются плохой вещью, ни являются классами помощника. Чрезмерная абстракция может быть проблемой, но это - другая проблема программирования.
, Когда в сомнении на языке как C пишут функции помощника и встраивают их, если Вы не хотите издержки обращения к другой функции и перехода назад. В большинстве случаев компилятор обработает вещи разумно для Вас.
В основном у вас есть следующее уравнение для выхода нейрона, где i1
, i2
и i3
могут иметь значение 0 или 1:
2*i3 + i2 - i1 - 1.5 >= 0
Во-первых, давайте посмотрим на наивысшее положительно взвешенное значение. Если i3
равно 0, максимальное значение, которое вы можете получить для левой части, равно -0,5, поэтому i3
должно быть 1, чтобы получить ненулевой вывод. Уравнение тогда принимает следующий вид:
i2 - i1 + 0.5 >= 0
Теперь посмотрим на отрицательно взвешенное значение. Если i1
равно 0, выход всегда будет больше нуля, независимо от того, что такое i2
. Если i1
равно 1, i2
также должно быть 1, чтобы выход был ненулевым.
Таким образом, у вас есть следующие комбинации, которые создают ненулевой выход:
i1 i2 i3
0 0 1
0 1 1
1 1 1
Похоже, дело просто в суммировании в * Wn
и определении того, какие комбинации i1,2,3 дают положительный результат. Всего 8 перестановок, так что просто пропустите их вручную.
Чтобы решить эту проблему в более общем виде, сначала посмотрите, что такое переменные и какие фиксированные параметры.
У меня есть поверхностные знания об ИИ, но насколько мне известно:
Сумма входных сигналов (Sigma i_n * W_n) должна быть больше порога срабатывания. второе изображение показывает порог срабатывания, первое изображение показывает входные данные и их веса.
Вам просто нужно выяснить, какие суммы (не забывайте смещение) приведут к желаемому порогу / интенсивности