КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции активации
В результате выполнения в окне Command Window отобразятся следующие значения: name = dname = '' inrange = outrange = 2. Построить гистограммы для вектора входа и для вектора выхода, используя слой, состоящий из четырех нейронов. Для этого нужно выполнить из командной строки MATLAB следующие команды: n = [0; 1; -0.5; 0.5]; % вектор входа нейрона;
3. Последовательность команд, которые были введены в командную строку MATLAB при выполнении пп. 1, 2 примера, оформить в виде файла-сценария и сохранить в текущей папке под именем competfile.m. Проверить работоспособность созданного файла-сценария. Упражнение 1.2. Выполнить задания, аналогичные тем, что были выполнены в примере 1.2, для функции активации с нежестким максимумом softmax. Последовательность команд оформить в виде файла-сценария softmaxfile.m. Проверить работоспособность созданного файла-сценария. Пример 1.3. Для нейрона со скалярным входом Решение. Исходя из условий задачи, математическая модель нейрона должна иметь вид
где черта над буквой Для определения весового коэффициента Таким образом, мы получили систему неравенств Проверим правильность решения задачи в MATLAB. Для этого выполним из командной строки MATLAB следующую последовательность команд: w = -1; b = 0; В результате выполнения в окне Command Window отобразятся следующие значения: a = a = Таким образом, мы убедились в том, что при наборе Упражнение 1.3. Для нейрона с векторным входом 1) логического умножения И входных сигналов; 2) логического сложения ИЛИ входных сигналов. Упражнение 1.4. Для нейрона с векторным входом 1) 2) Пример 1.4. Реализовать нейрон с входом Решение. Для решения поставленной задачи нужно выполнить следующие действия: 1. Подготовить систему Simulink к работе. Для этого нужно выполнить следующие действия: 1.1. 1.2. На панели инструментов окна Simulink Library Browser нажать кнопку 1.3. Сохранить файл модели в рабочей папке под именем NeuronMdl, нажав на панели инструментов окна untitled 2. 2.1. Реализовать вход нейрона 2.1.1. Перейти в окно обозревателя Simulink Library Browser. 2.1.2. В поле 2.1.3. Нажать клавишу Enter. В результате выполнения на правой панели обозревателя библиотеки отобразится блок Constant, и его имя будет отображено на синем фоне[1]. 2.1.4. Скопировать блок Constant из окна обозревателя Simulink Library Browser в окно модели NeuronMdl с помощью левой кнопки мыши. В результате выполнения в окне модели появится скопированный блок (рис. 1.11). 2.1.5. 2.1.6. Задать значение входа нейрона, причем в качестве значения входа будем использовать значение
В поле Constant value диалогового окна ввести значение [-0.7; 0.0; 0.8], сбросить флажок Interpret vector parameters as 1-D и нажать кнопку OK или клавишу Enter. В результате выполнения диалоговое окно закроется, после чего следует увеличить геометрические размеры блока p, растянув его за любой из четырех углов. В результате выполнения блок p примет вид, представленный на рис. 1.13. 2.2. Реализовать весовой коэффициент 2.2.1. 2.2.2. Переименовать блок p1, назвав его W (см. п. 2.1.5 примера). 2.2.3. Задать значения параметра блока W, равное 1[2] (см. п. 2.1.6 примера). 2.3. Реализовать смещение 2.4. Реализовать вычисление значения выражения 2.4.1. Скопировать из библиотеки Simulink в окно модели NeuronMdl блоки Product и Sum (см. пп. 2.1.1 – 2.1.4 примера). 2.4.2. Переименовать блок Product, назвав его W*p. 2.4.3. 2.4.4. Соединить выход блока W с первым (верхним) входом блока W*p. Для этого нужно навести указатель мыши на выход блока W, в результате чего указатель должен приобрести форму креста 2.4.5. Аналогичным образом провести остальные соединительные линии таким образом, чтобы функциональная схема моделировала математическое выражение 2.5. Реализовать функцию активации hardlim с помощью блока Relay. Для этого выполнить следующие действия: 2.5.1. 2.5.2. Переименовать блок Relay, назвав его hardlim. 2.5.3. Открыть диалоговое окно параметров блока hardlim и в полях Switch on point и Switch off point задать значение 0[5]. Значения, заданные по умолчанию в полях Output when on и Output when off, следует оставить без изменения, поскольку именно эти значения и есть два возможных дискретных состояния функции активации hardlim. 2.5.4. Соединить выход блока Sum с входом блока hardlim. 2.6. Скопировать из библиотеки Simulink в окно модели NeuronMdl блок Display для отображения значения выходного параметра нейрона и соединить выход блока hardlim с входом блока Display (рис. 1.16). 3. Задать параметры расчета модели. Для этого выполнить следующие действия: 3.1. Выполнить из окна модели NeuronMdl команду меню Simulation ► Simulation parameters или нажать комбинацию Ctrl + E. В результате выполнения откроется одноименное диалоговое окно, причем в этом окне активной будет являться вкладка Solver (рис. 1.17, а). 3.2. На вкладке Solver задать конечное время расчета равным нулю, введя это значение в поле Stop time. 3.3. Перейти в окне Simulation parameters на вкладку Workspace I/O (рис. 1.17, б) и сбросить все флажки, если они там были установлены. 3.4. Закрыть диалоговое окно Simulation parameters, нажав кнопку OK.
а)
б)
Рис. 1.17. Диалоговое окно для задания параметров расчета модели 4. Провести тестирование модели. Для этого выполнить следующие действия: 4.1. Нажать кнопку 4.2. Растянуть блок Display по вертикали, чтобы на его экране отобразились все значения векторного сигнала (рис. 1.18). 4.3. Сравнить результаты, отображенные на экране виртуального дисплея Display с соответствующими результатами, полученными при выполнении примера 1.1. Сравнив, убеждаемся, что они совпадают. Следовательно, реализация нейрона в виде модели Simulink проведена корректно. 5. Реализовать в модели NeuronMdl построение графика функции активации hardlim. Для этого выполнить следующие действия:
5.1. Скопировать из библиотеки Simulink в окно модели NeuronMdl блоки Clock и Scope. 5.2. Удалить блоки p и Display. Для этого нужно выделить их с помощью левой кнопки мыши (при выделении второго по очереди блока следует удерживать нажатой клавишу Shift), а затем нажать клавишу Delete. Соединительные линии, ведущие к удаленным блокам, удалять не нужно. 5.3. 5.4. Переименовать блок Clock, назвав его p. 5.5. Открыть диалоговое окно параметров блока p и задать в поле Decimation значение 1. Это означает, что на экране виртуального осциллографа Scope будут отображаться результаты вычислений на каждом шаге расчета модели. Затем закрыть диалоговое окно параметров нажатием кнопки OK. 5.6. Открыть окно параметров виртуального осциллографа Scope (рис. 1.20, а). 5.7. На панели инструментов окна Scope нажать кнопку 5.8. В открывшемся диалоговом окне перейти на вкладку Data history (рис. 1.20, б).
а)
б)
Рис. 1.20. Окна виртуального осциллографа 5.9. Сбросить флажки Limit data points to last и Save data to workspace, а затем закрыть диалоговое окно нажатием кнопки OK. 5.10. Открыть диалоговое окно параметров расчета модели и перейти в нем на вкладку Solver (см. рис. 1.17, а). 5.11. В окне Simulation Parameters задать параметры расчета модели в соответствии со значениями величины n из примера 1.1: в поле Start time начальное время расчета, равное -5; в поле Stop time конечное время расчета, равное 5; из списка Type выбрать элемент Fixed-step (с постоянным шагом расчета); в результате выполнения диалоговое окно Simulation Parameters на вкладке Solver изменит свой внешний вид; в поле Fixed step size величину шага расчета модели, равную 0.01. Затем закрыть диалоговое окно Simulation Parameters нажатием кнопки OK. 5.12. Выполнить расчет модели (см. п. 4.1 примера). 5.13. Открыть окно виртуального осциллографа Scope. На экране осциллографа будет отображен график функции активации hardlim (рис. 1.21). 5.14. Сравнить только что построенный график с соответствующим графиком, построенным при выполнении примера 1.1. Сравнивая рис. 1.7 и 1.21, видим, что графики совпадают. Это еще раз подтверждает корректность реализации нейрона в виде модели Simulink. 6. 6.1. Выполнить команду меню File ► New ► Library в окне модели NeuronMdl. В результате выполнения откроется окно библиотеки блоков, напоминающее окно модели Simulink, но с укороченными строкой меню и панелью инструментов. Кроме того, в титульной строке окна библиотеки присутствует слово Library (рис. 1.22). 6.2. 6.3. Сохранить созданную библиотеку в текущей папке под именем TransferFunctions. 7. Реализовать модель нейрона в виде подсистемы. Для этого выполнить следующие действия: 7.1. 7.2. Выполнить в окне модели NeuronMdl команду меню Edit ► Create Subsystem [6]. В результате выполнения вместо выделенных блоков в окне модели NeuronMdl отобразится единственный блок Subsystem. Он имеет по одному входному и выходному порту, причем на входной порт подается сигнал с выхода блока p, а с выходного порта – на вход блока Scope (рис. 1.24). Это как раз те самые блоки, которые не были выделены при выполнении предыдущего пункта примера. 7.3. 7.4. Переименовать порты In1 и Out1, назвав их p и a соответственно[8]. 7.5. Выполнить команду меню View ► Go to parent для возврата на более высокий уровень иерархии модели. В результате снова откроется окно модели NeuronMdl, причем имена входного и выходного портов блока Subsystem заменятся на имена, введенные при выполнении предыдущего пункта примера. 7.6. Переименовать блок Subsystem, назвав его Simple neuron. 7.7. Выполнить расчет модели, чтобы убедиться в корректности внесенных изменений. В результате расчета график функции активации нейрона должен иметь тот же самый вид, что и на рис. 1.21. 8. Выполнить маскирование подсистемы Simple neuron для создания возможности задания ее параметров с помощью диалогового окна. Для этого выполнить следующие действия: 8.1. Выделить блок Simple neuron и выполнить команду меню Edit ► Mask subsystem [9]. В результате выполнения откроется диалоговое окно Mask editor, называемое редактором маски (рис. 1.26).
8.2. В открывшемся окне редактора маски перейти вкладку Parameters (см. рис. 1.26) и описать параметры маскируемой подсистемы. Эти параметры будут отображаться в диалоговом окне и могут использоваться в любых блоках, из которых состоит подсистема[10]. Параметрами нейрона являются передаточная функция 8.2.1. Нажать кнопку 8.2.2. В поле Prompt ввести текст Weighting coefficients (W)[12]. Этот текст будет играть роль краткого комментария к элементу интерфейса диалогового окна, который будет отождествляться с весовым коэффициентом 8.2.3. В поле Variable ввести имя переменной, которой будет обозначаться весовой коэффициент. Естественно сохранить то обозначение, которое неоднократно использовалось ранее, т. е. обозначение W. 8.2.4. Из списка Type выбрать тип edit, который представляет собой поле для ввода. Как правило, этот тип параметра предлагается по умолчанию[13]. 8.2.5. Установить флажок Evaluate, поскольку весовой коэффициент 8.2.6. Сбросить флажок Tunable, поскольку не предполагается изменять значение весового коэффициента 8.2.7. Повторить выполнение пп. 8.2.1 – 8.2.6 для описания смещения 8.3. В окне редактора маски перейти на вкладку Documentation для выполнения документирования маскируемой подсистемы. Введенная здесь информация будет отображаться в диалоговом окне, а также может быть получена в режиме контекстной справки по данному блоку. Для документирования подсистемы выполнить следующие действия: 8.3.1. В поле Mask type ввести название блока Simple neuron. 8.3.2. В поле Mask description ввести следующий текст: Model of a simple neuron 8.3.3. Скопировать только что введенный текст в поле Mask help. 8.4. Нажать кнопку Apply для подтверждения всех внесенных в маску подсистемы изменений[14]. 8.5. Нажать кнопку OK. В результате выполнения все введенные параметры маски будут применены к подсистеме и редактор маски закроется[15]. 8.6. Задать параметры нейрона в диалоговом окне маскируемой подсистемы. Для этого выполнить следующие действия: 8.6.1. Навести указатель мыши на блок Simple neuron и выполнить двойной щелчок. В результате выполнения откроется диалоговое окно параметров этого блока. В этом окне отображены название блока, краткое описание его назначения, имена параметров и поля для ввода значений этих параметров, а также четыре стандартные кнопки (рис. 1.27).
8.6.2. В поле Weighting coefficients ввести значение 1, а в поле Bias – значение 0[16]. 8.6.3. Нажать кнопку Apply для подтверждения внесенных изменений. 8.6.4. Нажать кнопку Help для вызова контекстной подсказки. В результате выполнения откроется страница справочной системы, посвященной этому блоку (рис. 1.28). 8.6.5. Закрыть диалоговое окно, нажав кнопку OK или кнопку Cancel. 8.7. Отредактировать внутреннее содержание блока Simple neuron. Для этого выполнить следующие действия: 8.7.1. Выделить блок Simple neuron и выполнить команду меню Edit ► Look under mask [17]. В результате выполнения откроется внутреннее содержание блока Simple neuron (см. рис. 1.25). 8.7.2. Открыть диалоговое окно параметров блока W и в поле Constant value ввести значение W[18]. Затем закрыть диалоговое окно, нажав кнопку OK. 8.7.3. Повторить выполнение предыдущего пункта для блока b.
8.7.4. Перейти на более высокий уровень иерархии модели, выполнив команду меню View ► Go to parent. 8.7.5. Выполнить расчет модели, чтобы убедиться в корректности внесенных изменений. В результате расчета график функции активации нейрона должен иметь тот же самый вид, что и на рис. 1.21. Упражнение 1.5. Реализовать нейрон с входом Таблица 1.2
Пример 1.5. Изменить блок Simple neuron в модели NeuronMdl таким образом, чтобы можно было осуществлять выбор функции активации.
Дата добавления: 2015-06-27; Просмотров: 894; Нарушение авторских прав?; Мы поможем в написании вашей работы! |