Домашнее задание (953556), страница 4
Текст из файла (страница 4)
Напомним, что в предыдущей части работы были получены по 3 варианта векторов признаков 6 слов. Первые 2 будем использовать для обучения сети, третий – для проверки алгоритма распознавания.
5.1. Построение нейронной сети
Перед началом настоятельно рекомендуется ознакомиться с документом “Simle Net.doc”. Нейронная сеть строится по принципу: ситуация – вектор признаков, действие – номер слова, удовлетворяющего данным признакам. Используется сеть со слоем Кохонена и слоем прямого распространения. Параметры сети указаны на рис. 18.
Количество входов соответствует количеству элементов вектора признаков
Число нейронов слоя Кохонена выбрано 10
Число нейронов слоя прямого распространения равно числу распознаваемых слов
После ввода этих параметров нажимаем «создать». Получаем структуру пока необученной сети
5.2. Обучение сети
Обучающая выборка представляет собой матрицу, где строки – слова, столбцы – относительные значения частот. Числа – значения разности амплитуд. Первый вариант векторов признаков сформируем аналогично нижеследующему примеру и запишем в текстовый файл in_1.txt
-18.24; -00.81; -08.40; -04.84; -02.90; -3.00; -2.58
-16.12; -03.62; +11.56; -04.54; -00.20; -7.14; +7.87
-11.29; -04.67; +04.22; +00.12; -05.41; +2.26; -2.17
-08.98; -03.32; -05.47; +10.06; -10.59; -2.50; +4.18
+00.05; -06.41; +11.60; +05.06; -12.29; +5.25; +1.00
-12.34; -08.56; -02.52; +04.61; -03.74; +4.16; +3.54
Здесь каждая строка – вектор для каждого и 6 распознаваемых слов. Данные берутся из таблицы векторов признаков, полученных ранее.
Аналогично для второго варианта записи слов составляем файл in_2.txt
-19.77; -09.87; +05.76; -04.47; -07.04; -00.52; +02.85
-17.38; -02.17; +08.75; +05.57; -06.18; -08.10; +08.89
-19.69; -11.74; +06.25; +02.85; -05.62; -06.23; +01.63
-03.80; -14.50; -04.18; +00.89; -03.70; +09.05; -01.73
-05.47; -02.66; +00.16; +01.16; +00.58; -05.54; +09.82
+00.39; +02.66; -11.11; +01.98; +06.81; -04.51; +05.99
И in_3.txt
-05.22; -05.59; -01.53; -05.81; -06.95; -05.02; +00.55
-20.16; -01.51; +06.60; +05.60; -05.16; -08.67; +12.02
-16.64; -06.90; -02.10; +05.31; -09.49; -02.61; +00.42
-07.68; -09.43; -05.11; -01.98; +04.24; -00.38; +02.72
-05.89; +05.27; -02.20; +04.06; -10.35; +06.43; -02.05
-01.01; +05.34; -02.30; +01.63; -09.33; +05.58; -02.92
Осталось объединить 2 файла in_1.txt и in_2.txt в обучающий массив. Здесь содержатся 2 массива выборок дополненные символами 0 и 1, соответствующими номеру слова, которому они принадлежат.
Samples.txt
-18.24; -00.81; -08.40; -04.84; -02.90; -03.00; -02.58; 1; 0; 0; 0; 0; 0
-16.12; -03.62; +11.56; -04.54; -00.20; -07.14; +07.87; 0; 1; 0; 0; 0; 0
-11.29; -04.67; +04.22; +00.12; -05.41; +02.26; -02.17; 0; 0; 1; 0; 0; 0
-08.98; -03.32; -05.47; +10.06; -10.59; -02.50; +04.18; 0; 0; 0; 1; 0; 0
+00.05; -06.41; +11.60; +05.06; -12.29; +05.25; +01.00; 0; 0; 0; 0; 1; 0
-12.34; -08.56; -02.52; +04.61; -03.74; +04.16; +03.54; 0; 0; 0; 0; 0; 1
-19.77; -09.87; +05.76; -04.47; -07.04; -00.52; +02.85; 1; 0; 0; 0; 0; 0
-17.38; -02.17; +08.75; +05.57; -06.18; -08.10; +08.89; 0; 1; 0; 0; 0; 0
-19.69; -11.74; +06.25; +02.85; -05.62; -06.23; +01.63; 0; 0; 1; 0; 0; 0
-03.80; -14.50; -04.18; +00.89; -03.70; +09.05; -01.73; 0; 0; 0; 1; 0; 0
-05.47; -02.66; +00.16; +01.16; +00.58; -05.54; +09.82; 0; 0; 0; 0; 1; 0
+00.39; +02.66; -11.11; +01.98; +06.81; -04.51; +05.99; 0; 0; 0; 0; 0; 1
Перед обучением нужно отметить галкой поле «Задать начальные веса сети из обучающих выборок». Для загрузки обучаемых выборок жмем «Выбрать» и ищем созданный файл samles.txt, далее жмем «Обучить»
5.2. Испытания модели
5.2.1. Испытание 1. Обучение нейросети по первому и второму файлу
Сравнение будем проводить по признакам из in_3.txt. Для загрузки тестируемого файла входных признаков жмем «выбрать» в меню «операции с НС» и выбираем нужный файл. Теперь, переключая в списке исследуемые слова, и нажимая «установить», можем наблюдать, как система реагирует на независимо записанный вектор признаков. Сравниваем все 6 слов из файла in_3.txt и строим таблицу верных распознаваний
Номер слова | 0 | 1 | 2 | 3 | 4 | 5 |
Успешно распознан | X | X | X | - | - | - |
% распознавания | 50% |
5.2.2. Испытание 3. Обучение нейросети по среднему
Последний тест – обучаем сесть по усредненным признакам из всех трех записанных слов.
Samples_middle.txt
-14.41; -05.42; -01.39; -05.04; -05.63; -02.85; +00.27; 1; 0; 0; 0; 0; 0
-17.89; -02.44; +08.97; +02.21; -03.85; -07.97; +09.59; 0; 1; 0; 0; 0; 0
-15.87; -07.77; +02.79; +02.76; -06.84; +02.19; -00.03; 0; 0; 1; 0; 0; 0
-06.82; -09.08; -04.92; +02.99; -03.35; +02.05; +01.72; 0; 0; 0; 1; 0; 0
-03.77; -01.27; +03.19; +03.43; -07.35; +02.04; +02.92; 0; 0; 0; 0; 1; 0
-04.32; -00.18; -05.31; +02.74; -02.08; +01.74; +02.20; 0; 0; 0; 0; 0; 1
Обучаем аналогично предыдущему пункту и проверяем работу сети по всем 3 файлам in_1.txt, in_2.txt, in_3.txt
Слова in_1.txt | 0 | 1 | 2 | 3 | 4 | 5 |
Успешно распознан | X | X | X | - | X | - |
% распознавания | 66% | |||||
Слова in_2.txt | 0 | 1 | 2 | 3 | 4 | 5 |
Успешно распознан | - | X | X | X | - | X |
% распознавания | 66% | |||||
Слова in_3.txt | 0 | 1 | 2 | 3 | 4 | 5 |
Успешно распознан | X | X | X | X | X | - |
% распознавания | 84% |
Направления дальнейшей работы
Дальнейшие работы можно проводить по двум направлениям:
-
В области построения векторов признаков. Возможно улучшение алгоритма выбора ключевых частот для построения векторов признаков.
-
В области системы нечеткой логики.
-
Расчет области определения входных переменных и ширины функций принадлежности в зависимости от спектра слов-эталонов.
-
Исследование влияния формы функций принадлежности на точность распознания.
-
Улучшение качества распознания путем изменения веса правил распознания. Таким образом возможно выделение слов, имеющих характерные звуки.
Рекомендуемая литература
-
Леоненков А. В. «Нечеткое моделирование в среде MATLAB и fuzzyTECH». БХВ-Петербург, 2005.
18