
- •Криворожский институт Кременчугского университета Экономики, информационных технологий и управления Кафедра Технической кибернетики
- •Г. Кривой Рог
- •Нейронные сети.
- •Классификация нейронных сетей.
- •Характер обучения
- •Теорема об обучении персептрона.
- •Линейная разделимость и персептронная представляемость.
- •Неокогнитрон и инвариантное распознавание образов.
- •Порядок выполнения задания следующий:
- •4 . Проанализировал структурную схему построенной сети, выполнил команду gensim(net) и детализируя блоки с помощью двойного щелчка левой клавиши мыши по рассматриваемому блоку.
- •Р ис. 6. График работы нейронной сети
- •Литература:
Р ис. 6. График работы нейронной сети
8. Вывел на экран поля вычислительной модели и их содержимое, используя функцию celldisp. Убедился в правильности значений полей модели.
ans{1} =
exampleInput: [0 1]
name: 'Input'
processFcns: {}
processParams: {}
processSettings: {1x0 cell}
…
ans{2} =
exampleInput: [0 1]
name: 'Input'
processFcns: {}
processParams: {}
processSettings: {1x0 cell}
…
9. Промоделировал созданную статическую сеть, т. е. сеть без линий задержки, использую групповое и последовательное представление входных сигналов
PG = [0.5 1 ; 1 0.5];
PS= {[0.5 1] [1 0.5]};
PG1 = sim(net, PG);
PS1 = sim(net, PS)
Убедился, что для статической сети групповое и последовательное представления входных сигналов дают один и тот же результат.
10. Дополнил архитектуру созданной нейронной сети линиями задержки для входных сигналов и для сигналов между 2-м и 3-м слоями, превратив, таким образом, статическую сеть в динамическую:
net.inputWeights{1, 1}.delays = [0 1];
net.inputWeights{1, 2}.delays = [0 1];
net.layerWeights{3, 2}.delays = [0 1 2].
11. Скорректировал весовые матрицы:
net.IW{1, 1} = [0.5 0.5];
net.IW{1, 2} = [0.5 0.25];
net.LW{3, 2} = [0.5 0.25 1].
12. Промоделировал динамическую сеть, используя групповое и последовательное представление входных сигналов:
AG = sim(net, PG);
AS= sim(net, PS).
Групповое представление входных сигналов искажает результат, так как в этом случае работа одной сети заменяется параллельной работой двух (по числу последовательностей) одинаковых сетей с нулевыми начальными значениями сигналов на выходах линий задержки.
Рис. 7. График динамической многослойной нейронной сети
13. Вывел на печать поля вычислительной модели и их содержимое, используя функций celldisp.
ans{1} =
exampleInput: [0 0,5]
name: 'Input'
processFcns: {0,5 0,5}
processParams: {0,5 0,25}
processSettings: {1x0 cell}
…
ans{2} =
exampleInput: [0 0,5]
name: 'Input'
processFcns: {0,5 0,5}
processParams: {0,5 0,25 1}
processSettings: {1x0 cell}
…
14. Сохранил содержимое командного окна в М-файле для последующего использования.
Задание 2.
Создать точно такую же динамическую сеть asgnet, используя конструктор класса network без параметров и задавая значения соответствующих полей вычислительной модели с помощью операторов присваивания. Убедиться в идентичности сетей net и asgnet.
Сравнить результаты работы полученных сетей.
Порядок выполнения.
1
.
Создал динамическую сеть asgnet
использую пустой конструктор network
asgnet = network();
2. Задал все параметры и значения полей при помощи присвоения
asgnet.numInputs = 2
asgnet.numLayers = 3
asgnet.biasConnect = [1; 0; 0]
asgnet.inputConnect = [1 1; 0 0 ; 0 0]
asgnet.layerConnect = [0 0 0; 1 0 0; 0 1 0]
asgnet.outputConnect
= [0 0 1]
Рис. 8. Структурная схема нейронной сети asgnet
P1 = [0 0 ; 0 0]
A1 = sim(asgnet, P1)
asgnet.inputs{1}.range = [0 1];
asgnet.inputs{2}.range = [0 1];
PG1 = [0.5 1 ; 1 0.5];
PS1= {[0.5 1] ; [1 0.5]};
AG1 = sim(asgnet, PG1);
AS1= sim(asgnet, PS1);
asgnet.b{1} = - 0,25;
asgnet.inputWeights{1, 1}.delays = [0 1];
asgnet.inputWeights{1, 2}.delays = [0 1];
asgnet.layerWeights{3, 2}.delays = [0 1 2];
asgnet.IW{1, 1} = [0.5 0.5];
asgnet.IW{1, 2} = [0.5 0.25];
asgnet.LW{2, 1} = [0.5];
asgnet.LW{3,
2} = [0.5
0.25 1]
Рис. 9. График работы нейронной сети asgnet
Р ис. 10. График работы нейронной сети net
Даже при помощи простого присвоения и построения по элементам нейронной сети получал идентичные результат работы.
Задание 3. Используя блоки имитационного моделирования инструментального пакета Simulink системы MATLAB, построить модель динамической сети asgnet, провести исследование модели, проверить адекватность её поведения поведению модели net и оформить электронный отчёт с помощью генератора Report Generator.
Был создан отчет при помощи пакета Simulink, сам отчет предоставляется с файлам курсовой работы.
Задание 4. Используя конструктор класса network с параметрами и операторы присваивания для полей и ячеек объектов этого класса, построить, выдать на экран и промоделировать искусственные нейронные сети следующей архитектуры:
а) однослойная сеть с тремя нейронами, тремя двухкомпонентными входами и одним целевым выходом;
t1 = network (3, 1, [1], [1 1 1],[1], [1], [1])
Рис. 11.Результат выполнения
Рис. 12. Однослойная сеть с тремя нейронами
б) трёхслойная сеть с прямой передачей сигналов и с тремя нейронами в каждом слое; количество входов - три с двумя, пятью и тремя компонентами; для всех слоёв имеется смещение; выход -один;
t2 = network (3, 3, [1 ; 1; 1], [1 0 0; 1 0 0; 1 0 0],[1 0 0; 1 0 0; 1 0 0], [1 0 0], [1 0 0])
Рис. 13.Результат выполнения
Рис. 14. Трехслойная сеть с прямой передачей сигналов
в) трёхслойная сеть, в которой каждый слой соединён со всеми остальными; вход - один и состоит из двух компонентов; количество нейронов в каждом слое - три; слои имеют смещения;
t3 = network (3, 3, [1 ; 0; 0], [1 1 1; 1 1 1; 1 1 1],[1 1 1; 1 1 1; 1 1 1], [1 0 0], [1 0 0])
Рис. 15.Результат выполнения
Р
ис.
16. трёхслойная сеть, в которой каждый
слой соединён со всеми остальными;
г) трёхслойная динамическая сеть с тремя нейронами в каждом слое; число входов - три, из них каждый состоит из трёх компонентов; имеются смещения на всех слоях; линии задержки задерживают сигналы на один и два такта и включены между всеми слоями, а также на входе;
t3 = network (3, 3, [1 ; 0; 0], [1 1 1; 1 1 1; 1 1 1],[1 1 1; 1 1 1; 1 1 1], [1 0 0], [1 0 0])
Рис. 17.Результат выполнения
Рис. 18. трёхслойная динамическая сеть
t3.inputWeights{1, 1}.delays = [0 1];
t3.inputWeights{1, 2}.delays = [0 1];
t3.inputWeights{1, 3}.delays = [0 1];
t3.inputWeights{2, 1}.delays = [0 1];
t3.inputWeights{2, 2}.delays = [0 1];
t3.inputWeights{2, 3}.delays = [0 1];
t3.inputWeights{3, 1}.delays = [0 1 2];
t3.inputWeights{3, 2}.delays = [2 1 2];
t3.IW{1, 1} = [0.5 0.8];
t3.IW{1, 2} = [0.5 0.2];
t3.IW{1, 3} = [0.2 1];
t3.IW{2, 1} = [0.2 1];
t3.IW{2, 2} = [0.5 0.2];
t3.IW{2, 3} = [0.5 1];
t3.LW{3, 1} = [0.5 0.2 0.1];
t3.LW{3, 2} = [0.1 0.2 0.1];
t3.LW{3, 3} = [0 0.2 1];
Рис. 19. График трехслойной динамической сети
д) квадратная сеть с десятью слоями и десятью нейронами в каждом слое; десять векторов подключаются по одному к каждому слою; имеется десять выходов от всех слоёв сети; смещения подключены к каждому слою.
P1 = [0; 0; 0; 0; 0; 0; 0; 0; 0; 0];
P2 = {
[1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 1 1 1 1 1 1] };
P3 = [1 1 1 1 1 1 1 1 1 1];
t5 = network(10, 10, P1, P2, P2, P3, P3)
Нейронная сеть получилась достаточно большая по массивности связей и слоев, по этому внешний вид схемы был сохранен в фай task3.mdl.
Выводы
Искусственные нейронные сети используются для изучения свойств биологических нейронных сетей, а также для решения задач в сфере искусственного интеллекта.
Классификация нейронных сетей по характеру обучения делит их на:
нейронные сети, использующие обучение с учителем и нейронные сети, использующие обучение без учителя.
Сети прямого распространения – все связи направлены строго от входных нейронов к выходным. К таким сетям относятся, например: простейший персептрон и многослойный персептрон. Реккурентные нейронные сети – сигнал с выходных нейронов или нейронов скрытого слоя частично передается обратно на входы нейронов входного слоя.
Используя математический пакет MatLab мы смогли ознакомиться, поэкспериментировать и построить простые нейронные сети. Наша сеть проста, но показывает базовые представления о нейросетях.