Нейросеть Хопфилда
В процессе использования, сеть считает значения по формуле X(n+1)=F(WX(n)+B).
Где X(n) X(n+1)предыдущее и следующее значение, F-функция активации сигмоид,W- матрица весов,B-смещения. Вопрос в следующем:как выяснить чему равно B? Может быть есть какая-то формула для этого?
Ответы (1 шт):
Автор решения: Константин
→ Ссылка
Знаю только про смещение обычной сети(Хопфилда не изучал).Биасы(смещения) учавствуют так:
""" Получить вектор входов, сделать матричный продукт и матричный продукт пропустить через функцию активации"""
# записать этот вектор в параметр слоя сети(hidden)
def make_hidden(nn_params, objLay:Lay, inputs:list, debug):
tmp_v = 0
val = 0
for row in range(objLay.out):
for elem in range(objLay.in_):
if nn_params.with_bias:
if elem==0:
tmp_v+=objLay.matrix[row][elem]
else:
tmp_v+=objLay.matrix[row][elem] *\
inputs[elem]
else:
tmp_v+=objLay.matrix[row][elem] *\
inputs[elem]
objLay.cost_signals[row] = tmp_v
val = operations(nn_params.act_fu,tmp_v, 0, 0, 0, "", nn_params)
objLay.hidden[row] = val
tmp_v = 0