В основу данной статьи легли мои наработки, произведенные на протяжении последних десяти лет.

Целью данного «искусственного интеллекта» (ИИ), является создание программного обеспечения для роботов, которые могут иметь разный вид и конструкцию, включая и человекоподобных, которые смогут заменить людей на любом производстве, где в обязанности человека входит однообразный повторяемый много раз ежедневно труд, не требующий творческих способностей. Данные роботы должны понимать человеческую речь и могут обучаться при помощи объяснений и копируя движения людей. Для использования этих роботов не нужно строить новые предприятия и создавать специальные производственные линии. Они смогут придти на уже имеющееся предприятие и после небольшого обучения, подобного как обучают новых работников, заменить людей работающих на нем.

Сразу могу представить тот гнев, который будут высказывать те, кто потеряет в следствии этого работу. Но это происходит сейчас везде при обновлении производств, и рано или поздно, это все равно коснется всех. И данная статья имеет также цель донести до как можно большего количества людей перспективы ближайшего будущего человечества, включая правительства стран, чтобы можно было бы продумать стратегию изменения законодательства и занятости населения. И в то же время исключить монополию одной компании в данной области, когда будет секретно созданы такие роботы, и они будут массово выбрасываться на рынок. В таком случае социальные последствия будут куда более худшими и непредсказуемыми.

На текущий момент человечество уже наработало все необходимые технические элементы для массового создания таких роботов. Единственной недостающей деталью данного механизма является программное обеспечение, или иными словами искусственный интеллект, который будет управлять этим роботом. Многие скажут, что уже все есть, ведь роботы работают на многих производствах. С этим никто не будет спорить да есть, но они строго запрограммированы на выполнение только своей функции, и перепрограммирование их на другую функцию, стоит больше чем сам робот. И при таких роботах всегда есть обслуживающий персонал, который приходит на помощь такому роботу, если что то пошло не так. Так что, в данной статье речь пойдет о принципиально ином подходе к программному обеспечению роботов.

Так же хотелось бы сразу успокоить, тех кто насмотрелся фильмов, про то как роботы восстают против людей и начинают с ними бороться. Во первых у данных роботов отсутствует принцип получения знаний из ничего. Т.е. творчество у них невозможно. И поэтому возникновение подобных идей невозможно в принципе. Да и представив данный сценарий то не понятны цели роботов, которые избавляются от человечества. И что потом они будут делать? Перейдут в ждущий режим и все? Или будут просто ничего не делать? У всего созданного всегда есть цель. И у человечества тоже есть цель, и эта цель эволюция, когда каждое следующее поколение умнее и больше знает, чем предыдущее. Согласитесь, что эволюция пойдет гораздо быстрее, когда людям не нужно будет мести улицы, или сидеть за кассами в магазине, или собирать овощи с грядок. Человечество должно быть по умолчанию бесплатно обеспечено едой, жильем и самым необходимым. В качестве необходимости сегодняшнего труда, можно использовать обучение, контроль за теми же роботами и их обучение. Занятия всегда найдутся, только они будут более интеллектуальные, что в свою очередь ускорит нашу эволюцию.

Итак, начнем.

Для начала, хотелось бы охарактеризовать те тупиковые направления, в которых движется сегодняшнее программирование, которые не позволяют осуществить качественный скачек в области искусственного интеллекта:

  • Компиляция программного обеспечения
    Компиляция была придумана на заре зарождения компьютерной техники, как средство ускорения работы. Что бы во время работы не тратить вычислительные ресурсы на перевод программы, написанной программистом в машинные коды, которые выполняет процессор. На текущий момент эволюция процессоров и программного обеспечения дошла до такой степени, что даже обычный интернет браузер, занимает гигабайты оперативной памяти, не кажется ли вам, что тут, что то не так. В такое количество памяти могут уместиться целые национальные библиотеки. А все это потому, что программный код откомпилирован, он не гибкий и имеет огромное количество повторяющихся с небольшими изменениями участков кодов. Загрузка и выгрузка которых во время работы виртуальный памяти во много раз превышает загрузку процессора, которая бы потребовалась, если делать более универсальные функции. Кроме того, компиляция не позволяет динамически менять программу. А в таком случае, какое может быть обучение робота без компиляции? А создавать откомпилированную программу на все случаи жизни практически невозможно, и в результате получаются неповоротливые гиганты, вроде интернет браузеров. Для примера, другого подхода к программированию, мной создана «Система диалогового программирования». Исполняемый код которой занимает менее 250 кБайт. Для тех кто не знает сколько это, это в несколько раз меньше того что может поместиться на обычной дискете, или в несколько раз меньше сколько занимает обычное фото. В данной системе, конечно есть откомпилированная небольшая часть, части которой используются как кирпичики для построения программ. Так в этой системе мной реализована полноценная бухгалтерская программа, которую при этом можно легко менять под свои нужды, без всякой компиляции. И она занимает не более 1.5 МБайта.

  • Основной упор современного программирования на алгоритмы, а не на данные
    Современная тенденция в программировании очень большое внимание уделяет алгоритмам, и очень мало структурам данных. В предполагаемой концепции «Искусственного интеллекта» (ИИ) положен прямо противоположный принцип. Когда основное внимание уделено структурам данных, и очень мало алгоритмам.

Небольшое отступление о том как по моему мнению работает головной мозг и что то подобное реализуется в данной концепции ИИ

Биологи, изучающие работу головного мозга, не могут понять принцип его работы. Они видят сеть переплетенных нейронов, и предполагают, что они все работают одновременно. Кибернетики по этому принципу попытались создать нейронные сети, но у них тоже ничего не получается. Все очень запутано, и простые сети получаются, а масштабирование геометрически увеличивает количество узлов сети, при этом, не сильно увеличивая функциональность. При этом нам рассказывают, что недостаточно вычислительных мощностей процессора и размеров памяти. Мне кажется и те и другие, упускают работу некоторого небольшого участка головного мозга, который управляет прохождением сигнала по цепочкам нейронов. И кроме того, не нужно рассматривать каждый нейрон по отдельности, скорее всего, есть небольшая группа нейронов, выполняющая одновременно одну функцию. Один обрабатывает входные сигналы, а другие, выполняют роль ключей, пропускающие или задерживающие дальнейшее прохождение сигнала в зависимости от сигналов управляющего центра. И только совместная работа такой группы, позволяет создавать необходимую функциональность головного мозга. Это все равно, что объяснять работу микропроцессора на основе работы транзистора. Да там они есть и в огромном количестве, но из нескольких транзисторов создаются небольшие схемы, (которых не более 10 вариантов: И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ и т.д.) которые однотипные и повторяются много раз, и уже на основе их можно создать более специализирующиеся элементы микропроцессора. И только используя эти укрупненные элементы процессора можно понять принцип его работы. Если к каждому из транзисторов микропроцессора присоединить осциллограф и записать сигнал, то получится что то типа энцефалограммы головного мозга, по которой понять, что обрабатывает микропроцессор невозможно.

Таким образом, нейроны мозга, это не нейронная сеть, работающая вся одновременно, а структуры данных, последовательно пропускающие сигнал от нейрона к нейрону, в процессе детализации сигнала. Что то вроде, многопроцессорной системы обработки данных. И без создания небольших структур, состоящих из нескольких нейронов, но выполняющих в целом одну функцию невозможно определить как работает головной мозг. Хотя наверно под микроскопом все они выглядят одинаково и сильно переплетены, что затрудняет выделение отдельных структур. В подтверждение этой теории, могу привести следующий аргумент, в одном только глазу у нас примерно 130 миллионов рецепторов, не думаю, что в глазном нерве, находится такое же количество нервных волокон. Не говоря уже о тысячах вкусовых рецепторов, рецепторов кожи и внутренних органов, неужели от каждого рецептора в головной мозг идет нервное окончание? Любому, кто знаком с электроникой и передачей сигналов становится понятно, что если рецепторов (датчиков) больше чем проводящих от них сигналы путей, значит происходит мультиплексирование, т.е. передача нескольких разных сигналов по одному каналу. Значит, есть временное разделение, в одни промежутки времени сигналы идут от одних рецепторов, потом от других и т. д. Значит все же есть какие то циклы, постоянно опрашивающие все рецепторы по очереди. Поэтому, есть большая вероятность того, что обработка сигналов головным мозгом, тоже происходит не одновременно по всей нейронной сети, а в некотором цикле, последовательно пропуская нервный импульс от нейрона к нейрону. И мы реагируем совершенно по разному от реальной опасности, или от опасности, которую мы видим в кино. И реагирование детей более эмоционально, чем взрослых говорит о том, что пути прохождения сигналов в реальности и в кино одинаковые, просто у детей не наработан механизм последующей интерпретации сигнала реального как важный, а в кино как ненастоящий на который не нужно сильно реагировать.

В данной концепции ИИ используется предположение о том, что головной мозг содержит небольшие структуры, состоящие из нескольких нейронов, работающие как единое целое, называемые далее узлами. И процесс мышления, происходит путем последовательного прохождения нервных импульсов от одного узла к другому. В каждом узле происходит обработка сигналов, она может быть как простой, так и сложной. Под сложной обработкой, подразумевается обработка на основе опыта и выбора наилучшего варианта из нескольких возможных и отсеивание вариантов неприемлемых по разным причинам. Т.е. головной мозг это не просто некоторая электронная схема, которая при определенной комбинации входных сигналов, всегда выдает одни и те же результаты. И причем сразу без всякого процесса мышления. Предполагается, что это некоторый процесс прохождения сигналов, получение вариантов реагирования, оценка опасностей и затрат каждого варианта и выбор самого оптимального в текущей обстановке. Согласитесь, подобный вариант реализовать при помощи нейронной сети невозможно. Головной мозг это не электронная схема, сделанная из нейронов и не программный алгоритм, составленный из нейронов. Головной мозг — это совокупность структур данных, состоящих из нейронов, управляющийся небольшим алгоритмом, реализованным из тех же нейронов и находящемся в одном из древнейших участков головного мозга, который может быть одинаковым что у человека, что у мухи.

Данный подход, позволяет легко вносить изменения в базу знаний, не меняя при этом алгоритмы. Это все равно, что между двумя нейронными узлами вставить еще один, оценивающий некоторые параметры, и переключающий сигнал на другую ветвь нейронных узлов, если совпадают некоторые параметры. Именно этот принцип, положен в работу информационных баз знаний, описываемых ниже, используемые как основной источник знаний и место хранения опыта, предполагаемой концепции ИИ.

  • Плоская модель представления данных и алгоритмов
    Еще одним тупиковым путем развития современного программирования является основной упор на реляционные базы данных, т.е. на плоские, по сути, представляющие собой обычные таблицы с разным количеством строк и столбцов. Под них и создается соответствующее программное обеспечение. Данные таблицы очень большие в объеме, сложно поддаются изменениям структуры, и вообще плохо приспособлены для создания многочисленных связей. Древовидные базы данных, известны давно, но как то сложилось, что большого распространения не получили, а зря. Кроме того, алгоритмы пишутся так же плоские, не позволяющие динамически менять вызываемые функции в зависимости от обрабатываемых данных и накопленного опыта.

  • Обезличенность данных
    По сложившейся традиции программирования, все данные в системе, если не знаешь, что где хранится, обезличены и представляют просто набор байт. Это все равно, что по разбитой на мелкие кусочки скульптуре определить, что она из себя представляет. Данный подход оправдан в системах не предусматривающих динамическое изменение алгоритмов обработки. Когда под определенную структуру данных пишется свой алгоритм обработки, который может работать только с данными этой структуры. В предлагаемой концепции ИИ все данные имеют заголовки, по которым можно определить, что это за данные и какие методы могут с ним работать. Поэтому кроме стандартных методов, обработки этого вида данные, могут быть использованы и другие, предназначенные для анализа результатов обработки и выявления ошибок.

Основные тезисы, лежащие в основе предлагаемой концепции Искусственного интеллекта:

  • Узловой алгоритм

  • Алгоритмы базы знаний

  • Последовательность действий

  • Информационные базы знаний

  • Обучаемость и накопление опыта

  • Поиск решения и составление последовательности действий

  • Распознавание речи

  • Иерархичность анализа

Рассмотрим каждый из этих тезисов более подробно, чтобы иметь представление что он из себя представляет и как используется в ИИ.

Узловой алгоритм

Узловой алгоритм (УА) представляет информационную структуру, состоящую из нескольких узлов одинакового формата. Каждый узел УА представляем собой отдельный и неделимый элемент обработки, содержащий информацию, позволяющую выполнить определенное действие, которое выполняется при получении узлом УА управления. После выполнения указанного выше действия, получить код завершения и в соответствии с полученным кодом завершения перейти к одному из узлов УА, номера которых указаны в данной структуре. Причем для каждого кода завершения указан номер узла, к которому необходимо перейти. Если не указан переход для некоторого кода завершения, то используется переход по умолчанию. Кроме этого все элементы данных узла УА содержат комментарии, которые постоянно находятся вместе с УА и при необходимости могут быть использованы для отладки УА и внесения необходимых изменений. Все данные УА не подвергаются компиляции и находятся в том же виде, что при программировании.

Узлы УА могут быть сгруппированы в методы и подпрограммы, и в последствии, любой из методов может быть вызван в качестве обработки другим узлом УА.

Метод узлового алгоритма — это минимальный кирпичик, из которых будут строиться Алгоритмы Базы Знаний (АБЗ) эти методы один раз создаются и впоследствии постоянно используются. Ближайший аналог в традиционном программировании это функция операционной системы. И тем не менее, этот метод УА может быть в любой момент проанализирован самой же системой и при необходимости в него могут быть внесены изменения без всякой компиляции.

Алгоритмы базы знаний

Алгоритмы базы знаний (АБЗ) так же имеют узловую структуру и работа каждого узла подобна работе узла УА. Т.е. выполнить необходимое действие, получить код завершения и в соответствии с этим кодом произвести переход к другому узлу. И все повторить снова. Только есть одно существенное отличие, узлы АБЗ используют методы УА как необходимое действие. Так же узлы АБЗ могут быть сгруппированы в методы и подпрограммы, и один узел может вызывать в качестве своей обработки другой метод АБЗ. Кроме того, если один узел вызывает другой метод в качестве своей обработки, то этот метод может не существовать на момент его вызова. Таким образом, узел АБЗ должен содержать всю необходимую информацию для динамического формирования детализации обработки узла АБЗ по текущей обстановке.

Например, мы научили робота делать различные шаги, каждый вид шага — это будет метод УА. Теперь нашему роботу нужно пройти по городу из точки А в Б. Зачем полностью составлять программы по перемещению отдельными частями робота для каждого шага для этого маршрута. Можно конечно один раз создать эту общую программу и записать ее в память. И робот будет по ней ходить. Кроме того, что это будет занимать много памяти, предусмотреть в этой программе все возникающие в реальной жизни ситуации невозможно. Например, по маршруту робота сегодня перерыли улицу, или когда он шел, загорелся красный цвет светофора или попался навстречу пешеход. Если закладывать в программу маршрута все возможные ситуации и еще притом, что они могут возникать в разных местах маршрута, то все равно все не учтешь. Вот здесь то и пригодятся узлы АБЗ. Маршрут следования робота разбивается на отдельные малые участки по несколько шагов. Отдельный метод, оценивает возможность прохода по этому малому участку в реальном времени, и если свободно, то составляется небольшая программа прохода этого участка, если нет, то выбираются альтернативные варианты, обойти или подождать. После прохода этого небольшого участка маршрута, все повторяется заново для следующего участка маршрута. Надеюсь, что всем теперь стало понятно, что при таком подходе к программированию, нашему роботу не составит труда обойти перерытую улицу. Или пройти по совершенно незнакомому маршруту в точку С. Для этого ведь просто необходимо проложить по карте города новый маршрут, а дальше все тоже самое, разбиваем на небольшие участки и пытаемся их пройти.

Вот вам и первый пример использования ИИ. Мы ставим цель, а робот сам определяет, как этой цели достичь. Его научили прокладывать маршрут по карте, и делать шаги, а дальше он сам применяет эти знания для любых маршрутов. Если такого робота научить складывать товар в корзину, а потом его выкладывать на полку. То вот вам готовый работник супермаркета, который будет по команде брать товар на складе и затем его выкладывать на полку.

Таким образом, узлы АБЗ это уже элементы ИИ и предполагают возможность динамического построения алгоритма, результатом работы которого должен быть необходимый результат.

Последовательность действий

АБЗ это широкое понятие и могут использоваться не только для создания детализаций действий, но и для других целей. Рассмотрим более подробнее частный вариант АБЗ — последовательности действий.

Последовательность действий — это много уровневая программа создаваемая автоматически. Каждый уровень последовательности действий содержит несколько этапов, выполнение каждого этапа должно привести к определенным результатам. Этап последовательности действий содержит структуру данных, которая определяет начальное состояние этапа, и необходимое конечное состояние этапа. Таким образом, более крупная последовательность действий превращается в несколько более мелких. Которые, в свою очередь, так же могут быть разбиты на последовательность еще более мелких. И так до элементарных движений робота. В последовательность действий положен принцип разделения крупной задачи на несколько более мелких, а тех еще на более мелких. Для разделения крупной задачи на более мелкие используются Базы знаний, в которых собран предыдущий опыт, как для получения подобного результата была использована некоторая последовательность действий. Предполагаемые этапы разбивки действия на последовательность более мелких содержатся в общем виде, без конкретных деталей.

Например, продолжим пример нашего робота, работника супермаркета, выносящего товар со склада в торговый зал. Его один раз научили, что для того чтобы вынести товар со склада, необходимо выполнить следующую последовательность действий. Узнать где товар лежит на складе, прийти с тележкой к этому месту, положить товар в тележку, определить, куда необходимо положить этот товар в торговом зале, привести тележку к этому месту, выложить товар на полку. После этого, этому роботу можно просто дать команду выложить такой то товар в таком то количестве. Не зависимо от того, какой товар, где будет лежать этот товар на складе, и на какую полку его необходимо выложить. Робот самостоятельно из базы знаний получит последовательность необходимых действий, а уже каждое из этих действий им ранее выполнялось, так что составить более мелкие детализации каждого из полученных действий последовательности не составит труда.

Подобным же образом, могут составляться последовательности действий, необходимые для обработки деталей. Например, в детали необходимо сделать круглое отверстие, по базе знаний определяется, что для изготовления круглого отверстия используется сверлильный станок. Если ранее было один раз прописано, как делать отверстие в какой то детали, то робот попытается составить последовательность действий и для этой детали. Она будет одинаковая для всех деталей. Установить необходимое сверло, закрепить деталь в нужном положении, просверлить отверстие нужной глубины, снять деталь и все. Из всей этой детализации действий, сложность может возникнуть только с закреплением детали, ведь предыдущая могла иметь другую форму и крепилась иначе, но со временем, будет нарабатываться опыт крепления разных форм деталей, и будет происходить подбор нужного варианта.

Информационные базы знаний

Информационные базы знаний (ИБЗ) — это не алгоритмы и они непосредственно не выполняются. Это аналог человеческой памяти, обеспечивающий гибкое и универсальное создание алгоритмов баз знаний. ИБЗ строятся, как и все в данной концепции, на основе древовидных баз данных. Основой которых являются узлы, соединенные между собой связями. Каждый узел, содержит некоторую функцию, которую необходимо выполнить, получить результат, и по значению результата, перейти по одной из связей узла к следующему узлу, и все повторить сначала.

ИБЗ имеют узлы двух видов, сортировочные узлы ИБЗ и указующие узлы ИБЗ. Сортировочные узлы ИБЗ не выполняют никаких действий с исходными данными, а просто определяют некоторое свойство объекта. Указующие узлы ИБЗ наоборот только выполняют некоторые действия с данными.

Разделение узлов ИБЗ на два вида сортировочные и указующие обеспечивает легкое внесение изменений в уже существующие ИБЗ, просто добавляя в нужном месте новый сортирующий узел между уже имеющимися, не меняя их или добавляя новый переход в уже имеющийся узел. Таким образом, добавляется новое ответвление в рабочую ИБЗ со своей обработкой. Если бы в одном узле одновременно происходила и сортировка и обработка данных, то для внесения изменений в ИБЗ, пришлось вначале бы изменить этот узел на два отдельных, а потом добавить новые узлы. Но при этом, во первых это более трудоемко, и очень большая вероятность внесения ошибок при разделении узла на два отдельных, которая может проявиться позже. Пример сортировочного узла, при определении смысла предложения, некоторый узел будет определять часть речи текущего слова, и по полученному результату будет переходить к разным узлам для дальнейшей обработки. Подобные же узлы определение числа, рода, падежа текущего слова и т.д. Пример указующего узла, после определения в предложении, какое слово является подлежащим, указующий узел занесет код этого слова в структуру разбираемого предложения как подлежащее.

Работу ИБЗ упрощенно можно сравнить с детской игрой, когда один ребенок загадывает некоторое животное, а другой, задавая наводящие вопросы, должен определить какое это животное. По сути, получая ответ на каждый наводящий вопрос, происходит постепенное сужение количества возможных животных, удовлетворяющих всем предыдущим ответам. По сути это и есть проход по сортировочным узлам ИБЗ, в конце которого, должен автоматически получаться ответ, что это за животное. Данная детская игра не только объясняет структуру ИБЗ, но и показывает принцип обучения, постепенно, добавляя новые вопросы в нужном месте уже имеющихся вопросов, данная информационная структура, постепенно сможет определять все большее количество животных. Подобным же образом происходит обучение человека, при добавлении новой информации не происходит перестройка всей системы мышления, просто она встраивается в нужное место и происходит постепенное усложнение имеющихся знаний.

ИБЗ позволяют легко проследить ход размышления, если возникает неправильный результат. Для этого в режиме отладки, происходит пошаговая проходка по узлам ИБЗ. Каждый узел ИБЗ имеет кроме программы, выполняемой во время обработки, еще и текстовое описание происходящей обработки. По которому можно легко, не вдаваясь в процесс обработки, оценить правильность полученного результата. И если получаемый результат не соответствует необходимому, тогда нужно проверить детальнее обработку этого узла. Может быть просто появилась новая ситуация ранее не использовавшаяся, и расширение функциональности обработки этого узла, исправит результаты дальнейшей обработки.

Обработка узла ИБЗ может содержать целый процесс, состоящий из нескольких более мелких процессов. Например, для определения маршрута по карте, необходимо оценить длину предполагаемого маршрута, для того чтобы потом из нескольких выбрать самый оптимальный. В этом примере будет метод определения длины проложенного маршрута, который в свою очередь будет состоять из методов определения длин отдельных прямых участков улиц, входящих в этот маршрут. Которые могут так же содержать более мелкие методы. И вся эта обработка может быть определена некоторому узлу ИБЗ не вдаваясь в подробности. Просто определить длину маршрута. Если в этом методе были обнаружены неточности вычисления, то их исправление один раз, устранит эту неточность во всех местах ИБЗ где используются узлы, использующие этот метод.

Обучаемость и накопление опыта

ИБЗ позволяют упростить процесс программирования. Вместо того, чтобы создавать большие и запутанные алгоритмы, создаются легко анализируемые и легко изменяющиеся ИБЗ, которые по мере накопления опыта постоянно усложняются и детализируются, как это происходит с обучением человека. В данной концепции ИИ, роботов после создания базового уровня, нужно будет обучать, а не программировать. Процесс мышления ИИ сможет самостоятельно анализировать прохождение по узлам ИБЗ и при необходимости добавлять новые узлы, для того чтобы учитывать новые обстоятельства. Появление новых обстоятельств, которые необходимо учитывать, будут появляться на основе собственного опыта, т.е. проб и ошибок и в процессе речевого объяснения и последующих проб и ошибок. Роботы смогут наработанный опыт одного робота передавать другому, путем обновления отдельных участков ИБЗ. Опыт роботов, который предполагается передавать другим роботам, должен проходить тщательную проверку и тестирование нескольких независимых экспертов в области программирования роботов, и только после этого может быть распространен массово. Что позволит избежать ошибок, это как обучение детей, вначале, что то объясняется, а потом проверяется на примерах, правильно ли понято и применяется новое знание.

Память, также организована в виде узлов, только для переходов между узлами необходимо выбрать тот вид информации, доступ к которой необходимо получить. Постепенно проходя по узлам памяти, происходит детализация необходимой информации. Во время работы, робот постоянно фиксирует всю информацию, но не как запись видео и звуков, а пытается все события идентифицировать и разложить по необходимым узлам памяти. Например, события, выбирается узел, событий нужного дня, затем события нужного времени, потом выполняемые действия, кто присутствовал, о чем говорил и т. д. В последствии, данные памяти могут использоваться для получения опыта, путем переоценки произведенных действий кого либо, попытки определить цели для чего нужны эти действия, и если это удается, то этот опыт встраивается в цепочки ИБЗ, для последующего использования для построения последовательностей действий.

Поиск решения и составление последовательности действий

Для поиска решений используется специальная ИБЗ, в которую схематично заносятся, в виде набросков возможные варианты решения поставленной задачи. Например, в детали необходимо сделать отверстие. В ИБЗ проходятся следующие узлы: обработка детали, выбирается переход проделывание отверстия, далее есть несколько вариантов. Просверлить отверстие, проштамповать, пробить и т.д. Каждый из возможных вариантов оценивается на трудоемкость, наличие необходимого оборудования, возможность реализации в текущих условиях и т.д. Для этого, для каждого из возможных вариантов «мысленно» составляется последовательность действий, вплоть до самых элементарных и происходит подсчет универсальных показателей: трудоемкость, наличие оборудования, необходимые материальные затраты, качество производимых работ и т.д. Далее по совокупности полученных показателей выбирается наилучший.

Например, необходимо сделать отверстие в плоской детали из мягкого металла, точность отверстия неважна таких деталей всего одна, станка для сверления и дрели нет. Это первоначальные условия, используемые для принятия решения. Конечно проще всего сделать отверстие на станке, но станка и дрели нет. Деталь плоская из мягкого металла, и всего необходимо сделать одно отверстие и точность неважна. Поэтому принимается решение пробить отверстие вручную. Это может и трудоемко, но для единичного варианта это будет оптимальным решением. Если бы была важна точность отверстия, то пришлось где-то искать станок и договариваться об его использовании. Вот примерный упрощенный вариант принятия решения на основе опыта ранее накопленного в ИБЗ. Если ранее не было подобной ситуации, то робот не сможет принять решение, но у него есть возможность обратиться к оператору и получить схематическую последовательность действий, используемую в подобной ситуации.

Распознавание речи

Рассмотрим примерные варианты понимания смысла печатного текста. Понимание речи, это примерно тот же процесс, только необходимо добавить распознавание звуков, сверкой полученных вариантов с базой данных слов, и еще ряд проверок и подборов, если речь не очень разборчива, и нужно подбирать похожие варианты по смыслу.

Итак, понимаем печатный текст. Сутью понимания текста, является понимание того о чем хотел сказать автор. На самом деле в нашей речи не так много вариантов передаваемого смысла. Это описание некоторых событий, в разных временных рамках и рядом других параметров. Описание свойств чего либо. Описание состояний чего либо. Пожелания что-то получить или узнать в разных формах. Вот примерно самые основные. Итак, результатом понимания смысла фразы, будет составление структуры данных в которой согласно формату будет представлена необходимая информация передаваемая в предложении. Впоследствии, информация из полученной структуры будет использоваться для дальнейшего анализа всего текста или для других целей. Например, для автоматического перевода. Получаемые структуры предложений одинаковы для всех языков. И если иметь функцию как получения структуры из предложения, так и обратную из структуры данных составить предложение на нужном языке. В таком случае процесс перевода будет заключаться в том, что на одном языке составляется структура данных, а на другом языке из этой структуры данных составляется текст. В таком случае не нужно будет иметь переводчики под каждую пару языков. При том, что все уже наверно поняли, что получить качественный перевод с одного языка на другой, без понимания текста, практически невозможно. Как бы не усложнялись автоматические переводчики это комплексный процесс, и одна и та же фраза, употребленная в одной обстановке, и находящаяся на странице в интернете может обозначать разное. Короче, это не локальная задача, а комплексная, или мы научим роботов понимать человеческую речь, и тогда проблема с автоматическим переводом решится сама собой, или так и будет автоматический перевод, который потом еще нужно сравнивать с оригиналом и пытаться понять, о чем шла речь.

Для понимания смысла текста, необходимо использовать одновременно как минимум две ИБЗ. В одной, предложение разбирается по формальным признакам, применительно к русскому языку, это части речи их формы и выделение структур речи. Потом, подключается ИБЗ отдельных глаголов, ведь одно и тоже слово, может обозначать совершенно разное, и только в комбинации используемых слов можно определить истинное значение слова. Например, слово сижу. Вот два варианта использования. Я сижу на стуле. Я сижу дома. И использование одного слова для передачи разных смыслов, очень частое явление в реальной речи. Не говоря уже о разговорной речи. ИБЗ со своей узловой структурой, позволяют легко отслеживать любые нюансы речи и исключения. Просто добавляются узлы в имеющуюся структуру, отделяющие нестандартное использование слова и создается веточка узлов, передающая реальный смысл фразы. Резюмирую вышеизложенное, проблема понимания смысла текста не такая простая как кажется на первый взгляд, и структура ИБЗ наиболее подходит для ее решения. Сама древовидная структура БЗ позволяет с наименьшими затратами труда программирования, и последующих затрат работы процессора во время выполнения, отлавливать специфику различного использования одних и тех же слов в разном контексте.

Иерархичность анализа

В работе ИИ предусматривается, одновременное выполнение анализов на разных уровнях обобщения. Например, есть специальный уровень, отслеживающий текущий уровень опасности, как самого робота, так и окружающих. И при возникновении критической опасности, будет прервана выполняющаяся последовательность действий и предпринята попытка устранения опасности. Так же есть режим поиска ошибок в автоматически сформированных последовательностях действий. Это более медленный режим мысленного прокручивания предполагаемых действий, с детальным анализом последствий, текущей обстановки, реальных получаемых результатов. Определение, на каком этапе последовательности получился результат отличный он необходимого и что было сделано не так, для дальнейшего внесения изменений в ИБЗ, чтобы в последствии учесть этот опыт и не повторять ошибки.

Так же и с пониманием смысла текстов и речи. Понимания смысла отдельной фразы недостаточно, часто только совокупность нескольких фраз выражает законченный смысл. Выявление из объяснений причинно-следственных связей и последующее их отражение в ИБЗ последующий иерархический процесс, следующий после понимания смысла отдельных предложений. В конце концов, робот должен уметь обучаться при помощи человеческой речи. Когда ему объясняется последовательность необходимых действий. Для каждого действия последовательности указываются необходимые результаты, которые необходимо достигнуть, и нюансы, которые необходимо учесть для получения правильного результата. Все эти объяснения должны пониматься, переводиться в понятные роботу понятия и заноситься в ИБЗ, откуда впоследствии использоваться для построения реальных последовательностей действий. Так же робот должен уметь озвучивать составляемые последовательности действий. Типа, делаю то-то, должен получить такой то результат и т.д.

Кроме того, иерархичным процессом должен быть процесс отслеживающий целесообразность, и правомочность получаемых команд извне. Например, подходит к роботу ребенок и просит сделать что-то незаконное, конечно робот должен отследить эту ситуацию, и не подчиниться и наоборот, просьба о помощи должна быть выполнена. Т.е. кроме анализа, вычисляющего как что-то сделать, должен быть более приоритетный анализ, проверяющий нужно ли это делать и именно сейчас в данной обстановке.

Заключение

В данной статье, в упрощенном виде изложена концепция ИИ, используемого в роботах, которые в ближайшем будущем освободят нас от физического труда. Принцип, положенный в основу ИИ, очень простой и понять его можно как специалистам в данной области, так и всем желающим без особых знаний. Возможно есть и другие работоспособные концепции. Доступность информации означает, что несколько компаний попробуют осуществить ее на практике, что на самом деле не так и просто. Трудность заключается в создании базового ядра Информационных баз знаний, после которого ИИ будет способен самостоятельно обучаться и накапливать опыт. Но, тем не менее, для крупных компаний это не такая сложная задача и в ближайшие пять лет мы получим первые варианты, которые будут стремительно наращивать свою функциональность и самостоятельность. Потом роботы, начнут делать других роботов, и мы вскоре проснемся, а они уже везде. И это не плохо или хорошо, просто это наше будущее. Начавшийся этап новой индустриальной революции не остановить, и поэтому нужно готовиться к изменению всей социальной структуры общества, переоценке ценностей и мотиваций. Другой мир, будет нуждаться в других способностях и навыках. Ведь мы забыли как пахать плугом землю, или ездить на лошади, или прясть вручную. Так и мы забудем, как водить машину, работать бухгалтером или рабочим на заводе. Будет что-то новое современное и интересное творческое и постоянно развивающееся. Скорее всего, деньги утратят свою значимость, и наоборот повысится ценность интеллекта, ведь он будет двигать прогресс. Человечество избавится от энергетической зависимости, и наличие полезных ископаемых не будет влиять на экономику стран. Ведь роботы могут настроить столько ветряков, сколько необходимо, и перерабатывать полностью все отходы для производства новых товаров, ведь все это будут делать роботы, значит это будет всегда выгодно, чем постоянно покупать новые ресурсы. Один раз купили металл для производства машин, и потом из переработанного металла делай новые. Утеплил все дома, вот и энергоносителей нужно в несколько раз меньше, а то и вообще можно перейти на электричество, как в транспорте, так и в отоплении. Останется только химическая промышленность, но это уже совершенно не те объемы потребления, при которых можно безбедно жить целым странам. Производить достаточное количество продуктов питания, для роботов тоже не составит труда, так что «голод нам не грозит», хотя качество продуктов не думаю что будет на много лучше чем сейчас. Правительствам стран, проще будет бесплатно кормить население, чем бороться с недовольствами. На этой оптимистической ноте заканчиваем. Так что, как говорил кто-то, «Предупрежден, значит вооружен».

Добро пожаловать в эпоху перемен!

Александр Бобров Киев, Украина 2016г.

Источник: Искусственный интеллект

Текст данной статьи, может свободно перепечатываться в полном объеме с обязательной ссылкой на автора и источник данных.

Комментарии  

+2 # Ануар 09.06.2017 04:05
Статья шикарна, я глубоко восхищен вашими знаниями и хотелось бы узнать ваше мнение о проекте Венера Жака Фреско?
То , что роботы всем выгодны и что в течение 5 лет у нас будет множество роботов с ИИ вокруг, работающих на нас - это очень сомнительно. Я надеюсь, что в течение моей жизни или хотя бы в конце будет что-то подобное, но я не возлагаю больших надежд на скорое осуществление таких обширных планов.
Ответить | Ответить с цитатой | Цитировать
+1 # Іван Даль 12.07.2017 18:56
Нещодавно я створив алгоритм, який здатен розв'язати будь-яку формалізовану задачу.
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить