Искусственные нейронные сети
Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 13.10.2015 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Для каждой опорной точки i задается n-мерный входной вектор
Xi = (xi1, xi2, … , xin)T
и соответствующее действительное значение функции yi R. Для всех опорных точек Xi, i =1, 2, …, N должны быть соответственно выполнены следующие условия интерполяции:
f (Xi) = yi (5)
Для решения приведенной задачи интерполяции используется система функций, состоящая из радиально симметричных базисных функций hi:
hi ( || X - Xi || ), i = 1, 2, … , N (6)
т.е. базисные функции hi: Rn R зависят от выбора опорных точек Xi. Свое название рассматриваемые RBF-сети получили по этим функциям, принимающим действительные значения. В качестве аргумента (входа) они используют расстояние между входным вектором X и опорным вектором Xi нейрона i скрытого слоя. При этом обычно определяется эвклидово расстояние (L2 - норма) между обеими точками X и Xi в Rn. Искомая функция представляется при этом в виде:
N
f (X) = ci hi ( || X - Xi ||) (7)
i=1
При решении проблемы интерполяции с помощью RBF-сетей опорными точками и соответственно весовыми векторами Wi нейронов скрытого слоя являются опорные векторы Xi: Wi = Xi, т.е. i-й скрытый нейрон в качестве весового вектора имеет i-й образ обучающей последовательности. Следовательно, задача интерполяции сводится лишь к определению коэффициентов ci, i = 1, 2, … , N. На рис. 3 приведен пример представления функции в виде наложения (линейной суперпозиции) четырех радиальных одномерных базисных (иницептальных) функций с одинаковыми дисперсиями b2.
f(x) = 0.3h (||x - 0.5||) + 0.5h (||x - 2||) + 0.4h (||x - 4||) - 0.3h (||x - 5||) (8)
представлена в виде взвешенной суммы отдельных функций Гаусса с четырьмя центрами x1=0.5, x2=2, x3=4 и x4=5 и весами c1=0.3, c2=0.5, c3=0.4 и c4= -0.3.
Весовые коэффициенты ci можно определить непосредственно в виде решения линейной системы уравнений для проблемы интерполяции:
N
ci hi ( || Xj - Xi || ) = yi, j = 1, 2, … , N (9)
i=1
Мы получили систему из N уравнений для N неизвестных. Можно также показать, что при выборе известных функций Гаусса в качестве центральных функций проблема интерполяции (9) непосредственно разрешима. Введем векторные обозначения:
C = (c1, c2, … , cN)T,
Y = (y1, y2, … , yN)T и
h1 ( || X1 - X1 || ) … hN ( || X1 - XN || )
H = … | (10)
h1 ( || XN - X1 || )… hN ( || XN - XN || ) ,
тогда проблему интерполяции (9) можно представить следующим образом:
H*C = Y (11)
Ее решение
C = H-1*Y (12)
на основе инверсии матрицы H. Однако практически этот способ (на основе инверсии матрицы H) не используется. Реально применяются иные более эффективные способы решения систем из большого числа линейных уравнений.
Однако если входные данные искажены (зашумлены), то точная интерполяция не имеет смысла. Следовательно, описанный выше метод следует модифицировать: проблема состоит в таком решении системы линейных уравнений H*C =Y (11), которое является робастным относительно шумов (помех) во входных данных. Простой и эффективный способ такого решения предложен академиком Тихоновым А. Н. и Арсениным в 1977 г. Сущность их предложения: матрица H заменяется матрицей H + I, где I - единичная матрица (identity matrix), а - "небольшой" параметр. Величина этого параметра пропорциональна силе шума во входных данных. Коэффициенты решения с помощью RBF-сети определяются при этом так:
C = (H + I )-1 Y (13)
В соответствии с (13) решается, в сущности, задача аппроксимации, точное же решение задачи интерполяции достигается при = 0. Однако, если учесть, что входные данные на практике обычно зашумлены (содержат помехи), то решение на основе (13) является наиболее подходящим.
5.3 Интерполяция с помощью центральных функций и полиномов
В общем случае при интерполяции с помощью RBF-сетей в представлении искомой функции f учитываются дополнительно полиномы p(x). Соответственно общая форма представления функции f имеет вид:
N m
f (X) = ci hi (|| X - Xi ||) + di pi (X), m n 14)
i=1 i=1
Полиномы pi образуют при этом пространство полиномов k-1(Rn) из Rn в R с максимальной степенью k-1, причем значение k задается. Для определенных центральных функций это дополнение полиномами является необходимым для решения проблемы интерполяции. Кроме того, введение полиномов способствует дополнительному сглаживанию функции f, т.е. таким способом могут быть существенно уменьшены колебания функции между опорными точками, следует однако учитывать, что это не относится к RBF-сетям, в которых в качестве центральных функций используются функции Гаусса. При этом можно показать, что проблема интерполяции разрешима и без циклических полиномов.
В общем случае для решения проблемы интерполяции необходимо определить коэффициенты ci и di, т.е. N+m неизвестных. Условия интерполяции
f(Xj) = yj, j = 1, 2, … , N
образуют первые N уравнений для определения параметров ci и di
N m
ci hi (|| Xj - Xi ||) + di pi (Xj) = yj, j = 1, 2, … , N (15)
i=1 i=1
Остальные m условий могут быть выбраны свободно. Для упрощения вычислений однако 2-е слагаемое в (15) обычно полагается равным нулю.
На основе теории аппроксимации можно утверждать, что система уравнений (15) имеет решение, если функции hi положительно определены и имеют порядок k в Rn.
Для более простой системы из N уравнений (9) центральные функции hi положительно определены, а, следовательно, система уравнений разрешима. Приведем примеры классов допустимых центральных функций:
h (z) = exp (- (z/)2 )
h (z) = 1 / (c2 + z2) , > 0 (16)
______
h (z) = z2 + c2
До сих пор рассматривалось решение задачи интерполяции, когда искомая функция f(X) должна пройти точно через опорные точки. Она может быть решена с помощью RBF-сети с радиальными базисными функциями без дополнительных полиномов (рис. 1), содержащей входной слой, один скрытый слой и один входной нейрон.
Однако этим сетям присущ ряд недостатков:
График функции между опорными точками может содержать большие колебания, хотя условия интерполяции выполнены. Этот эффект может усиливаться при дополнительном использовании полиномов;
Точная интерполяция при обычно зашумленных (искаженных) результатах измерения не имеет особого смысла. Вместо точной интерполяции более обоснована аппроксимация неизвестной функции с помощью гладкой функции.
Порядок линейной системы уравнений пропорционален числу N применяемых опорных точек (образов обучающей последовательности). Размерность скрытого слоя соответствующей RBF-сети, которая идентична числу образов обучающей последовательности, также увеличивается при использовании каждого нового образа. Желательно однако, чтобы размер сети и затраты на решение линейной системы уравнений были бы по возможности независимы от числа образов или длины обучающей последовательности.
Эти требования фиксированного размера сети приводит к первому расширению RBF-сетей - так называемым обобщенным RBF-сетям (generalized radial basis function networks). С математической точки зрения мы сталкивается при этом не с задачей интерполяции, а с задачей аппроксимации. При этом не требуется, чтобы искомая функция f проходила через все опорные точки. Необходимо лишь минимизировать суммарную ошибку по всем опорным точкам при выполнении некоторых условий гладкости аппроксимирующей функции.
5.4 Аппроксимация с помощью центральных функций
При аппроксимации при помощи центральных функций независимо от числа N образцов обучающей последовательности выбирается число k центров или K скрытых нейронов. Для этого в частности можно использовать соответствующее подмножество образов обучающей последовательности или другие опорные точки, предварительно определенные тем или иным способом. В силу этого эти центры теперь обозначаются не через Xj, а иначе. Часто используются векторы tj (от teacher). В [1] обозначаются через Wj. Объяснение для этого в том, что координаты опорных точек почти во всех реализациях запоминаются в виде весов Wij нейросети. В этом случае в частности лучше проявляется сходство с другими алгоритмами обучения.
Структура обобщенной RBF-сети, содержащей один скрытый слой с фиксированным числом K нейронов представлена на рис. 4. Данные опорных точек запоминаются обычно в виде весов wij скрытых нейронов.
Для K различных центров аппроксимирующая функция f принимает следующий вид:
K
f (X) = cj hj( || X - Wj || ) (17)
j=1
Для определения K коэффициентов c1, c2, … , cK имеется N уравнений. При этом можно использовать условия интерполяции
K
cj hj( || Xi - Wj || ) = yi (18)
j=1
для всех образов обучающей последовательности i = 1, 2, … , N.
Обозначим
h1 ( || X1 - W1 || ) … hK ( || X1 - WK || )
H = … | (19)
h1 ( || XN - W1 || ) … hK ( || XN - WK || ) ,
тогда проблему интерполяции можно представить так:
H*C = Y (20)
В случае N > K эта система уравнений переопределена и не имеет точного решения (интерполяция). Путем аппроксимации можно минимизировать сумму квадратов ошибок по всем образам обучающей последовательности. Это приводит к решению [ ]:
C = H+ * Y, (21)
где H+ - псевдоинверсная матрица Мура - Пенроза (Moore - Penrose Pseudoinverse) относительно матрицы H:
H+ = ( HT H )-1 HT (22)
В соответствии с теоремой Микчелли (Micchelli) инверсная матрица существует в тех случаях, когда производная h центральной функции монотонна, и в качестве центров Wj используется подмножество образов Xj обучающей последовательности.
5.5 Вариационное исчисление для решения проблемы аппроксимации с помощью RBF-сетей
Другой способ решения проблемы аппроксимации - на основе вариационного исчисления. Для этого формируется функционал
N
H (f) = ( yi - f (Xi) + || P f ||2 (23)
i=1
Задача сводится к определению функции f, минимизирующей функционал H(f). Сумма в этом функционале включает условия интерполяции для всех образов Xi обучающей последовательности (i = 1, 2, … , N). Чем меньше эта сумма, тем лучше аппроксимирует функция f образы обучающей последовательности. Дифференциальный оператор P в (23) выполняет функции стабилизатора для вариационной задачи. Ее решение приведено в [1].
Т.о. окончательное решение проблемы аппроксимации с помощью обобщенных радиальных базисных функций может быть представлено в следующем виде.
Заданы N образов обучающей последовательности Xi Rn и им соответствующие значения функциями yi R. Заданы также K центров Wj Rn базисных функций hj и порядок функции f, которая представляется в виде
K
f (X) = cj hj( || X - Wj || ) (24)
j=1
Неизвестные коэффициенты cj определяются при этом следующим образом:
~
C = ( HT H + H)-1 HT Y (25)
В этом способе открытым пока остается вопрос о выборе центров Wj. Часто эти центры выбирают просто в виде подмножества образов обучающей последовательности, полагая однако, что это подмножество равномерно покрывает всю область. Следует однако учитывать, что положение центров в решающей степени определяет качество аппроксимации.
Помимо этого прямого способа определения весов можно использовать итеративные процедуры дополнительного обучения нейросети, если достигнутые результаты оказываются неудовлетворительными. Одна из них - это процедура алгоритма с обратным распространением ошибки (Backpropagation).
5.6 Расширение на случай многих функций
Метод радиальных базисных функций (radial basis functions) очень просто можно распространить и на случай многих функций (многомерный случай):
f: Rn Rm (26)
Это равносильно (эквивалентно) аппроксимации множества из m отдельных функций R: Rn R в предположении, что используются одни и те же опорные точки Wj для всех функций и одни и те же образы Xj обучающей последовательности:
K
yk = fk (X) = cjk hj ( || X - Wj || ) (27)
j=1
5.7 Расширение линейной частью
Как было отмечено выше, при использовании определенных центральных функций необходимым становится введение полинома степени K в аппроксимирующую функцию f. Лишь такое введение обеспечивает достижение оптимальных результатов. Однако для функций Гаусса, как отмечено также выше, это не является необходимым. В случае K=1 (полином первой степени) это расширение RBF-сети особо элегантно. Функция f представляется при этом в виде:
K n
f (X) = cj hj ( || X - Wj || ) + dk xk + Q (28)
j=1 k=1
где Q - порог.
Применение различных базисных функций приводит к теории гипер-базисных функций.
5.8 Сети гипер-базисных функций (Hyper-Basisfunktionen-Netze = HBF-Netze)
При решении проблем классификации образов часто применяются нейронные сети с сигмоидными функциями активации или выхода в выходном слое. В рассматриваемой до сих пор теории RBF-сетей для решения задач аппроксимации непосредственно значение функции f (взвешенная сумма) использовалось в качестве выхода выходного нейрона, что соответствует однако линейной функции активации или выхода. Использование сигмоидной функции активации или выхода
h (X) = [1 + exp ( || X - Xi || / 2i2 - i )]-1 (29)
и в RBF-сетях может способствовать улучшению результатов. Одно из расширений RBF- сетей получается именно при использовании таких сигмоидных функций активации или выхода.
HBF-сети представляют собой другие расширения обобщенных RBF-сетей. В них путем взвешивания аргумента || X - Wj || центральной функции h обеспечивается индивидуальная обработка каждого центра, которая может быть реализована различными способами:
путем взвешивания расстояния || X - Wj || некоторым коэффициентом,
путем изменения центральной функции с помощью второго параметра P,
путем взвешивания отдельных составляющих (xi - wij), i = 1, 2, … , n, расстояния и т.п.
На рис. 5 приведен общий вид HBF-сетей (HBF-сеть с одним линейным полиномом).
По соображениям наглядности на рис. 5 показаны лишь соединения для одного выходного нейрона. Линейные составляющие dkxk реализуются непосредственно в виде прямых соединений от входов к выходному слою. Порог реализуется с помощью "on"-нейрона с выходом 1. Другие решения - использование входа BIAS в выходном нейроне k.
5.9 Итеративное дополнительное обучение RBF- и HBF-сетей
Для обучения этих сетей часто используется комбинация из различных алгоритмов обучения с поощрением и без поощрения. При этом цель обучения, как обычно, состоит в минимизации общей ошибки сети по всем выходным нейронам и для всех образов обучающей последовательности. Эта суммарная ошибка сети имеет вид:
m N
E = 1/2 * (yik - ok (Xi))2, (30)
k=1 i=1
где m - число выходных нейронов (или число аппроксимируемых функций), ok (Xi) - действительный выход k-го выходного нейрона для i-го образа Xi обучающей последовательности, yik - требуемый выход k-го выходного нейрона для i-го образа Xi обучающей последовательности. Вид ошибки (30) типичен для алгоритмов обучения нейросетей (например, Backpropagation). Коэффициент 1/2 вводится с тем, чтобы "погасить" двойку, возникающую затем при дифференцировании суммарной ошибки (30). Вывод соотношений идентичен Backpropagation-алгоритму. Для определения изменений весов в процессе обучения сети необходимы все частные производные функции ошибки E (30) по всем свободным параметрам Wj, cjk, dik, k и Pj.
5.10 Выбор центров и радиусов в RBF-сетях
Опорные точки - это точки, через которые должна пройти аппроксимирующая функция. В простейшем случае, как было отмечено выше, можно использовать все образы обучающей последовательности для формирования соответствующего нейрона скрытого слоя. Однако это сопряжено со значительными затратами.
Для их снижения часто в качестве центров RBF- и HBF-сетей используется подмножество образов обучающей последовательности. При этом иногда предусматривается незначительная модификация входных образов и весов соединений ("шум"). Подобный "шум" необходим, например, в тех случаях, когда число K скрытых нейронов превышает число N образов обучающей последовательности. До сих пор мы обычно преполагали, что K N. Принципиально, однако, способ применим и в случае K > N.
Для наиболее целесообразного использования данных обучающей последовательности в RBF-сетях следует принять во внимание, что в обучающей последовательности определенные векторы представлены в слабо измененной форме. Для выявления таких векторов могут быть использованы различные методы кластер-анализа. Они позволяют выявить кластеры подобных (близких) векторов и предствить эти кластеры лишь одним вектором (прототипом, стереотипом, типичным представителем). Достигаемое при этом значительное сокращение (сжатие) данных - достоинство, весьма существенное для RBF-сетей. В настоящее время разработано большое число алгоритмов кластеризации.
Рассмотрим один из примеров простых алгоритмов кластеризации. На основе следующей стратегии (ab-hoc-Methode) выявления кластеров.
Выбирается (произвольно) 1-й образ обучающей последовательности. Он объявляется в качестве прототипа (стереотипа) 1-го кластера. Затем все векторы обучающей последовательности, расстояние от которых до выбранного вектора не превышает некоторого порога, включаются в 1-й кластер.
При появлении вектора обучающей последовательности, который не может быть включен в 1-й кластер, он объявляется прототипом (стереотипом) 2-го кластера. Процедура далее повторяется с оставшимися образами обучающей последовательности до тех пор, пока все ее образы не будут разделены на кластеры.
5.10.1 Итеративный алгоритм кластеризации
Рассмотрим пример итеративных алгоритмов кластеризации. Вначале выбирается K различных опорных векторов ui, i = 1, 2, … , K. Затем векторы Xi обучающей последовательности последовательно предъявляются сети. После каждого такого предъявления опорные векторы ui модернизируются в направлении Xi:
Инициализация
Выбери K опорных векторов ui
i:=1
Правило итерации
REPEAT
:=1
i
SELECT Xj T
|| ui - Xj || || uk - Xj || для i=1, 2, … , K, 1 k i K
ui (t+1) : = ui (t) + ( || ui - Xj || )
i : = i + 1
UNTIL 1 j K : uj (t+1) = uj (t)
Коэффициент коррекции уменьшается с увеличением номера итерации.
Алгоритм сходится тогда, когда прототипы ui становятся сталильными. При применении алгоритмов кластеризации следует в формуле (4) учесть числа mi векторов в тех или иных кластерах. Модифицированные выходы рассчитываются при этом следующим образом:
K
mi hi cij
i=1
yj = (31)
K
mi cij
i=1
5.10.2 Выбор параметра
Параметр определяет расстояние вокруг опорной точки ui. Путем комбинации опорных точек и параметров i необходимо по возможности "покрыть" все пространство образов. Наряду с выбором достаточного числа опорных точек, которые должны быть по возможности равномерно распределены по пространству образов, подходящий выбор значений параметров i служат заполнению возможных пустот.
В практических приложениях обычно применяется метод k ближайших соседей (k-nearest-neighbor-Methode) для определения k ближайших соседей вокруг точки ui. После этого определяется средний вектор ui`. Расстояние между ui и ui` служит затем мерой для выбора значения i. Для многих приложений рабочим правилом является выбор = 1 (default-установка).
Другой подход к определению оптимального множества центральных векторов для RBF-сетей может быть основан на использовании самоорганизующихся карт. Для этого в большинстве случаев образы обучающей последовательности предварительно нормируются по длине равной 1. После этого выбираются случайно K из N образов обучающей последовательности в качестве начальных (стартовых) значений центральных векторов и определяется скалярное произведение <Xi, Wj> между вектором Xi обучающей последовательности и каждым из K центральных векторов Wj, j = 1, 2, … , K. Это скалярное произведение является мерой подобия (сходства) обоих векторов, отнормированных по длине, равной 1. При этом тот центральный вектор Wj, расстояние от которого до текущего вектора обучающей последовательности минмальное (или: для которого указанное скалярное произведение максимально), объявляется "победителем". Он сдвигается затем на небольшую величину в направлении текущего вектора обучающей последовательности:
Wj (t+1) = Wj (t) + ( Xi - Wj (t)) (32)
Эта процедура многократно повторяется по всем образам обучающей последовательности.
Дополнительное преимущество применения самоорганизующихся карт (self-organizing maps) состоит в том, что в них учитывается и близость между нейронами скрытого слоя. В силу этого модифицируется не только нейрон-"победитель", но и нейроны в окрестности вокруг него (однако в существенно меньшей степени).
5.10.3 Расчет выходной весовой матрицы C
После определения опорных точек ui и параметров рассеяния i необходимо рассчитать выходную весовую матрицу C.
Обучающая последовательность T содержит векторы vi = (Xi, yi), где Xi - i-я опорная точка, а yi - значение функции в ней. Часть этих векторов vi уже была использована для определения опорных точек ui.
Для определения матрицы C используется алгоритм типа Backpropagation. Для этого вектор Xi обучающей последовательности подается на вход сети, затем рассчитываются активации нейронов скрытого слоя h(Xi). Выход нейронов скрытого слоя представим в виде вектора h. Вектор h "пропускается" затем через весовую матрицу
C = (cij), i = 1, 2, … , K, j = 1, 2, … , m,
где cij - вес связи нейрона i скрытого слоя и нейрона j выходного слоя. В результате получается действительный выходной вектор f, который сравнивается с требуемым выходным вектором Y. На основе сравенения этих векторов и осуществляется коррекция весовой матрицы C (подобно алгоритму Backpropagation).
Итак, основное отличие RBF-сетей - в такой комбинации радиально-симметричных функций, которая обеспечивает аппроксимацию функций с любой степенью точности.
Глава 6. Нейронные сети и генетические алгоритмы
Генетические алгоритмы были предложены Холландом (Holland, 1975) и основаны на принципах эволюции. Сущность их состоит в следующем.
Имеется некоторая популяция индивидуумов, каждый из которых может быть представлен двоичной последовательностью или строкой символов какого-либо иного алфавита. Для каждого индивидуума (фенотипа) можно определить значение некоторой функции эффективности (Fitness-Function). Задача состоит в максимизации этой функции эффективности. Цель генетических алгоритмов состоит в том, чтобы в процессе ряда операций получать каждый раз лучшие индивидуумы (индивидуумы с большими значениями функции эффективности). Формирование новых индивидуумов осуществляется в результате селекции лучших индивидуумов (индивидуумов с лучшими значениями функции эффективности) для образования потомства на основе случайного процесса отбора. При этом каждый раз выбираются два индивидуума, производится скрещивание обоих бинарных векторов на основе одного из операторов скрещивания, в результате чего возникают два новых индивидуума (ребенка). Эти новые индивиды могут быть подвергнуты затем с очень малой вероятностью операции мутации, состоящей в инвертировании одного случайно выбранного бита (разряда) двоичного слова.
Ниже мы ограничимся лишь изложением основ применений генетических алгоритмов в нейросетях.
6.1 Эволюция как способ оптимизации
Эволюцией называют приспособление живой материи к изменяющимся внешним условиям, начиная от возникновения жизни и до настоящего времени. Можно сказать, что эволюция - это процесс оптимизации всех живых организмов. Рассмотрим, какими же средствами природа решает эту задачу оптимизации.
Основной механизм эволюции - это естественный отбор. Его суть состоит в том, что более приспособленные особи имеют больше возможностей для выживания и размножения и, следовательно, приносят больше потомства, чем плохо приспособленные особи. При этом благодаря передаче генетической информации (генетическому наследованию) потомки наследуют от родителей основные их качества. Таким образом, потомки сильных индивидуумов также будут относительно хорошо приспособленными, а их доля в общей массе особей будет возрастать. После смены нескольких десятков или сотен поколений средняя приспособленность особей данного вида заметно возрастает.
В процессе эволюции возникло очень большое разнообразие видов. Движущей силой эволюции является взаимодействие мутации и селекции. Мутации - это не целенаправленные изменение генетического материала. Они могут влиять на все параметры организма или некоторых его частей:
1). величина,
2). форма,
3). структура,
4). свойства обмена веществ,
5). поведение и т.д.
Мутации могут и не влиять непосредственно на организм. Они могут вначале лишь увеличивать вариативность генетического материала некоторого вида.
Возможные формы селективных сил:
1). климат,
2). доступ к пище,
3). способность убежать от естественных врагов,
4). способность защититься от естественных врагов,
5). шансы на успех в качестве партнера для спаривания.
Чтобы сделать понятными принципы работы генетических алгоритмов, поясним также, как устроены механизмы генетического наследования в природе. В каждой клетке любого животного содержится вся генетическая информация этой особи. Эта информация записана в виде набора очень длинных молекул ДНК (ДезоксирибоНуклеиновая Кислота). Каждая молекула ДНК - это цепочка, состоящая из молекул нуклеотидов четырех типов, обозначаемых А, T, C и G. Собственно, информацию несет порядок следования нуклеотидов в ДНК. Таким образом, генетический код индивидуума - это просто очень длинная строка символов, где используются всего 4 буквы. В животной клетке каждая молекула ДНК окружена оболочкой - такое образование называется хромосомой.
Каждое врожденное качество особи (цвет глаз, наследственные болезни, тип волос и т.д.) кодируется определенной частью хромосомы, которая называется геном этого свойства. Например, ген цвета глаз содержит информацию, кодирующую определенный цвет глаз. Различные значения гена называются его аллелями.
При размножении животных происходит слияние двух родительских клеток и их ДНК взаимодействуют, образуя ДНК потомка. Основной способ взаимодействия - рекомбинация (cross-over, скрещивание). При рекомбинации ДНК предков делятся на две части, а затем обмениваются своими половинками.
При наследовании возможны мутации из-за возможных влияний, в результате которых могут измениться некоторые гены в клетках одного из родителей. Измененные гены передаются потомку и придают ему новые свойства. Если эти новые свойства полезны, они, скорее всего, сохранятся в данном виде - при этом произойдет скачкообразное повышение приспособленности вида.
6.2 Генетические алгоритмы
Генетический алгоритм - это простая модель эволюции в природе. В нем используются как аналог механизма генетического наследования, так и аналог естественного отбора. При этом сохраняется биологическая терминология в упрощенном виде.
Вот как моделируется генетическое наследование:
Хромосома |
Вектор (последовательность) из нулей и единиц. Каждая позиция (бит) называется геном. |
|
Индивидуум = генетический код |
Набор хромосом = вариант решения задачи. |
|
Рекомбинация |
Операция, при которой две хромосомы обмениваются своими частями. |
|
Мутация |
Случайное изменение одной или нескольких позиций в хромосоме. |
Чтобы смоделировать эволюционный процесс, сгенерируем вначале случайную популяцию - несколько индивидуумов со случайным набором хромосом (числовых векторов). Генетический алгоритм имитирует эволюцию этой популяции как циклический процесс скрещивания индивидуумов и смены поколений.
Жизненный цикл популяции - это несколько случайных скрещиваний (посредством рекомбинации) и мутаций, в результате которых к популяции добавляется какое-то количество новых индивидуумов. Отбор в генетическом алгоритме - это процесс формирования новой популяции из старой, после чего старая популяция погибает. После отбора к новой популяции опять применяются операции рекомбинации и мутации, затем опять происходит отбор, и так далее.
Отбор в генетическом алгоритме тесно связан с принципами естественного отбора в природе следующим образом:
Приспособленность индивидуума |
Значение целевой функции на этом индивидууме. |
|
Выживание наиболее приспособленных |
Популяция следующего поколения формируется в соответствии с целевой функцией. Чем приспособленнее индивидуум, тем больше вероятность его участия в рекомбинации, т.е. размножении. |
Таким образом, модель отбора определяет, каким образом следует строить популяцию следующего поколения. Как правило, вероятность участия индивидуума в скрещивании берется пропорциональной его приспособленности. Часто используется так называемая стратегия элитизма, при которой несколько лучших индивидуумов переходят в следующее поколение без изменений, не участвуя в рекомбинации и отборе. В любом случае каждое следующее поколение будет в среднем лучше предыдущего. Когда приспособленность индивидуумов перестает заметно увеличиваться, процесс останавливают и в качестве решения задачи оптимизации берут наилучшего из найденных индивидуумов.
Таким образом генетические алгоритмы в принципе представляют собой определенную абстракцию эволюции. Они содержат следующие основные компоненты:
кодирование прикладной задачи,
множество операторов мутации,
критерий селекции.
Сущность их очень проста. Обычно генетический алгоритм стартует с некоторой популяцией индивидов. Каждый из них оценивается по некоторому критерию селекции. На основе значения этого критерия для отдельного индивида выносится решение о величине вероятности наследования его свойств в следующем поколении. Обычно при таком наследовании свойств применяются так называемые операторы мутации и/или рекомбинации (crossing-over). Следующее поколение индивидов также оценивается и описанный процесс стартует снова. Структура алгоритма представлена на рис. 1.
Кодирование
Кодирование во многих случаях является важнейшим шагом решения задачи. Для этого вся информация, существенная для соответствующей предметной области, представляется в виде двоичной последовательности.
Генетические алгоритмы оказались очень эффективными при решении задач многомерной оптимизации. В этих случаях под индивидом понимается ничто иное как значение оптимизируемой функции в некоторой точке области определения. Этот индивид представляется (кодируется) бинарными кодами:
Ii = (x, y), где x, y [0,1]k
Операторы.
Оператор мутации изменяет наследственные свойства индивида. Обычно генетические алгоритмы используют только две следующие формы мутации:
точечная мутация и
рекомбинация (crossing-over).
При бинарном кодировании данных об индивиде точечная мутация сводится к инвертированию содержимого одного случайно выбранного бита (разряда).
Пример:
0100011101011 0100111101011
Здесь инвертированный разряд выделен большим размером.
При рекомбинации (crossing-over) в текущей популяции выбираются две двоичные последовательности и в них производится обмен двух соответствующих частей. Из двух возникающих при этом индивидов выбирается один индивид для следующего поколения (рис. 2).
На рис. 3 представлен набор наиболее популярных операторов скрещивания для рекомбинации (crossing-over).
Критерии селекции
Выбор индивида осуществляется на основе подходящего критерия селекции, измеряющего степень эффективности (Fitness, Performanz) некоторого индивида по сравнению со своими "конкурентами". В нашем примере оптимизации функций в качестве критерия селекции используется непосредственно значение функции f(x). Степень эффективности (Fitness) некоторого индивида x выражается значением функции f в этой точке x. На рис. 4 а-г представлен принцип функционирования генетического алгоритма.
Преимущества генетических алгоритмов в сравнении с другими методами оптимизации (например, градиентными методами):
Глобальная оптимизация. Вследствие случайной составляющей генетический алгоритм может исследовать все функциональное пространство. В результате этого в частности становится возможным выход из локальных минимумов. Следует однако отметить, что во многих случаях обычные методы оптимизации (hill-climbing-Methoden) используются в окрестности предполагаемого глобального оптимума, ибо последние обычно быстрее и надежнее отыскивают абсолютный оптимум.
Минимальное знание и функции цели. Генетические алгоритмы ограничиваются измерением степени эффективности (Fitness) индивида. Они используют лишь значение функции f в точке x. При этом информация о первой или второй производной для расчета градиента не используется.
Параллельность генетических алгоритмов. Генетические алгоритмы тривиально могут быть реализованы на нескольких процессорах.
6.3 Нейро-генетические способы
Комбинация генетических алгоритмов и нейросетей распространяется на следующие области:
оптимизация весовой матрицы нейросети,
оптимизация топологии нейросети.
Генетический алгоритм для оптимизации весовой матрицы
Естественной областью применения генетических алгоритмов является оптимизация весовой матрицы нейросети. Принципиальным недостатком обычных алгоритмов обучения нейросетей является то, что они могут завершиться поиском локального оптимума. Для оптимизации весовой матрицы целесообразно использовать генетические алгоритмы в силу их свойства выхода из локальных оптимумов. Для этой цели веса матрицы, представленные действительными числами, следует отобразить двоичными кодами (с плавающей или фиксированной точкой). После этого оптимизация осуществляется подобно примеру определения максимума двумерной функции.
Генетические алгоритмы для оптимизации топологии нейросети
Определение топологии нейросети, оптимальной для некоторой предметной области, также может быть представлено как решение задачи дискретной оптимизации, а для ее решения целесообразны генетические алгоритмы.
В настоящее время разработан ряд генетических алгоритмов для оптимизации топологий нейросетей.
Резюме
Генетические алгоритмы - это стохастические методы оптимизации, реализующие принципы эволюции. При этом некоторая популяция возможных решений случайно изменяется в процессе ряда итераций, причем отдельные решения (индивиды) взаимно комбинируются друг с другом. В результате процесса отбора (селекции) осуществляется выбор наиболее перспективных кандидатов для генерации следующего поколения. Основное назначение генетических алгоритмов - поиск глобальных оптимумов многомерных функций. Генетические алгоритмы используются для оптимизации весовых матриц и топологии нейросетей.
Глава 7. Система моделирования нейронных сетей Trajan 2.0
Пакет моделирования нейронных сетей "Trajan 2.0" фирмы Trajan-Software (США) - один из известных нейросетевых коммерческих продуктов. Он рассчитан на широкое использование в сфере классификации образов, прогнозирования и кластеризации.
Система Trajan является профессиональной системой с полным набором средств для создания, обучения и использования нейронных сетей. Система включает поддержку широкого круга нейронных сетей, алгоритмов обучения, графические и статистические средства отображения результатов работы нейросетей.
Trajan поддерживает большинство важных архитектур нейросетей для решения большинства реальных проблем:
Многослойный персептрон. Trajan позволяет использовать Алгоритм обратного распространения, включая такие параметры как скорость обучения, изменяющаяся во времени, перемещение образов, дополнительный шум, выбор функции активации, выбор условий остановки, автоматическая перекрестная проверка. Также эта система поддерживает алгоритмы Быстрого распространения, Дельта-алгоритм, а также два из наиболее современных алгоритмов обучения: Левенберга-Маркварта и Градиентного спуска. Эти алгоритмы не только быстрые, но также независимы от параметров.
Сети Кохонена. Система позволяет использовать Самоорганизующиеся карты Кохонена, а также предлагает окна Частот побед и Топологической карты, позволяющие быстро определить и обозначить кластеры.
Сети радиальных базисных функций. Trajan предлагает алгоритмы обучения этих сетей.
Trajan позволяет выбрать специальные функции активации и функции ошибки. Также можно объединять сети или удалять некоторые слои.
Тщательно проработанный интерфейс системы Trajan предоставляет доступ к большому объему информации в самой доступной форме. Графики и диаграммы отображают результаты обучения и работы сети, также Trajan автоматически рассчитывает общую статистику по сети как для задачи классификации, так и для задачи регрессии. Специальная топологическая карта и кластерная диаграмма поддерживают анализ данных. Вся информация по сети доступна в виде матриц (таблиц данных): информацию можно копировать и перемещать прямо из таблицы в таблицу.
Для запуска программы необходимо запустить файл Trajan.exe. Необходимо сказать, что оригинальная версия Trajan была русифицирована: интерфейс программы (команды меню, названия диалоговых окон и полей, а так же основные термины) приведены на русском языке. В данном проекте приводятся английские и русские эквиваленты. На экране, в зависимости от версии программы Trajan (русифицированная или оригинальная), появится главное окно программы (рис. 1). Доступной является справочная система Trajan на английском языке.
7.1 Создание сети и обучающей последовательности
7.1.1 Создание сети
Для начала необходимо создать саму нейронную сеть, т.е. ее структуру.
Создать новую ИНС можно в окне Создание ИНС (Network Creation) (см Рис. 2), которое вызывается с помощью команды меню Файл/Создать/Сеть (File/New/Network).
В поле Тип (Type) можно задать тип нейронной сети. Версия Shareware предлагает создание и использование только двух типов нейронных сетей:
многослойный персептрон (Multilayer Perceptron);
сети Кохонена (Kohonen).
В полной профессиональной версии Trajan можно создавать большое количество других типов сетей.
Затем надо указать число слоев в создаваемой сети и количество элементов (нейронов) в каждом слое.
После нажатия кнопки Создать (Create) структура созданной сети отобразится в главном окне Главное (Main), а тип сети будет указан в Строке статуса (Status line), которая находится прямо под панелью инструментов (рис. 3).
7.1.2 Количество и размерность слоев в сети
Программа Trajan может поддерживать до 128 слоев, а число элементов ограниченно только оперативной памятью компьютера (более 16 млн.). Однако незарегистрированная версия Unregistered Shareware ограничена всего двадцатью элементами. В большинстве случаев такого количества слоев и элементов бывает достаточно.
В программе Trajan первый слой всегда Входной слой (Input layer), он выполняет функцию представления входных данных в сеть. Входной слой не выполняет вычислений. Последний слой всегда Выходной слой (Output layer), и выходное значение элементов этого слоя считается конечным выходным значением для всей сети. Все остальные слои - это так называемые Скрытые слои (Hidden layers). Каждый элемент в каждом слое соединен с каждым элементом следующего слоя (кроме, конечно, Выходного слоя, где следующего слоя нет). Все типы сетей, поддерживаемые программой Trajan (версией Shareware), являются сетями прямого распространения сигналов, т.е. отсутствуют рекуррентные и обратные связи.
Можно указать количество элементов в каждом слое, используя матрицу диалогового окна Создание сети (Network Creation). Она выглядит как очень маленькая электронная таблица. Можно указать количество элементов в слое, изменив значение ячейки первой строки (units); слой с нулевым количеством элементов игнорируется. Нажмите мышкой (далее кликните) на первой ячейке матрицы, она отобразится белым текстом на черном фоне. Это означает, что выбрана данная ячейка.
Чтобы создать структуру сети необходимо выполнить следующие действия.
Введите число элементов во входном слое и нажмите стрелку вправо управления курсором. Число вводится в первую ячейку, а следующая ячейка становится выбранной, куда вводится значение количества элементов в следующем слое.
Повторите предыдущее действие для ввода количества элементов второго, третьего и т.д. слоев.
В матрице есть еще и вторая строка ширина (width). Эта строка используется только в сети типа Сеть Кохонена (Kohonen network). Выходной слой сети Кохонена лежит в двумерном пространстве (имеет два измерения), программа определяет высоту слоя как отношение общего числа элементов выходного слоя к ширине слоя.
Для любого слоя любого типа сети можно задавать параметр width. Однако принципиальное значение этот параметр имеет только для сети Кохонена. В остальных сетях это только изменит отображение сети на экране.
Как только вы введете значения для всех слоев, просто нажмите кнопку Создать (Create). Это приведет к формированию сети. Она отобразится графически в главном окне программы.
7.1.3 Создание обучающей последовательности
Одно из ключевых свойств ИНС - способность обучаться на примерах для решения различных задач. Вместо того чтобы устанавливать веса в сети вручную (что вообще-то предусмотрено программой Trajan), можно задать некоторое число образцов и использовать обучающий алгоритм для подбора весов. Таким образом, сеть сможет научиться распознавать (классифицировать) образцы. В программе Trajan все обучающие образцы хранятся вместе и образуют обучающую последовательность (Pattern Set).
Вызовите диалоговое окно Создание обучающей последовательности (Pattern Set Creation) (с помощью команды меню File/New/Pattern (Файл/Новый/Образец)).
В диалоговом окне (Рис. 4) введите количество Входов (Inputs) и Выходов (Outputs) в обучающей последовательности. Количество входов должно соответствовать количеству нейронов в первом (Входном) слое сети, а количество выходов - количеству нейронов в последнем (Выходном) слое сети. Если Вы последовательно создаете сначала структуру сети, а затем обучающую последовательность, то эти значения устанавливаются по умолчанию.
Нажмите кнопку Создать (Create).
После этого программа автоматически вызывает диалоговое окно Редактор образцов (Pattern Editor).
Основным в Редакторе образцов (Pattern Editor) является Матрица образцов (Pattern Matrix), она содержит обучающую последовательность. Каждый образец представлен строкой в матрице образцов. В начале (сразу после создания) в матрице будет всего лишь одна строка, у которой все атрибуты (входы i#01...i#02 и выход o#01) установлены в нуль ( см. Рис. 5). Выходы отделены от входов жирной вертикальной чертой. Можно создавать новые образцы или редактировать уже существующие.
7.1.4 Редактирование набора образцов
Редактор образцов (Pattern Editor) имеет следующие возможности:
Матрица образцов (Pattern Matrix), которая позволяет изменять любой существующий образец и атрибут, добавлять и удалять образцы и атрибуты и т.д.;
Набор полей для подстройки баланса Входных (Input) и Выходных (Output) атрибутов, и обучающих и проверяющих образцов;
Возможность автоматически перемешивать порядок образцов в наборе.
Матрица образцов (Pattern Matrix) используется для изменения или удаления существующих образцов и атрибутов, а также по необходимости добавляет новые. Возможности редактирования очень широки. Необходимо заметить, что большинство матриц в программе подчиняются одним и тем же правилам редактирования.
Изменение существующих значений образца
Для того чтобы изменить значение какого-либо атрибута образца сначала необходимо выбрать соответствующую ячейку. Каждый образец в наборе представлен строкой матрицы, а каждый атрибут (признак) - столбцом. Входные и выходные атрибуты разделены жирной вертикальной линией.
Для выбора ячейки:
Кликните мышкой на ячейке;
или двигайтесь с помощью ключей управления курсора.
Программа автоматически будет передвигать видимую область матрицы.
Как только выбрали необходимую ячейку - просто введите новое значение.
Добавление нового образца
Есть два способа добавить новый образец в последовательность:
Попробуйте перейти за нижнюю границу матрицы с помощью клавиши управления курсора стрелка вниз или нажать RETURN на последней ячейке матрицы (последний столбец, последняя строка). Создастся новый образец, содержащий все нули;
Расположите мышиный курсор между названиями (номерами) двух образцов слева от матрицы (курсор изменит вид на двухстороннюю стрелку). Кликните мышкой; появится жирная белая полоса между ними, называющаяся Insertion Bar (Место вставки). Нажмите клавишу RETURN или INSERT. Создастся новый образец, содержащий все нули.
Добавление нового атрибута (признака)
Для того чтобы добавить новый атрибут, выполните следующие шаги:
Подведите мышиный курсор между названиями двух атрибутов (столбцы матрицы), курсор изменит свой вид на горизонтальную двухстороннюю стрелку.
Кликните мышкой; появится жирная белая вертикальная полоса между ними, называющаяся Insertion Bar (Место вставки)
Нажмите клавишу RETURN или INSERT. Создастся новый атрибут.
Копирование и вставка
Матрица образцов позволяет Вам выделить прямоугольную область ячеек, которую затем можно скопировать в буфер; а так же по необходимости вставить данные из кармана в любое место матрицы.
Таким же образом можно копировать и вставлять данные в и из других матриц программы.
Вырезание, Копирование и Вставка образцов
Вы можете Вырезать, Копировать и Вставлять целиком всю матрицу образцов, создавать новые образцы из копий старых и т.д.
Чтобы вырезать, копировать и вставлять образцы, их необходимо сначала выделить. Для этого воспользуйтесь названиями (номерами) образцов слева от матрицы.
Вырезание целого образца
Чтобы вырезать целый образец из матрицы, сначала выделите его мышкой, а затем нажмите SHIFT+DELETE. Образец уберется из матрицы.
Вставка целого образца
Можно вставить образец двумя способами:
Заменив существующий образец. Если отметить образец, а затем вставить (путем нажатия SHIFT+INSERT) на его место образец из буфера, то существующий образец будет заменен.
Добавление образцов. Чтобы вставить образцы как новые, сначала сделайте Insertion Bar (место вставки), как описано в разделе по добавлению образцов, а затем нажмите (SHIFT+INSERT) и образцы из буфера появятся на новом месте.
Используя эти возможности редактирования, можно менять последовательность образцов в наборе.
То же самое можно делать и с атрибутами (столбцами)
Копирование набора целиком
Можно либо скопировать все содержимое матрицы в, либо записать в отдельный текстовый файл.
Такая возможность присутствует во всех матрицах программы.
Наименование образцов
Вы можете задавать имена отдельным образцам прямо на матрице
Для задания или изменения имени необходимо:
Дважды щелкните мышкой на середине номера строки (слева от матрицы).
Появится курсор (серый вертикальный отрезок).
Наберите желаемое имя;
Можете использовать все клавиши редактирования (DELETE, BACKSPACE, RIGHT ARROW и т.д.).
Используете клавиши управления курсора вверх и вниз для перемещения между образцами.
Если не задано имя образцу, то система автоматически задает ему вместо имени порядковый номер.
Точно также можно задавать имена атрибутам (столбцам).
Программа не отслеживает правильность изменения имен атрибутов в соответствии с названиями элементов (в частности для сетей Кохонена), так что за этим надо следить вручную.
7.2 Обучение сети
После создания структуры сети и ввода обучающей последовательности следующим шагом является обучение сети.
7.2.1 Типы сетей
Trajan Shareware предоставляет возможность работать с двумя типами сетей: многослойный персептрон и сети Кохонена.
Многослойный персептрон
На сегодняшний день эта архитектура сети является одной из самых популярных.
Многослойный персептрон использует линейную PSP функцию (т.е. вычисляет взвешенную сумму входов), и нелинейную логическую функцию активации (S-образную).
Сеть этого типа может иметь до 128 слоев; однако, трех или четырех слоев достаточно практически для любой задачи.
Многослойный персептрон можно обучать алгоритмами: Градиентного спуска (Conjugate Gradient Descent), Левенборга-Маркарди (Levenburg-Marquardt), Обратного распространения ошибки (Back Propagation), Быстрого распространения (Quick Propagation) или Обобщенного дельта-правила (Delta-Bar-Delta).
В данной лабораторной работе мы будем использовать только алгоритм обратного распространения ошибки.
Многослойный персептрон довольно компактная нейронная сеть и ее легко применять для различных задач; однако, процесс обучения этой сети может затянутся, к тому же привести к бестолковой экстраполяции на значительно новых данных.
Сети Кохонена
Сети Кохонена реализуют режим обучения «без учителя» или режим самообучения: они учатся распознавать кластеры в наборе образцов, принадлежность которых классам (кластерам) не известна. Сеть Кохонена пытается расположить в выходном слое похожие кластеры близко друг к другу, формируя таким образом, Топологическую карту (Topological мар).
Сеть Кохонена всегда имеет две слоя: входной слой и слой топологической карты, т.е. выходной слой. Выходной слой сети Кохонена лежит в двумерном пространстве (имеет два измерения). Выходной слой сети состоит из Радиальных элементов (Radial units).
В последнем слое используется функция квадратного корня в качестве функции активации, так что выходное значение представляет собой расстояние между входным образцом и взвешенным вектором выхода.
Вообще то, сеть Кохонена обычно имеет двухмерный выходной слой, однако Trajan также поддерживает сети с одномерным выходным слоем.
Необходимо отметить, что обычно образцы последовательности для сети Кохонена имеют только входные значения. Сети Кохонена не используют выходные значения образцов для обучения, и просто их игнорируют, если таковые существуют.
7.2.2 Создание обучающей и проверочной последовательностей образов
Для повышения качества обучения сети необходимо разделить множество образов для обучения сети на два подмножества:
Подобные документы
Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Анализ применения нейронных сетей для прогнозирования ситуации и принятия решений на фондовом рынке с помощью программного пакета моделирования нейронных сетей Trajan 3.0. Преобразование первичных данных, таблиц. Эргономическая оценка программы.
дипломная работа [3,8 M], добавлен 27.06.2011Принципы организации и функционирования биологических нейронных сетей. Система соединенных и взаимодействующих между собой простых процессоров. Нейронные сети Маккалока и Питтса. Оценка качества кластеризации. Обучение многослойного персептрона.
курсовая работа [1,1 M], добавлен 06.12.2010Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.
реферат [162,9 K], добавлен 30.09.2013Принципы и система распознавание образов. Программное средство и пользовательский интерфейс. Теория нейронных сетей. Тривиальный алгоритм распознавания. Нейронные сети высокого порядка. Подготовка и нормализация данных. Самоорганизующиеся сети Кохонена.
курсовая работа [2,6 M], добавлен 29.04.2009Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.
реферат [158,2 K], добавлен 16.03.2011Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.
контрольная работа [135,5 K], добавлен 30.11.2015Искусственные нейронные сети как вид математических моделей, построенных по принципу организации и функционирования сетей нервных клеток мозга. Виды сетей: полносвязные, многослойные. Классификация и аппроксимация. Алгоритм обратного распространения.
реферат [270,4 K], добавлен 07.03.2009Определение и виды модели, ее отличие от понятия моделирования. Формула искусственного нейрона. Структура передачи сигнала между нейронами. Способность искусственных нейронных сетей к обучению и переобучению. Особенности их применения в финансовой сфере.
реферат [136,2 K], добавлен 25.04.2016Рождение искусственного интеллекта. История развития нейронных сетей, эволюционного программирования, нечеткой логики. Генетические алгоритмы, их применение. Искусственный интеллект, нейронные сети, эволюционное программирование и нечеткая логика сейчас.
реферат [78,9 K], добавлен 22.01.2015