Искусственный интеллект простыми словами
Многие люди думают, что немного знакомы с ИИ. Но эта область настолько молода и растёт так быстро, что прорывы совершаются чуть ли не каждый день. В этой научной области предстоит открыть настолько многое, что специалисты из других областей могут быстро влиться в исследования ИИ и достичь значимых результатов.
Эта статья — как раз для них. Я поставил себе целью создать короткий справочный материал, который позволит технически образованным людям быстро разобраться с терминологией и средствами, используемыми для разработки ИИ. Я надеюсь, что этот материал окажется полезным большинству интересующихся ИИ людей, не являющихся специалистами в этой области.
Введение
Искусственный интеллект (ИИ), машинное обучение и нейронные сети — термины, используемые для описания мощных технологий, базирующихся на машинном обучении, способных решить множество задач из реального мира.
В то время, как размышление, принятие решений и т.п. сравнительно со способностями человеческого мозга у машин далеки от идеала (не идеальны они, разумеется, и у людей), в недавнее время было сделано несколько важных открытий в области технологий ИИ и связанных с ними алгоритмов. Важную роль играет увеличивающееся количество доступных для обучения ИИ больших выборок разнообразных данных.
Область ИИ пересекается со многими другими областями, включая математику, статистику, теорию вероятностей, физику, обработку сигналов, машинное обучение, компьютерное зрение, психологию, лингвистику и науку о мозге. Вопросы, связанные с социальной ответственностью и этикой создания ИИ притягивают интересующихся людей, занимающихся философией.
Мотивация развития технологий ИИ состоит в том, что задачи, зависящие от множества переменных факторов, требуют очень сложных решений, которые трудны к пониманию и сложно алгоритмизируются вручную.
Растут надежды корпораций, исследователей и обычных людей на машинное обучение для получения решений задач, не требующих от человека описания конкретных алгоритмов. Много внимания уделяется подходу «чёрного ящика». Программирование алгоритмов, используемых для моделирования и решения задач, связанных с большими объёмами данных, занимает у разработчиков очень много времени. Даже когда нам удаётся написать код, обрабатывающий большое количество разнообразных данных, он зачастую получается очень громоздким, трудноподдерживаемым и тяжело тестируемым (из-за необходимости даже для тестов использовать большое количество данных).
Современные технологии машинного обучения и ИИ вкупе с правильно подобранными и подготовленными «тренировочными» данными для систем могут позволить нам научить компьютеры «программировать» за нас.
Обзор
Интеллект — способность воспринимать информацию и сохранять её в качестве знания для построения адаптивного поведения в среде или контексте
Это определение интеллекта из (англоязычной) Википедии может быть применено как к органическому мозгу, так и к машине. Наличие интеллекта не предполагает наличие сознания. Это — распространённое заблуждение, принесённое в мир писателями научной фантастики.
Попробуйте поискать в интернете примеры ИИ — и вы наверняка получите хотя бы одну ссылку на IBM Watson, использующий алгоритм машинного обучения, ставший знаменитым после победы на телевикторине под названием «Jeopardy» в 2011 г. С тех пор алгоритм претерпел некоторые изменения и был использован в качестве шаблона для множества различных коммерческих приложений. Apple, Amazon и Google активно работают над созданием аналогичных систем в наших домах и карманах.
Обработка естественного языка и распознавание речи стали первыми примерами коммерческого использования машинного обучения. Вслед за ними появились задачи другие задачи автоматизации распознавания (текст, аудио, изображения, видео, лица и т.д.). Круг приложений этих технологий постоянно растёт и включает в себя беспилотные средства передвижения, медицинскую диагностику, компьютерные игры, поисковые движки, спам-фильтры, борьбу с преступностью, маркетинг, управление роботами, компьютерное зрение, перевозки, распознавание музыки и многое другое.
ИИ настолько плотно вошёл в современные используемые нами технологии, что многие даже не думают о нём как об «ИИ», то есть, не отделяют его от обычных компьютерных технологий. Спросите любого прохожего, есть ли искусственный интеллект в его смартфоне, и он, вероятно, ответит: «Нет». Но алгоритмы ИИ находятся повсюду: от предугадывания введённого текста до автоматического фокуса камеры. Многие считают, что ИИ должен появиться в будущем. Но он появился некоторое время назад и уже находится здесь.
Термин «ИИ» является довольно обобщённым. В фокусе большинства исследований сейчас находится более узкое поле нейронных сетей и глубокого обучения.
Как работает наш мозг
Человеческий мозг представляет собой сложный углеродный компьютер, выполняющий, по приблизительным оценкам, миллиард миллиардов операций в секунду (1000 петафлопс), потребляющий при этом 20 Ватт энергии. Китайский суперкомпьютер под названием «Tianhe-2» (самый быстрый в мире на момент написания статьи) выполняет 33860 триллионов операций в секунду (33.86 петафлопс) и потребляющий при этом 17600000 Ватт (17.6 Мегаватт). Нам предстоит проделать определённое количество работы перед тем, как наши кремниевые компьютеры смогут сравниться со сформировавшимися в результате эволюции углеродными.
Точное описание механизма, применяемого нашим мозгом для того, чтобы «думать» является предметом дискуссий и дальнейших исследований (лично мне нравится теория о том, что работа мозга связана с квантовыми эффектами, но это — тема для отдельной статьи). Однако, механизм работы частей мозга обычно моделируется с помощью концепции нейронов и нейронных сетей. Предполагается, что мозг содержит примерно 100 миллиардов нейронов.
Нейроны взаимодействуют друг с другом с помощью специальных каналов, позволяющих им обмениваться информацией. Сигналы отдельных нейронов взвешиваются и комбинируются друг с другом перед тем, как активировать другие нейроны. Эта обработка передаваемых сообщений, комбинирование и активация других нейронов повторяется в различных слоях мозга. Учитывая то, что в нашем мозгу находится 100 миллиардов нейронов, совокупность взвешенных комбинаций этих сигналов устроена довольно сложно. И это ещё мягко сказано.
Но на этом всё не заканчивается. Каждый нейрон применяет функцию, или преобразование, к взвешенным входным сигналам перед тем, как проверить, достигнут ли порог его активации. Преобразование входного сигнала может быть линейным или нелинейным.
Изначально входные сигналы приходят из разнообразных источников: наших органов чувств, средств внутреннего отслеживания функционирования организма (уровня кислорода в крови, содержимого желудка и т.д.) и других. Один нейрон может получать сотни тысяч входных сигналов перед принятием решения о том, как следует реагировать.
Мышление (или обработка информации) и полученные в результате его инструкции, передаваемые нашим мышцам и другим органам являются результатом преобразования и передачи входных сигналов между нейронами из различных слоёв нейронной сети. Но нейронные сети в мозгу могут меняться и обновляться, включая изменения алгоритма взвешивания сигналов, передаваемых между нейронами. Это связано с обучением и накоплением опыта.
Эта модель человеческого мозга использовалась в качестве шаблона для воспроизведения возможностей мозга в компьютерной симуляции — искуственной нейронной сети.
Искусственные Нейронные Сети (ИНС)
Искусственные Нейронные Сети — это математические модели, созданные по аналогии с биологическими нейронными сетями. ИНС способны моделировать и обрабатывать нелинейные отношения между входными и выходными сигналами. Адаптивное взвешивание сигналов между искусственными нейронами достигается благодаря обучающемуся алгоритму, считывающему наблюдаемые данные и пытающемуся улучшить результаты их обработки.
Для улучшения работы ИНС применяются различные техники оптимизации. Оптимизация считается успешной, если ИНС может решать поставленную задачу за время, не превышающее установленные рамки (временные рамки, разумеется, варьируются от задачи к задаче).
ИНС моделируется с использованием нескольких слоёв нейронов. Структура этих слоёв называется архитектурой модели. Нейроны представляют собой отдельные вычислительные единицы, способные получать входные данные и применять к ним некоторую математическую функцию для определения того, стоит ли передавать эти данные дальше.
В простой трёхслойной модели первый слой является слоем ввода, за ним следует скрытый слой, а за ним — слой вывода. Каждый слой содержит не менее одного нейрона.
С усложнением структуры модели посредством увеличения количества слоёв и нейронов возрастают потенциал решения задач ИНС. Однако, если модель оказывается слишком «большой» для заданной задачи, её бывает невозможно оптимизировать до нужного уровня. Это явление называется переобучением (overfitting).
Архитектура, настройка и выбор алгоритмов обработки данных являются основными составляющими построения ИНС. Все эти компоненты определяют производительность и эффективность работы модели.
Модели часто характеризуются так называемой функцией активации. Она используется для преобразования взвешенных входных данных нейрона в его выходные данные (если нейрон решает передавать данные дальше, это называется его активацией). Существует множество различных преобразований, которые могут быть использованы в качестве функций активации.
ИНС являются мощным средством решения задач. Однако, хотя математическая модель небольшого количества нейронов довольно проста, модель нейронной сети при увеличении количества составляющих её частей становится довольно запутанно. Из-за этого использование ИНС иногда называют подходом «чёрного ящика». Выбор ИНС для решения задачи должен быть тщательно обдуманным, так как во многих случаях полученное итоговое решение нельзя будет разобрать на части и проанализировать, почему оно стало именно таким.
Глубокое обучение
Термин глубокое обучение используется для описания нейронных сетей и используемых в них алгоритмах, принимающих «сырые» данные (из которых требуется извлечь некоторую полезную информацию). Эти данные обрабатываются, проходя через слои нейросети, для получения нужных выходных данных.
Обучение без учителя (unsupervised learning) — область, в которой методики глубокого обучения отлично себя показывают. Правильно настроенная ИНС способна автоматически определить основные черты входных данных (будь то текст, изображения или другие данные) и получить полезный результат их обработки. Без глубокого обучения поиск важной информации зачастую ложится на плечи программиста, разрабатывающего систему их обработки. Модель глубокого обучения же самостоятельно способна найти способ обработки данных, позволяющий извлекать из них полезную информацию. Когда система проходит обучение (то есть, находит тот самый способ извлекать из входных данных полезную информацию), требования к вычислительной мощности, памяти и энергии для поддержания работы модели сокращаются.
Проще говоря, алгоритмы обучения позволяют с помощью специально подготовленных данных «натренировать» программу выполнять конкретную задачу.
Глубокое обучение применяется для решения широкого круга задач и считается одной из инновационных ИИ-технологий. Существуют также другие виды обучения, такие как обучение с учителем (supervised learning) и обучение с частичным привлечением учителя(semi-supervised learning), которые отличаются введением дополнительного контроля человека за промежуточными результатами обучения нейронной сети обработке данных (помогающего определить, в правильном ли направлении движется система).
Теневое обучение (shadow learning) — термин, используемый для описания упрощённой формы глубокого обучения, при которой поиск ключевых особенностей данных предваряется их обработкой человеком и внесением в систему специфических для сферы, к которой относятся эти данные, сведений. Такие модели бывают более «прозрачными» (в смысле получения результатов) и высокопроизводительными за счёт увеличения времени, вложенного в проектирование системы.
Заключение
ИИ является мощным средством обработки данных и может находить решения сложных задач быстрее, чем традиционные алгоритмы, написанные программистами. ИНС и методики глубокого обучения могут помочь решить ряд разнообразных проблем. Минус состоит в том, что самые оптимизированные модели часто работают как «чёрные ящики», не давая возможности изучить причины выбора ими того или иного решения. Этот факт может привести к этическим проблемам, связанным с прозрачностью информации.