Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Про тяжёлые процессы и гармонизацию подробно будет рассказано дальше, а сейчас приступим к конструированию искусственного интеллекта





Кирпичики интеллекта

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

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

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

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

Но дело в том, что процедурные и предикатные языки взаимовыражаются друг в друга и имеют одинаковые проблемы, присущие алгоритмам (формальным системам, см. выше и далее).

Во-первых, мы сталкиваемся с проблемой остановки. Алгоритм может вечно блуждать в поисках решения, хотя оно может лежать рядом, в соседней ветке. Зато алгоритм будет соответствовать полной и непротиворечивой формальной системе. Но толку для нас никакого (пока считаем, что мы не можем сделать вечное вычисление за конечное время). Если мы сделаем какое-то отсечение "длинных" веток, то алгоритм станет более практичным, но утратит полноту и непротиворечивость, станет не истинным, а правдоподобным. И здесь речь идёт не о том, что слегка расширится вероятность неправильного решения, а о том, что алгоритм сможет выдавать в корне неверные решения.

Во-вторых, правила-предикаты, составляющие логические единицы, слишком "узки". В естественном интеллекте логические единицы имеют на порядки больше входных условий и входы эти обрабатываются по нечётким критериям. Причём при таком представлении знания "размазываются", теряют свою чёткость и формализм.

Существующая нечёткая логика (есть такой раздел в науке) не годится для применения в предикатных языках вот почему. Любая нечёткость, когда встречается с другой нечёткостью при логическом выводе, может порождать множество альтернативных вариантов, разных логических цепочек. Причём варианты эти могут запросто нарастать лавинообразно. Существующая нечёткая логика, насколько мне известно, не имеет дела ни с распараллеливанием цепочек, ни с обратным их объединением. Всё что делает нечёткая логика - оперирует теми же логическими выражениями, только вместо логических нуля и единицы в ней применяется вещественный диапазон от нуля до единицы, и арифметические операции для сочетания чисел из этого диапазона.

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

В-третьих, у нас нет алгоритма, который мог бы обучать (создавать) другие алгоритмы, в отсутствие человека, но когда есть набор обучающих ситуаций (репрезентативный набор пар правильных входных и выходных значений).

Системы распознавания образов. Хорошо подходят на роль логической единицы для нашего искусственного интеллекта. Умеют хорошо классифицировать входную ситуацию и выдавать решение на выход. Правда, только в том случае, если не нужна длительная обработка, так как внутренней памяти (состояния) и преобразования этого состояния такие системы не имеют, представляя собой скорее рефлекс "стимул-отклик". Зато с классификацией распознавалки справляются отменно. Могут даже обрабатывать сложные изображения (например, распознавать человека по изображению лица). Методы обучения систем распознавания образов эффективны и хорошо известны. Обученная на наборе известных примеров, распознавалка может улавливать скрытые закономерности и качественно обобщать опыт на неизвестные примеры.

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

Методы коррекции (обучения) бывают точные (их ещё называют локальными), и глобальные. Локальные методы умеют вычислять ошибку по всей системе, и поэтому быстры и эффективны. Глобальные методы такого делать не умеют, они случайно изменяют параметры всей системы, смотрят, насколько успешно изменение отразилось на работе системы, и на этом основании решают, сохранять ли это изменение.

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

Зато у нас есть глобальные методы обучения, генетический алгоритм и симуляция отжига, они всеядны, но очень прожорливы к вычислительным ресурсам. Они могут работать, когда о способе коррекции ошибки практически ничего не известно. Генетический алгоритм более эффективен, особенно если знать что-то о структуре решаемой задачи.

Принцип масштаба. Означает, что многократным повторением похожих процессов или сочетанием большого числа похожих элементов, можно добиться высокостабильного (или высокоправдоподобного) результата. Похожий элемент/процесс - это не значит похожий в среднем, это значит, что элементы могут противоречить и конкурировать друг с другом, могут быть нестабильны, но в итоге всё-таки сочетаются (гармонизируются) в решение с высокой степенью правдоподобности. Например, в логических цепях компьютеров, все элементарные частицы нестабильны, но срок их полураспада или очень велик, или число частиц в логическом элементе очень велико, так что распад отдельной частица практически не даёт сбой логических цепей. Другой пример, в искусственных нейронных сетях отдельная нейронная связь слабо влияет на решения, сами связи могут быть противоречивы, но в итоге нейронная сеть выдаёт в основном правильные решения.

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

Date: 2015-09-05; view: 408; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию