Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по нейро сетям.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
442.88 Кб
Скачать

Р ис. 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 мы смогли ознакомиться, поэкспериментировать и построить простые нейронные сети. Наша сеть проста, но показывает базовые представления о нейросетях.