Круг П.Г. Моделирование искусственных нейронных сетей, страница 12
Описание файла
Файл "Круг П.Г. Моделирование искусственных нейронных сетей" внутри архива находится в папке "Круг П.Г. Моделирование искусственных нейронных сетей". Документ из архива "Круг П.Г. Моделирование искусственных нейронных сетей", который расположен в категории "". Всё это находится в предмете "нейронные вычислительные сети" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. .
Онлайн просмотр документа "Круг П.Г. Моделирование искусственных нейронных сетей"
Текст 12 страницы из документа "Круг П.Г. Моделирование искусственных нейронных сетей"
Операция двоичного сдвига является типичной для многих языков программирования. Сущность ее заключается в том, что число представляется в двоичном коде, а затем с полученной последовательностью производится операция циклического сдвига вправо или влево. Если производится сдвиг влево, у числа самая первая (левая) цифра переставляется в конец, а если сдвиг производится вправо, то последняя (правая) цифра переставляется в начало.
Для построения ИНС представим в четырехпозиционном двоичном коде числа от «0» до «15». Далее, следует определить количество входов и выходов ИНС, необходимой для решения поставленной задачи. Очевидно, что для определения направления сдвига на входы ИНС необходимо представить исходную четырехпозиционную двоичную последовательность и четырехпозиционную двоичную последовательность, которая получилась в результате сдвига.
Выходной слой ИНС может состоять из одного нейрона. Его значение будет равно «0», если сдвиг произведен влево, и «1» – если сдвиг произведен вправо. Таким образом, для решения данной двухклассной задачи необходимо построить ИНС с восемью входами и одним выходом.
Обучение нейронной сети
Определив количество входов в сети, приступим к созданию набора обучающих пар для обучения сети. Для этого выберем шесть четырехпозиционных двоичных кодов и выполним с ними операции сдвига вправо и влево (табл. 6.2).
Таблица 6.2. Результаты сдвига влево и вправо четырехпозиционного кода
№№ | Исходный двоичный код | Код после сдвига влево | Код после сдвига вправо |
1 | 0001 | 0010 | 1000 |
2 | 0010 | 0100 | 0001 |
3 | 0011 | 0110 | 1001 |
4 | 0100 | 1000 | 0010 |
5 | 0101 | 1010 | 1010 |
6 | 0110 | 1100 | 0011 |
7 | 0111 | 1110 | 1011 |
8 | 1000 | 0001 | 0100 |
9 | 1001 | 0011 | 1100 |
Следует заметить, что в качестве представительских выборок нельзя выбирать числа с двоичным представлением 0000, 1111, 1010, 0101, поскольку в независимости от направления сдвига (влево или вправо) для этих чисел будет получен один и тот же результат. И, следовательно, обучающие выборки станут взаимно-противоречивые.
После подготовки набора представительских выборок (обучающих пар) и обучения, следует протестировать получившуюся ИНС (проверить качество ее обучения). Тестирование проводится на оставшихся трех четырехпозиционных двоичных кодах табл. 6.2, которые не вошли в набор представительских выборок, использованный при обучении.
6.3. Лабораторная работа № 3.
Распознавание символов
Цель – разработать и исследовать ИНС обратного распространения, предназначенную для распознавания образов.
Задание
1. Повторить соответствующий теоретический материал (п. 1.3).
2. Построить и обучить ИНС, которая могла бы решать задачу распознавания символов.
3. Произвести тестирование ИНС сети при добавлении шума.
Описание работы
На качество решения поставленной задачи в сильной степени влияют ограничения, которые накладываются производителями на демонстрационные версии своих программных продуктов. Так, в демо-версии программного продукта TRAJAN количество нейронов в слое не может превышать 9, поэтому при распознавании символов будем оперировать матрицей 3×3.
Определение структуры нейронной сети
Представим в виде матрицы 3×3 четыре латинские буквы «X», «Y», «L», «I» и обучим ИНС распознавать их матричное представление (см. табл. 6.3).
В соо тветствии с табл. 6.3 входной сигнал для ИНС может быть представлен в виде развернутого растра – вектора длинной 9. Например, для буквы X это:
101010101
Таблица 6.3. Матричное представление для букв «X», «Y», «L» и «I»
X | Y | I | L | ||||||||
1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
Теперь определимся с выходами ИНС. Очевидно, что для распознавания образов ИНС должна иметь возможность формировать столько выходных сигналов, сколько образов она должна уметь распознавать.
В нашем случае таких образов четыре, поэтому возможны два варианта представления выходных данных ИНС:
-
выходной слой с двумя нейронами (выходами), т.е. каждому символу ставится в соответствие двухпозиционный двоичный код;
-
выходной слой с четырьмя нейронами (выходами), т.е. каждому символу свой выход.
Предлагается выбрать любой вариант.
Обучение нейронной сети
Набор обучающих пар, используемых для обучения ИНС, составляется с учетом того, какой вариант формирования выходного слоя выбран в предыдущем разделе. Если выбран вариант с двумя выходами – каждой букве ставится в соответствие двухпозиционный двоичный код, то выходной слой выглядит следующим образом:
Х – 00 Y – 01 I – 10 L – 11
Если выбран вариант с четырьмя выходами, то выходной слой такой:
Х – 0001 Y – 0010 I – 0100 L – 1000
После того, как набор представительских выборок (обучающих пар) создан, необходимо обучить ИНС и проверить, насколько корректно она решает поставленную задачу.
Проверка работы нейронной сети
После качественного обучения ИНС, следует внести в исходные данные некоторый шум (хотя это сделать непросто, так как в матрицу 3×3 очень трудно добавлять шум).
Например, вместо закодированного растра буквы «I»
010010010
подайте на вход ИНС код:
010110010
и посмотрите: удаётся ли ИНС распознать данный символ, несмотря на «ухудшение» (зашумление) кода.
6.4. Лабораторная работа № 4
Искусственный нос
Цель – разработать и исследовать ИНС обратного распространения для искусственного носа, предназначенного для химического анализа воздушной и жидкой среды.
Задание
1. Повторить соответствующий теоретический материал (п.1.4).
2. Исследовать и проанализировать имеющиеся экспериментальные данные (табл.6.4). Определить количество вводов и выводов «многослойного персептрона» (полносвязанной ИНС обратного распространения) с учетом предложенного набора датчиков и количества обнаруживаемых веществ.
3. Создать и обучить ИНС, предназначенную для обнаружения примесей с помощью анализа показаний химических датчиков.
4. Обучить ИНС с помощью представительских выборок (обучающих пар), приведенных в табл.6.5.
5. Определить наилучшую (оптимальную) структуру ИНС с точки зрения минимизации среднеквадратической ошибки обучения.
6. Для п.5 построить графические зависимости среднеквадратической ошибки обучения от количества нейронов, используемых в скрытых слоях.
7. Ответить на контрольные вопросы, приведенные в конце описания данной лабораторной работы.
Определение количества вводов и выводов нейронной сети
Сформируйте представительские выборки (обучающие пары) для проведения обучения.
Для этого используйте следующие рекомендации.
-
Количество входов ИНС должно соответствовать количеству использованных химических датчиков (рис. 6.1).
Р
ис.6.1. Топология нейронной сети прототипа искусственного носа
Таблица 6.4. Первичная обучающая пара
Исследуемый вектор, составленный по показаниям сенсоров и формирующий вход нейронной сети | Выходы нейронной сети |
{1; 0,05; 0,1; 0,3; 0,07; 0,08; 0,2; 0,05; 0,2; 0,6; 0,8} | {0, 0, 0, 0, 0, 1} |
Таблица 6.5. Набор вторичных обучающих пар
Исследуемые векторы, составленные по показаниям сенсоров и формирующие вход нейронной сети | Выходной вектор нейронной сети |
{1; 0,05; 0,1; 0,3; 0,07; 0,08; 0,2; 0,05; 0,2; 0,6; 0,8} | «Нет» |
{0,8; 0,4; 0,7; 0,6; 0,1; 0,5; 1,0; 0,75; 0,5; 0,7; 0,8} | Ацетон |
{0,9; 0,2; 0,4; 0,5; 0,1; 0,7; 0,6; 0,5; 0,5; 0,7; 0,8} | Аммиак |
{0,85; 0,7; 0,8; 0,65; 0,1; 0,4; 1,0; 0,7; 0,4; 0,6; 0,7} | Изопропанол |
{0,9; 0,3; 0,3; 0,4; 0,04; 0,1; 0,5; 0,3; 0,2; 0,7; 0,8} | Белый «штрих» |
{0,95; 0,18; 0,21; 0,3; 0,05; 0,1; 0,3; 0,2; 0,2; 0,5; 0,7} | Уксус |
-
Существует два основных метода кодировки выхода ИНС. Первый – использование бинарного вектора: для каждой примеси только один единственный выход принимает значение «1». В этом случае количество выходов равно количеству примесей, определяемых системой. В другом случае все номинальные добавки пронумерованы и их числа перенесены в бинарную систему. В этом лабораторном исследовании используйте первый метод.
-
Исходные данные:
-
начальные экспериментальные данные, в виде показаний химических сенсоров, представлены в табл.6.4;
-
рекомендуемое число входов ИНС - 11;
-
рекомендуемое число выходов - 6;
-
начальное число нейронов скрытого (внутреннего) слоя - 4.
-
Вторичные экспериментальные данные, в виде показаний химических сенсоров, представлены в табл.6.5. Набор представительских выборок включает шесть обучающих пар, которые, естественно, подготовлены в формате первой обучающей пары (табл.6.4).
Определение топологии нейронной сети
Практические исследования показывают, что одного внутреннего (скрытого) слоя достаточно.
Обучение нейронной сети
Следует проводить при помощи алгоритма обратного распространения. Используйте TRAJAN или любой доступный программный продукт для моделирования ИНС (см. табл. П.1 приложений), который поддерживает данный алгоритм обучения и способен моделировать данную быстродействующую ИНС искусственного носа, применяемого для контроля атмосферы в воздушной среде промышленных, офисных и домашних помещениях и в других задачах.
Вопросы для проверки
-
В чем заключается принцип обучения ИНС типа «многослойный персептрон по алгоритму обратного распространения»?
-
В чем основное различие методов обучения ИНС «с учителем» и «без учителя»?
-
Назовите распространенные направления применения искусственного носа.
6.5. Лабораторная работа № 5.