Файл: Лабораторная работа 2 Дисциплина Программирование нейронных сетей.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 125
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
федеральное государственное бюджетное образовательное учреждение высшего образования«Вологодский государственный университет»Институт математики, естественных и компьютерных наук(наименование института)Кафедра «Автоматики и вычислительной техники»(наименование кафедры)ЛАБОРАТОРНАЯ РАБОТА № 2
Вологда2023 г.Лабораторная работа № 2. Часть 1Персептроны и однослойные персептронные нейронные сетиЦель работы: изучение модели нейрона персептрона и архитектуры персептронной однослойной нейронной сети; создание и исследование моделей персептронных нейронных сетей в системе MATLABПорядок выполнения работы
Рисунок 1. Структурная схема персептронной нейронной сетиМоделирование персептронной нейронной сетиДля формирования однослойного персептрона в системе MATLAB предназначена функция newpnet=newp(PR, S) В формуле входными аргументами выступают:
p3=(wts(2,1)*p1-bias(2))/wts(2,2) % расчет значений входа р4 для построения третей линииp4=(wts(3,1)*p1-bias(3))/wts(3,2)hold onplot(p1,p2,p1,p3,p1,p4);p3 =6.5000-7.5000p4 =6.2000-5.0000%задание функции инициализации для весов и смещения>> net.inputweights{1,1,1}.initFcn = 'rands'; net.biases{1}.initFcn = 'rands'net =Neural Networkname: 'Custom Neural Network'userdata: (your custom info)dimensions:numInputs: 1numLayers: 1numOutputs: 1numInputDelays: 0numLayerDelays: 0numFeedbackDelays: 0numWeightElements: 9sampleTime: 1connections:biasConnect: trueinputConnect: truelayerConnect: falseoutputConnect: truesubobjects:input: Equivalent to inputs{1}output: Equivalent to outputs{1}inputs: {1x1 cell array of 1 input}layers: {1x1 cell array of 1 layer}outputs: {1x1 cell array of 1 output}biases: {1x1 cell array of 1 bias}inputWeights: {1x1 cell array of 1 weight}layerWeights: {1x1 cell array of 0 weights}functions:adaptFcn: 'adaptwb'adaptParam: (none)derivFcn: 'defaultderiv'divideFcn: (none)divideParam: (none)divideMode: 'sample'initFcn: 'initlay'performFcn: 'mae'performParam: .regularization, .normalizationplotFcns: {'plotperform', 'plottrainstate'}plotParams: {1x2 cell array of 2 params}trainFcn: 'trainc'trainParam: .showWindow, .showCommandLine, .show, .epochs,.time, .goal, .max_failweight and bias values:IW: {1x1 cell} containing 1 input weight matrixLW: {1x1 cell} containing 0 layer weight matricesb: {1x1 cell} containing 1 bias vectormethods:adapt: Learn while in continuous useconfigure: Configure inputs & outputsgensim: Generate Simulink modelinit: Initialize weights & biasesperform: Calculate performancesim: Evaluate network outputs given inputstrain: Train network with examplesview: View diagramunconfigure: Unconfigure inputs & outputsevaluate: outputs = net(inputs)>> net = init(net);>> wts = net.IW{1,1,1}, bias = net.b{1};wts = 0.4121 -0.9077 -0.9363 -0.8057 -0.4462 0.6469>> bias = net.b{1}bias = -0.2155 0.3110 -0.6576>> % проверка приналежности входного значения к классу 1 или 0 с помощью ограничивающих линийp1 = [-3; -2];a1 = sim(net,p1)a1 = 1 1 0>> p2 = [5; -1];a2 = sim(net,p2)a2 = 1 0 0>> p3 = [-1; -3];a3 = sim(net,p3)a3 = 1 1 0Рисунок 2 .Линии ограничения для входов персептронаВывод: в ходе выполнения курсовой работы я научился описывать модель персептрона в MATLAB. Ознакомился с моделью нейрона персептрона и архитектурой персептронной однослойной нейронной сети. А также в программе MATLAB я создал и исследовал модель однослойной персептронной нейронной сети, состоящей из 2 нейронов
| Дисциплина | Программирование нейронных сетей |
| Преподаватель | Суконщиков А.А |
| | (уч. степень, звание, должность. Ф.И.О) |
| Выполнил (а) студент | Копытов Р.Л |
| | (Ф.И.О) |
| Группа, курс | РПС-31, 3 курс |
| Оценка по защите | |
| | (подпись преподавателя) |
| Номер варианта | Количество входов | Диапазон значений входов | Количество нейронов в слое |
| 2 | 2 | –7…+7 | 3 |
Рисунок 1. Структурная схема персептронной нейронной сетиМоделирование персептронной нейронной сетиДля формирования однослойного персептрона в системе MATLAB предназначена функция newpnet=newp(PR, S) В формуле входными аргументами выступают:
-
PR – массив диапазона значений вектора входа; -
S – число нейронов в слое.
p3=(wts(2,1)*p1-bias(2))/wts(2,2) % расчет значений входа р4 для построения третей линииp4=(wts(3,1)*p1-bias(3))/wts(3,2)hold onplot(p1,p2,p1,p3,p1,p4);p3 =6.5000-7.5000p4 =6.2000-5.0000%задание функции инициализации для весов и смещения>> net.inputweights{1,1,1}.initFcn = 'rands'; net.biases{1}.initFcn = 'rands'net =Neural Networkname: 'Custom Neural Network'userdata: (your custom info)dimensions:numInputs: 1numLayers: 1numOutputs: 1numInputDelays: 0numLayerDelays: 0numFeedbackDelays: 0numWeightElements: 9sampleTime: 1connections:biasConnect: trueinputConnect: truelayerConnect: falseoutputConnect: truesubobjects:input: Equivalent to inputs{1}output: Equivalent to outputs{1}inputs: {1x1 cell array of 1 input}layers: {1x1 cell array of 1 layer}outputs: {1x1 cell array of 1 output}biases: {1x1 cell array of 1 bias}inputWeights: {1x1 cell array of 1 weight}layerWeights: {1x1 cell array of 0 weights}functions:adaptFcn: 'adaptwb'adaptParam: (none)derivFcn: 'defaultderiv'divideFcn: (none)divideParam: (none)divideMode: 'sample'initFcn: 'initlay'performFcn: 'mae'performParam: .regularization, .normalizationplotFcns: {'plotperform', 'plottrainstate'}plotParams: {1x2 cell array of 2 params}trainFcn: 'trainc'trainParam: .showWindow, .showCommandLine, .show, .epochs,.time, .goal, .max_failweight and bias values:IW: {1x1 cell} containing 1 input weight matrixLW: {1x1 cell} containing 0 layer weight matricesb: {1x1 cell} containing 1 bias vectormethods:adapt: Learn while in continuous useconfigure: Configure inputs & outputsgensim: Generate Simulink modelinit: Initialize weights & biasesperform: Calculate performancesim: Evaluate network outputs given inputstrain: Train network with examplesview: View diagramunconfigure: Unconfigure inputs & outputsevaluate: outputs = net(inputs)>> net = init(net);>> wts = net.IW{1,1,1}, bias = net.b{1};wts = 0.4121 -0.9077 -0.9363 -0.8057 -0.4462 0.6469>> bias = net.b{1}bias = -0.2155 0.3110 -0.6576>> % проверка приналежности входного значения к классу 1 или 0 с помощью ограничивающих линийp1 = [-3; -2];a1 = sim(net,p1)a1 = 1 1 0>> p2 = [5; -1];a2 = sim(net,p2)a2 = 1 0 0>> p3 = [-1; -3];a3 = sim(net,p3)a3 = 1 1 0Рисунок 2 .Линии ограничения для входов персептронаВывод: в ходе выполнения курсовой работы я научился описывать модель персептрона в MATLAB. Ознакомился с моделью нейрона персептрона и архитектурой персептронной однослойной нейронной сети. А также в программе MATLAB я создал и исследовал модель однослойной персептронной нейронной сети, состоящей из 2 нейронов