Однако сказанное верно только в тех случаях, когда признаки на входе связаны с категориями на выходе линейной зависимостью: суммируйте их, и чем выше итог, тем лучше. Это работает для категорий, где целое представляет собой (взвешенную) сумму частей, но неверно, когда категория определяется компромиссом, золотой серединой, верной комбинацией, ложкой дегтя, камнем преткновения, набором отрицаний или ситуацией, когда слишком хорошо — уже нехорошо. Даже простой логический оператор XOR (
С проблемой можно справиться, поместив между входным и выходным слоем нейронов еще один, «скрытый», как показано на следующем рисунке. Теперь нейросеть превращается из стимульно-реактивного устройства в сущность, обладающую внутренними представлениями — понятиями, если угодно. В нашем примере они могут обозначать целостные промежуточные категории вроде «похожее на капусту», «несладкие плоды», «кабачки и тыквы», «зелень», «грибы» или «корнеплоды и клубни», причем каждая обладает набором входящих связей разной силы, позволяющим улавливать соответствующий стереотип, и сильной исходящей связью с элементом «овощи» в выходном слое.
Чтобы заставить такие сети работать, нужно уметь их обучать. Основная загвоздка — связи, соединяющие входной слой с промежуточным: так как элементы промежуточного слоя нам недоступны, их догадки нельзя сверить с «правильными» значениями, заданными учителем. Это препятствие удалось преодолеть в 1980-е гг. с изобретением обучающего алгоритма обратного распространения ошибки. На первом этапе несовпадение догадки каждого из выходных элементов с верным ответом используется для настройки весовых коэффициентов связей выходного слоя со скрытым — так же, как в двухслойных нейросетях. Затем сумма этих ошибок распространяется в обратном направлении на каждый из промежуточных элементов, настраивая связи входного слоя со скрытым. На первый взгляд кажется, что такая конструкция не может работать, но, если прогнать через сеть пару миллионов обучающих примеров, связи первого и второго яруса приобретают довольно стабильные весовые коэффициенты, позволяющие сети отделять овнов от козлищ. Не менее удивительно, что скрытые элементы способны спонтанно обнаруживать абстрактные категории, например «грибы» или «корнеплоды и клубни», если они нужны для классификации. Но гораздо чаще скрытые элементы соответствуют чему-то такому, для чего у нас и слов-то нет. Они задействуют любые сложные формулы, помогающие выполнить поставленную задачу, скажем «самая малость этого признака, но не слишком много того — кроме случая, когда этого вот третьего признака ну очень много».
Во втором десятилетии XXI в. производительность компьютеров взлетела до небес благодаря развитию графических процессоров, а объем доступных для обучения данных становился все больше по мере того, как миллионы пользователей загружали в глобальную сеть тексты и изображения. Специалисты получили возможность сажать многослойные нейросети на мегавитамины, оснащая их двумя, пятнадцатью или даже тысячей скрытых слоев и натаскивая их на миллиардах или даже триллионах примеров. Такие сети называются системами глубокого обучения — не потому, что они претендуют на глубокое понимание чего бы то ни было, но благодаря глубоко спрятанным промежуточным слоям элементов. Эти системы на наших глазах привели к «великому пробуждению искусственного интеллекта», которое одарило нас первыми работоспособными приложениями, умеющими распознавать речь и образы, отвечать на вопросы, переводить с одного языка на другой и т. д.[143]