В физике существует отдельная дисциплина, инверсная кинематика, которая занимается расчетом движений, необходимых для того, чтобы переместить предмет из точки А в точку В. По мере внесения в систему новых степеней свободы сложность расчетов (различных операций над матрицами) возрастает экспоненциально.
Рассмотрим в качестве примера роботизированную руку с выдвижным манипулятором, способную вращаться в четырех местах. Если мы будем решать матричные уравнения инверсной кинематики классическим способом, то даже суперкомпьютеру потребуется несколько часов на то, чтобы определить, как именно необходимо сместить руку в каждом направлении, чтобы переместить инструмент, закрепленный в манипуляторе, из точки А в точку В.
Таким образом, при реализации роботизированных систем, способных изменять траектории движения в реальном времени, классические методы решения матричных уравнений неприменимы. Если речь идет о роботах, систематически выполняющих одни и те же задачи (это могут быть роботы на сборочном конвейере автомобильного завода), то можно заранее рассчитать и последовательно запрограммировать работу моторов и выдвижного манипулятора. Но если мы хотим сконструировать роботизированную руку, способную действовать автономно и координировать движения в зависимости от ситуации (представьте себе роботов, которые используются на космических кораблях, в хирургии или первых экспериментальных домашних роботов), то нам потребуются более передовые системы, способные быстро вычислять, как именно должны двигаться детали робота, чтобы выполнить поставленную задачу.
На сегодняшний день при создании роботов такого типа эффективно используются нейронные сети с обратным распространением ошибки. В нашем примере нейронная сеть, обученная управлять движениями робота, будет иметь столько выходных нейронов, сколько роботу доступно степеней свободы. Каждый выходной нейрон указывает, на сколько нужно сместиться в каждом направлении, чтобы переместиться из начальной точки в конечную.
Значительное неудобство этого метода по сравнению с классическими подходами состоит в том, что нейронная сеть должна пройти длительное обучение, сравнимое с обучением человека, который в детстве учится ходить. Для человека, уже овладевшего этим навыком, не представляет трудности решать на каждом шаге сложные физические уравнения кинематики и переставлять ноги, не теряя равновесия.
При классическом обучении нейронных сетей с обратным распространением ошибки вновь и вновь рассматриваются десятки тысяч примеров и сотни тысяч возможных траекторий. И для каждой из рассматриваемых траекторий нейронная сеть обучается приводить в действие различные моторы, чтобы робот переместился из начальной точки в конечную.
После завершения обучения нейронной сети говорят, что она усвоила сенсомоторную карту. В результате центр управления роботом может с высочайшей точностью решать задачи инверсной кинематики всего за несколько миллисекунд. Мозг усложняется
Успехи в использовании нейронных сетей привели к тому, что уже в XXI веке они стали стандартным инструментом решения множества задач. Однако нейронные сети обладают серьезными недостатками.
Первый из них — переобучение. Второй — большое число параметров, значения которых следует задавать вручную, случайным образом, до начала обучения нейронной сети. Здесь основная проблема заключается в том, что не существует каких-либо руководств и методик, описывающих, как именно следует задавать значения параметров. В результате на решение этой задачи приходится тратить значительные человеческие и технические ресурсы и в большинстве случаев прибегать к старому проверенному методу проб и ошибок. Третий недостаток, носящий скорее философский, нежели практический характер, заключается в том, что мы не понимаем, как именно рассуждает обученная нейронная сеть. Этому не придавалось особого значения до тех пор, пока нейронные сети не стали в полной мере применяться для решения реальных задач. Если мы, к примеру, используем нейронную сеть для контроля антиблокировочной системы автомобиля (ABS), то вполне логично, что инженеры хотят до мельчайших подробностей понимать, как рассуждает нейронная сеть, — только так они могут быть уверены, что тормоза не откажут ни в одной из многих тысяч возможных ситуаций.
Нейронная сеть формулирует прогнозы, однако неизвестно, как именно она при этом рассуждает. Некоторые сравнивают нейронные сети с магическим кристаллом.
С конца 90-х годов многие специалисты по теории вычислений интенсивно работают над созданием новых вычислительных методов, которые позволят устранить эти недостатки или хотя бы снизить их негативный эффект. Окончательное решение в начале XXI века предложила группа под руководством Владимира Вапника из знаменитой компании AT&T Bell Labs, специализирующейся на телекоммуникациях и производстве электроники. Вапник разработал метод опорных векторов (англ. SVM — Support Vector Machine), при котором для решения линейно неразделимых задач вводятся новые, искусственные измерения, позволяющие преобразовать исходную задачу в линейно разделимую.
Метод опорных векторов лишен большинства недостатков нейронных сетей, поэтому сегодня он пришел им на смену практически во всех областях компьютерных технологий. Тем не менее нейронные сети до сих пор используются в промышленности, в частности в робототехнике, благодаря простой аппаратной реализации.