Грунд Tensorflow 2
(обратно размножаване или как работи магията)
Ласло Фазекас
10 ноември 2019 г. · 8 минути четене
В предишната си статия написах, че невронната мрежа е черна кутия, която има вход, има изход и има много копчета върху него. Тези копчета могат да се използват за задаване на това, което мрежата да прави. Също така написах, че магията на това е, че копчетата не трябва да се настройват от нас. Достатъчно е да покажем проби на алгоритъм за оптимизация, който фино настройва мрежата за нас въз основа на това. В тази статия се гмуркаме малко в кухината на заека и разглеждаме как работи заклинанието, т.е. как работи алгоритъмът за оптимизация, който настройва мрежата. Всеки, който може да не е прочел първата част, може да я компенсира тук:

Грунд TensorFlow
(невронни мрежи, тензори и разпознаване на изображения на практика)
medium.com
От първата част научихме, че изчисляваме изхода на мрежата във всяка стъпка по време на обучението, а след това, като сравняваме това с желания изход, изчисляваме грешката на мрежата. Целта е да се минимизира тази грешка. Как можете да се сблъскате с такава задача? Е, можем да начертаем тази грешка като функция. Параметрите на функцията са теглата (текущите позиции на потенциометрите), а текущият вход и изход са константите на функцията в дадената стъпка. Ако се опитаме да представим това, щяхме да получим хълмиста хиперповърхност. Единственият проблем с това е, че ще е необходимо 122 571 размерно пространство, за да се представи функцията за грешка на невронната мрежа в предишната статия. Това е доста трудно да си представим. Дори не се опитвайте, защото това само ще ви нарани главата. В първия кръг, нека започнем с две тежести, защото все още може да бъде представена в 3 измерения.