Традиционный искусственный интеллект опирался на метод ручного ввода. Такая модель была эффективна только для решения проблем с четкими правилами. Например, игра в шахматы искусственного интеллекта с чемпионом Каспаровым. Однако проблему распознавания картин, которую человек может решить еще в младенческом возрасте, ИИ осилить не в состоянии. Так как в ней нет четких правил, есть только смутное представление. Преимущества нейронных сетей в том, что людям не нужно устанавливать правила для машины. Она будет выявлять их самостоятельно по шаблонам из огромного количества исходных данных.
Как следует из названия, нейронная сеть напоминает человеческий мозг. Она состоит из отдельных нейронов, связанных друг с другом в рамках сети. Один нейрон решает только простейшую проблему. Но объединившиеся в многоуровневое целое, они способны справиться и со сложными задачами.
Джеффри Хинтон считал, что традиционные методы машинного обучения неэффективны в решении действительно сложных проблем, так как используют только один слой чип-сети. Основная идея глубокого обучения заключается в повышении эффективности нейронной сети за счет увеличения количества слоев и в упрощении поиска решения за счет поэтапного ввода данных. Иными словами, сложная задача решается поэтапно, разделенная на несколько слоев. Результат, полученный на уровне одного слоя, передается на следующий для дальнейшей обработки.
С помощью слоев нейронных сетей машина находит простые шаблоны для решения задачи – шаблоны в шаблонах. В качестве примера приведем технологию распознавания лиц. Первый слой нейронной сети фокусируется на некоторых областях изображения и распознает отдельные фигуры – глаза, нос, рот и т. д. Затем идентифицированные предметы переходят на следующий слой. Он определяет, что выявленные предметы могут принадлежать взрослому человеку. Говоря математическим языком, многослойная нейронная сеть разделяется на CNN (сверточная нейронная сеть) с данными о пространстве и RNN (рекуррентная нейронная сеть) с данными о времени.
CNN часто используются для распознавания изображений. Как описано выше, на первом уровне сети решается только одна «маленькая задача» – идентифицировать локальный модуль на изображении, такой как квадрат, треугольник или круг. На этом уровне вводится большое количество данных изображения, только чтобы слой нейронов определил «край» основного изображения, то есть ничего рядом с пикселем не было. Каждый из последующих слоев решает задачу более высокого уровня, черпая информацию из предыдущего слоя. Этот метод имитирует работу человеческого глаза. Наш глаз объединяет информацию, отбрасывает второстепенные детали и приоритезирует определенные характерные закономерности. Если несколько мелких квадратов, треугольников и один круг объединяются и формируют лицо, то человеческий глаз сначала обратит внимание на него, а не на прочие детали вне зависимости от того, в какой части изображения оно находится.
RNN часто используются для распознавания речи и обработки естественного языка. Поскольку речь и язык – это данные, которые зависят от времени. Значение следующего предложения неразрывно связано с предыдущим предложением. И сеть RNN может запоминать информацию. Предположим, нам нужно разработать языковую модель и использовать предыдущие предложения для прогнозирования следующих слов. Исходные данные: «Я родился в Китае в 1976 году. Мое высшее образование – математика. Я свободно говорю на _______». Для человека очевидно, что пропущенное слово – «китайском». Компьютерные сети должны быть в состоянии прийти к такому же выводу. Для этого потребуется вычленить информацию из предыдущего предложения, воспользовавшись временным измерением нейронной сети.
Глубокая нейронная сеть оптимизирует скорость машинного обучения и открывает новые возможности для развития технологии искусственного интеллекта. Она позволила нам достичь значительных успехов в распознавании изображений, речи, машинном переводе и т. д. Голосовой ввод стал гораздо быстрее, чем ввод текста. Машинный перевод позволил нам понимать информацию на иностранном языке. А распознавание изображений может точно найти конкретного человека на множестве фотографий и отличить взрослого от подростка. А если фотография сделана расплывчато, то мы можем восстановить ее – сделать изображение четким и точным.
Искусственный интеллект, в основе которого лежит глубокое обучение, существенно отличается от предыдущей версии ИИ. Но логика его работы очень напоминает то, что делаем мы: сначала получаем результат, а затем определяем шаблон, по которому он был получен. Этот процесс называется обучением.
Мы можем объяснить основные способы мышления машин, основанные на глубоком обучении, с помощью простых математических знаний.
Для иллюстрации можно использовать простую функцию.
Вспомним, как мы раньше решали математические задачи. Обычно у нас есть формула (функция), куда необходимо ввести данные, чтобы получить результат. Возьмем в качестве примера функцию: y = ax + b. Если y = 2x + 1 и известно, что x = 1, то y будет равен 3. Здесь x – это «вход», а полученный y – «выход».
Математические способности более высокого порядка – это возможность вычислить входные значения при знании функции и выхода. То есть при известных y=2x+1, где y=5, нам необходимо будет найти х.
Еще один шаг вперед – способности машинного обучения в случае, где мы не знаем значения коэффициентов a, b, но знаем значения y и x. То есть при известных «входе» и «выходе» необходимо найти коэффициенты функции. В функции y=ax+b нам просто нужно знать значения двух наборов x, y, чтобы подтвердить a и b.
Предположим теперь, что у нас есть набор входных и выходных данных, но мы не знаем функцию. Для решения нам потребуется конструктор. Например, известно, что x=2, y = 5, и требуется рассчитать f(x). Это невозможно сделать в тех случаях, когда входные и выходные данные невелики. f(x) может быть 2x+1, или 1x+3, или даже x2+1 и т. п. Только если имеется достаточное количество значений x и y, математики смогут «продвинуться к решению», постоянно корректируя вес формулы.
Проблема в том, что данные, генерируемые в современных производстве и жизни, очень сложны. Функции, которые можно вычислить на их основе, будут содержать «колоссальную энергию». И человек уже не способен справиться с этой задачей, но может передать ее компьютеру. Функция подгонки очень проста. Нейронная сеть глубокого обучения имитирует нервные узлы человеческого мозга, каждый из которых фактически является регулятором функции, а бесчисленные функции пересекаются друг с другом. С помощью различных методов, таких как математическая матрица, оптимизация и регулярные выражения, процесс глубинного обучения корректирует вес каждого функционального коэффициента, и в случае, если данные достаточны и принцип конструкции подходит, эволюционирующие функции будут все более точно соответствовать большинству данных. Мы можем использовать этот набор функций, чтобы предсказать то, что еще не произошло. Этот процесс мы называем «тренировкой».
Ведущая команда специалистов Google обучила компьютерную систему распознавать кошек.
При использовании устаревшего искусственного интеллекта для начала требовалось дать детальное описание кошки: острые уши, круглые глаза, прямые усы, четыре ноги, длинный хвост… Затем необходимо было преобразовать характеристики в функции, ввести их в компьютер и загрузить изображение кошки в качестве примера. Компьютер разделял элементы на картинке по категориям, а затем сравнивал их с исходным данными, где были описаны острые уши, круглые глаза, прямые усы, четыре ноги, длинный хвост и другие характеристики кошки.
Ученые сделали так, чтобы не было необходимости описывать функциями характеристики кошки, и компьютеры писали их сами. Они «накормили» компьютер большим количеством фотографий, чтобы он мог понять: кошка это или нет. В нейронной сети существует множество путей распознавания кошки, так же как в человеческом мозге. Каждый путь дает свои результаты. Правильный ответ помечался зеленым цветом, неправильный – красным. После более чем достаточного числа попыток в 100 000 различных фотографий с кошками, правильные или взвешенные нейронные сети были преобразованы в технологию распознавания (комплекс функциональных связей). Ученые больше не будут комментировать результат распознавания, а кошка будет всегда идентифицироваться верно. Чем больше вводить обучающих данных, тем сложнее, но точнее набор полученных функций.
Это «контролируемое обучение», которое зависит от большого количества данных. Ву Энда возглавлял программу идентификации кошки, которая бы позволила узнать животное с нуля. После того, как исследователи показали нейронной сети несколько миллионов статических снимков кошки, она выработала стабильную модель распознавания. И теперь, как и все дети, система может без труда опознать кошку.
Кварк Вэй Ле, ученик Ву Энда, опубликовал статью, в которой доказал, что машинное обучение может идентифицировать уникальные данные и создавать собственные модели решения задач. Способности технологии машинного обучения вовсе не ограничиваются распознаванием кошек.
Более 20 лет назад Кевин Келли в научной книге «Из-под контроля» рассказал об «эффекте колонии пчел». Там же он предсказал появление новых технологий, таких как распределенные вычисления, хотя, возможно, был незнаком с принципами машинного обучения. Он отметил, что движение каждой пчелы случайно, но колония пчел всегда летит в одном направлении. «Эффект колонии пчел» можно представить следующим образом: действия (входы) большого числа пчел объединены в одно общее движение (выход), а логика (функция) находится в середине этого процесса. Информационное движение в компьютерных нейронных сетях похоже на сбор пыльцы роем пчел. В их, казалось бы, безумной траектории полета, распознается и идентифицируется лицо кошки. У Baidu гораздо больше возможностей в распознавании кошек, чем у людей. ИИ может даже точно разграничить разные породы.
Для людей машинное обучение представляет собой «черный ящик». И некоторые всерьез обеспокоены тем, что этот ящик может представлять опасность для человека. Ведь мы не знаем, как и о чем думает машина. Глубокое обучение может устроить нам сюрприз…