如何找到weight1,weight2和bias的值?为任何问题找到这三个值的通用数学方法是什么!
import pandas as pd
weight1 = 0.0
weight2 = 0.0
bias = 0.0
test_inputs = [(0, 0), (0, 1), (1, 0), (1, 1)]
correct_outputs = [False, False, False, True]
outputs = []
for test_input, correct_output in zip(test_inputs, correct_outputs):
linear_combination = weight1 * test_input[0] + weight2 * test_input[1] + bias
output = int(linear_combination >= 0)
is_correct_string = 'Yes' if output == correct_output else 'No'
outputs.append([test_input[0], test_input[1], linear_combination, output, is_correct_string])
num_wrong = len([output[4] for output in outputs if output[4] == 'No'])
output_frame = pd.DataFrame(outputs, columns=['Input 1', ' Input 2', ' Linear Combination', ' Activation Output', ' Is Correct'])
if not num_wrong:
print('Nice! You got it all correct.\n')
else:
print('You got {} wrong. Keep trying!\n'.format(num_wrong))
print(output_frame.to_string(index=False))
答案 0 :(得分:1)
问题要求您在输入为[(0,0),(0,1),(1,0),(1,1)]时评估weight1,weight2和bias,以产生[False] ,False,False,True]。 在这种情况下,“假”将是负数的结果。相反,“ True”将是一个正数的结果。 因此,您评估以下内容:
x1 * weight1 + x2 * weight2 + bias'是正数或负数
例如,设置权重1 = 1,权重2 = 1和偏差= -1.1(可能的解决方案) 您将获得第一个输入:
0 * 1 + 0 * 1 +(-1.1)= -1.1,它为负,表示计算结果为 False
对于下一个输入:
0 * 1 + 1 * 1 +(-1.1)= -0.1,它为负,表示计算结果为 False
对于下一个输入:
1 * 1 + 0 * 1 +(-1.1)= -0.1,它为负,表示计算结果为 False
最后输入:
1 * 1 + 1 * 1 +(-1.1)= +0.9,这是肯定的,表示其评估为 True
答案 1 :(得分:1)
以下内容也对我有用:
weight1 = 1.5
weight2 = 1.5
bias = -2
答案 2 :(得分:0)
在正规方程的情况下,您不需要偏置单元。因此,这可能就是您所追求的(请记住,我已将test
和True
值重新分别改为False
和1
:
0
收率:
import numpy as np
A = np.matrix([[0, 0], [0, 1], [1, 0], [1, 1]])
b = np.array([[0], [0], [0], [1]])
x = np.linalg.inv(np.transpose(A)*A)*np.transpose(A)*b
print(x)
有关解决方案的更多详细信息,请here。
答案 3 :(得分:0)
以下内容对我有用:
weight1 = 1.5
weight2 = 1.5
bias = -2
当我更好地理解原因时会更新
答案 4 :(得分:0)
X1w1 + X2W2 +偏置 测试是:
linear_combination >= 0
从给定的输入值:
test_inputs = [(0, 0), (0, 1), (1, 0), (1, 1)]
AND值仅在测试中计算一次为true,因此典型AND操作的输出应为:
1 1 True
1 0 False
0 1 False
0 0 False
给出,当我们在等式中输入测试输入:X1w1 + X2W2 +偏差时,应该只有一个真实的结果。如上所述,我们的测试是方程的线性组合应大于或等于零。我相信问题的根源在于,从测试运行中可以看出,此输出仅是真实的。 因此,要获得错误值,输出应为负值。 最简单的方法是使用较小的值和负偏差来测试方程。 我尝试过
weight1 = 1
weight2 = 1
bias = -2