Автор работы: Пользователь скрыл имя, 04 Июня 2013 в 15:41, курсовая работа
Идея нейронных сетей родилась в рамках теории искусственного интеллекта, в результате попыток имитировать способность биологических нервных систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга. Структурной единицей, из которойсостоит любая нейронная сеть, является нейрон.
Искусственная нейронная сеть — это некоторая математическая абстракция, способная обучаться на примерах и решать неформализованные задачи.
ИНС представляет собой совокупность искусственных нейронов, организованных слоями. При этом выходы нейронов одного слоя соединяются с входами нейронов другого слоя.
ВСТУП……………………………………………………………………… 4
АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ…………………………………… 6
1.1. Опис основних елементів моделі………………………………. 6
1.2. Опис варіантів функціонування системи……………………….. 7
ПОБУДОВА ДІАГРАМ ПРОЕКТОВАНОЇ МОДЕЛІ…………….…… 8
2.1.Створення діаграми варіантів використання……………………… 8
2.2. Створення діаграми послідовності……………………………… 9
2.3. Створення діаграми класів………………………………………… 11
2.4. Створення діаграми активності………………………………. 14
ВИСНОВКИ ТА РЕКОМЕНДАЦІЇ…………………………………... 16
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ…………………………... 17
dW = lr*e*pn;
db = lr*e.
При работе с моделями линейных сетей могут возникнуть ситуации, когда число настраиваемых параметров недостаточно, чтобывыполнить все условия; в этом случае сеть считается переопределенной. Если число параметров слишком велико, сеть считается недоопределенной. И в том и в другом случае метод наименьших квадратовосуществляет настройку, стремясь минимизировать ошибку сети.
Архитектура однослойной линейной сети полностью определяется задачей, которая должна быть решена, причем число входов сети и число нейронов в слое определяются числом входов и выходов задачи соответственно.
Существуют
три парадигмы обучения: "с
учителем", "без учителя" (самообучение)
и смешанная. В первом случае нейронная
сеть располагает правильными
Теория
обучения рассматривает три
При обучении модифицируются только веса "победившего" нейрона. Эффект этого правила достигается за счет такого изменения сохраненного в сети образца (вектора весов связей победившего нейрона), при котором он становится чуть ближе ко входному примеру. На рис. 3 дана геометрическая иллюстрация обучения методом соревнования. Входные векторы нормализованы и представлены точками на поверхности сферы. Векторы весов для трех нейронов инициализированы случайными значениями. Их начальные и конечные значения после обучения отмечены Х на рис. 3а и 3б соответственно. Каждая из трех групп примеров обнаружена одним из выходных нейронов, чей весовой вектор настроился на центр тяжести обнаруженной группы.
Рис. 5
Пример обучения методом соревнования: (а) перед обучением; (б) после обучения.
Можно заметить, что сеть никогда
не перестанет обучаться, если параметр
скорости обучения не равен 0. Некоторый
входной образец может
В Таблице
1 представлены различные алгоритмы
обучения и связанные с ними архитектуры
сетей (список не является исчерпывающим).
В последней колонке
Таблица 1 - Алгоритмы обучения и связанные с ними архитектуры сетей
NeuralNetworkToolbox– это пакет расширения MATLAB, содержащий средства для проектирования, моделирования, разработки и визуализации нейронных сетей. Нейросетевые технологии позволяют решать такие задачи, решение которых классическими формальными методами затруднено или не возможно. Пакет обеспечивает всестороннюю поддержку типовых нейросетевых парадигм и имеет открытую модульную архитектуру. Пакет содержит функции командной строки и графический интерфейс пользователя для быстрого пошагового создания нейросетей. Кроме этого NeuralNetworkToolbox обеспечивает поддержку Simulink, что позволяет моделировать нейросети и создавать блоки на основе разработанных нейросетевых структур.
NNToolпозволяет создавать следующие сети:
№ п/п |
Тип сети |
Название сети |
Число слоев |
Обучаемые параметры |
1 |
Competitive |
Конкурирующая сеть |
1 |
IW{1, 1}, b{ 1} |
2 |
Cascade-forwardbackprop |
Каскадная сеть с прямым распространением сигнала и обратным распространением ошибки |
2 |
IW{1, 1}, b{1} LW{2, 1} IW{2, 1}, b{2} |
3 |
Elmanbackprop |
Сеть Элмана с обратным распространением ошибки |
2 |
IW{1, 1}, b{1} LW{2, 1}, b{2} LW{2, 1}, |
4 |
Feed-forwardbackprop |
Сеть с прямым распространением сигнала и обратным распространением ошибки |
2 |
IW{1, 1}, b{1} LW{2, 1}, b{2} |
5 |
Timedelaybackprop |
Сеть с запаздыванием и обратным распространением ошибки |
2 |
IW{1, 1}, b{1}, LW{2, l},b{2} |
6 |
Generalizedregression |
Обобщенная регрессионная сеть |
2 |
IW{1, 1}, b{1}, LW{2, l} |
7 |
Hopfield |
Сеть Хопфилда |
1 |
LW{l, l},b{l} |
8 |
Linearlayer (design) |
Линейный слой (создание) |
1 |
IW{1, 1}, b{1} |
9 |
Linearlayer (train) |
Линейный слой (обучение) |
1 |
IW{1, 1}, b{1} |
10 |
LVQ |
Сеть
для классификации входных |
2 |
IW{1, 1}, LW{2,1} |
11 |
Perceptron |
Персептрон |
1 |
IW{1, 1), b{l} |
12 |
Probabalistic |
Вероятностная сеть |
2 |
IW{1, 1}, b{l}, LW{2, 1} |
13 |
Radialbasis (exactfit) |
Радиальная базисная сеть с нулевой ошибкой |
2 |
IW{ 1, 1}, b{ 1}, LW{2, 1} |
14 |
Radialbasis (fewerneurons) |
Радиальная базисная сеть с минимальным числом нейронов |
2 |
IW{1, 1}, b{ 1}, LW{2, 1}, b{2} |
15 |
Self-organizingmap |
Самоорганизующаяся карта Кохонена |
1 |
IW{1, 1} |
Линейный нейрон обучается реагировать на конкретные входы с целевыми выходами.
Сформируем последовательности векторов входа и цели (2 одноэлементных вектора). Единственный входной линейный нейрон с отклонением может использоваться, чтобы решить эту проблему.
P = [1.0 -1.2];
T = [0.5 1.0];
ERRSURF вычисляет ошибки для нейрона с диапазоном весов ивеличиной смещения.PLOTESграфически изображает поверхность ошибоки контур ошибок.
Лучший вес и величина смещения– те, которые приводят к самому низкому показателю на поверхности ошибок.
w_range = -1:0.2:1; b_range = -1:0.2:1;
ES = errsurf(P,T,w_range,b_range,'
plotes(w_range,b_range,ES);
MAXLINLR вычисляет максимальные значения параметра скорости обучения для линейной сети.В данном случае это значение составит 40% от максимальной скорости. NEWLIN создает линейную нейронную сеть.NEWLIN выбирает следующие аргументы:
maxlr = 0.40*maxlinlr(P,'bias');
net = newlin([-2 2],1,[0],maxlr);
Отменим параметры обучения по умолчанию и установим исполнительную цель.
net.trainParam.goal = .001;
Чтобы показать путь обучения, будем обучать только одну эпоху за один раз и «вызывать» PLOTEP каждую эпоху. График показывает историю обучения. Каждая точка представляет эпоху, а синие линии показывают каждое изменение, произведенное изученным правилом (Видроу-Хофф по умолчанию).
[net,tr] = train(net,P,T);
net.trainParam.epochs = 1;
net.trainParam.show = NaN;
h=plotep(net.IW{1},net.b{1},
[net,tr] = train(net,P,T);
r = tr;
epoch = 1;
while true
epoch = epoch+1;
[net,tr] = train(net,P,T);
if length(tr.epoch) > 1
h = plotep(net.IW{1,1},net.b{1},
r.epoch=[r.epoch epoch];
r.perf=[r.perftr.perf(2)];
r.vperf=[r.vperfNaN];
r.tperf=[r.tperfNaN];
else
break
end
end
tr=r;
Обучающая функция выводит обучаемую сеть и историю обучения. Здесь ошибки изображены относительно обучения эпохи: ошибка уменьшаетсядо тех пор, пока не достигнет ошибочной цели (черная линия). В этой точке обучение останавливается.
plotperf(tr,net.trainParam.
Теперь используем функцию SIM, чтобы промоделировать и протестировать сеть.
p = -1.2;
a = sim(net, p)
ЗАКЛЮЧЕНИЕ
Согласно
общепринятому в науке
На языке
нейронных сетей линейная модель
представляется сетью без промежуточных
слоев, которая в выходном слое содержит
только линейные элементы (то есть элементы
с линейной функцией активации). Веса
соответствуют элементам
Линейная сеть является хорошей точкой отсчета для оценки качества построенных Вами нейронных сетей. Может оказаться так, что задачу, считавшуюся очень сложной, можно успешно решить не только нейронной сетью, но и простым линейным методом. Если же в задаче не так много обучающих данных, то, вероятно, просто нет оснований использовать более сложные модели.
Список использованной литературы