Ако имате нужда само от отговор вярно/невярно, вашият изходен слой трябва да има само един неврон. Ако този един неврон е активен, приемете това като вярно. Ако не е активно, третирайте го като невярно.
Ако вашите данни за обучение имат само истински стойности, тогава това са лоши данни и няма да помогнат наистина. В крайна сметка просто ще обучите мрежата си винаги да отговаря с true. Може би трябва да разберете някои данни, които трябва да доведат до фалшив резултат и да ги добавите към данните за обучението.
Ако вашите данни за обучение имат само два случая и и двата са верни, мрежата ви наистина няма да научи нищо. Имате нужда от много повече данни, за да направите модела ясен.
Отидете, задайте на умен човек (най-добрите невронни мрежи, които имаме) следния въпрос:
1,2,3,4 is true; 6,7,8,9 is true. Is 4,3,2,1 true?
Те няма да имат представа. Не знам. Никой не знае. Не знам какъв е критериите. Възможно е произволен брой неща да определят дали последователността е вярна. Включително:
- числата се покачват
- те се движат в една и съща посока
- винаги са един от друг
- че всички числа са под 10
Нямам представа кои от тези са изисквания и кои не. Никаква идея. И невронната мрежа, която създавате, ще има още по-малко представа.
Основният проблем е, че имате нужда от повече данни.
Една последна бележка. Често се казва, че невронните мрежи са добри в „съвпадението на шаблони“. И това е вярно. Въпреки това, поредиците от числа обикновено не са това, което се има предвид под „съвпадение на образец“. Всичко, което изисква аритметика, всъщност няма да бъде добре обслужвано от невронна мрежа. Не са достатъчно точни за аритметика. Така че никога няма да можете да обучите невронна мрежа особено добре, например, да идентифицира последователност от удвоени числа.
person
Damien Black
schedule
10.03.2014