Моделювання в Matlab
Наведемо простий приклад нейронних мереж Матлаб-моделювання.
Припускаючи, що “а” модель має три входи “a”, “b” і “c” і генерує вихід “y”.
Для цілей генерації даних: = 5а + bc + 7с.
Спочатку прописують невеликий скрипт для генерації даних:
- а = Rand (11000);
- b = Rand (1,1000);
- з = Rand (1,1000);
- n = Rand (1,1000) * 0,05;
- у = а * 5 + Ь * с + 7 * з + n,
де n – це шум, спеціально доданий, щоб зробити його схожим на реальні дані. Величина шуму становить 0,1 і є рівномірною.
Таким чином, вхід – це набір “a”, “b” і “c”, а висновок:
- I = [a; b; c];
- O = y.
Далі використовують вбудовану функцію matlab newff для генерації моделі.
Приклади завдань нейронних мереж
Спочатку створюють матрицю R розміром 3 * 2. Перший стовпець покаже мінімум всіх трьох входів, а другий – максимум трьох входів. У цьому випадку три входи знаходяться в діапазоні від 0 до 1, тому:
R = [0 1; 0 1; 0 1].
Тепер створюють матрицю розміру, яка має v-розмір усіх шарів: S = [51].
Тепер викликають функцію newff наступним чином:
net = newff ([0 1; 0 1; 0 1], S, {‘tansig’, ‘purelin’}).
Нейронна модель {‘tansig’, ‘purelin’} показує функцію відображення двох шарів.
Навчають її з даними, які створені раніше: net = train(net,I,O).
Мережа навчена, можна побачити криву продуктивності, як вона навчається.
Тепер знову моделюють її на тих же даних і порівнюють вихідні дані:
O1 = sim(net,I);
plot(1:1000,O,1:1000,O1).
Таким чином, вхідна матриця буде:
- net.IW{1}
- -0.3684 0.0308 -0.5402
- 0.4640 0.2340 0.5875
- 1.9569 -1.6887 1.5403
- 1.1138 1.0841 0.2439
- net.LW{2,1}
- -11.1990 9.4589 -1.0006 -0.9138