Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Зертханалық жұмыс. Сабақтың мақсаты - белгілі бір есепті шығару үшін нейронды-желілінің негізгі қадамдарын қарастыру



«Бірбағытты желі құру»

Сабақтың мақсаты - белгілі бір есепті шығару үшін нейронды-желілінің негізгі қадамдарын қарастыру. 4 негізгі қадамды қарастыруға болады.

Тапсырма:

1.Мәлімерді желінің жаттығуына дайындау

2.Желіні құру.

3.Желіні оқыту.

4.Жжеліні тестілеу.

5.Желіні модельдеу. (шығару керек есепке желіні қолдану.)

6. С, A және S параметрлер мәндерін өзгерту керек

Мысал ретінде келесі есепті қарастырайық.: функцияның бірнеше мәнінен тұратын массив берілген (0,1) интервалында (S>0).осы мәндерді желінің кірісінде енгізгеннен кейін, желінің шығысында С, A және S параметр мәндері шығатындай нейронды желі құру керек.

Желіні үйрету үшін мәліметтерді дайындау. Ең алдымен кіріс массивінің өлшемін анықтап алу керек. Функция мәнін N=21-ге тең деп алайық, сонымен қатар массивтің кіріс векторы ретінде y функциясындағы х =0.05; …1.0 нүктелеріндегі мәнді анықтап алу керек. Желіні оқыту кезінде вектор массивтерінің құрамын С,A және S параметрлерін алу керек. Осы параметрлердің әр бірін жинақтау сәйкес кіріс векторы үшін үлгі-вектор болып табылады.

Кіріс және эталонды массивті дайындау үшін келесі алгоритмді қолданамыз. Кейдейсоқ жағдайдағы С,A S-ның вектор- үлгі компонентінің мәнін таңдаймыз және кіріс вектордың сәйкес компонентті табамыз. Осы тәртіпті М рет қайталаймыз және кіріс векторының массивін NxM матрицаның өлшемі түрінде және вектор- үлгі массивін біздің жағдайымызда 3хМ өлшемі ретінде аламыз.алынған массивті біз желіні оқыту үшін қолдана аламыз.

Оқытылатын массивтің құрылымын жасау алдында, массивтің кейбір құрамымен танысып алу керек.

С,A S параметрлерінің өлшеу диапазоны. C,A,S параметрлерінің өлшеу диапазонын (0.1, 1) тең деп аламыз. 0 –ге жақын және 0-дің өзін болатын мәндерді байланыстан алып тастаймыз, себебі S=0 болған кезде функция анықталмаған. Екінші шектеу әдеттегі беріліс функцияны қолдану кезінде, кіріс және шығыс векторының компоненттері (-1,1) диапазонынан аспау керек. Ары қарай біз нормалау әдісімен танысамыз, ол осы шектеуді айналып өтіп кете алады.

Кіріс және үлгіні векторының мөлшерін М=100 ге тең деп алайық. Бұл оқыту үшін жетеді, ал оқыту үрдісі көп уақытты алады. Тестік массивті және үлгілі кіріс массивін құрылымын жасайтын (кіріс массив) және(Т эталоны) mas1: % бағдарламасының көмегімен дайындаймыз:

P=zeros(100,21);
T=zeros(3,100);
x=0:5.e-2:1;
for i=1:100
c=0.9*rand+0.1;
a=0.9*rand+0.1;
s=0.9*rand+0.1;
T(1,i)=c;
T(2,i)=a;
T(3,i)=s;
P(i,:)=c*exp(-((x-a).^2/s));
end;
P=P'.

Осы бағдарламаның көмегімен M=100 кіріс вектор-бағанасынан Р матрицасы құрылады, ол әрқайсысы 21 шығыс функциясының C,A,S, параметрлерінің кездейсоқ мәнімен таңдалынған нүктеден құрылған және 100 эталонды вектор-бағанасындағы әрқайсысы 3 эталонды мәнге сәйкесқұрылған Т матрица эталоны құрылады. Р және Т матриц

асы желіні оқыту кезінде қолданылатын болады. Осы бағдарламаны әрбір жіберген кезде кіріс және эталонды вектор компоненттерінің жаңа мәндерінен массивтер құрылатын болады.

Желіні құру. Жалпы айтқанда, арнайы бір есепті шешу үшін желінің сәулетін таңдау жасаушының тәжірибесіне негізделеді. Сондықтан төменде ұсынылған желі сәулеті мүмкін болатын конфигурацияның жиынының бір түрі болып табылады. Есепті шешу үшін кері таратылатын үшқабатты желі құрамыз, өзіне кіріс қабатында (кіріс векторының компоненттер санына байланысты) logsig беріліс функциясымен 21 нейроннан, екінші қабатында logsig беріліс функциясымен 15 нейроннан және шығысында purelin беріліс функциясымен (шығыс векторының санына байланысты) 3 нейроннан тұрады. Сонымен қатар оқытылатын алгоритм ретінде Levenberg-Marquardt (trainlm) алгоритмі таңдалған. Бұл алгоритм тез оқытылуды қажет етеді, бірақ қаржыны көп қажет етеді. Егер осы алгоритмді орындау үшін оперативті жады жетпей жатса, басқа алгоритмдерді (trainbfg, trainrp, trainscg, traincgb, traincgf, traincgp,trainoss,traingdx) қолдануға болады. Бағдарламаның ұсынысымен trainlm қолданылады. Көрсетілген желі процедураның көмегімен құрылады:


net=newff(minmax(P),[21,15,3],{'logsig' 'logsig' 'purelin'},'trainlm');

бірінші аргумент - Mx2 минималды және максималды мәнді матрицасының кіріс векторының компоненті minmax процедурасының көмегімен анықталады. Newff процедурасының орындалу нәтижесі – берілген конфигурацияның net нейронды желісі нысана болып табылады. Желіні mat түрдегі дискіде save командасымен сақтауға болады, қайтадан load командасымен жүктеуге болады. Маңызды ақпаратты help командасын қолдана отырып білуге болады.

Желіні оқыту. Келесі қадам – құрылған желіні оқыту. Оқытудың алдында оқыту параметрлерін беру керек. sse функциялау бағасына функция береміз.

net.performFcn='sse';

Бұл жағдайда баға ретінде үлгіден шығыс желінің айырмашылығы квадратты қосындысы анықталады. Оқытылудың аяқталуына критерий –оқытылу аяқталғаннан кейін ауытқу мәнін береміз:

net.trainParam.goal=0.01;

оқытылу айналымының максималды өлшемін береміз. Бұл айналым орындалғаннан кейін оқытылу аяқталады:

net.trainParam.epochs=1000;

Енді оқытуды бастай беруге болады: [net,train]=train(net,P,T).

Оқыту үрдісі функциялау бағасын оқыту айналым ретіне тәуелділік графигімен көрсетіледі (11.1-сурет).

11.1-сурет. Оқытудың нәтижесі

Желінің оқытылуының аяқталуын көреміз. Енді осы желіні nn1.mat: save nn1 net файлында сақтауға болады;

Желіні бақылау. Нейронды желіні қолданудан бұрын, кіріс вектор массивын есептеу желісінде нәтиженің сенімділік деңгейін анықтау қажет. Тесттік массив ретінде оқыту кезінде қолданған массив компонентіне ұқсамайтын компонент қолдану қажет. Біздің жағдайда бақылау массив алу үшін тағы mas1 бағдарламасын қолдану жеткілікті.

Жұмыс нәтижесінің сенімділігін бағалау үшін, кіріске бақылау массивтің мәні берілген кезде, желінің шығысындағы эталон мәнімен салыстырған кейін алынған регрессионды анализ нәтижесін қолдануға болады. MATLAB жүйесінде осы жағдай үшін postreg функциясын қолдануға болады. Келесі алынған команда айтылған процедураны көрсетеді:

>> mas1 – P бақылау массив құру;

>> y=sim(net,P) – бақылау массивтің өңдеу;

>> [m,b,r]=postreg(y(1,:),T(1,:)) – өңдеу нәтижесінің регрессионды анализі.

С үлгі векторының компонентін сәйкес желінің шығыс вектор компонентімен салыстыру. 11. 2-суретте барлық нүктелер түзу сызық бойында – ол бақылау массивте жұмыстың дұрыстығын көрсетеді.

11.2-сурет. С үлгі векторының компонентін сәйкес желінің шығыс вектор компонентімен салыстыру

>> [m,b,r]=postreg(y(2,:),T(2,:));

11.3-сурет. А үлгі векторының компонентін сәйкес желінің шығыс вектор компонентімен салыстыру

>> [m,b,r]=postreg(y(3,:),T(3,:));

11.4-сурет. S үлгі векторының компонентін сәйкес желінің шығыс вектор компонентімен салыстыру

11.2-11.4 суреттерінде көрсетілгендей біздің желі барлық үш шығыс параметрлеріне берілген тапсырманы қателіксіз орындайтыны көрініп тұр. Оқытылған желіні net дискісіндегі nn1.mat save nn1 net файлына сақтаймыз.





Дата публикования: 2014-12-11; Прочитано: 481 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...