litbaza книги онлайнРазная литератураОхота на электроовец. Большая книга искусственного интеллекта - Сергей Сергеевич Марков

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 153 154 155 156 157 158 159 160 161 ... 482
Перейти на страницу:
связана со способностью этой же модели эффективно решать типовые задачи, часто оставался за пределами дискуссии. Мы хорошо знаем, что человеческому зрению присущи различные ограничения, начиная от наличия слепого пятна и заканчивая множеством оптических иллюзий, но всё это тем не менее не означает, что человеческое зрение бесполезно.

Однако, даже если мы выйдем за пределы парадигмы математической строгости и согласимся на приближённые решения, открытым остаётся вопрос о том, как должна выглядеть эффективная процедура нахождения таких решений. Как ни странно, математики столкнулись с этой проблемой задолго до появления искусственных нейронных сетей и, более того, нашли для неё ряд весьма остроумных решений.

Давайте представим себе простейшую модель с двумя параметрами. Например, мы хотим обучить нейронную сеть, состоящую из трёх нейронов. Каждый из двух нейронов входного слоя будет связан синапсом с единственным нейроном выходного слоя, на выходе которого будет расположена функция активации. Таким образом, в модели будет всего два синапса, каждому из которых сопоставлено соответствующее значение синаптического веса. Эти веса и будут параметрами нашей модели. Трудно придумать задачу, которую может решать подобная примитивная сеть, но допустим, сеть должна будет по массе и длине тела животного определять, является это животное слоном или нет. Положим, в нашей обучающей выборке есть несколько тысяч примеров животных, для каждого из которых мы знаем массу и длину его тела, а также правильную метку класса, то есть нам известно, является ли каждое животное из обучающей выборки слоном или нет. Будем считать, что если на выходе наша сеть выдаёт единицу, то она считает животное слоном, а если ноль — не считает. Задачу обучения нашей сети можно представить в графической форме в виде некоторой поверхности. В трёхмерной системе координат по оси x отложим значение первого синаптического веса, по оси y — значение второго, а в качестве координаты z будем использовать количество неправильных ответов, выданных нашей сетью для обучающей выборки. Таким образом, задачей алгоритма обучения является нахождение самой низкой точки данной поверхности, то есть таких значений x и y, при которых количество неправильных ответов будет минимальным.

Понятно, что эту точку можно найти, перебрав все возможные пары x и y, то есть «осмотрев» всю поверхность, однако вычислительно это слишком затратная операция. Если каждый из весов может принимать 65 536 различных значений (именно столько их будет, если для хранения каждого из весов мы выделим 16 бит), то даже для нашей игрушечной задачи нам потребуется перебрать 232, то есть более 4 млрд значений. Существуют ли практичные альтернативы этому беспощадному просеиванию миллиардов вариантов?

Представим себе человека с завязанными глазами, оказавшегося на поверхности из нашей задачи в её случайной точке. Его цель — забраться в самую глубокую точку этой поверхности (по возможности за минимальное число шагов). Вполне естественным методом будет движение по этой поверхности в направлении её наибольшего уклона, пока мы не окажемся в точке с нулевым уклоном. Первым из математиков, использовавшим этот подход, стал Огюстен Луи Коши — французский математик и механик. Этот метод, предложенный Коши в 1847 г., а также множество придуманных позже его разновидностей сегодня часто объединяют в семейство, называемое «методами градиентного спуска».

Если мы приглядимся к нашей задаче повнимательнее, то заметим несколько свойственных ей досадных неприятностей. Во-первых, вся её поверхность состоит из уровней, соответствующих целым числам. Действительно, наша сеть может ошибаться в нуле, семи или 300 случаях, но не может ошибаться в ⅔ или 124,57 случая. Такая поверхность, словно бы вышедшая из игры Minecraft, почти во всех своих точках будет иметь нулевой уклон. Нам придётся долго ощупывать окрестности точки в поисках пути вниз — «биполярная» природа функции Хэвисайда играет с нами дурную шутку. Именно поэтому хитрый Уидроу, создавая ADALINE, использовал при обучении величину сигнала до прохождения его через пороговую функцию. По её значению мы можем установить, насколько наша сеть была далека от правильного ответа. Того же результата можно достичь, заменив функцию Хевисайда на какую-либо гладкую функцию активации. Теперь вместо количества ошибок мы можем использовать непрерывную метрику — например сумму квадратов отклонений прогнозов сети от правильных ответов. При выборе такой целевой функции наша поверхность становится гладкой, что упрощает задачу поиска направления наибольшего убывания функции. Во-вторых, хотя на бытовом уровне мы и понимаем, что такое направление наибольшего уклона поверхности, с математической точки зрения задача нахождения этого направления совсем нетривиальна. Коши имел дело с функциями, заданными в аналитической форме. Благодаря этому он мог использовать частные производные, посчитанные опять же аналитически, а геометрическим смыслом производной как раз и является угловой коэффициент касательной. В одномерном случае этот угловой коэффициент — скалярная величина, в нашем же — это вектор размерности 2, определяющий наклон касательной плоскости относительно каждой из двух осей, x и y. Однако наша функция, задающая зависимость ошибки сети от значения её синаптических весов, при задании аналитически становится довольно громоздкой, а способ расчёта её производной — не совсем очевидным.

Конечно, можно случайным образом ощупывать окрестности текущей точки и выбирать то направление из обследованных, которое связано с максимальным уменьшением значения целевой функции, либо, обнаружив в окрестностях текущей точки новую точку, связанную хотя бы с каким-то уменьшением, немедленно перемещаться в неё. Однако подобные методы, относимые к методам «случайного спуска» (или «случайного поиска»), обычно связаны с крайне медленной сходимостью, особенно при наличии большого количества параметров. Словом, будущее глубоких нейронных сетей во многом зависело от того, можно ли придумать вычислительно эффективный метод для расчёта градиента изменения целевой функции в пространстве весов сети. В результате такой метод был найден, хотя для его разработки и доводки до стадии зрелости потребовались усилия множества людей в течение нескольких десятилетий.

5.2.3.2 Начало поиска метода

Сегодня этот метод известен под названием «метод обратного распространения ошибки» [backward propagation of errors], причём в разговорном английском языке это название уже давно сократилось до backpropagation или даже жаргонного backprop. Хотя многие современные популярные источники относят появление этого метода к 1970-м или даже 1980-м гг., в действительности непрерывный вариант метода обратного распространения ошибки был описан ещё в начале 1960-х гг. в работах Генри Келли и Артура Брайсона[1371], [1372]. Вообще-то, Келли и Брайсон не занимались исследованиями в области нейронных сетей, их интересовал расчёт оптимальных траекторий летательных аппаратов. Например, в статье Келли «Градиентная теория оптимальных полётных маршрутов» (Gradient Theory of Optimal Flight Paths), опубликованной в 1960 г., в качестве примера рассматривалась задача управления космическим кораблём, использующим солнечный парус для путешествия между орбитами

1 ... 153 154 155 156 157 158 159 160 161 ... 482
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?