Давайте создадим перцептрон, позволяющий решить, пойдете ли вы куда-нибудь сегодня вечером. Его решение будет зависеть от трех факторов: 1) показывают ли что-нибудь хорошее по телевизору; 2) идут ли куда-нибудь ваши друзья; 3) какой сегодня день недели. Каждая из этих переменных может принимать значения от 0 до 10, соответствующие вашим предпочтениям. Например, понедельнику присваивается значение 1, а пятнице – 10. В зависимости от ваших личных склонностей некоторые из переменных могут быть весомее, чем другие. Может быть, вы больше всего на свете любите валяться на диване: тогда вы останетесь дома, если по телевизору будет хоть что-то достойное. Значит, переменная
Подобно мозгу, состоящему из целой цепи нейронов, перцептроны могут быть устроены послойно, так, чтобы срабатывание отдельных узлов постепенно вызывало каскадную реакцию, распространяющуюся по сети. Это и называется нейронной сетью. Собственно говоря, существует чуть более замысловатый вариант перцептрона – так называемый сигмоидальный нейрон, который сглаживает поведение этих нейронов, в результате чего они уже не работают просто как двухпозиционные – включенные или выключенные – выключатели.
Но если ученые, работающие в области информатики, уже научились создавать искусственные нейроны, почему же потребовалось столько времени, чтобы добиться их эффективной работы? Этот вопрос заставляет нас вернуться к данным. Перцептронам нужны данные, на которых они обучаются и развиваются; для создания действенного алгоритма необходимо сочетание этих двух составляющих. Мы можем попытаться запрограммировать наш перцептрон на выработку решения о том, следует ли нам куда-нибудь идти, определяя весовые коэффициенты и пороговые значения, но добиться от него правильной работы невозможно без обучения его нашему реальному поведению. Даже неудачные попытки предсказать наше поведение позволяют ему учиться и переоценивать свои критерии.
Одной из самых трудных проблем в развитии искусственного интеллекта всегда было компьютерное зрение. Еще пять лет назад компьютеры ужасно плохо понимали, на что они смотрят. В этой области человеческий мозг работает несравнимо лучше, чем его кремниевые соперники. Мы способны бросить один быстрый взгляд на картинку и сразу сказать, что на ней изображено, или классифицировать разные участки изображения. Компьютер может проанализировать миллионы пикселей, но программистам оказалось очень трудно написать алгоритм, который смог бы обработать все эти данные и разобраться в них. Как создать нисходящий алгоритм, способный узнать кошку? Каждое изображение состоит из пикселей, расположенных абсолютно уникальным образом, и тем не менее человеческий мозг обладает поразительной способностью синтезировать эти данные и объединять входящие сигналы в один выходящий, дающий ответ «кошка».
Способность человеческого мозга распознавать визуальные образы используется для создания дополнительного уровня защиты в банках, а также помогает установить, что вы – не робот, прочесывающий интернет в поисках билетов. По сути дела, вам приходится проходить обратный тест Тьюринга.
Когда человеку показывают изображение или надпись, сделанную причудливым почерком, человек очень хорошо определяет, что там изображено или написано. Компьютеры не могли справиться со всем многообразием таких изображений. Но машинное обучение изменило это положение вещей.
Теперь, тренируясь на данных, состоящих из изображений кошек, алгоритм постепенно выстраивает иерархическую систему вопросов, которые он может задать относительно изображения и с высокой вероятностью установить, что это изображение кошки. Такие алгоритмы несколько отличаются от тех, о которых мы говорили в предыдущей главе: они не соответствуют одному из наших четырех критериев хорошего алгоритма. Они срабатывают не в 100 % случаев. Но в большинстве случаев они срабатывают. Задача заключается в том, чтобы сделать это «большинство» как можно больше. Переход от детерминистических алгоритмов, безошибочно работающих всегда, к алгоритмам вероятностным был для работающих в этой области большим психологическим скачком. В чем-то он был похож на переход от математического мышления к инженерному.
Можно спросить, почему же, если это так, нас по-прежнему просят распознавать фрагменты изображений, чтобы доказать, что мы люди, когда мы хотим купить билеты на популярный концерт. Но этим мы на самом деле помогаем в подготовке тренировочных данных, которые потом будут вводить в алгоритмы, чтобы научить их без лишних усилий делать то же, что делаем мы. Алгоритмам нужны данные, на которых они могли бы учиться. То есть на самом деле мы обучаем алгоритмы распознаванию визуальных образов.