Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ Компьютерный практикум.doc
Скачиваний:
572
Добавлен:
20.03.2016
Размер:
3 Мб
Скачать
☆
  1. Компьютерный практикум по нейронным сетям

    1. Аппроксимация функции на основе нейронных сетей

Цель работы: научиться использовать нейронные сети для аппроксимации функции.

Задание: В среде MATLAB необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции ,. Разработать программу, которая реализует нейросетевой алгоритм аппроксимации и выводит результаты аппроксимации в виде графиков. Варианты задания представлены в табл.3.1.

Варианты заданий

Значения , – одинаковые для всех вариантов.

Таблица 3.1

i

Значение

№1

№2

№3

№4

№5

№6

№7

№8

№9

№10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

2.05

1.94

1.92

1.87

1.77

1.88

1.71

1.60

1.56

1.40

1.50

1.26

0.99

0.97

0.91

0.71

0.43

0.54

0.19

0.01

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

2.02

1.98

1.67

1.65

1.57

1.42

1.37

1.07

0.85

0.48

0.35

-0.30

-0.61

-1.20

-1.39

-1.76

-2.28

-2.81

-3.57

-4.06

1.99

2.03

2.20

2.39

2.19

2.61

2.35

2.60

2.55

2.49

2.50

2.52

2.44

2.35

2.26

2.19

2.24

2.34

1.96

2.19

2.23

2.29

2.27

2.62

2.72

2.82

3.13

3.49

3.82

3.95

4.22

4.48

5.06

5.50

5.68

6.19

6.42

7.04

7.57

8.10

2.07

2.17

2.21

2.31

2.10

2.09

2.12

1.63

1.78

1.52

1.16

1.07

0.85

0.56

0.10

-0.25

-0.65

-1.06

-1.66

-2.01

2.18

2.43

2.40

2.43

2.65

2.75

2.67

2.66

2.63

2.75

2.41

2.24

2.12

1.74

1.57

1.17

0.96

0.63

0.25

-0.01

-0.10

-0.21

0.01

0.05

-0.13

-0.23

-0.21

-0.43

-0.57

-0.44

-0.44

-0.83

-0.78

-0.81

-1.06

-1.41

-1.40

-1.70

-1.96

-1.91

-0.16

0.01

0.10

0.16

0.05

0.35

0.19

0.50

0.74

1.03

1.06

1.49

1.79

2.03

2.22

2.50

2.88

3.21

3.63

3.90

2.09

2.31

2.72

2.77

2.78

2.97

3.00

3.51

3.43

3.58

3.58

3.54

3.82

3.90

3.77

3.81

4.00

3.97

4.08

4.08

Пример выполнения:

Задача. В среде MATLAB необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции =[2.07 2.17 2.21 2.31 2.10 2.09 2.12 1.63 1.78 1.52 1.16 1.07 0.85 0.56 0.10 -0.25 -0.65 -1.06 -1.66 -2.01]T, .

В математической среде MATLAB создаем новый M-File, в котором записываем код программы создания и обучения нейронной сети с использованием встроенных функций пакета нейронных сетей Neural Networks Toolbox:

P = zeros(1,20); % создание массива

for i = 1:20

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

end

T=[2.07 2.17 2.21 2.31 2.10 2.09 2.12 1.63 1.78 1.52 1.16 1.07 0.85 0.56 0.10 -0.25 -0.65 -1.06 -1.66 -2.01] % входные данные (значение функции)

net = newff([0.1 2],[5 1],{'tansig' 'purelin'}); % создание нейронной сети

net.trainParam.epochs = 100; % задание числа эпох обучения

net = train(net,P,T); % обучение сети

y = sim(net,P); % опрос обученной сети

figure (1);

hold on;

xlabel ('P');

ylabel ('T');

% прорисовка графика исходных данных и функции сформированной

нейронной сетью

plot(P,T,P,y,'o'),grid;

Результаты работы созданной нейронной сети представлены на рис. 6.1.

Рис. 6.1. Результат работы нейронной сети

Выводы (пример):

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

Контрольные вопросы:

  1. Дайте определение «нейрона».

  2. Что Вы понимаете под обучением нейронной сети?

  3. Что такое «Обучающее множество»?

  4. Объясните смысл алгоритма обучения с учителем.

  5. Что называют аппроксимацией функции?

  6. Какие функции в среде MATLAB используются для создания нейронной сети?