Как определить, для которого значения будет стрелять искусственный нейрон?

Я пытаюсь сохранить вещи вниз около 80 символов по простой причине: еще много, чем это означает, что мой код становится слишком сложным. Чрезмерно подробное свойство/имена методов, имена классов, и т.д. наносит столько же ущерба сколько краткие.

я - прежде всего, кодер Python, таким образом, это производит два набора ограничений:

  1. не пишут, что длинные линии кода
  2. не делают отступ слишком много

, Когда Вы начинаете достигать двух или трех уровней добавления отступа, Ваша логика становится сбивающей с толку. Если Вы не можете сохранить единственный блок на той же странице, Ваш код становится слишком сложным и хитрым для запоминания. Если Вы не можете сохранить одну строку в 80 символах, Ваша строка становится чрезмерно сложной.

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

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

6
задан Community 8 February 2017 в 14:18
поделиться

4 ответа

В основном у вас есть следующее уравнение для выхода нейрона, где 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
3
ответ дан 9 December 2019 в 22:35
поделиться

Похоже, дело просто в суммировании в * Wn и определении того, какие комбинации i1,2,3 дают положительный результат. Всего 8 перестановок, так что просто пропустите их вручную.

3
ответ дан 9 December 2019 в 22:35
поделиться

Чтобы решить эту проблему в более общем виде, сначала посмотрите, что такое переменные и какие фиксированные параметры.

3
ответ дан 9 December 2019 в 22:35
поделиться

У меня есть поверхностные знания об ИИ, но насколько мне известно:

Сумма входных сигналов (Sigma i_n * W_n) должна быть больше порога срабатывания. второе изображение показывает порог срабатывания, первое изображение показывает входные данные и их веса.

Вам просто нужно выяснить, какие суммы (не забывайте смещение) приведут к желаемому порогу / интенсивности

2
ответ дан 9 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: