ЗНАЕТЕ ИНТУИТ, Лекция, Бърза диференциация, двойственост и обратно разпространение на грешка

Изчислителен център SB RAS в Красноярск

Тази лекция представя материал, чието значение за изчислителната математика и всичко, което се нарича „компютърни науки“ на английски, далеч надхвърля невроинформатиката. С течение на времето той със сигурност ще бъде включен в програмите на университетските курсове по математически анализ.

Нека обсъдим една „очевидна“ догма, без разрушаването на която би било невъзможно ефективното обучение на невронните мрежи. Нека изчислителните разходи (изчислени от времето, прекарано от някакво универсално изчислително устройство) за изчисляване на една стойност на функция от n променливи H (x1. Xn) са приблизително равни на T. Колко време ще отнеме на едно и също устройство да изчисли gradH (при разумен дизайн на програмата)? Повечето математици с висше образование ще отговорят:

Това не е вярно! Точен отговор:

където C е константа, независима от измерението n (в повечето случаи C

За всички функции на много променливи, срещани на практика, необходимите изчислителни разходи за намиране на техния градиент са само два до три пъти по-високи от разходите за изчисляване на една стойност на функцията. Това е изненадващо - в края на краищата координатите на градиентния вектор са n частични производни, а разходите за изчисляване на едно такова производно обикновено са приблизително същите като за изчисляване на стойността на функцията. Защо е по-евтино да се изчислят всички заедно, отколкото отделно?

„Чудото“ се обяснява съвсем просто: необходимо е рационално да се организира изчисляването на производни на сложна функция от много променливи, като се избягва дублиране. За да направите това, е необходимо да представите подробно изчислението на самата функция, така че по-късно няма да се занимаваме с "черната кутия", която трансформира вектора на аргументите в стойността на функцията, а с подробната графика на изчисления.

Удобно е да се представи търсенето на gradH като вид двоен процес върху структурата на изчислителната H. Междинните резултати, които се появяват при изчисляване на градиента, не са нищо повече от множители на Лагранж. Оказва се, че ако представим H като сложна функция, която е суперпозиция от функции на малък брой променливи (и не знаем как да изчислим функциите на много променливи по някакъв друг начин), и внимателно използваме правилото за диференциране сложна функция, без да правите излишни изчисления по пътя и да поддържате полезни междинни резултати, след това изчисляването на целия набор е малко по-трудно от една от тези функции - всички те са сглобени от едни и същи блокове.

Обучение на невронни мрежи като минимизиране на функцията за грешка

Изграждането на обучението като оптимизация ни дава универсален метод за създаване на невронни мрежи за решаване на проблеми. Ако формулираме изискванията за невронна мрежа като проблем за минимизиране на определена функция - оценка, която зависи от част от сигналите (вход, изход,.) И от мрежовите параметри, тогава обучението може да се счита за оптимизация и да се изгради подходящо алгоритми, софтуер и накрая устройства (хардуер). Функцията за оценка обикновено е съвсем просто (изрично) зависима от част от сигналите - вход и изход. Зависимостта му от настройваемите мрежови параметри може да бъде по-сложна и да включва както явни компоненти (термини, фактори.), Така и неявна - чрез сигнали (сигналите, очевидно, зависят от параметрите и функцията за оценка - от сигнали).