Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Інтелектуальні системи Методичні вказівки до ви...doc
Скачиваний:
7
Добавлен:
25.11.2019
Размер:
4.88 Mб
Скачать

Завдання на лабораторну роботу.

  1. В середовищі Matlab побудувати та навчити нейронну мережу для апроксимації значень функцій.

  2. Дослідити вплив коефіцієнта навчання та кількість ітерацій навчання (епох) на якість роботи нейронної мережі.

Методика виконання лабораторної роботи.

В лабораторній роботі виконуються дві задачи дослідження. В обох варіантах команди виконуються або через командну строку середовища Matlab, або створюється М-файл сценарію.

Перша задача. Програма для реалізації мережі представлена наступними командами:

time1 = 0: 0.05: 4;

time2 = 4: 0.05: 6;

time = [time1 time2]; % вхідні дані (аргумент)

T = [sin(4 * рi * time1) sin(рi * time2 + 45)]; % вхідні дані (функція)

P = delaysig(T,1,5); % формування нейронної мережі

[W b] = initlin(P,T); % ініціалізація нейронної мережі

lp = 0.1; % значення коефіцієнта навчання

[Y e W b] = adaptwh(W, b, P, T, lp); % навчання нейронної мережі

plot(time, T, ‘g’, time, Y, ‘r’)

figure

plot(time, Y, ‘b’, time, e, ‘r’)

Де W – вагові коефіцієнти нейронної мережі, b – зміщення, e – помилка навчання.

Змінюючи значення коефіцієнта навчання в межах [0...1] з кроком 0.2, зафіксувати залежності зміни похибки від часу та виходу мережі, що накладається на еталонний сигнал навчання, зробити відповідні висновки.

Друга задача. Необхідно побудувати і навчити нейронну мережу для апроксимації функції, що задана у вигляді таблиці, яка задається викладачем.

Для вирішення цієї задачі скористуємось функцією newff() з The Neural Network Toolbox, що дозволяє створити „класичну” багатошарову нейронну мережу з можливістю навчання її за процедурою зворотного поширення помилки.

P = zeros(1,20);

for i = 1:20 % створення масиву

P(i) = i*0.1; % вхідних даних (аргумент)

end

T=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 4.89 5.06 5.63 5.91]; % вхідні дані (значення функції)

net = newff([-1 2.09],[5 1],{'tansig' 'purelin'}); % створення нейронної мережі

net.trainParam.epochs = 1000; % число циклів навчання

net=train(net,P,T); % процес навчання мережі

y = sim(net,P); % опитування мережі, що навчилась

figure (1);

hold on;

xlabel ('P');

ylabel ('T');

plot(P,T,P,y,'o'),grid; % виведення результату роботи

Змінюючи значення числа циклів навчання, зафіксувати залежності зміни похибки від часу та виходу мережі, що накладається на еталонний сигнал навчання, зробити відповідні висновки.

Контрольні питання.

  1. Що таке нейронна мережа?

  2. Які бувають функції активації?

  3. В чому полягає навчання нейронних мереж?

  4. Що змінюється в процесі навчання нейронних мереж?

Лабораторна робота №2 Розробка міні-експертної системи для оцінки якості продукції основі нечіткої логіки.

Мета: Засвоїти механізми створення нечітких моделей логічного висновку з використанням алгоритму Мамдані.

Теоретичні відомості.

Під нечіткою множиною А розуміється сукупність

,

де Х – універсальна множина, – функція належності (характеристична функція), що характеризує ступінь належності елементів х до нечіткої множини А.

Функція приймає значення в деякій достатньо впорядкованій множині М. Множину М називають множиною належності, частіше всього в якості М обирають відрізок [0...1]. Якщо М = {0,1}, то нечітка множина може розглядатися як звичайна, чітка множина.

Функція належності являє собою імовірнісну оцінку, що показує наближене відтворення числового діапазону до лінгвістичного поняття: „мале”, „нижче норми”, „норма”, „вище норми”, „висока” тощо.

Типові види функцій, що використовується для завдання функцій належності наведені на рис. 4 та рис. 5.

а) трикутна б) гаусовська

Р

c

ис. 4. Приклад функцій належності.

а) трапеційна б) куполоподібна

Рис. 5. Приклад функцій належності.

Основні етапи побудови систем інтелектуального управління на основі нечіткої логіки:

  1. Визначення входів і виходів системи, що створюється.

  2. Визначення для кожного входу і виходу функції належності.

  3. Розробка бази правил для нечіткої системи.

  4. Вибір і реалізація алгоритму нечіткого висновку.

  5. Аналіз результатів роботи системи, що створена.

Загальний логічний висновок виконується за наступною схемою (рис. 6).

Рис. 6. Загальна схема логічного висновку.

Розглянемо цю схему більш докладно.

Нечіткість (введення нечіткості, фаззіфікація).

Функції належності, що визначені для вхідних змінних, застосовуються до їх фактичних значень для визначення ступеня істинності кожної передумови кожного правила.

Логічний висновок.

Обчислене значення істинності для передумов кожного правила застосовується до висновків кожного правила. Це призводить до однієї нечіткої підмножині, яка буде призначена кожній змінній виводу для кожного правила. В якості правил логічного висновку зазвичай використовуються тільки операції min (мінімум) або prod (множення). У логічному висновку prod функція належності відсікається по висоті, що відповідає обчисленому ступеню істинності передумови правила (нечітка логіка "І"). У логічному висновку prod функція належності виведення масштабується за допомогою обчислень ступеня істинності передумови правила.

Композиція.

Нечіткі підмножини, що призначені для кожної змінної виводу (у всіх правилах) об’єднуються разом, щоб сформувати одну нечітку підмножину для кожної змінної виводу. При подібному об’єднанні зазвичай використовується max (максимум) або sum (сума). При композиції max комбінований висновок нечіткої підмножини будується як поточковий максимум по всім нечіткім підмножинам (нечітка логіка "АБО"). При композиції sum комбінований висновок нечіткої підмножини будується як поточкова сума за всіма нечіткими підмножинами, призначеними змінними виводу правилами логічного висновку.

Приведення до чіткості (дефаззіфікація).

Це додатковий етап, який корисно використовувати, коли необхідно перетворити нечіткий набір висновків у чітке число.

Розглянемо алгоритми реалізації схеми логічного висновку, що наведена на рис. 6.

Алгоритм Мамдані (Mamdani).

Даний алгоритм математично може бути описаний наступним чином:

  1. Нечіткість: знаходяться ступені істинності для передумов кожного правила: A1(x0), A2(x0), B1(y0), B2(y0).

  2. Нечіткий висновок: знаходяться рівні «відсікання» для передумов кожного з правил (з використанням операції min):

  1. де через «Λ», як і раніше, позначена операція логічного мінімуму (min), потім знаходяться відсічені функції належності:

  1. Композиція: з використанням операції max (що позначається як «v») виконується об'єднання знайдених усічених функцій, що приводить до одержання підсумкової нечіткої підмножини для змінної виходу з функцією приналежності:

  1. Нарешті, приведення до чіткості (для знаходження z0) проводиться, наприклад, центроїдним методом (як центр ваги для кривої μΣ(z)):

Алгоритм Сугено (Sugeno).

Сугено (Sugeno) і Такагі (Takagi) використали набір правил в наступній формі (як і раніше, приводимо приклад двох правил):

П1: якщо x є A1 та y є B1 , тоді z1=a1x+b1y,

П2: якщо x є A2 та y є B2 , тоді z2=a2x+b2y.

Представлення алгоритму:

  1. Перший етап – як в алгоритмі Мамдані.

  2. На другому етапі знаходяться та індивідуальні виходи правил:

  1. На третьому етапі визначається чітке значення змінної виводу:

Наведене представлення відноситься до алгоритму Сугено 1-го порядку.

Якщо правила записані в формі:

П1: якщо x є A1 та y є B1 , тоді z1=с1,

П2: якщо x є A2 та y є B2 , тоді z2=с2,

то говорять, що заданий алгоритм Сугено 0-го порядку.

Методи приведення до чіткості.

Вище вже був розглянутий один з даних методів – центроїдний (centroid of area). Наведемо відповідні формули ще раз:

для неперервного варіанту:

для дискретного варіанту:

Інші можливі методи приведення до чіткості ілюструє рис.7: найменший максимум (smallest of max, som), найбільший максимум (largest of max, lom), середній максимум (mean of max, mom), бісекторний (bisector of area).

Рис. 7. Методи приведення до чіткості.