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


Полезное:

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


Категории:

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






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





Для начала сделаем глобальное состояние программы (обычный массив чисел). Часть этого массива - входные данные. Они регулярно обновляются извне. Разрешать ли программе их изменять - это не принципиальный вопрос, главное чтобы они регулярно обновлялись. Часть этого массива - внутреннее состояние программы. Оставшаяся часть - выходные данные. Внутренние и выходные ячейки отличаются только тем, что с выходных ячеек считывается решение. И входы, и выходы всегда используются для записи/чтения одного и того же параметра. Например, вход №1 - скорость, вход №2 - датчик топлива, выход №3 - изменение положения руля, выход №4 - изменение скорости. Назначаем мы номера произвольно, в процессе обучения программа сама должна научиться понимать, где какой вход и выход.

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

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

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

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



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