Перейти к содержанию

5.2.3.1 Описание проблемы

Материал из Охота на электроовец: Большая Книга Искусственного Интеллекта

Успех Розенблатта и его команды в деле доказательства теоремы о сходимости перцептрона оказал двоякое воздействие на коннекционистские исследования. С одной стороны, было получено строгое обоснование способности модели с одним обучаемым слоем разделять линейно разделимые множества. Однако реальные задачи не всегда являются линейно разделимыми. В таких случаях на помощь могут прийти глубокие модели (с несколькими слоями), но все попытки создать для них метод, который гарантировал бы сходимость, неизменно заканчивались неудачей. Конечно, в моделях, параметры которых могут принимать значения из конечного множества, мы теоретически можем перебрать все возможные сочетания этих величин. Однако применять этот метод на практике нельзя из-за его чрезвычайной вычислительной неэффективности. Например, если для хранения каждого из синаптических весов искусственной нейронной сети, реализованной при помощи цифровой машины, отводится 16 бит, а всего сеть содержит 100 синапсов, то нам придётся перебрать 21600 ≈ 10480 комбинаций, чтобы найти глобальный оптимум, что, разумеется, неосуществимо на практике, несмотря на весьма скромный размер сети. Теорема о сходимости перцептрона показала, что по крайней мере для некоторого частного случая можно найти метод, который будет не только практически применимым, но и математически строгим. До того как Розенблатту и его коллегам удалось доказать эту теорему, критики нейросетевых моделей фокусировали свой огонь именно на слабости математического фундамента перцептрона. Розенблатт, будучи психологом, покусился на «чужую» область и должен был быть наказан за дерзость! Когда же ему удалось представить формальное обоснование элементарного перцептрона, это хотя и стало веским ответом критикам, но в то же время и в некоторой степени легитимировало строгость последних, косвенно поддерживая предположение о том, что для «легализации» многослойных моделей необходимо столь же строгое обоснование их сходимости. Действительно, для Минского и Пейперта неспособность некоторых архитектур перцептронов решать задачи, подобные определению чётности, ставила крест на этих архитектурах. Однако при этом вопрос о том, насколько такие задачи типичны, насколько способность или неспособность той или иной модели находить решения в некоторых искусственно сконструированных случаях связана со способностью этой же модели эффективно решать типовые задачи, часто оставался за пределами дискуссии. Мы хорошо знаем, что человеческому зрению присущи различные ограничения, начиная от наличия слепого пятна и заканчивая множеством оптических иллюзий, но всё это тем не менее не означает, что человеческое зрение бесполезно.

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

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

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

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

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

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

Loading comments...