Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба перевод матлаб.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.07 Mб
Скачать

Введём переменную значения ошибки запустим функцию адаптации персептрона в цикле, пока ошибка не

обратится в 0:

>> while (sse(E))

[net,Y,E]=adapt(net,P,T);

linehandle = plotpc(net.IW{1},net.b{1}); drawnow;

end;

  • Линию решения, разделяющую на класса точек, см. на рисунке 5 (линии, полученные в процессе обучения, не показаны).

  • Рисунок 5 – Линия решения

    Проверяем работу адаптированной сети на тестовом множестве P1:

>> P1=[0.2 0.4 0.4 0.5 0.7;

2 0.5 3 0.5 0.5]

P1 = 0.2000 0.4000 0.4000 0.5000 0.7000

2.0000 0.5000 3.0000 0.5000 0.5000

>> sim(net,P1)

ans = 0 1 0 1 1

% Сеть справилась с задачей классификации новых данных успешно.

3. Поработайте с функциями ошибки, графическими и др. приведенными в лабораторной работе, но не использованными в контрольном примере функциями самостоятельно.

Әдебиет нег. 8 [8--14], қос. 15 [1-62]

Бақылау сұрақтары

  1. Персептрон дегеніміз не? Сызық бойынша бөліп алатын есеп нені білдіреді?

  2. Персептронды құруға, адаптациялауға және қолдануға арналған Matlab функцияларын келтіріңіз.

  3. Matlab-та нейрожелiнiң жұмыс сапасын қалай бағалауға болады?

  4. Matlab-та нейрожелілермен жұмыс істеу үшін қандай графикалық функциялары бар?

Вариант 1 Вариант 2

Вариант 3 Вариант 4

Вариант 5 Вариант 6

Вариант 7 Вариант 8

Вариант 9 Вариант 10

№ 3 Зертханалық жұмыс

Тақырыбы. Көпқабатты нейрондық желі

3.1 Жұмыс мақсаты: Matlab Neural Networks пакеттегі функциялар көмегімен қөпқабатты нейрондық желіні құруға, оқытуға және пайдалануға үйрену.

3.2 Алгоритм обратного распространения ошибки

Алгоритм обратного распространения используется для обучения многослойных сетей с последовательными связями (см. схему многослойной нейронной сети на рисунке 6)

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

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

Рисунок 6 – Многослойная нейронная сеть

Әдiстемелiк ұсыныстар.

3.2 Нейрожелілік әдістің негізінде есепті шешу кезеңдері.

Нақты есептiң шешiмiн алу үшiн нейрожелілік әдістің негізгі кезеңдері келесідей болады:

  1. Желiнi (жаттығу ) үйрету үшiн мәлiметтердi әзiрлеу . 2. Желіні жасау. 3. Желіні үйрету. 4. Желіні тестілеу. 5. Желіні модельдеу (Қойылған есептiң шешiмiн алу үшiн құрылған желіні пайдалану.)

Көпқабатты нейрожеліні (НЖ) құру функциялары.

net = newff(PR, [S1 S2…SNI], {TF1 TF2…TFNI}, BTF, BLF, PF) қателерді кері бағытпен тарату әдісі бойынша "классикалық" көпқабатты нейрожелісін құру,

PR– R - кіріс элементтердiң ең төменгi және максимал мәндерiнен тұратын R х 2 матрицасы,

Si – Ni қабаттар үшін i-ші жасырын қабаттын өлшемі,

Tfi – i-ші қабаттағы нейрондарды ақтивациялау үшін функция, үнсіз бойынша 'tansig',

BTF –желіні үйрету функциясы , үнсіз бойынша 'traingd',

BLF – салмақтар мен ауытқуны баптау функциясы, үнсіз бойынша 'learngdm',

PF – қатенiң функциясы, үнсіз бойынша 'mse'.

Нейрожеліні оқыту функциялары

[net, tr] = train(net, P, T) – net.trainFcn және net.trainParamнiң қойылымдарына сәйкес НЖ үйренуін жүзеге асыратын функция. tr – үйрету үрдісі орындалғаны туралы алынатын ақпарат (циклдер саны және оқытудың қателіктері). P – енгізілетін деректер массиві, T –шығарылатын мақсаттық мәндердің массиві.

Қолданушы тiлегi бойынша берілген конфигурациямен НЖ-ні үйрететін алгоритмін орнатуға мүмкiндiк беретін қосалқы функциялар, мысалы:

[net, tr] = traingd(net, …) – қателiктi керi бағытпен тарату алгоритмін орындайтын функция.

[net, tr] = trainbfg(net, …) – қателiктi керi бағытпен тарату квазиньютононның алгоритмін орындайтын оқыту функциясы.

[net, tr] = trainrp(net, …) – қателiктi керi бағытпен тарату серпiмдi алгоритмін iске асыратын функция.

[net, tr] = trainlm(net, …) – Левенберг-Марквардтаның ықшамдау алгоритмін пайдаланып НЖ –нің салмақтарын және ауытқуларын қайтаратын функция.