Обучение линейного нейрона

Автор работы: Пользователь скрыл имя, 16 Июня 2015 в 21:05, курсовая работа

Краткое описание

Биологический нейрон состоит из тела диаметром от 3 до 100 мкм, содержащего ядро (с большим количеством ядерных пор) и другие органеллы (в том числе сильно развитый шероховатый ЭПР с активными рибосомами, аппарат Гольджи), и отростков. Выделяют два вида отростков. Аксон — обычно длинный отросток, приспособленный для проведения возбуждения от тела нейрона. Дендриты — как правило, короткие и сильно разветвлённые отростки, служащие главным местом образования влияющих на нейрон возбуждающих и тормозных синапсов (разные нейроны имеют различное соотношение длины аксона и дендритов). Нейрон может иметь несколько дендритов и обычно только один аксон. Один нейрон может иметь связи с 20-ю тысячами других нейронов. Кора головного мозга человека содержит 10—20 миллиардов нейронов.

Содержание

Введение
3
1.
Аналитическая часть


1.1
Содержательная и математическая постановка решаемой задачи
5

1.2
Краткое описание возможностей ПС MATLAB 6.1 и тулбокса NNT
12

1.3
Краткое описание возможностей и особенностей использования приложений Notebook
17

1.4
Требования к разрабатываемому приложению
22
2.
Практическая часть
24
Заключение
29
Список использованных источников
30

Прикрепленные файлы: 1 файл

obuchenie_lineinogo_neirona (1).doc

— 285.00 Кб (Скачать документ)

 

  1. Надежность - поведение приложения при наступлении нештатных ситуаций, например, автоматический перезапуск, восстановление работы, дублирование важных данных, резервирование логики;

 

  1. Требования к долговременному хранению результатов работы приложения, например, использование базы данных, требования ко времени продолжительности хранения данных;

 

  1. Масштабируемость - требования к горизонтальному или вертикальному масштабированию приложения;

 

  1. Требования к удобству использования приложения с точки зрения использования, поддержки;

 

  1. Требования к безопасности работы или использования приложения, связанные с разграничением доступа, работой с приватными данным, снижения подверженности рискам от внешних атак;

 

  1. Требования к конфигурируемости работы приложения, взаимодействия и расположения компонентов;

 

  1. Требования к производительности решения, количество одновременно работающих пользователей, обслуживаемых транзакций, времени реакции, продолжительности вычислений, скорости и пропускной способности каналов связи;

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Практическая часть

Обучение линейного нейрона (demolin2)

Training a Linear Neuron

A linear neuron is trained to respond to specific inputs with target outputs.

 

 Обучение Линейного Нейрона

 Линейный нейрон обучается реагировать на конкретные входы с целевыми выходами.

 

 

P defines two 1-element input patterns (column vectors).  T defines associated

1-element targets (column vectors).  A single input linear neuron with a bias

can be used to solve this problem.

 

Сформируем последовательности векторов входа и цели (2 одноэлементных вектора). Единственный входной линейный нейрон с отклонением может использоваться, чтобы решить эту проблему.

 

>> P = [1.0 -1.2];

>> T = [0.5 1.0];

 

 

ERRSURF calculates errors for a neuron with a range of possible weight and

bias values.  PLOTES plots this error surface with a contour plot underneath.

The best weight and bias values are those that result in the lowest point on

the error surface.

 

 ERRSURF вычисляет ошибки для нейрона с диапазоном весов и величиной смещения. PLOTES графически изображает поверхность ошибок и контур ошибок.

 Лучший вес и величина смещения - те, которые приводят к самому низкому показателю на поверхности ошибок.

 

w_range = -1:0.2:1;  b_range = -1:0.2:1;

ES = errsurf(P,T,w_range,b_range,'purelin');

plotes(w_range,b_range,ES);

 

 

MAXLINLR finds the fastest stable learning rate for training a linear network.

For this demo, this rate will only be 40% of this maximum.  NEWLIN creates a

linear neuron.  NEWLIN takes these arguments: 1) Rx2 matrix of min and max

values for R input elements, 2) Number of elements in the output vector, 3) Input delay vector, and 4) Learning rate.

 

MAXLINLR вычисляет максимальные значения параметра скорости обучения для линейной сети.

В данном случае это значение составит 40 % от максимальной скорости. NEWLIN создает линейную нейронную сеть.

NEWLIN выбирает следующие аргументы: 1) массив размера R*2 минимальных и максимальных значений для R векторов входа 2) Ряд элементов в векторе цели 3) Входной вектор задержки 4) Изучение уровня.

 

>> maxlr = 0.40*maxlinlr(P,'bias');

>> net = newlin([-2 2],1,[0],maxlr);

 

 

 Override the default training parameters by setting the performance goal.

 Отмените параметры обучения по умолчанию и установите исполнительную цель.

 

>> net.trainParam.goal = .001;

 

 

 

To show the path of the training we will train only one epoch at a time and

call PLOTEP every epoch.  The plot shows a history of the training.  Each dot

represents an epoch and the blue lines show each change made by the learning

rule (Widrow-Hoff by default).

 

Чтобы показать путь обучения, мы будем обучать только одну эпоху за один раз и «вызывать» PLOTEP каждую эпоху. График показывает историю обучения. Каждая точка представляет эпоху, а синие линии показывают каждое изменение, произведенное изученным правилом (Видроу-Хофф по умолчанию).

 

 [net,tr] = train(net,P,T);

net.trainParam.epochs = 1;

net.trainParam.show = NaN;

h=plotep(net.IW{1},net.b{1},mse(T-sim(net,P)));    

[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},tr.perf(2),h);

      r.epoch=[r.epoch epoch];

      r.perf=[r.perf tr.perf(2)];

      r.vperf=[r.vperf NaN];

      r.tperf=[r.tperf NaN];

   else

      break

   end

end

tr=r;

 

 

 

The train function outputs the trained network and a history of the training

performance (tr).  Here the errors are plotted with respect to training

epochs: The error dropped until it fell beneath the error goal (the black

line).  At that point training stopped.

 

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

 

plotperf(tr,net.trainParam.goal);

 

 

 

 

 

 

Now use SIM to test the associator with one of the original inputs, -1.2, and

see if it returns the target, 1.0.  The result is very close to 1, the target.

This could be made even closer by lowering the performance goal.

 

Теперь используем функцию SIM, чтобы промоделировать и протестировать сеть.

 

p = -1.2;

a = sim(net, p)

 

 

 

 

 

 

 

 

Заключение

 Согласно общепринятому в науке принципу, если более сложная модель не дает лучших результатов, чем более простая, то из них следует предпочесть вторую. В терминах аппроксимации отображений самой простой моделью будет линейная, в которой подгоночная функция определяется гиперплоскостью. В задаче классификации гиперплоскость размещается таким образом, чтобы она разделяла собой два класса (линейная дискриминантная функция); в задаче регрессии гиперплоскость должна проходить через заданные точки. Линейная модель обычно записывается с помощью матрицы NxN и вектора смещения размера N.

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

  В пакете ST Neural Networks имеется возможность создать линейную сеть и обучить ее с помощью стандартного алгоритма линейной оптимизации, основанного на псевдообратных матрицах (SVD) (Golub and Kahan, 1965). Разумеется, метод линейной оптимизации реализован также в модуле Множественная регрессия системы STATISTICA; однако, линейные сети пакета ST Neural Networks имеют то преимущество, что здесь Вы можете в единой среде сравнивать такие сети с "настоящими" нейронными сетями.

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

 

Список использованной литературы

  1. Медведев В. С. Нейронные сети / В. С. Медведев, В. Г. Потемкин. – М.: Диалог МИФИ, 2009.
  2. Дьяконов В. П. MATLAB 6.0 с пакетами расширений /В. П. Дьяконов, И. В. Абраменкова, В. В. Круглов. – М: Нолидж,2008
  3. Комашинский В. И. Нейронные сети и их применение в системах управления и связи / В. И. Комашинский, Д. А. Смирнов. – М.: Горячая линия – Телеком, 2009.
  4. Минский, М., Пейперт, С. Персептроны. — М.: Мир, 2007. — 261 с.
  5. Яковлев С. С. Система распознавания движущихся объектов на базе искусственных нейронных сетей // ИТК НАНБ. — Минск: 2008. — С. 230—234.
  6. Хайкин, С. Нейронные сети: Полный. — 2-е изд. — М.: «Вильямс», 2006. — 1104 с.
  7. Брюхомицкий, Ю. А. Нейросетевые модели для систем информационной безопасности: Учебное пособие. — Таганрог: Изд-во ТРТУ, 2008. — 160 с.
  8. Роберт Каллан Основные концепции нейронных сетей. — 1-е. — «Вильямс», 2007. — С. 288.

 

 


 



Информация о работе Обучение линейного нейрона