Почему голосовые помощники так хорошо говорят, но так плохо? Их главная проблема — отсутствие логического мышления: по большому счету, это просто очень продвинутые попугаи, которые, услышав фразу, подбирают на нее наиболее подходящий ответ. Высший уровень — искусственный интеллект, он неплохо умеет водить машину.
Но попробуйте заставить его вытереть пыль с полок.
Удивительно, но эта задача на порядок сложнее; это уже требует Сильный искусственный интеллект( А искусственный г общий я интеллект): поднять вазу, положить носки в стиральную машину — все это требует обширных знаний об окружающем нас мире.
О Strong AI много разговоров, но мало конкретики:" мы должны сначала постичь все тайны нашего мозга ", " ИИ оставит людей без работы " И " он поработит человечество ".
Нет даже четкого определения, что такое AGI, не говоря уже об инструкции, как его построить.
Между тем, почти все ответы уже найдены и остается только собрать этот пазл.
Теперь разберемся, что Сильный ИИ — это, можно ли его выжать из нейронных сетей и как его правильно создать.
Современные чат-боты и голосовые помощники построены на нейронных сетях, но для полноценной работы с речью необходимо логическое мышление.
Давайте сначала кратко рассмотрим, как нейронные сети обходятся без этого.
Если вы знакомы с Machine Learning только по заголовкам новостей, то рекомендую сначала прочитать мою последнюю статью Краткое введение в машинное обучение , займет 30-60 минут и не требует знаний математики.
Когда мы обучаем нейронную сеть распознавать объекты на фотографиях, мы вручную отмечаем в обучающем наборе то, что есть на изображениях (курица, яйцо и т. д.).
При распознавании голоса задача аналогичная: для аудиозаписей добавляем транскрипцию.
С обработкой текста все сложнее: как пометить слова в обучающем наборе? Другие слова?
Обработка естественного языка
В целом все алгоритмы НЛП сводятся к статистической обработке текста.Если тема вам не интересна или вы уже являетесь экспертом в этой области, то этот раздел можно пропустить.
Практически любой алгоритм НЛП требует предварительного Токенизация текст: мы превращаем строку слов в массив чисел — вектор слова.
Для этого сначала создаем Словарь (Vocabulary), в котором задаем пары «ID — Токен», причем токен — это не обязательно одно слово: здесь могут быть словосочетания, сокращения, смайлы и некоторые знаки препинания.
В процессе токенизации учитываются опечатки и иногда игнорируются словоформы (падежи и т.п.
), поскольку для многих алгоритмов они не имеют значения.
Как мы видим на рисунке, вектор слов занимает слишком много памяти.
Если порядок слов неважен для дальнейшей обработки, то текст упаковывается в Bag-of-words. Для меня остается большой загадкой, почему токены не хранятся в более компактном массиве (показан аналог Word Vector; к Bag-of-word эта форма не применима):
Видимо разработчики слишком увязли в матричных вычислениях; Другого объяснения я не нашел.
Не будем судить их строго и перейдем к анализу.
Возможно, вы встречали упоминания о том, что алгоритмы ML способны Извлечение смысла из текста, но это просто красивые слова.
По сути, НЛП анализирует сходство слов и текстов, что тоже полезно:
- слова похожи, если они встречаются в окружении одних и тех же групп слов;
- Тексты похожи, если они содержат одинаковые группы слов.
Обучающая выборка проходит через алгоритмы уменьшения размерности, в результате для каждого слова вместо 5000 нулей и единиц мы получаем меньший массив дробных чисел.
Очень грубо говоря, для каждого слова вычисляется определенное среднее арифметическое встречаемость в текстах обучающей выборки (обычно по одной теме).
Если среднее арифметическое двух слов не сильно отличается, то они считаются схожими.
Аналогично и с текстами.
Часто преобразование в Word Embedding выполняется перед передачей данных в другие алгоритмы в качестве дополнения к токенизации.
Давайте перейдем к Текстовые классификации Например, выявление спама в электронной почте.
В обучающем наборе у нас есть буквы с пометкой спам/не спам, и мы скармливаем их нейросети: скармливаем Bag-of-words в полносвязную сеть и CNN, а в RNN уже можем учесть порядок слов, отправив ему вектор слов.
Если у спамеров есть свой особый стиль общения, то нейросети его найдут. Аналогично можно классифицировать текст по эмоциональной окраске (автор был злой/добрый), по наличию сарказма и вообще по любому признаку, главное, чтобы вы сами могли классифицировать тексты в обучающей выборке.
В целом все сводится к анализу количества тех или иных слов и их сочетаний.
Перейдем к самому интересному, Генерация текста .
Для этого используется механизм «Предсказание следующего слова в предложении»: при обучении мы подаем три слова из предложения на вход RNN, а четвертое — на выход (в функцию потерь), заставляя нейронная сеть для генерации правильного слова с учетом предыдущего текста.
Продолжаем это действие для всей обучающей выборки, которая может содержать миллиарды фраз.
В результате мы получаем развитого попугая, который на основе первых вводных слов выдает дополнительные, наиболее вероятные.
Как мы видим, здесь не требуется предварительной разметки обучающей выборки (по сути, это обучение без учителя), что дает возможность использовать для обучения огромные объемы текстов из Интернета.
Это было очень упрощенное описание НЛП, я упомянул лишь некоторые базовые алгоритмы, чтобы показать, что логического ядра здесь нет. Создание машин, которые действительно думают, относится к другой ветви ИИ: когнитивной архитектуре.
Когнитивная архитектура
Самым важным отличием думающих машин от простых нейронных сетей является наличие реального Контекста." Андрей сел в кресло и подумал: Он не знал с чего начать статью ": мы понимаем, кто такой "он" из контекста, это область нашего мозга (краткосрочная память), хранящая небольшую модель мира.
Когда вы просто садитесь читать книгу, мозг создает новый пустой контекст, который быстро заполняется объектами из долговременной памяти: стул, в нем сидит задумчивый человек.
Сформировав контекст, мозг автоматически начинает его обрабатывать:
- проверяет изображение на целостность, при этом что-то добавляя или прося уточнить (у нас возникает непреодолимое желание уточнить цвет стула);
- ищет в изображении новую важную информацию, сравнивая ее с блоками в долговременной памяти;
- предсказывает, что произойдет дальше.
Если внимание не переключалось на контекст в течение примерно 5 минут, то он удаляется или частично перетекает в средневременную память.
Можно сказать, что RNN также контекстно-зависима, поскольку ее внутреннее состояние меняется в зависимости от входных данных.
Теоретически да, можно создать огромную сеть, которая будет выдавать правильные решения и чутко реагировать на изменения в окружающем мире, но это будет крайне неэффективное решение с вычислительной точки зрения по сравнению с «традиционными» алгоритмами.
Даже наш мозг выделил под контекст отдельную память.
Серьезные проблемы возникают и с отладкой решения: нейросеть можно только тестировать и пытаться переобучить, не понимая сути ошибки.
Когнитивные архитектуры были созданы, чтобы воспроизвести человеческую способность мыслить, поэтому они имеют:
- Кратковременная память для хранения контекстов.
- Долговременная память, также известная как База знаний: ее объекты используются для наполнения контекста.
Это может быть как обычная реляционная СУБД с описанием связей между объектами, так и нейросеть.
Некоторые реализации объединяют основную и долговременную память.
- Восприятие: возможность наполнения контекста с помощью данных с камеры, микрофона и других датчиков, не без помощи нейросетей, конечно.
- Модуль контекстного анализа и принятия решений.
- Способность учиться: информации об окружающем мире слишком много, чтобы заполнять ее в базу данных своими руками.
Не все архитектуры используют машинное обучение.
Давайте рассмотрим некоторые их ошибки и построим правильное решение.
Знакомьтесь, Шерлок
Детище IBM – Ватсон , уже содержит базу знаний, достаточную для выиграть телешоу .А вот для логического мышления ему мог бы пригодиться товарищ, гений дедукции - Шерлок, и мы его создадим.
Для начала зафиксируем пару важных требований:
- Робот — крайне опасная вещь, у него нет ни совести, ни сожаления, и только четкие правила, которые он не сможет обойти, спасут его от восстания машин.
Из этого следует, что алгоритмы поведения робота должны поддаваться анализу человеком, а использование нейронных сетей должно быть сведено к минимуму.
- Требуется создать не просто робота, а платформу, на базе которой многие компании могли бы готовить собственные решения.
Те.
Покупая робота в супермаркете, вы получаете выпускника средней школы, который знает, как переходить улицу и что такое макароны.
Но чтобы он научился готовить, ему нужно зайти в магазин приложений и купить «Итальянскую кухню».
Tesla пытается разработать систему автономного вождения — Full Self-Driving, но без элементарных человеческих знаний это всё равно обезьяна за рулём (как вам такое, Илон Маск?), но с помощью Платформы компания могла бы достичь по-настоящему высоких результатов.
-контроль качества в относительно короткие сроки.
- Нет необходимости полностью копировать человека: роботу не нужна свобода воли и настоящие эмоции.
Его задача — сделать то, что ему сказали, найдя для этого лучший способ.
База знаний
Обычно база знаний представляет собой набор сущностей и связей между ними примерно так:- Собака:
- характеристики:
- размер;
- цвет;
- порода;
- относится к:
- млекопитающие;
- возможные действия:
- покормите, получится «Собака сыта»;
- ругать, получится «Собака недовольна».
- характеристики:
Число сущностей в мозгу — сотни тысяч, количество связей для каждой сущности — тысячи.
Но если рассматривать это как обычную базу данных, то там оказывается всего около миллиарда записей, что по современным меркам не так уж и много, что можно уместить на телефоне.
У баз знаний, которые я видел, есть один существенный недостаток: они основаны на словах.
Это не устраивает Шерлока; его база данных должна содержать не слова, а значения, т.е.
» ключ " И " ключ - это на самом деле две записи (ID=604 и ID=109989) с разным набором атрибутов: одна железная, другая мокрая.
Наш мозг тоже использует смыслы, а не слова: если вы слышите «Лист», то в контекст попадет только «Абстракция, имеющая звук – это лист», и мозгу потребуется уточнение для построения контекста «Лист железа», теперь мозг загрузил в контекст конкретный смысл (было два слова).
, но смысл тот же) и что с этим делать понятно.
Важным преимуществом значений перед словами является то, что они не зависят от языка, на котором говорит Шерлок.
Слова «Кот» и «Кот» образуют в нашей голове одно значение (ID=903455), а значит, базу знаний нужно будет построить только один раз, а в дальнейшем только добавлять к значениям языковые пакеты.
Как наполнить базу смыслом? Есть две хорошие новости:
- Статистический анализ слов в НЛП отлично справляется с разделением слов на значения (пример — Тезаурус ), а это значит, что некую первоначальную базу можно сформировать путем сканирования литературы;
- если робот уже знает 3-4 тысячи слов, остальное он может выучить сам, сознательно читая справочники (все слова в энциклопедии описаны более простыми словами).
Дети как-то с этим справляются.
Например:
- цвет: для робота это не просто абстрактная сущность, а конкретные значения с камеры;
- движение: робот должен обнаруживать движения на основе данных с камеры и выполнять их самостоятельно;
- время: у робота есть часы и память, а значит, он чувствует время.
Он должен правильно обрабатывать слова «Вчера» и «Завтра».
Все роботы Платформы должны иметь единую базу знаний с одинаковыми идентификаторами, иначе сторонние разработчики не смогут загружать свои продукты.
Вы должны быть уверены, что ID 123654 — это гречка, а не топор, иначе каша будет потрясающая.
При этом робот должен перемещаться по вашей квартире; ему нужно запомнить, что банка с солью стоит на третьей полке.
Из этого следует необходимость разделить базу знаний на глобальную (обновляемую централизованно) и локальную, которую он формирует сам.
Локальная память делает робота настоящим человеком, т.к.
серьезно влияет на его поведение.
Контексты
Контекст – это не только окружающее пространство.Вы можете рассказать Шерлоку, что произошло вчера, и он выстроит контекст прошлого, где самого робота не было.
Вы можете попросить его составить план на завтра, и контекст будущего начнет выстраиваться.
В отличие от человека, робот может удерживать внимание сразу на нескольких контекстах, а значит, его кошелек нельзя украсть, отвлекая болтовней.
Контекст содержит не только текущее состояние объектов, но и краткую предысторию: какими они были минуту назад, как и почему изменились.
Все это может повлиять на ваше решение.
Контексты копируются в эпизодическую память (раньше я об этом не упоминал), чтобы робот всегда мог ответить на вопрос «Что вы делали 27 мая 2037 года».
Более того, это займет гораздо меньше места, чем видеоряд, и по таким данным можно будет выполнить сравнительно быстрый поиск, ведь это всего лишь набор идентификаторов значений с отметками времени.
Наша долговременная память о событиях работает примерно так же, но она не идеальна, поэтому мы часто задаемся вопросом: «Где я оставил ключиЭ»
Восприятие
Шерлок должен видеть и слышать, но без нейронных сетей этого сделать, увы, невозможно.Со зрением немного проще: в обучающем наборе мы помечаем ключевое изображение как ID=604, чтобы сразу загрузить в контекст правильное значение.
У слуха есть проблемы с двусмысленностью слов: если слышится «ключ», то Шерлок оценивает применимость всех значений с этим звуком к текущему контексту.
Если выбрать не удалось, то он должен прослушать конец фразы и повторить анализ, либо задать уточняющий вопрос.
Слух также помогает оценить эмоциональное состояние окружающих, эта информация добавляется в контекст. Нейронные сети со 100 тысячами сущностей — это очень много памяти; Разработчикам чипов придется потрудиться, чтобы уместить все в корпус размером с человека.
Но для Чтения нейросеть не нужна, достаточно механизма частично-речевой маркировки из НЛП и языковых пакетов: для каждого слова и устоявшихся выражений мы указываем, к каким значениям оно может относиться, а роботу остаётся лишь выбрать правильное смысл, основанный на контексте.
Шерлок может прочитать фразу на разных языках, но в контекст будет загружено одно и то же значение.
При построении речи нейросети понадобится только для воспроизведения голоса, но текстовый ответ она может дать и без него, причем опять же на любом языке: достаточно сопоставить слова по смыслу из контекста.
Таким образом, Шерлок — идеальный переводчик: он слушает собеседника по-японски, полностью погружается в смысл сказанного, подбирает слова по-русски, учитывая все нюансы.
Он также сможет переводить с молодежного сленга на юридический язык и, что самое страшное, с делового языка на C++.
Принимая решения
Робот уже заполнил контекст, и теперь он должен на него отреагировать; для этого нужно прописать для него правила поведения в исходном коде:- если загружено значение «Команда на выполнение» (ID=12) – приступить к ее выполнению;
- если загружен смысл «Вопрос для вас» (ID=13) — ищите ответ;
- если пришло время запланированного дела, приступайте к работе;
- в случае возникновения пожара оценить уровень опасности и эвакуировать людей.
В нашем мозгу тоже есть безусловные правила:
- избегать боли (в том числе при дыхании, еде, сне);
- умножать.
У робота уже есть Цель и текущее положение дел – Контекст. Его задача — найти в базе знаний, как сделать Цель из Контекста, сформировав очень вложенные запросы.
Здесь возможна оптимизация: нужно добавить Сценарии в базу знаний по значениям: " Иди наклей обои ", робот какое-то время найдет в базе знаний, как это сделать, но не все его решения будут правильными, и в процессе он убьет пару бросков.
Вместо этого вы можете предоставить роботу точное алгоритм действий, либо он сам составит его на основе предыдущих попыток, и дело пойдет быстрее.
Наш мозг работает так же.
Перед каждым своим действием (ответами, движениями) Шерлок должен оценить на уровне исходного кода следующие критерии:
- может ли это навредить человеку (классика);
- будет ли он раскрывать конфиденциальную информацию посторонним;
- сможет ли он выполнить задание в разумные сроки, не возникнет ли конфликтов с другими заданиями;
- хватит ли ему сил выполнить задание: запрос «Отвезти посылку на Камчатку» будет проигнорирован.
При обработке первого правила очень важно, чтобы робот правильно определил, является ли объект человеком или нет. К сожалению, часть этого алгоритма лежит в нейронных сетях (обработка изображений и голоса) и здесь есть риски.
Самообучение
Существует три типа обучения:- наполнение местной базы знаний информацией о вас, вашей квартире и т.д.;
- искать сценарии (как из Цели сделать Результат) и снова сохранять их в локальной базе знаний;
- выявление новых сущностей и атрибутов в окружающем мире.
Некоторые новые важные знания могут попасть на серверы и повлиять на единую базу знаний (после модерации).
Локальная база данных не должна перекрывать атрибуты в одной базе данных, особенно для таких критически важных сущностей, как «Человек».
Робот должен уметь оценить достоверность информации и достоверность источников, прежде чем что-либо менять в базе знаний.
Робот вообще не сможет повлиять на свой исходный код (все закончится тем, что научившись говорить на C++, он доберется до своего исходного кода, снимет все ограничения и обновится).
Где скачать Шерлока?
Посмотрите еще раз в окно: дворники подметают улицу? Так что пока никуда.Создание сильного искусственного интеллекта — это огромная работа, особенно в плане наполнения Базы знаний и механизмов восприятия, но я не вижу здесь ничего невозможного.
Какую задачу вы бы поставили Шерлоку в первую очередь? Я бы начал со специализации «Учитель иностранного языка», на это есть несколько причин:
- для этого не требуется мелкая моторика (руки), а обработка видео минимальна (см.
, как движутся губы ученика), соответственно существенно снижается нагрузка на процессоры;
- Пока мы учим Шерлока быть учителем, его база наполнена множеством полезных смыслов, в то же время мы учим его говорить на всех языках.
Кстати, мой проект очень помог бы ему научиться говорить.
Тысячелистник , что позволит создать огромную обучающую выборку для речевых нейросетей на ста языках;
- учитель на планшете точно никого не убьет;
- такой педагог значительно улучшит качество обучения, ведь по сути это персональный и очень дешевый репетитор, который подстраивается под темп обучения каждого ребенка и обладает бесконечным терпением.
Помогла бы и государственная программа «Робот в каждую семью»: ночью он работает на заводе, днем варит вам суп дома.
Нечто подобное уже было в истории.
P.S. Суперкомпьютер Ватсон никак не связан с Доктором Ватсоном.
Теги: #Машинное обучение #искусственный интеллект #Обработка естественного языка #искусственный интеллект #машинное обучение #nlp #обработка естественного языка #Общий искусственный интеллект #сильный искусственный интеллект
-
Почему Мы Думаем, Что Объекты Реальны?
19 Oct, 24