Помощь в написании студенческих работ
Антистрессовый сервис

Программа для обучения нейронной сети по алгоритму Кохонена

Курсовая Купить готовую Узнать стоимостьмоей работы

Выбираем текстовый файл со входными значениями — Input1. txt, далее программа предложит выбрать еще один файл, выбираем файл с выходными значениями — OutPut. txt, после чего ждем. На эране появится оно обучения программы (рис. 12), в котором нажимая соответствующие кнопки можно выбрать параметры отображения результатов кластеризации. Для более наглядного представления выведем на форму график… Читать ещё >

Программа для обучения нейронной сети по алгоритму Кохонена (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • 1. Сети Кохонена
  • 2. Карты Кохонена
  • 3. Подготовка входного набора данных
  • 4. Программные средства для моделирования нейронных сетей Кохонена
  • 5. Обучение сети Кохонена в Deductor Academic
  • 6. Результаты кластеризации в Deductor
  • 7. Настройка параметров отображения карты
  • 8. Создание и обучение сети Кохонена в Matlab
  • 9. Интерпретация полученных результатов в Matlab
  • Заключение
  • Список литературы
  • Приложение

Все данные поместим из таблиц в текстовые файлы для дальнейшей обработки в среде Matlab. Образуются два файла: Input1.txt — содержит входные значения признаковOutPut. txt — содержит выходные значения диагнозов. Файл с выходными значениями будем использовать для сравнения с полученными результатами и вычисления ошибки кластеризации. Данные загружаются в рабочее пространство Matlab с помощью функцииload: Input1 = load (‘Input1.txt')Для обучения нейронной сети используют функцию tain:[net, tr]=train (net, Input) Перед тем, как начать обучение сети задают параметры обучения: количество циклов обучения, минимальную ошибку.net.trainParam.show = 10;net.trainParam.epochs = 10;net.trainParam.goal = 1e-12;net = init (net);[net, tr]=train (net, Input) Процесс обучения можно контролировать в открывшемся окне (рис. 12):Рисунок 12. Процесс обучения слоя Кохонена. После обучения сети выполним ее тестирование на известных выходных значениях с помощью функции sim: A = sim (net, Test_M);После этого, подсчитаем ошибку кластеризации, сравнив со значениями выходов: A = round (A)NewOut = A (1:); CaseCount = length (NewOut);Error = (TestOut ≅ NewOut);% Считаем ошибку классификацииErrorTmp = Error;Error = sum (Error);Error = Error*100/CaseCount;Error % Общая ошибка, в %Ошибка кластеризации равна 32%. Она подсчитывается как разность известного вектора выходных значений и полученного в ходе кластеризации. Интерпретация полученных результатов в MatlabВо время обучения нейронной сети открывается окно NeuralNetworkTraining, в котором находятся несколько кнопок для отображения полученного результата (рис.

13). Рисунок 13. Кнопки для построения отображений результатов кластеризации. Воспользуемся этими кнопками. Кнопка SOMTopologyвыводит общее строение слоя Кохонена. Оно представлено в виде ячеек. Каждая ячейка соответствует нейрону. В курсовой работе выбрано два выходных класса, поэтому сеть будет содержать два нейрона (рис 14).Рисунок 14. Строениесети

Кохонена.Кнопка SOMNeighborConnections описывает связимежду нейронами (рис. 15) Рисунок 15. Связи между нейронами сети. Кнопка SOMNeighborDistancesописывает расстояние до соседних нейронов (рис. 16) Рисунок 16. Расстояние между нейронами сети. КнопкаSOMWeightPlanesвыводит веса нейронов по каждому значению входного вектора (рис.

17).Рисунок 17. SOMW eightPlanesКнопка SOMSampleHitsпоказывает разбиение выборки по классам (рис. 18) Рисунок 18. SOMS ampleHitsКнопкаSOMWeightPositions показывает веса нейронов на графике (рис. 19):Рисунок 19.

SOMS ampleHitsДля более удобного использования функций Matlabсоздадим пользовательский интерфейс, на котором можно выбрать файлы данных, обучить нейронную сеть и вывести все результаты кластеризации, а так же посмотреть ощибку. Рабочее окно программы представлено формой с кнопками (рис. 20):Рисунок 20. Рабочее окно программы. Для того, чтобы загрузить файлы и начать обучение сети необходимо нажать на соответствующую кнопку на форме. После нажатия откроется диалоговое окно выбора файла.

Выбираем текстовый файл со входными значениями — Input1.txt, далее программа предложит выбрать еще один файл, выбираем файл с выходными значениями — OutPut. txt, после чего ждем. На эране появится оно обучения программы (рис. 12), в котором нажимая соответствующие кнопки можно выбрать параметры отображения результатов кластеризации. Для более наглядного представления выведем на форму график с весами нейронов (рис. 21) Рисунок 21. График с весами нейронов. На форме так же выводится в специальное поле ошибка кластеризации. По данным она составила 32%, что безусловно велико и говорит о том, что выбранных факторов не достаточно для классификации.

Заключение

В результате проведения курсовой работы были решены следующие задачи:

Подробно рассмотрена типовая структура сети Кохонена и карт Кохонена. Проведен анализ различных программных средств для моделирования и обучения нейронных сетей нейронных сетей. Подготовлена выборка данных для обучения сети, выбрать необходимое количество переменных. Выполнена подготовка и предварительная обработка данных, которая заключается в переводе качественных данных в количественные, а так же в нормировании полученных данных в интервал [0,1] для подачи на входы нейросети. Создана и обучена карта Кохонена в программе Deductor на подготовленных данных. Выведены основные графичекие результаты. Проведен их анализ. Ошибка кластеризации составила не более 15%.Создана и обучена нейронная сеть Кохонена в программе Matlab на подготовленных данных.

Создано приложение GUIдля удобной работы с данными и визуализации полученного результата. Ошибка класьеризации составила не более 32%.По результатам проделанной работы можно сделать вывод о том, что оба программные средства Deductorи Matlabпоказали хорошие результаты кластеризации и отделили один класс от другого. Точность таких результатов не критична, так как кластеризация используется для предварительного анализа групп и можно сделать лишь предположение о принадлежности того или иного наблюдения к определенному классу. При сравнении полученных результатов видно, что Deductorобладает готовым набором команд и готовым интерфейсов и не нуждается в дополнении.

В то время, как Matlabтребует программной установки критериев обучения, инициализации и тестирования нейронной сети. В этом есть и плюс и минус Matlab. Плюч в том, что можно сколь угодно варьировать различные показатели и программировать интерфейс под себя, тогда как в Deductor все заранее настроено и заложено. Преимущество DeductorAcademicперед Matlab в том, что в Deductorне требуется нормирование данных, его можно выполнить по ходу моделирования сети. Недостатком Deductor является то, что кластеризация ограничена картой Кохонена, а слой Кохонена не поддерживается. В целом, результаты показали, что для обучения типичной карты Кохонена более прост и удобен в использовании DeductoкAcademic, а для создания более сложных и комбинированных приложений, подходит Matlab.

Список литературы

:Галушкин, А. И. Нейронные сети: основы теории [Текст] - М.: Горячая линияТелеком, 2012. — 496 с. Асеева, Т. В. Системы искусственного интеллекта. Нейронные сети [Электронный ресурс]: конспект лекций;

в составе учебно-методического комплекса / Тверской гос. техн. ун-т, Каф. ЭВМ — Тверь, 2006

Терехов, В. А. Нейросетевые системы управления [Текст]: учеб.

пособие для вузов по спец. «Управление и информатика в технических системах» / Терехов, В.А., Ефимов, Д.В., Тюкин, И.Ю. — М.: Высшая школа, 2002. — 183 с. Методические указания по лабораторным работам по дисциплине «Интеллектуальные информационные системы» на тему: «Нейронные сети в MATLAB 6.1» для специальностей 80 801 «Прикладная информатика (в экономике)» и 230 201 «Информационные системы и технологии» [Электронный ресурс]: в составе учебно-методического комплекса / Тверской гос. техн. ун-т, Каф. ИС; разраб. Н. А. Семенов — Тверь, 2005

Маслова А. Ю. Использование нейронной сети карты Кохонена для распознавания образов // Информационно-вычислительные технологии и их применение: сб. ст. — Ч.

2. — Пенза, 2010

Нейронные сети: история развития теории: учеб.

пособие для вузов по напр. «Приклад. математика и физика». Кн. 5 / под ред.: А. И. Галушкина, Я. З. Цыпкина — М.: ИПРЖР, 2001. — 840 с. — (10 412−1)Галушкин, А. И. Нейрокомпьютеры: учеб.

пособие для студентов по напр. «Прикл. математика и физика» — М.: Журнал «Радиотехника», 2000. — 524 с. Приложение:

КодпрограммывMatlabfunctionvarargout = Kohonen (varargin)Error=0;% KOHONEN M-file for Kohonen. fig% KOHONEN, by itself, creates a new KOHONEN or raises the existing% singleton*.%% H = KOHONEN returns the handle to a new KOHONEN or the handle to% the existing singleton*.%% KOHONEN ('CALLBACK', hObject, eventData, handles,…) calls the local% function named CALLBACK in KOHONEN. M with the given input arguments.%% KOHONEN ('Property','Value',…) creates a new KOHONEN or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Kohonen_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to Kohonen_OpeningFcn via varargin.%% *See GUI Options on GUIDE’s Tools menu. Choose «GUI allows only one% instance to run (singleton)» .%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help Kohonen% Last Modified by GUIDE v2.5 28-Sep-2014 23:51:

16% Begin initialization code — DO NOT EDITgui_Singleton = 1;gui_State = struct ('gui_Name', mfilename, …'gui_Singleton', gui_Singleton, …'gui_OpeningFcn', @Kohonen_OpeningFcn, …'gui_OutputFcn', @Kohonen_OutputFcn, …'gui_LayoutFcn', [], …'gui_Callback', []);ifnargin && ischar (varargin{1})gui_State.gui_Callback = str2func (varargin{1});endifnargout [varargout{1:nargout}] = gui_mainfcn (gui_State, varargin{:});elsegui_mainfcn (gui_State, varargin{:});end% End initialization code — DO NOT EDIT% —- Executes just before Kohonen is made visible. functionKohonen_OpeningFcn (hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved — to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to Kohonen (see VARARGIN)% Choose default command line output for Kohonenhandles. output = hObject;% Update handles structureguidata (hObject, handles);% UIWAIT makes Kohonen wait for user response (see UIRESUME)% uiwait (handles.figure1);% —- Executes on button press in pushbutton2. function pushbutton2_Callback (hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved — to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) clearallcla%DataTr = load ('Input1.txt');[FileName, PathName] = uigetfile;% Проверка, был ли выбран файлif FileName≅0% Формирование полного пути к файлуFullName = [PathNameFileName]; % Считывание изображения из графического файла DataTr = load (FullName);end[FileName, PathName] = uigetfile;% Проверка, был ли выбран файлif FileName≅0% Формирование полного пути к файлуFullName = [PathNameFileName]; % Считывание изображения из графического файла OutPut = load (FullName);end%DataTr = load ('Input26.txt');%OutPut = load ('Out1.txt');Test = DataTr;TestOut = OutPut;%Test = load ('test42_V11.txt');%TestOut = load ('test_Out42.txt');%k = [22 38 17 33 32]; Input = DataTr (:);%Input = DataTr (:);[m, InputCount] = size (Input);Test_M = Test (:);%Test_M = Test (:);Border = zeros (InputCount, 2);Border (, 2) = 1;OutputVec = zeros (m, 2);for k = 1: mOutputVec (k, OutPut (k, 1)) = 1;endOutputVec = OutputVec.';Target = OutputVec; Input = Input.';%TestOut = OutputVec.';TestOut = TestOut.';Test_M = Test_M.';%[v, c] = size (TestOut);%DataTestSize = c;net=newsom (Border, [2 1]);% Задаем параметры обученияnet.trainParam.show = 10;net.trainParam.epochs = 10;net.trainParam.goal = 1e-12;net = init (net);% Выполняемобучениесети%spread = 1; % Параметр радиально-базисной функции (задает её ширину)%net = newpnn (Input, Target, spread); [net, tr]=train (net, Input);plotsom (net.iw{1,1}, net. layers{1}.distances) A = sim (net, Test_M);%bar (sum (A')) A; A = round (A)NewOut = A (1:); CaseCount = length (NewOut);Error = (TestOut ≅ NewOut);% Считаем ошибку классификацииErrorTmp = Error;Error = sum (Error);Error = Error*100/CaseCount;Error % Общаяошибка, в %Error% —- Executes on button press in pushbutton4. function pushbutton4_Callback (hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved — to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) cla

Показать весь текст

Список литературы

  1. :
  2. , А.И. Нейронные сети: основы теории [Текст] - М.: Горячая линия -Телеком, 2012. — 496 с.
  3. , Т.В. Системы искусственного интеллекта. Нейронные сети [Электронный ресурс]: конспект лекций;в составе учебно-методического комплекса / Тверской гос. техн. ун-т, Каф. ЭВМ — Тверь, 2006.
  4. , В.А. Нейросетевые системы управления [Текст]: учеб. пособие для вузов по спец. «Управление и информатика в технических системах» / Терехов, В.А., Ефимов, Д.В., Тюкин, И.Ю. — М.: Высшая школа, 2002. — 183 с.
  5. Методические указания по лабораторным работам по дисциплине «Интеллектуальные информационные системы» на тему: «Нейронные сети в MATLAB 6.1» для специальностей 80 801 «Прикладная информатика (в экономике)» и 230 201 «Информационные системы и технологии» [Электронный ресурс]: в составе учебно-методического комплекса / Тверской гос. техн. ун-т, Каф. ИС; разраб. Н. А. Семенов — Тверь, 2005.
  6. А.Ю. Использование нейронной сети карты Кохонена для распознавания образов // Информационно-вычислительные технологии и их применение: сб. ст. — Ч.2. — Пенза, 2010.
  7. Нейронные сети: история развития теории: учеб. пособие для вузов по напр. «Приклад. математика и физика». Кн. 5 / под ред.: А. И. Галушкина, Я. З. Цыпкина — М.: ИПРЖР, 2001. — 840 с. — (10 412−1)
  8. , А.И. Нейрокомпьютеры: учеб. пособие для студентов по напр. «Прикл. математика и физика» — М.: Журнал «Радиотехника», 2000. — 524 с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ