Целый день насиловал мозг пытаясь понять как работает Нейроновая сеть. Как я понял приходит данные придаем им вес и передаем в скрытые нейроны(поля) после же суммируем и передаем в активиционный Метод который выводит ответ. Каждый же раз когда пытаюсь написать простую сеть получается какая-то фигня. Вот например задачка. Меня пригласили на вечеринку. И есть три фактора основаясь на которых я делаю решения идти мне на вечеринку или нет. Первый это есть ли дождь или нет. Вторая будет ли еда или нет. Третье будут ли друзья или нет. Вот вопросы которые меня мучают: 1) как вычислить правильно вес? 2) как обучить сеть по нужному pattern?
Я же попытался решить это и получилось нечто:
public class Project {
// factors[0] = dozhd
// factors[1] = yeda
// factors[2] = friends
private static double[] wes = new double[3];
private static double[] factors = new double[3];
private static double[][] pattern =
{
{
0,1,1,1
},
{
0,0,1,1
},
{
1,0,0,0
},
{
1,0,1,0
},
{
0,0,0,0
}
};
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
factors[0] = 1;
factors[1] = 0;
factors[2] = 1;
wes[0] = 0.2;
wes[1] = 0.3;
wes[2] = 0.5;
summirowaniya();
}
public static void summirowaniya(){
double result = factors[0]*wes[0]+factors[1]*wes[1]+factors[2]*wes[2];
for(int i = 0; i < pattern.length; i++){
if(factors[0] == pattern[i][0] && factors[1] == pattern[i][1] && factors[2] == pattern[i][2]){
double patSum = pattern[i][0] + pattern[i][1] + pattern[i][2];
System.out.println(patSum/2);
System.out.println(result);
if(activationFunct(patSum/2+result) != pattern[i][3]){
System.out.println(activationFunct(patSum/2-result));
}
else{
System.out.println(pattern[i][0]);
}
}
}
}
public static int activationFunct(double d){
return d >= 0.5 ? 1 : 0;
}
}
как видете получились какие-то записи кодера с уклоннастеми на сада-маза. Не думаю что для опытного программиста будет сложно решить задачу выше так что если не сложно уделите минуту и помогите разобраться с этим всем
Сборка персонального компьютера от Artline: умный выбор для современных пользователей