Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Интеллектуализация автоматизированных систем arrow
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ОБУЧЕНИЯ НЕЙРОННЫХ СЕТЕЙ

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ОБУЧЕНИЯ НЕЙРОННЫХ СЕТЕЙ


ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ОБУЧЕНИЯ НЕЙРОННЫХ СЕТЕЙ

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

Обучение "с учителем" многослойной нейронной сети

Стратегия "обучение с учителем" предполагает, что есть обучающее множество {X,Y}. Обучение осуществляется путем последовательного предъявления векторов обучающего множества, с одновременной подстройкой весов в соответствии с определенной процедурой, пока ошибка настройки по всему множеству не достигнет приемлемого низкого уровня.

Зависимость реального выходного сигнала Y от входного сигнала X можно записать в виде: Y = F(W,X)+Err, где:

  • F(W,X) - некоторая функция, вид которой задается алгоритмом обучения нейронной сети;

  • W - множество параметров, позволяющих настроить функцию на решение определенной задачи распознавания образов (количество слоев сети, количество нейронов в каждом слое сети, матрица синаптических весов сети);

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

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

Генетические алгоритмы для подстройки весов скрытых и выходных слоев используются следующим образом. Каждая хромосома (решение, последовательность, индивидуальность, "родитель", "потомок", "ребенок") представляет собой вектор из весовых коэффициентов (веса считываются с нейронной сети в установленном порядке - слева направо и сверху вниз). Хромосома a=(a1, а2, а3, … , an) состоит из генов аi, которые могут иметь числовые значения, называемые "аллели". Популяцией называют набор хромосом (решений). Эволюция популяций - это чередование поколений, в которых хромосомы изменяют свои признаки, чтобы каждая новая популяция наилучшим способом приспосабливалась к внешней среде. Заметим, что в нашем случае каждый "ген" в хромосоме - реальное число, а не бит.

Начальная популяция выбирается случайно, значения весов лежат в промежутке [-1.0, 1.0]. Для обучения сети к начальной популяции применяются простые операции: селекция, скрещивание, мутация, - в результате чего генерируются новые популяции. У генетического алгоритма есть такое свойство как вероятность. Т.е. описываемые операторы не обязательно применяются ко всем хромосомам, что вносит дополнительный элемент неопределенности в процесс поиска решения. В данном случае, неопределенность не подразумевает негативный фактор, а является своебразной "степенью свободы" работы генетического алгоритма.

Оператор селекции (reproduction, selection) осуществляет отбор хромосом в соответствии со значениями их функции приспособленности. Здесь применим метод рулетки (roulette-wheel selection), с помощью которого осуществляется отбор. Колесо рулетки содержит по одному сектору для каждого члена популяции. Размер i-го сектора пропорционален соответствующей величине Psel(i) вычисляемой по формуле:

Оператор кроссовера (crossover operator)иногда называемый кроссинговером, является основным генетическим оператором, за счет которого производится обмен частями хромосом между двумя (может быть и больше) хромосомами в популяции. Может быть одноточечным или многоточечным. Одноточечным называется кроссовер, если при нем родительские хромосомы разрезаются только в одной случайной точке. Для реализации N-точечного кроссовера м.б. использовано два подхода : точек разрыва меньше, чем генов в хромосоме, либо если длина хромосомы L битов, то число точек разрыва равно (L-1), при этом потомки наследуют биты следующим образом: первому потомку достаются нечетные биты первого родителя и четные биты второго; у второго же потомка все наоборот. Т.е. получается как бы "расческа".

Сеть в обоих случаях являлась полносвязной, таким образом, между нейронами было в первом случае 15 связей, а во втором 25. На вход НС подавалось обучающее множество, представляющее собой последовательность 0 и/или 1. Выполнялось обучение нейронной сети с помощью алгоритма обратного распространения ошибки и с помощью генетических алгоритмов. Обучение в обоих случаях заканчивается, когда на всем обучающем реальный выходной сигнал был равен требуемому выходному сигналу. Для обучения нейронной сети достаточно было выполнить 500 генераций с помощью генетических алгоритмов. Алгоритмам обратного распространения требовалось во много раз большее число итераций - около 500000 итераций, где одна итерация - это полный пересчет всех обучающих данных (весовые коэффициенты, погрешность, значения выходов нейронной сети).

 
Оригинал текста доступен для загрузки на странице содержания
 

Предметы
Геология
Информатика
История
Культура. Искусство
Математика
Медицина
Механика
Политология. Социология
Право
Промышленность
Психология
Религия. Логика. Этика. Философия
Сельское хозяйство. Биология. Ветеринария.
Строительство
Физика
Финансы. Экономика
Химия
Экология
Электротехника
Языки
Прочее