gpt4 book ai didi

java - 数字识别显示错误答案

转载 作者:行者123 更新时间:2023-12-01 16:29:54 25 4
gpt4 key购买 nike

我需要编写这样一个两层的网络。权重的定义方式非常简单:1 表示蓝色,-1 表示白色。对于第一个输出神经元,您应该为数字 1 设置 15 个权重,对于第二个输出神经元,您应该为数字 2 设置另外 15 个权重,等等,最后一个输出神经元应该识别数字 0。最后,您应该选择所有输出神经元中的最大值,这将是识别的结果。和偏差是:6 换 10 代表 3、51 换 22 换 43 换 7-2 为 8-1 表示 6、9、0如果我输入 0 那么 w 将是 {+1, +1, +1, +1, -1, +1, +1, -1, +1, +1, -1, +1, +1, + 1, +1}

我写了这段代码,但它不能正常工作,有人可以解释原因并给出一些提示

int[] w =  {+1, +1, +1, +1, -1, +1, +1, -1, +1, +1, -1, +1, +1, +1, +1};
int[] output_num = {0,1, 2, 3, 4, 5, 6, 7,8,9};
int[] bias = {-1, 6, 1, 0, 2, 0, -1, 3, -2, -1};
Integer[] temp =new Integer[10];
int[] output = new int[10];
for (int i = 0; i < output_num.length; i++) {
for (int j = 0; j < w.length; j++) {
temp[i] = output_num[i] * w[j];
}
}
for (int i = 0; i < temp.length; i++) {
temp[i] = temp[i] + bias[i];
}
for (int x:temp) {
System.out.print(x + " ");
}

当我输入 0 时,其显示结果为:-1 7 3 3 6 5 5 10 6 8我们如何看到最大结果的索引为 7,但如果我正确理解最大元素的索引应该为 0,有人可以给我一些点击或解释

最佳答案

你在这里做错了,神经网络不是这样工作的,通常我们不应该定义权重,它们应该使用输入和输出进行调整

您必须初始化它们,但它们必须更新(梯度下降),假设您有以下示例:

input | output
x1 | y1
x2 | y2

然后这就是您更新权重的方法:

w[i] = w[i] + n ( d - yi ) xi

其中( d - yi ) = 误差n = 学习率

关于java - 数字识别显示错误答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62069708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com