Обучение — неотъемлемая часть нашей жизни и жизни всех животных, но понимаете ли вы, насколько удивительны наши способности к обучению? Когда мы пытаемся создать машины, способные обучаться, мы сталкиваемся с глубокими вопросами о природе и функционировании интеллекта.
В этой статье мы расскажем вам об особых искусственных компьютерных алгоритмах, называемых нейронными сетями, которые имитируют работу мозга и обеспечивают разумное поведение. Нейронные сети являются неотъемлемой частью искусственного интеллекта, широко используемой во многих повседневных приложениях, от распознавания лиц до автономного вождения. У многих прогрессивных учёных есть мнение, что нейронные сети сыграют ключевую роль в будущей жизни человечества, сделав её более комфортной и улучшив понимание таких больших загадок, как, например, работает наш мозг.
На вопрос «Разумное ли ты существо?» почти все ответят «да». А как насчёт вашей собаки или кошки? Или смартфона? Хотя наличие интеллекта человеком воспринимается интуитивно, на самом деле это сложное явление и не существует чёткого определения интеллекта и абсолютной меры того, насколько интеллектуальна система. Разработка искусственного интеллекта — это попытка воспроизвести или превзойти способности людей и животных, особенно интеллектуальные, такие как понимание языка и рассуждение. Всякий раз, когда какая-то проблема решается так, что машины превосходят людей в конкретной задаче, это уже не ИИ. Многие вещи, которые раньше были частью искусственного интеллекта, больше ими не являются. Например, использование GPS для навигации по наилучшему маршруту или выполнение сложных арифметических вычислений. Благодаря этому развитию люди также узнали, что они сами относительно хороши или умны в одних вещах, но довольно плохи в других. Например, до недавнего времени люди думали, что мы непобедимы в настольных играх, таких как шахматы и го. Но сегодня мы знаем, что передовые системы искусственного интеллекта могут победить лучших игроков-людей, так как могут на серверах проводить глобальные вычисления различных вариаций за доли секунды.
Сегодня есть и другие задачи, которые системы искусственного интеллекта могут выполнять лучше, чем люди, такие как мгновенный перевод и распознавание изображений. Но даже самые интеллектуальные системы узкоспециализированы: они хороши лишь для решения очень узкого круга задач. По-настоящему разумные машины должны быть способны делать то, что делают все животные — обучаться. Обучение означает адаптацию или использование знаний, полученных в результате опыта, для успешного выполнения задачи в новых сценариях. Люди и животные учатся естественным образом, но как учатся машины?
Для машинного обучения разрабатываются специальные системы и алгоритмы (то есть наборы инструкций, которые сообщают машинам, как им действовать дальше), которые собирают данные и используют их для постоянного обновления своего поведения и улучшения производительности. Машинное обучение лежит в основе многих приложений, таких как автоматический перевод веб-страниц на разные языки, голосовое управление и распознавание лиц в смартфонах, вождение беспилотных автомобилей и анализ медицинских данных. Но лучшие обучающиеся машины все ещё не могут учиться, как люди. Например, человеку требуется всего около 20–30 часов, чтобы научиться правильно водить машину, но в настоящее время ни одна машина не может управлять автономно так же хорошо, как человек, даже после тысяч часов работы. Большим прорывом в машинном обучении стало то, что учёные придумали, как имитировать процесс обучения мозга.
Наш мозг состоит примерно из 100 миллиардов нейронов, каждый из которых связан примерно с 10 000 других нейронов (это означает, что в нашем мозгу около 1000 триллионов связей!). Они общаются посредством электрических сигналов, которые передают и принимают. Сила электрического сигнала, который каждый нейрон получает от других нейронов, определяется синапсом — соединением, соединяющим два нейрона. Его сила может меняться со временем в зависимости от того, как часто он используется для передачи сигнала между нейронами. Когда мы чему-то учимся, сила и расположение синапсов в нашем мозгу меняются — представьте себе обучение как сеть единиц, которые получают входные данные от других единиц, выполняют вычисления, а также передают и выводят данные через соединения, сила связей которых меняется со временем. Используя эти принципы, мы можем создать сеть искусственных нейронов. Искусственные нейроны получают цифровые входные данные, выполняют вычисления и передают цифровые выходные данные другим искусственным нейронам, которые могут обучаться.
Большой скачок в развитии машинного обучения произошёл с появлением нейронных сетей (NN — neural networks) — это сети искусственных вычислительных элементов, которая имитирует работу нейронов в головном мозге. Другими словами, нейросеть представляет собой масштабную сеть связанных искусственных нейронов, смоделированную на компьютере и организованную послойно. Первый слой, который является входным слоем, получает данные, которые мы ему передаём, например, изображение, видео или аудиофайл. Средние слои, называемые скрытыми, обрабатывают данные, а выходной слой выдаёт результат вычислений (например, идентификация объектов на изображении или перевод голоса в текст). Нейронная сеть считается простой, или неглубокой, если в ней есть только один скрытый слой, и глубокой нейронной сетью (DNN — deep neural network), если в ней есть два или более скрытых слоя. В этой статье мы сосредоточимся на DNN, которые выполняют глубокое обучение.
Каждый искусственный нейрон в нейросети глубокой архитектуры связан со всеми другими нейронами на следующем уровне с различной силой связей, называемой весом. Каждый нейрон получает входные данные от всех остальных нейронов предыдущего слоя, выполняет расчёт на основе веса этих связей, а затем отправляет выходные данные всем остальным нейронам следующего слоя. Таким образом, информация передаётся от входного слоя к выходному с помощью так называемого прямого распространения. На выходном уровне DNN сообщает, какой, по ее мнению, результат является правильным (например, есть ли на изображении кошка или собака).
Далее наступает сама интересная часть, где нейросеть должна обучиться, если выдала неправильный ответ. Обучение означает обновление веса в DNN (например, изменение синапсов в мозгу), чтобы в следующий раз лучше выполнить задачу. Думайте о каждом весе в DNN как о руке-манипуляторе, которую можно настроить для изменения общего результата — обычно вариантов результата десятки тысяч. Чтобы настроить эти элементы, нейросеть сначала сравнивает полученный результат (активацию своих нейронов в выходном слое, каждый из которых представляет определённый результат) с правильным результатом, который она должна была получить (ожидаемую активацию каждого нейрона в выходном слое). Затем она обновляет веса на всех уровнях, от последнего до первого скрытого слоя, чтобы минимизировать разницу между желаемым и фактическим результатом.
Существует два распространённых способа глубокого машинного обучения. Первый — это обучение под наблюдением, которое является более точным, но менее эффективным, когда системы сканируют множество образцов данных, уже помеченных людьми (например, изображения кошек и собак, правильно классифицированные). Второй способ — это обучение под самоконтролем, при котором сеть пытается восстановить уже имеющуюся у неё информацию (входные данные) после представления информации в своих слоях — этот процесс не требует вмешательства человека.
Общий алгоритм, используемый для обновления веса векторов в нейросети, называется алгоритмом обучения с обратным распространением, который обычно используется для обучения в глубоких нейронных сетях. Обратное распространение позволяет компьютерному разуму улучшать свои характеристики после каждого испытания. Сети, которые в настоящее время обучают разработчики, продолжают совершенствоваться после каждого испытания, но скорость их улучшения снижается, поэтому, в какой-то момент компании-разработчики прекращают инвестировать в обучение, но, тем не менее, сеть продолжает совершенствоваться, просто процесс происходит медленнее. После того, как сеть изучает обучающий набор данных, она получает тестовый набор для проверки своей производительности. Когда его производительность становится достаточной для выполнения конкретной задачи, она готова к использованию с новыми (неизвестными ей) данными.
В зрительной коре головного мозга (процессоре обработки визуальной информации нашего мозга) нейроны реагируют на различные визуальные особенности, называемые мотивами, такие как ориентация или определение контурных линий (или краёв). Группы нейронов, каждый из которых распознает свой мотив, повторяются повсюду в зрительной коре, обнаруживая одни и те же мотивы в разных частях изображения, которое мы видим. Вдохновлённые такой архитектурой мозга, исследователи применили ту же базовую структуру к искусственным нейронным сетям, которые были обучены с использованием обратного распространения, что в конечном итоге привело к разработке свёрточных нейронных сетей (CNN — convolutional neural networks).
В основе CNNs лежит предположение, что сигналы, которые человек воспринимает из окружающего мира, состоят из простых элементов, которые накладываются друг на друга, создавая сложные объекты. Простые мотивы (например, линии и контуры) объединяются в части объектов (например, квадратные поверхности и ножки), которые затем объединяются в более сложные объекты (например, стол), и даже категории объектов в иерархическом порядке. В CNN берётся набор нейронов и подключается их к небольшому участку входных данных, например, к изображению. Затем тот же набор нейронов копируется по всему изображению, чтобы они рассматривали каждую небольшую отдельную часть или участок. Выходные данные определяют наличие или отсутствие объекта в каждом участке изображения. По мере распространения информации по всем слоям CNN, эти функции становятся более сложными. Удивительно, но уже не нужно указывать свёрточной нейросети, какие функции искать – её просто обучаюит, от начала до конца, используя обратное распространение. А потом они — совершенно волшебным образом — сами определяют, какие функции следует использовать для идентификации объекта.
Первая программа для использования свёрточной сети, была обучена распознавать цифры, написанные от руки. Она оказалась довольно успешной и позже была внедрена для считывания чеков в банках США и Европы. Далее она оказалась полезной для различных других приложений, связанных с распознаванием изображений, таких, как оптическое распознавание символов (мы знаем этот процесс, как OCR), распознавание лиц и видеонаблюдение, а также для распознавания речи. Такой тип нейросети значительно улучшили производительность прежних DNN и теперь является неотъемлемой частью таких передовых технологий, как анализ медицинских изображений и автономное вождение.
Как было показано, разработка искусственных нейронных сетей была вдохновлена работой мозга. Так могут ли они стать полезными для понимания работы самого мозга? Ответ очевиден: они необходимы для этого. Мозг — очень сложный орган, и, вероятно, существуют какие-то основополагающие принципы, управляющие его способностями, которые люди ещё не раскрыли. Хотя нейробиологи собрали огромное количество экспериментальных данных, но надёжной теории о том, как именно работает мозг, не существует. Чтобы показать, что теория функционирования мозга верна, человеку нужно воссоздать её на компьютере и убедиться, что она работает также, как работает человеческий мозг. Если удастся создать компьютеризированный мозг, который действует аналогично биологическому, это будет означать, что учёные уловили общие принципы работы, несмотря на различия между системами.
Сегодня многие учёные, изучающие мозг, уже используют глубокое обучение и нейросети в качестве моделей для объяснения мозговой активности, особенно в зрительной коре, но это также актуально для объяснения того, как мы обрабатываем речь и текст. Нейронные сети позволяют анализировать информационные процессы, регистрируя активность всех нейронов и используя это для понимания того, как они представляют данные. Но чтобы понять коллективную работу миллионов или миллиардов этих элементов, в какой-то момент необходимо описать работу всей сети на абстрактном уровне. Наличие нейросетей глубокого обучения, которые функционируют аналогично работе мозга, обеспечило бы большой скачок в общем понимании работы интеллекта.
Проблема контроля над ИИ стала современным «пугалом», с ужасающими прогнозами о том, что машины станут умнее нас и будут доминировать над человеком. Однако у машин интеллект не равен желанию доминировать над другими. Другой проблемой является приведение поведения интеллектуальных машин в соответствие с общечеловеческими ценностями. Хотя «научить» ИИ вести себя должным образом сложно, с этим возможно справиться — точно так же, как взрослые учат детей вести себя в обществе, руководствуясь теми же правилами социального функционирования. Можно определить внутренние цели, к которым будут стремиться машины (представьте их как «основные базовые ценности), которые они не могут нарушить или изменить, гарантируя, что поведение компьютерного разума будет соответствовать человеческим ценностям и целям.