NeuroPro | нейронные сети |
|
Начало Новости Услуги Нейронные сети Программы Статьи Заметки Ссылки Вопросы и ответы Об авторе / контакты |
Алгоритм обратного распространения ошибки - высокая технологияПредложенный в середине 1980х годов алгоритм обратного распространения ошибки стал одним из ведущих факторов, породивших современный нейросетевой бум, т.к. являлся эффективным способом обучения нейронной сети достаточно произвольной структуры (кроме многослойных нейронных сетей-персептронов обратное распространение применимо и к обучению рекуррентных персептронов, и к дообучению нейросетей, созданных конструктивными методами наподобие метода каскадной корреляции). Обратное распространение ошибки обычно не отделяют от обучения нейросети (внесения "изменений" в нейросеть) - во многом это обусловлено историей развития нейроинформатики, но в данной заметке необходимо такое разделение проводить. Обратное распространение ошибки есть метод расчета первых производных (и производных более высокого порядка - но здесь о них говорить не будем). Метод позволяет вычислить точные значения всех производных быстрее, чем расчет приближенными методами (например, методом конечных разностей). Весь вектор градиента вычисляется за время, всего в 2-3 раза более длительное, чем само вычисление функции (реализованной нейросетью) - классическое аналитическое дифференцирование требует для каждой компоненты вектора градиента затрат, примерно пропорциональных затратам на вычисление функции, а метод конечных разностей два раза вычисляет значение функции для каждой компоненты градиента (т.е. стандартные для математики реализации вычисляют градиент за время примерно в столько раз длительнее времени вычисления функции, сколько компонент содержится в векторе градиента). В такой "мгновенной" скорости точного вычисления градиента и есть основная ценность алгоритма обратного распространения для вычислительной математики. Действительно, если некоторую сложную функцию представить в виде направленного графа аналогично графу структуры нейронной сети, то и для этой сложной функции метод обратного распространения так же эффективно посчитает нужные производные - единственным требованием является необходимость непрерывной дифференцируемости "элементов" функции. Но и эту возможность не будем здесь детализировать - остановимся на использовании производных, вычисленных методом обратного распространения ошибки, для решения разнообразных задач именно для нейросети и с помощью нейросети. А задач и возможностей возникает множество:
Целью заметки является акцентирование факта, что единственным технологическим методом возможно получение единственного объекта (набора производных - градиента), который, тем не менее, применим для решения широкого круга задач. Правда, это зачастую требует введения-использования специального вида целевой функции или слагаемых в ней - но это несущественное требование, т.к. имеются примеры таких решений (и часто в неединственном числе - бери подходящий и пользуйся), а для продвинутых есть возможность ввода своих собственных целевых функций/критериев для отражения особенностей их задач и/или требований. Однако, учебники по нейронным сетям такое подробное изложение перечисленных возможностей и схем их решения не дают - например, я это отмечал для книги С.Хайкина. И изложение там ведется без акцента на универсальность принципа вычисления производных для произвольных по сложности критериев (единственное требование - дифференцируемых). Также нет указания на то, что метод обратного распространения может быть с пользой применен не только для нейронных сетей, но и в практических задачах идентификации систем (для расчета нужных производных), и может развить теорию идентификации систем возможностями решения перечисленных здесь задач (просто надо переписать алгоритмы на другой "язык", не упоминая нейросети и пользуясь терминами из другой области науки). Таким образом, имеется технология в виде набора методов/действий, абстрагируемая от узких наук и их терминов и применимая к задачам восстановления зависимостей для обеспечения нужных свойств моделей/систем, отражающих-реализующих эти зависимости. И требованиями-ограничениями будут только требование однократной непрерывной дифференцируемости и графовое представление модели и надстроенных над моделью критериев. Можно даже сформулировать методологическое требование-максиму: "приводи всё к дифференцируемому и графовому виду, дифференцируй алгоритмом обратного распространения и используй производные для коррекции параметров модели или внешних переменных". Учебник, излагающий полную картину возможностей (пусть даже не в абстрактном виде, а в рамках нейроинформатики) нужен, поскольку его до сих пор не было создано, а многие перечисленные возможности были предложены в 1990х годах и вполне могут быть в итоге забыты (поскольку массы не освоили все научные достижения, а сами разработчики с какого-то момента переключились на изобретение других методов потому, что в рамках прежних задач сделали достаточно). Но... Наверно, не увидим такого учебника.
|