Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Поэтому следующим шагом в построении искусственного интеллекта надо заменить узкие чёткие правила на нечёткие и широкие, и сделать короче цепочки вывода
Для начала сделаем глобальное состояние программы (обычный массив чисел). Часть этого массива - входные данные. Они регулярно обновляются извне. Разрешать ли программе их изменять - это не принципиальный вопрос, главное чтобы они регулярно обновлялись. Часть этого массива - внутреннее состояние программы. Оставшаяся часть - выходные данные. Внутренние и выходные ячейки отличаются только тем, что с выходных ячеек считывается решение. И входы, и выходы всегда используются для записи/чтения одного и того же параметра. Например, вход №1 - скорость, вход №2 - датчик топлива, выход №3 - изменение положения руля, выход №4 - изменение скорости. Назначаем мы номера произвольно, в процессе обучения программа сама должна научиться понимать, где какой вход и выход. За основу правила, возьмём, например, многослойный персептрон (который часто обзывают просто нейронной сетью). Заметьте, алгоритм обучения такой нейронной сети внутри программы нам пока неизвестен. Таких нейронных сетей у нас будет много. Все вместе они будут составлять набор правил программы. В каждую нейронную сеть на вход поступает всё глобальное состояние программы (количество входов равно количеству ячеек состояния). Выходов нейронная сеть имеет немного. Каждый выход тоже соответствует какой-то из ячеек состояния. На каждой итерации, то, что получилось на выходе каждой нейронной сети, прибавляется к глобальному состоянию (значения на выходе могут быть и отрицательные). Все сети опрашиваются одновременно на основе текущего состояния, и своим суммарным воздействием создают новое состояние. Количество выходов и их привязка для каждой сети изначально выбирается случайно. Эволюционные изменения построим таким образом, что они в большинстве случаев оставляют неизменным коммутацию между ячейками глобального состояния и входами/выходами нейронной сети. И только с небольшой вероятностью изменения могут переставить вход или выход сети на другую ячейку. Надо это потому, что пока мы считаем, что каждая ячейка - это определённый параметр (пусть даже и внутренний), поэтому, если мы переключим вход/выход сети на другой параметр, к которому он не приучен, то итог будет скорее неудачным. К сожалению, таким манёвром мы опять теряем кое-какие интересные свойства настоящего интеллекта, но зато получаем эффективность прямо сейчас. К этим свойствам мы ещё вернёмся. В процессе эволюции может быть изменено и количество ячеек глобального состояния. Тогда все нейронные сети корректируются соответственно. Если ячейки клонируются, то клонируются соответствующие входы и выходы нейронных сетей. Если ячейки удаляются, то и соответствующие входы/выходы удаляются из всех сетей. Date: 2015-09-05; view: 405; Нарушение авторских прав |