Мне нужно написать такую сеть с двумя слоями. Веса определяются довольно просто: 1 для синего и -1 для белого. Для первого выходного нейрона вы должны установить 15 весов для числа 1, для второго выходного нейрона вы должны установить еще 15 весов для числа 2 et c, и последний выходной нейрон должен распознать число 0. В конце концов, вы должны выбрать максимум из всех выходных нейронов, и он будет результатом распознавания. и смещение: 6 для 1 0 для 3, 5 1 для 2 2 для 4 3 для 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 для максимального элемента, может кто-нибудь дать мне несколько совпадений или объяснить