Разработка системы тестирования знаний студентов на основе нейронных сетей
Свойства биологического нейрона. Алгоритм обратного распространения ошибки. Обучение с учителем. Виды нейронных сетей и их свойства и преимущество. Разработка системы тестирования. Выбор программных средств для разработки. Структура базы данных и системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство связи
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Поволжский государственный университет телекоммуникаций и информатики»
Факультет Информационных систем и технологий
Направление (специальность) Информационные системы и технологии
Кафедра Информационных систем и технологий
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Разработка системы тестирования знаний студентов на основе нейронных сетей
Разработал
М.В. Нуйкин
Самара 2017
Введение
Современный уровень развития науки и технологий ставит перед системой высшего профессионального образования задачу переосмысления проблем контрольно-оценочного процесса. Существующие на данный момент подходы к оценке качества знаний студентов зачастую имеют множество недостатков, таких как повышенная сложность, узкая применимость, стихийность, нерациональное использование методов и форм, отсутствие дидактической целенаправленности, недостаточная упорядоченность проведения контроля.
Увеличение объёма получаемой информации и повышение сложности образовательных программ выдвигают на первый план аспекты оперативности их изучения и систематизации. В современных системах контроля и оценки качества знаний данное направление остаётся неисследованным.
Научный подход к совершенствованию учебного процесса ставит перед собой задачу информатизации всех его этапов для обеспечения более эффективного усвоения знаний, умений, навыков обучаемыми с целью реализации успешного выполнения задач профессиональной деятельности. Без систематического и достаточного по объему осуществления принципа обратной связи не может всерьез идти речь об эффективном управлении процессом обучения.
Для контроля над ходом образовательного процесса необходимо внедрять современные системы обработки информации, основанные на теории искусственного интеллекта. Результаты контроля учебной деятельности представляют собой набор ответов, зависящий от многочисленных параметров, многие из которых трудно формализуемы. Для того чтобы учитывать их, необходимы гибкие математические инструменты, одним из которых может служить нейронная сеть.
Нейронные сети, несмотря на то что не имеют универсальной структуры, подходящей для различных областей применения, являются инструментом для эффективного решения широкого круга задач. В настоящий момент уровень развития информационных технологий предоставляет возможность применять нейронные сети, в том числе и при оценке качества знаний. Система оценки качества знаний студентов на основе нейронных сетей позволит упростить и реструктуризировать контрольно-оценочный процесс.
Цель работы - разработка системы тестирования качества знаний студентов на основе нейронных сетей.
Задачами выпускной квалификационной работы являются:
• Исследовать работу нейронных сетей;
• Реализация математического аппарата для оценки качества знаний;
• Разработать систему оценки знаний учащихся;
• Добавить в систему справочную информацию.
Актуальность темы дипломной работы связана с различными недостатками в подходах к оценке качества знаний. Автоматизация контроля качества знаний и использование системы тестирования на основе нейронных сетей позволяет исправить некоторые из них.
Объектом выпускной работы является автоматизированный контроль знаний.
Предметом выпускной работы является система для тестирования знаний студентов.
Работа состоит из введения, трех разделов, заключения и списка использованных источников. В первом разделе выполняется исследование работы нейронных сетей, их классификация, метод обратного распространения ошибки.
Во втором разделе описывается реализация математической модели нейронной сети для системы тестирования знаний.
В третьем разделе описывается выбор программных средств для разработки, а также структура системы и её реализация.
Заключение содержит обобщённые результаты дипломной работы, выводы по работе и рекомендации по использованию её результатов.
В работе использовалась учебная литература по информационным технологиям, программированию на языках высокого уровня и изучению нейронных сетей. Теоретические и практические вопросы рассмотрены в большом количестве источников различного характера. К таким источникам относятся учебные и учебно-методические пособия, специальные издания и электронные источники информации. Исторические предпосылки появления нейронных сетей описаны в статье Энила Д. [2]. Аналогия работы нейронных сетей с человеческим мозгом описаны в книгах В.В. Круглова [3] и С. Хайкина [5]. Математическое описание работы системы описаны в диссертации В.В.Жуйкова [8]. Работа с открытой библиотекой нейронных сетей FANN и PHP-fann доступны на соответствующих электронный ресурсах данных проектов [11,12].
Разработке системы для тестирования знаний посвящена представленная выпускная квалификационная работа.
1. Теоретическая часть
1.1 Краткий исторический обзор
Искусственные нейронные сети - это параллельные вычислительные устройства, состоящие из набора взаимодействующих простых процессоров. Такие процессоры обычно чрезвычайно просты, особенно по сравнению с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам, и, тем не менее, будучи соединенными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
Слово “искусственные” в данном контексте иногда используется для того, чтобы подчеркнуть, что речь идет об искусственном устройстве, а не о реальных биологических нейронных системах типа той, которую имеет человек. Создание искусственных нейронных сетей было инспирировано попытками понять принципы работы человеческого мозга и, без сомнения, это-будет влиять и на дальнейшее их развитие. Однако, в сравнении с человеческим мозгом, искусственные нейронные сети сегодня представляют собой весьма упрощенные абстракции [1].
Исследования в области искусственных нейронных сетей пережили три периода активности. Первый пик в 40-х годах был обусловлен работой МакКаллока и Питтса (Warren Sturgis McCulloch, Walter Pitts). Второй возник в 60-х благодаря теореме сходимости перцептрона Розенблатта и работе Минского и Пейперта, указавшей ограниченные возможности простейшего перцептрона. Результаты Минского и Пейперта погасили энтузиазм большинства исследователей, особенно тех, кто работал в области различных вычислительных наук. Возникшее в исследованиях по нейронным сетям затишье продлилось почти 20 лет. С начала 80-х годов искусственные нейронные сети вновь привлекли интерес исследователей, что связано с энергетическим подходом Хопфилда и алгоритмом обратного распространения ошибки для обучения многослойного перцептрона (многослойные сети прямого распространения), впервые предложенного Вербосом и независимо разработанного рядом других авторов. Алгоритм получил известность благодаря Румельхарту, а в 1986 году Андерсон и Розенфельд подготовили подробную историческую справку о развитии нейронных сетей [2].
1.2 Биологический нейрон
Нервная система и человеческий мозг состоят из нейронов, связанных нервными волокнами. Нервные волокна способны передавать электрические импульсы между нейронами. Все процессы передачи раздражителей с кожи, ушей и глаз в мозг, процессы мышления и контролирующие действия реализуются в живом организме как передача электрических импульсов между нейронами.
Нейрон - это особая биологическая клетка, которая умеет обрабатывать различную информацию (рис.1.1). Он состоит из сомы (тело клетки), и отростков нервных волокон двух типов - дендритов, по которым принимаются импульсы, и одного аксона, по которому нейрон может передавать импульс. Тело нейрона состоит из ядра, которое содержит информацию о наследственных свойствах, и плазму, которая обладает молекулярными средствами для производства нужных нейрону материалов. Нейрон получает импульсы от аксонов других нейронов через дендриты и передает сигналы, сгенерированные телом клетки, вдоль своего аксона, который в конце разветвляется на волокна. На концах этих волокон находятся специальные образования - синапсы, которые оказывают влияние на силу импульсов.
Рис. 1.1 - Взаимосвязь биологических нейронов
Синапс представляет собой элементарную структуру и функциональный узел между двумя нейронами (волокно аксона одного нейрона и дендрита другого). Когда импульс достигает синаптического конца, выделяются специальные химические вещества - нейротрансмиттеры. Нейротрансмиттеры диффундируют через синаптическую щель, возбуждающую или тормозящую, в зависимости от типа синапса и способности нейрона-приемника генерировать электрические импульсы. Эффект передачи импульсов синапсом может быть настроен сигналами, проходящими через него, так что синапсы могут обучаться в зависимости от активности процессов, в которых они участвуют. Эта зависимость от предыстории действует как память, которая, пожалуй, ответственна и за человеческую память. Важно отметить, что веса синапсов могут меняться со временем, а это значит, что поведение соответствующих нейронов также изменяется [4].
Человеческий головной мозг состоит приблизительно из 1011 нейронов и являет собой протяженную поверхность толщиной от 2 до 3 мм с площадью около 2200 см2. Каждый из нейронов связан с 103 - 104 другими нейронами. В целом мозг человека содержит примерно от 1014 до 1015 взаимосвязей.
Нейроны взаимодействуют короткими сериями импульсов, длительностью, обычно, несколько миллисекунд. Сообщение передается с помощью частотно-импульсной модуляции. Частота может варьироваться от нескольких единиц до сотен герц, а это в миллион раз медленнее, чем высокоскоростные электронные схемы переключения. Однако человек может решить сложные проблемы распознавания за несколько сотен миллисекунд. Эти решения контролируются сетью нейронов, чья скорость выполнения операций составляет всего несколько миллисекунд. Это означает, что расчеты требуют не более 100 последовательных этапов. Другими словами, для таких сложных задач мозг «запускает» параллельные программы, содержащие около 100 шагов. Рассуждая аналогично, можно обнаружить, что количество информации, отправленной от одного нейрона к другому, должно быть очень маленьким (всего несколько бит). Из этого следует, что основная информация не передается напрямую, а фиксируется и распределяется по связям между нейронами [3, с. 8].
1.3 Структура и свойства нейрона
Нейрон является неотъемлемой частью нейронной сети. На Рис. 1.2 показана его структура. Он состоит из трех типов элементов: мультипликаторов (синапсов), сумматора и нелинейного преобразователя. Синапсы создают связь между нейронами, умножают входной сигнал на число, характеризующее силу соединения (вес синапса). Сумматор складывает все сигналы, поступающие через синаптические соединения от других нейронов и внешних входных сигналов. Нелинейный преобразователь реализует нелинейную функцию одного аргумента - вывод сумматора. Эта функция называется функцией активации или передаточной функцией нейрона.
Рис. 1.2 - Структура искусственного нейрона
Нейрон в целом реализует скалярную функцию векторного аргумента. Математическая модель нейрона:
где S - результат суммирования;
n - число входов у нейрона;
wi - вес синапса, i = 1...n;
хi - входной сигнал, i = 1...n;
b - смещение;
Y - выходной сигнал;
f - нелинейное преобразование (или функция активации).
Входной сигнал, весовые коэффициенты и смещение могут принимать действительные значения, а во многих практических задачах - только некоторые фиксированные значения. Выход (Y) определяется типом функции активации и может быть как действительным, так и целочисленным. Синаптические связи с положительными весами называются возбуждающими, с отрицательными весами - тормозящими. Описанный вычислительный элемент можно рассматривать как упрощенную математическую модель биологических нейронов. Чтобы подчеркнуть различие между биологическими и искусственными нейронами, последние иногда называют нейроподобными элементами или формальными нейронами. При входном сигнале (S) нелинейный преобразователь отвечает выходным сигналом f(S), который является выходом нейрона. Одной из наиболее распространенных является функция нелинейной активации с насыщением, так называемая логистическая функция или сигмоид (функция S-образной формы)
При уменьшении a сигмоид становится более пологим, в пределе при a = 0 вырождается в горизонтальную линию на уровне 0,5, при увеличении a сигмоид приближается к виду функции единичного скачка с порогом И.
Рис.1.3 - Примеры активационных функций: а) - функция единичного скачка, б) - линейный порог (гистерезис), в) - сигмоид (логистическая функция), г) - сигмоид (гиперболический тангенс)
Из выражения для сигмоида видно, что выходное значение нейрона лежит в диапазоне (0, 1) Одно из ценных свойств сигмоидальной функции - простое нахождение значения её производной:
Нужно отметить, что сигмоидальная функция дифференцируема по всей оси абсцисс, что зачастую используется в некоторых алгоритмах обучения нейронных сетей. Кроме того, сигмоид обладает свойством усиления слабых сигналов лучше, чем больших, и также предотвращает насыщение от больших сигналов, поскольку они соответствуют областям аргументов, где логистическая функция имеет пологий наклон [3, с. 10].
1.4 Виды нейронных сетей и их свойства
Нейронная сеть представляет собой набор из нейронно-подобных элементов, которые связаны с другими элементами сети, вес их связей определяется весовыми коэффициентами. В зависимости от функций, выполняемых нейронами в сети, можно выделить три типа нейронов:
1) входные нейроны, на которые подается вектор, кодирующие входное воздействие или образ внешней среды; в них обычно не осуществляется вычислительных процедур, а информация передается с входа на выход путем изменения их активации;
2) выходные нейроны, выходные значения которых представляют выходы нейронной сети; преобразования в них осуществляются по формулам (1.1) и (1.2);
3) промежуточные нейроны, составляющие основу нейронных сетей, преобразования в которых выполняются также по формулам (1.1) и (1.2).
В большинстве нейронных моделей тип нейрона связан с его расположением в сети. Если у нейрона имеются лишь выходные соединения, то это входной нейрон, а если наоборот - выходной нейрон. Однако возможно, что выход топологически внутреннего нейрона рассматривается как часть выхода сети. В процессе работы сети вектор ввода преобразуется в выходной сигнал с результатом обработки информации. Конкретная форма преобразования данных, выполняемая сетью, определяется не только характеристиками нейронных элементов, но и особенностями ее архитектуры, а именно топологией межнейронных связей, выбором определенных подмножеств нейронных элементов для ввода и вывода информации, методами обучения искусственной нейронной сети, наличие или отсутствие конкуренции между нейронами, а также методы управления и синхронизации передачи информации среди нейронов в сети.
С точки зрения топологии нейросети можно классифицировать на несколько типов:
- полносвязные (рис. 1.4, а);
- многослойные или слоистые (рис. 1.4, б);
- слабосвязные (рис. 1.4, в).
Рис.1.4 - Архитектуры нейронных сетей: а) - полносвязная сеть, б) - многослойная сеть с последовательными связями, в) - слабосвязные сети
В полностью связанных искусственных нейронных сетях каждый нейрон передает свой вывод остальным нейронам, включая себе. Все входные сигналы передаются всем нейронам. Выходными сигналами сети могут быть все или некоторые выходные сигналы нейронов после нескольких циклов работы сети.
В многослойной нейронной сети все нейроны объединяются в слои. Слой содержит набор нейронов с одиночными входными сигналами. Количество нейронов в слое может быть любым и не зависит от количества нейронов в других слоях. В общем случае, сеть состоит из Q слоев, пронумерованных слева направо. Внешние входные сигналы подаются на входы нейронов входного уровня (зачастую нумеруется нулём), а выходы сети являются выходами последнего слоя. В дополнение к входным и выходным уровням в многослойной нейронной сети есть один или несколько скрытых слоев. Связи с выходами нейронов определенного слоя q на входы нейронов следующего слоя (q + 1) называются последовательными.
В свою очередь, среди многослойных нейронных сетей выделяют следующие типы:
1) Монотонный. Это частный случай многослойных сетей с дополнительными условиями для связей и нейронов. Каждый слой, кроме последнего (выход), делится на два блока: возбуждающий и тормозящий. Связи между блоками также делятся на эти же блоки. Если из нейронов блока A только нейроны блока B приводят к нейронам блока B, это означает, что любой выходной сигнал является монотонной неубывающей функцией любого выходного сигнала блока A. Если эти связи только замедляют, то любой выходной сигнал блока B является невозрастающей функцией любого выходного сигнала блока A для нейронов монотонных сетей. Для нейронов монотонных сетей необходима монотонная зависимость выходного сигнала нейрона от параметров входных сигналов.
2) Сети без обратных связей. В таких сетях нейроны входного слоя получают входные сигналы, преобразуют их и передают нейронам первого скрытого слоя, и так далее вплоть до выходного, который выдает сигналы для интерпретатора и пользователя. Если не оговорено противное, то каждый выходной сигнал q-го слоя подастся на вход всех нейронов (q+1)-го слоя; однако возможен вариант соединения q-го слоя с произвольным (q+p)-м слоем.
Среди многослойных сетей без обратных связей различают полносвязанные (выход каждого нейрона q-го слоя связан с входом каждого нейрона (q+1)-го слоя) и частично полносвязанные. Классический вариант многослойных сетей - это полностью связанные сети прямого распространения (рис. 1.5).
Размещено на http://www.allbest.ru/
Рис.1.5 - Многослойная (двухслойная) сеть прямого распространения
3) Сети с обратными связями. В сетях с обратными связями информация с последующих слоев передается на предыдущие. Среди них, в свою очередь, выделяют следующие:
- слоисто-циклические, отличающиеся тем, что слои замкнуты в кольцо, последний слой передает свои выходные сигналы первому; все слои равноправны и могут как получать входные сигналы, так и выдавать выходные;
- слоисто-полносвязанные состоят из слоев, каждый из которых представляет собой полносвязную сеть, а сигналы передаются как от слоя к слою, так и внутри слоя; в каждом слое цикл работы распадается на три части, прием сигналов с предыдущего слоя, обмен сигналами внутри слоя, выработка выходного сигнала и передача к последующему слою;
- полносвязанно-слоистые, по своей структуре аналогичные слоисто-полносвязанным, но функционирующим по-другому: в них не разделяются фазы обмена внутри слоя и передачи следующему, на каждом такте нейроны всех слоев принимают сигналы от нейронов как своего слоя, так и последующих.
В качестве примера сетей с обратными связями на рис. 1.6 представлены частично-рекуррентные сети Элмана и Жордана.
Рис.1.6 - Частично-рекуррентные сети: а) - Элмана, б) - Жордана
В слабосвязных нейронных сетях нейроны располагаются в узлах прямоугольной или гексагональной решетки. В них каждый нейрон связан с 4, 6 или 8 своими ближайшими соседями.
Известные нейронные сети можно разделить по устройству своей структуры нейронов на гомогенные и гетерогенные. Гомогенные сети состоят из нейронов одного типа с единой функцией активации, а в гетерогенную сеть входят нейроны с различными функциями активации.
Существуют бинарные и аналоговые сети. Первые из них оперируют только двоичными сигналами, и выход каждого нейрона может принимать значение либо логического ноля (заторможенное состояние) либо логической единицы (возбужденное состояние).
Также нейронные сети делят на синхронные и асинхронные сети. В первом случае в каждый момент времени только один нейрон меняет свое состояние, во втором - состояние изменяется сразу для целой группы нейронов, как правило, для всего слоя. Алгоритмически, ход времени в нейронных сетях определяется итеративной реализацией одного и того же типа действий над нейронами.
Сети возможно классифицировать и в соответствии с количеством слоев. Теоретически количество слоев и количество нейронов в каждом слое могут быть произвольными, но на самом деле оно ограничено ресурсами компьютера или специализированных микросхем, на которых обычно реализуется нейронная сеть. Чем сложнее сеть, тем более сложные задачи она может решить.
Выбор структуры нейронной сети осуществляется в соответствии с особенностями и сложностью задачи. Если же задача не может быть сведена ни к одному из известных типов, приходится решать сложную проблему синтеза новой конфигурации. При этом необходимо руководствоваться следующими основными правилами:
- возможности сети возрастают с увеличением числа нейронов сети, плотности связей между ними и числом слоев;
- введение обратных связей наряду с увеличением возможностей сети поднимает вопрос о динамической устойчивости сети;
- сложность алгоритмов функционирования сети, введение нескольких типов синапсов способствует усилению мощности нейронной сети.
Вопрос о необходимых и достаточных свойствах сети для решения задач того или иного рода является целым направлением нейрокомпьютерной науки. Поскольку проблема синтеза нейронной сети сильно зависит от решаемой задачи, то отсутствуют какие-либо общие рекомендации. В большинстве случаев оптимальная версия нейронной сети получается на основе интуитивного отбора.
Многие проблемы распознавания образов (визуальные, речевые), выполнение функциональных преобразований в обработке сигналов, управлении, прогнозировании, идентификации сложных систем сводятся к следующей математической формулировке. Необходимо построить такое отображение X -> Y, что правильный выходной сигнал Y формируется для каждого возможного входного сигнала X. Отображение устанавливается конечным набором пар (<вход>, <известный выход>). Количество таких пар значений (например, примеры обучения) намного меньше, чем общее количество возможных комбинаций значений входных и выходных сигналов. Совокупность всех примеров обучения называется обучающей выборкой.
В результате отображения X->Y необходимо обеспечить формирование правильных выходных сигналов в соответствии:
- со всеми примерами обучающей выборки;
- со всеми возможными входными сигналами, которые не вошли в обучающую выборку.
Второе требование значительно усложняет задачу формирования учебного образца. В общем, эта проблема пока не решена, однако во всех известных случаях можно найти частное решение [3, с. 13].
1.5 Преимущества нейронных сетей
Свою силу нейронные сети черпают, во-первых, из распараллеливания обработки информации и, во-вторых, из способности самообучаться, т.е. создавать обобщения. Под термином обобщение понимается способность получать обоснованный результат на основании данных, которые не встречались в процессе обучения. Эти свойства позволяют нейронным сетям решать сложные (масштабные) задачи, которые на сегодняшний день считаются трудноразрешимыми. Однако на практике при автономной работе нейронные сети не могут обеспечить готовые решения. Их необходимо интегрировать в сложные системы. В частности, комплексную задачу можно разбить на последовательность относительно простых, часть из которых может решаться нейронными сетями. Очень важно уяснить, что для создания компьютерной архитектуры, которая будет способна имитировать человеческий мозг (если такое окажется возможным вообще), придется пройти долгий и трудный путь.
Использование нейронных сетей обеспечивает следующие полезные свойства систем:
1. Нелинейность. Искусственные нейроны могут быть линейными и нелинейными. Нейронные сети, построенные из соединений нелинейных нейронов, сами являются нелинейными. Более того, эта нелинейность особого сорта, так как она распределена по сети. Нелинейность является чрезвычайно важным свойством, особенно если сам физический механизм, отвечающий за формирование входного сигнала, тоже является нелинейным (например, человеческая речь).
2. Преобразование входной информации в выходную. Один из популярных способов обучения - это обучение с учителем. Здесь подразумевается изменение синаптических весов на основе набора примеров обучения. Каждый пример состоит из входного сигнала и соответствующего требуемого ответа. Из этого набора случайным образом выбирается пример, и нейронная сеть модифицирует синаптические веса для минимизации расхождений между желаемым выходным сигналом и сетью, генерируемой в соответствии с выбранным статистическим критерием. В этом случае сами параметры сети изменяются. Ранее используемые примеры могут быть впоследствии применены снова, но в другом порядке. Это обучение проводится до тех пор, пока изменения синаптических весов не станут незначительными. Таким образом, нейронная сеть учится примерами, составляя таблицу матриц ввода-вывода для конкретной задачи. Этот подход позволяет вспомнить непараметрическое статистическое обучение. Это направление статистики относится к оценкам, которые не связаны с какой-либо конкретной моделью, или с биологической точки зрения, с обучением с нуля. Здесь термин «непараметрический» используется, чтобы подчеркнуть, что изначально нет предопределенной статистической модели входных данных. Например, рассмотрим проблему классификации изображений. Он должен связывать входной сигнал, представляющий физический объект или событие, с определенной предопределенной категорией (классом). При непараметрическом подходе к этой задаче требуется «оценить» структуру принятия решений во входном сигнальном пространстве на основе набора примеров. В то же время не используется вероятностная модель распределения. Подобный подход также применяется в обучении с учителем. Это снова подчеркивает параллель между отображением входных сигналов на выход нейронной сетью и непараметрическим статистическим обучением.
3. Адаптивность. Нейронные сети имеют возможность адаптировать свои синаптические веса к изменениям в окружающей среде. В частности, нейронные сети, обученные работать в конкретной среде, могут легко быть переучены для работы в условиях незначительных колебаний параметров окружающей среды. Более того, для работы в нестационарной среде могут создаваться нейронные сети, которые изменяют синаптические веса в реальном времени. Архитектура нейронных сетей, естественная для классификации изображений, обработки сигналов и задач управления, может сочетаться с их адаптивной мощностью, что приведет к моделям адаптивной классификации изображений, адаптивной обработки сигналов и адаптивного управления. Известно, что чем выше адаптивные способности системы, тем более стабильной будет ее работа в нестационарной среде. Также, нужно заметить, что адаптивность не всегда приводит к стабильности; Иногда это приводит к совершенно противоположному результату. Для того чтобы использовать все достоинства адаптивности, основные параметры системы должны быть достаточно стабильными, чтобы можно было не учитывать внешние помехи, и достаточно гибкими, чтобы обеспечить реакцию на существенные изменения среды.
4. Очевидность ответа. В контексте проблемы классификации информации можно разработать нейронную сеть, которая собирает информацию не только для определения определенного класса, но и для повышения надежности решения. Впоследствии эта информация может быть использована для устранения сомнительных решений, которые повысят эффективность нейронной сети.
5. Контекстная информация. Знание представлено в самой структуре нейронной сети с ее состоянием активации. На каждый нейрон в сети могут влиять все другие нейроны. Как следствие, существование нейронной сети напрямую связано с контекстной информацией.
6. Отказоустойчивость. Нейронные сети, облаченные в форму электроники, потенциально отказоустойчивы. Это значит, что при неблагоприятных условиях их производительность падает незначительно. Например, если поврежден какой-то нейрон или его связи, извлечение запомненной информации затрудняется. Однако, принимая в расчет распределенный характер хранения информации в нейронной сети, можно утверждать, что только серьезные повреждения структуры нейронной сети существенно повлияют на ее работоспособность. Поэтому снижение качества работы нейронной сети происходит медленно. Незначительное повреждение структуры никогда не вызывает катастрофических последствий. Это -- очевидное преимущество робастных вычислений, однако его часто не принимают в расчет. Чтобы гарантировать отказоустойчивость работы нейронной сети, в алгоритмы обучения нужно закладывать соответствующие поправки.
7. Масштабируемость. Параллельная структура нейронных сетей потенциально ускоряет решение некоторых задач и обеспечивает масштабируемость нейронных сетей, что даёт возможность представить достаточно сложное поведение с помощью иерархической структуры.
8. Однородность анализа и проектирования. Нейронные сети являются универсальным механизмом обработки информации. Это означает, что одно и то же решение нейронной сети может использоваться во многих предметных областях. Это свойство проявляется несколькими способами. Нейроны в той или иной форме являются стандартными компонентами любой нейронной сети. Эта общность позволяет использовать одни и те же теории обучения и алгоритмы в различных приложениях нейронной сети. Модульные сети могут быть построены на основе интеграции целых модулей.
9. Аналогия с нейробиологией. Структура нейронных сетей определяется по аналогии с мозгом человека, что является живым доказательством того, что отказоустойчивые параллельные вычисления являются не только физически осуществимыми, но и быстрым и мощным инструментом решения проблем. Нейрофизиологи рассматривают искусственные нейронные сети как средство моделирования физических явлений. С другой стороны, инженеры постоянно пытаются научиться у нейробиологов новыми идеями, выходящими за рамки традиционных электрических схем [5].
1.6 Алгоритм обратного распространения ошибки. Обучение с учителем
Алгоритм обратного распространения - способ быстрого расчета градиента функции ошибки. Расчет производится от выходного слоя к входному по рекуррентным формулам и не требует пересчёта выходных значений нейронов. Обратное распространение ошибки позволяет во много раз сократить вычислительные ресурсы на расчет градиента по сравнению с расчетом по определению градиента. Зная градиент, можно применить множество методов теории оптимизации, использующих первую производную. Быстрый расчет градиента необходим во многих методах обучения, поэтому значимость алгоритма обратного распространения ошибки в теории нейронных сетей огромна [6].
Искусственная нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон слоя i связан с каждым нейроном слоя i+1, т. е. речь идет о полносвязной нейронной сети.
Задача обучения нейронной сети сводится к нахождению некой функциональной зависимости Y=F(X), где X - входной, а Y - выходной векторы. В общем случае такая задача, при ограниченном наборе входных данных, имеет бесконечное множество решений. Для ограничения пространства поиска при обучении ставится задача минимизации целевой функции ошибки нейронной сети, которая находится с помощью метода методу наименьших квадратов:
Где yi - значение i-го выхода нейросети,
di - целевое значение i-го выхода,
p - число нейронов в выходном слое.
Обучение нейросети производится методом градиентного спуска, т. е. на каждой итерации изменение веса производится по формуле (1.6):
Где h - параметр, определяющий скорость обучения.
Где yj - значение выхода j-го нейрона,
Sj - взвешенная сумма входных сигналов, определяемая по формуле (1.1).
При этом множитель
Где xi - значение i-го входа нейрона.
Далее рассмотрим определение первого множителя формулы (1.7):
Где k - число нейронов в слое n+1.
Далее вводим вспомогательную переменную:
Тогда мы сможем определить рекурсивную формулу для определения n-ного слоя, если нам известно значение следующего (n+1)-го слоя.
Нахождение же для последнего слоя нейронной сети не представляет сложности, так как нам известен целевой вектор, т. е. вектор, значения которого должна выдавать нейронная сеть при данном наборе входных значений.
Полный алгоритм обучения нейронной сети:
1. На входы нейронной сети подается один из требуемых образов и определяются значения на выходах нейронов в сети;
2. Рассчитывается для выходного слоя значение по формуле (1.12) и рассчитываются изменения весов выходного слоя N по формуле (1.13)
3. Рассчитываются значения по формулам (11) и (13) соответственно и для остальных слоев в нейронной сети, n = N-1..1
4. Корректируются все веса нейронной сети
5. Если полученная ошибка существенна, то осуществляется переход к шагу 1.
На этапе 2, нейронной сети поочередно в случайном порядке предъявляются вектора из обучающей выборки [7].
2. Модель нейронной сети
Если рассматривать нейронную сеть как способ представления знаний, то в ней хранятся знания об ассоциативных связях между стимулами (входными векторами) и откликами (выходными векторами).
Одним из важнейших компонентов системы тестирования будет является подсистема оценки результата тестирования. Построение математической модели может опираться на параметры тестовых заданий и результаты, полученные при проведении собственно самого тестирования.
Математическая модель тестирования будет основана на нейронных сетях, так как искусственные нейронные сети предоставляют набор математических и алгоритмических методов для решения широкого круга задач, обладают гибкостью в построении структуры [8, 9].
Модель представлена на рис. 2.1.
Рис. 2.1 - Модель нейронной сети для обработки результата
Входной слой L1 отвечает за ввод результатов тестирования, скрытый слой L2 определяет принадлежность к области знаний, выходной L3 - образует результат. Таким образом, объединяются близкие по тематике задания в один общий сигнал, с помощью этого мы можем оценить не только общее качество знаний, но и качество знаний по уровням усвоения.
Подсистема оценки результатов тестирования представляет собой:
S = {N, W, V}
гдеN = {X, T, R} - множество входных сигналов и выходных сигналов нейронов;
X = {xi} -- вектор входных сигналов;
T = {tj} -- множество выходных сигналов нейронов, отвечающих за принадлежность тем к данной предметной области;
R - выходной сигнал, отвечающий за результат.
W = {wij} -- матрица весовых коэффициентов нейронной сети, отвечающих за принадлежность вопросов к соответствующей теме
V = {vk} - вектор весовых коэффициентов, отвечающих за значимость данной темы в изучении данной дисциплины.
Входные сигналы, в данном случае это X, отражают правильность выполненного задания в промежутке [0..1]. К данному промежутку могут быть сведены практически любые шкалы, что даёт эксперту возможность использования своих шкал в проверке. К примеру, если это баллы от 0 до 10, то при делении на 10, результаты попадают в заданный промежуток.
Тестовое задание имеет характеристику, называемую степенью принадлежности к области знаний T, которую можно в математическом смысле интерпретировать как значение в промежутке [0..1]. Данное множество будет напрямую связано со структурой теста создаваемого пользователем.
Нейрон выходного слоя нейронной сети R - здесь значение весов V определяются целью тестирования, то есть важностью каждой темы для результата. Полученный результат - сигнал выходного слоя.
Для преобразования результата в необходимую интерпретацию, в том числе и пятибалльную оценку, предлагается использовать нечёткую логику. Чтобы определить максимальный возможный результат в выходном слое, необходимо на вход подать максимальные сигналы, то есть 1.
Для вычисления максимально возможного результата тестирования на все входы нейронной сети подаются значения 1. На выходе мы получим предельные значения результатов тестирования, на основе которых мы можем строить относительную шкалу оценки. Для расчёта итога теста на входы нейронной сети подаются данные проверки заданий, приведённые к предложенному ранее промежутку оценки тестовых заданий.
3. Разработка системы тестирования
3.1 Выбор программных средств для разработки
Так как хотелось бы, чтобы данная система была кроссплатформенной, также была возможность её работы на любых устройствах, было решено реализовать систему в виде веб-приложения.
Выбор программных средств для реализации проекта играет большое значение для реализуемой системы, поскольку определенные на этом этапе программные продукты, средства разработки и технологии непосредственным образом окажут влияние на будущее распространение разработанной системы, ведь чем более распространенными будут используемые при разработке и требуемые для функционирования системы технологии, тем шире круг потенциальных потребителей системы, имеющих возможность ей воспользоваться. Кроме того, выбор среды разработки непосредственно влияет на стоимость и простоту процесса разработки системы.
Для реализации будут использоваться:
- Языки программирования php (+модуль php-fann), javascript, html;
- СУБД MySQL;
- фреймворки jQuery, Bootstrap.
В веб-разработке одним из наиболее популярных языков программирования является PHP. Было принято решение использовать этот язык для написания системы. Кроме популярности выбор в пользу этого языка был обусловлен следующими преимуществами:
- является свободным программным обеспечением, распространяемым под особой лицензией (PHP license);
- легок в освоении на всех этапах;
- поддерживается большим сообществом пользователей и разработчиков;
- имеет развитую поддержку баз данных;
- имеется огромное количество библиотек и расширений языка;
- может быть развёрнут почти на любом сервере;
- портирован под большое количество аппаратных платформ и операционных систем [10].
FANN (fast artificial neural network) - быстрая искусственная нейронная сеть - представляет собой проект с открытым исходным кодом, который реализует многослойные искусственные нейронные сети на языке C с поддержкой как полностью подключенных, так и слабосвязанных сетей. Поддерживается кроссплатформенное выполнение как с фиксированной, так и с плавающей точкой. Она включает в себя структуру для простой обработки наборов данных обучения. Библиотека проста в использовании, универсальна, хорошо документирована и быстра. Доступны привязки к более чем 20 языкам программирования [11].
Некоторые особенности FANN:
- Многослойная искусственная нейронная сеть, написанная на языке программирования C;
- Обучение с помощью обратного распространения (RPROP, Quickprop, Batch, Incremental);
- Простая в использовании (создание, обучение и запуск ANN с помощью всего трех вызовов функций);
- Универсальный (можно настроить многие параметры и функции на лету);
- Хорошо документировано (легко читаемая вступительная статья, подробное справочное руководство и 50-страничный университетский отчет, описывающий идеи по внедрению и т. д.);
- Кроссплатформенность (скрипт configure для linux, DLL-файлы для Windows, файлы проектов для MSVC ++ и компилятора Borland);
- Выполнено несколько различных функций активации (включая пошаговые линейные функции для этого дополнительного бита скорости);
- Легко сохранять и загружать данные нейронной сети;
- Несколько простых в использовании примеров;
- Можно использовать как числа с плавающей точкой, так и c фиксированной точкой (фактически доступны как float, double, так и int);
- С открытым исходным кодом, но все еще можно использовать в коммерческих приложениях (лицензированных под LGPL);
- Простая обработка наборов данных для обучения.
PHP-FANN - Привязка PHP к библиотеке FANN, которая реализует многослойную искусственную нейронную сеть с поддержкой как полносвязные так и неполносвязные сети. Расширение включает фреймворк для управления обучающими выборками. Это расширение просто в использовании, гибкое, хорошо документированное и быстрое [12].
jQuery - это библиотека, которая значительно упрощает и ускоряет написание JavaScript кода. Она позволяет создавать анимацию, обработчики событий, значительно облегчает выбор элементов в DOM и создание AJAX запросов. Для jQuery написано огромное количество плагинов, которые позволяют расширить ее возможности еще больше [13].
Bootstrap - интуитивно простой и в тоже время мощный интерфейсный фреймворк, повышающий скорость и облегчающий разработку web-приложений. Bootstrap использует самые современные технологии CSS и HTML [14].
MySQL был выбран исходя из его высокой производительности и кроссплатформенности. Кроссплатформенность позволяет нам использовать разрабатываемую систему на боМльшем количестве серверных станций. Так же MySQL позволяет хранить достаточное количество данных в таблицах: до 8 млн ТБ (263 байт) начиная с версии 3.23 [15].
3.2 Структура БД и системы
Исходя из вышеперечисленных инструментов теперь перейдем непосредственно к разработке.
Описание данных, хранимых в таблицах можно представить в виде следующих таблиц (табл. 3.1 - 3.10):
Таблица 3.1 Структура таблицы «users» (Пользователи)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
идентификатор пользователя |
int(11) |
Первичный ключ, автоинкремент |
|
login |
имя пользователя (логин) |
varchar(255) |
||
password |
пароль |
varchar(255) |
||
type |
тип учетной записи |
int(11) |
||
name |
ФИО |
varchar(255) |
||
note |
заметка |
text |
Таблица 3.2 Структура таблицы «subjects» (Предметы, дисциплины)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id предметов |
int(11) |
Первичный ключ, автоинкремент |
|
id_user |
id пользователя |
int(11) |
внешний ключ |
|
name |
название |
varchar(255) |
Таблица 3.3 Структура таблицы «reports» (Отчеты)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id отчета |
int(11) |
Первичный ключ, автоинкремент |
|
id_user |
id пользователя |
int(11) |
внешний ключ |
|
id_test |
id теста |
int(11) |
внешний ключ |
|
time_start |
время начала |
int(11) |
||
time_end |
время окончания тестирования |
int(11) |
||
mark |
оценка за тест |
int(1) |
Таблица 3.4 Структура таблицы «themes» (Темы)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id темы |
int(11) |
Первичный ключ, автоинкремент |
|
id_subject |
id предмета |
int(11) |
внешний ключ |
|
name |
название |
varchar(255) |
||
weight |
вес(значимость) темы |
double |
Таблица 3.5 Структура таблицы «questions» (Вопросы)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id вопроса |
int(11) |
Первичный ключ, автоинкремент |
|
id_subject |
id предмета |
int(11) |
внешний ключ |
|
text |
текст вопроса |
text |
Таблица 3.6 Структура таблицы «weights» (Веса)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id связи |
int(11) |
Первичный ключ, автоинкремент |
|
from |
id вопроса |
int(11) |
внешний ключ |
|
to |
id темы |
int(11) |
внешний ключ |
|
value |
весовой коэффициент |
double |
Таблица 3.7 Структура таблицы «answers» (Ответы)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id ответа |
int(11) |
Первичный ключ, автоинкремент |
|
id_question |
id вопроса |
int(11) |
внешний ключ |
|
text |
текст ответа |
varchar(255) |
||
mark |
балл за ответ |
double |
Таблица 3.8 Структура таблицы «tests» (Тесты)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id теста |
int(11) |
Первичный ключ, автоинкремент |
|
id_subject |
id предмета |
int(11) |
внешний ключ |
|
type |
тип теста |
int(1) |
||
random |
случайное следование вопросов в тесте |
tinyint(1) |
||
time |
время на тест |
int(11) |
||
name |
название |
varchar(255) |
Таблица 3.9 Структура таблицы «tests_q» (Вопросы в тесте)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id записи |
int(11) |
Первичный ключ, автоинкремент |
|
id_test |
id теста |
int(11) |
внешний ключ |
|
id_q |
id вопроса |
int(11) |
внешний ключ |
Таблица 3.10 Структура таблицы «results» (Результаты теста)
Название поля |
Описание |
Тип |
Дополнительно |
|
id |
id записи |
int(11) |
Первичный ключ, автоинкремент |
|
id_report |
id отчета |
int(11) |
внешний ключ |
|
id_q |
id вопроса |
int(11) |
внешний ключ |
|
id_ans |
id ответа |
int(11) |
dytiybq rk.x |
Рис. 3.1 - Модель базы данных
Структура файлов и папок в системе имеет следующий вид:
В корневом каталоге:
-.htaccess - файл конфигурации apache
- help.php - справка по системе
- index.php - главная страница
- login.php - страница входа в систему
- questions.php - страница редактирования вопросов
- README.txt - инструкция по установке
- reports.php - страница с отчетами
- subjects.php - страница для редактирования списка дисциплин
- testing.php - страница, на которой производится тестирование
- tests.php - страница для редактирования тестов
- themes.php - страница для редактирования списка тем
- users.php - редактирование списка пользователей
Папка css - стили оформления для bootstrap
Папка fann - содержит сохраненные данные нейросети
Папка fonts - шрифты для boostrap
Папка inc - вспомогательные файлы для работы системы
Папка inc/tpl - шаблоны для оформления
Папка install - файлы для установки
Папка js - javascript'ы для jQuery и bootstrap
3.3 Разработка
Рассмотрим некоторые аспекты функционирования системы. Каждая из страниц сайта имеет общую структуру: в начале подключаются (include, require) необходимые файлы, проверяется авторизация пользователя, устанавливаются переменные для формирования страницы. Пример кода:
require_once 'inc/config.php';
require_once 'inc/func.php';
if ($_SESSION['auth'] != true) {
header('Location: index.php');
exit();
}
$page['title'] = 'Отчёты';
$page['login'] = $_SESSION['login'];
include 'inc/tpl/header.php';
include 'inc/tpl/panel_navbar.php';
$page['nav']['cur'] = 1;
include 'inc/tpl/panel_left.php';
Далее выполняется какая-либо работа и подготовка данных для вывода. И в конце страницы подключается «низ»:
include 'inc/tpl/footer.php';
Файл inc/tpl/header.php выполняет функцию заголовка каждой страницы:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title><? echo $page['title'] ?></title>
<? echo $page['head']; ?>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min3.css" rel="stylesheet">
</head>
<body>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
Файл inc/tpl/panel_navbar.php отвечает за вывод навигационной панели вверху каждой страницы:
<div class="navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-brand">Панель управления</div>
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-collapse collapse navbar-right" id="navbar-main">
<ul class="nav navbar-nav">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" id="myset">Привет, <? echo $page['login']; ?><span class="caret"></span></a>
<ul class="dropdown-menu" aria-labelledby="myset">
<li><a href="help.php">Справка</a></li>
<li class="divider"></li>
<li><a href="login.php?act=exit">Выход</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
Файл inc/tpl/panel_left.php отвечает за вывод бокового меню каждой страницы. В нем осуществляется проверка на тип учетной записи и показываются только те пункты меню, к которым он имеет доступ.
<div class="col-md-3">
<ul class="nav nav-pills nav-stacked">
<?
echo '<li '.($page['nav']['cur'] == 0 ? 'class="active"': '').'><a href="testing.php">Тестирование</a></li>';
echo '<li '.($page['nav']['cur'] == 1 ? 'class="active"': '').'><a href="reports.php">Отчёты</a></li>';
if ($_SESSION['type'] <= 1) echo '<li '.($page['nav']['cur'] == 2 ? 'class="active"': '').'><a href="subjects.php">Мои предметы</a></li>';
if ($_SESSION['type'] == 0) echo '<li '.($page['nav']['cur'] == 3 ? 'class="active"': '').'><a href="users.php">Пользователи</a></li>';
?>
</ul>
</div>
index.php - главная страница сайта (рис. 3.2). Содержит в себе приветствие, кнопку перехода к справке и кнопку перехода на страницу авторизации. Оформление страниц осуществляется с помощью bootstrap добавлением к тегам элементов (например, div, form) дополнительного атрибута class, который связывает тег со стилевым оформлением. Часть кода страницы, показывающая текст приветствия:
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="jumbotron">
<h1>Добро пожаловать!</h1>
<p>nTester - система тестирования качества знаний студентов на основе нейронных сетей</p>
<p><a class="btn btn-primary btn-lg" href="help.php">Подробнее</a></p>
</div>
</div>
</div>
</div>
Рис. 3.2 - Главная страница
После перехода на страницу авторизации (рис. 3.3), пользователю предлагается ввести его логин (имя пользователя) и пароль. При нажатии кнопки «Отмена» данные, введённые в форму удаляются, а при нажатии «Войти» происходит проверка введенных данных и, в случае их правильности осуществляется переход в панель управления. Если пользователь с введёнными данными не будет найден в системе, будет показана ошибка, уведомляющая об этом.
Рис. 3.3 - Страница авторизации
Файл login.php осуществляет корректность введенных данных в каждом из полей, проверяет наличие пользователя в базе данных, и если он существует, то пользователь считается авторизованным. Также в переменную сессии записываются некоторые данные используемые позже в других частях системы:
$errors = array();
$login = checkin($link, $_POST['login']);
$pass = checkin($link, $_POST['password']);
if (mb_strlen($login) < 2 || mb_strlen($login) > 20) {
$errors[] = 'Логин должен содержать от 2 до 20 символов';
}
if (preg_match('/[^\dA-z\-\_\.]+/', $login)) {
$errors[] = 'Логин может содержать только символы латинского алфивита, цифры, а также:. _ -';
}
if (mb_strlen($pass) < 6) {
$errors[] = 'Минимальная длина пароля 6 символов';
}
if (empty($errors)) {
$pass = hash('SHA256', md5($pass));
$res = mysqli_query($link, "SELECT `id`, `login`, `type` FROM `users` WHERE `login`='$login' AND `password`='$pass'");
if (mysqli_num_rows($res) > 0) {
$arr = mysqli_fetch_row($res);
$_SESSION['auth'] = true;
$_SESSION['id'] = $arr[0];
$_SESSION['login'] = $arr[1];
$_SESSION['type'] = $arr[2];
header('Location: testing.php');
exit();
} else {
$errors[] = 'Логин или пароль введены неверно';
}
}
if (!empty($errors)) {
$page['errors'] = '<div class="alert alert-dismissable alert-danger">
...Подобные документы
Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Разработка систем автоматического управления. Свойства нейронных сетей. Сравнительные оценки традиционных ЭВМ и нейрокомпьютеров. Формальная модель искусственного нейрона. Обучение нейроконтроллера при помощи алгоритма обратного распространения ошибки.
реферат [1,4 M], добавлен 05.12.2010Рассмотрение способов применения и основных понятий нейронных сетей. Проектирование функциональной структуры автоматизированной системы построения нейросети обратного распространения ошибки, ее классов и интерфейсов. Описание периода "бета тестирования".
дипломная работа [3,0 M], добавлен 02.03.2010Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Обучение нейронных сетей как мощного метода моделирования, позволяющего воспроизводить сложные зависимости. Реализация алгоритма обратного распространения ошибки на примере аппроксимации функции. Анализ алгоритма обратного распространения ошибки.
реферат [654,2 K], добавлен 09.06.2014Диагностический анализ изучения алгоритмов обучения нейронных сетей "с учителем". Сбор входных и выходных переменных для наблюдений и понятие пре/пост процессирования. Подготовка и обобщение многослойного персептрона, модель обратного распространения.
курсовая работа [249,3 K], добавлен 22.06.2011Программное обеспечение для получения исходных данных для обучения нейронных сетей и классификации товаров с их помощью. Алгоритм метода обратного распространения ошибки. Методика классификации товаров: составление алгоритма, программная реализация.
дипломная работа [2,2 M], добавлен 07.06.2012Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.
дипломная работа [1,8 M], добавлен 08.02.2017Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Гибкая технологии извлечения знаний из нейронных сетей, настраиваемой с учетом предпочтений пользователя. Тестирование, пробная эксплуатация и разработка новой версии программных средств, реализующих данную технологию. Индивидуальные пространства смыслов.
дипломная работа [336,3 K], добавлен 07.06.2008Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.
реферат [158,2 K], добавлен 16.03.2011Рост активности в области теории и технической реализации искусственных нейронных сетей. Основные архитектуры нейронных сетей, их общие и функциональные свойства и наиболее распространенные алгоритмы обучения. Решение проблемы мертвых нейронов.
реферат [347,6 K], добавлен 17.12.2011Программная реализация современной модели системы тестирования знаний студентов с помощью кроссплатформенных средств разработки. Элементы пользовательского интерфейса тестовой системы, поэтапный процесс ее функционирования. Алгоритм оценивания ответов.
курсовая работа [648,7 K], добавлен 14.07.2012Функциональная модель системы. Проектирование схемы базы данных. Проектирование архитектуры системы. Принцип технологии клиент-сервер. Построение схемы ресурсов. Выбор программных средств. Разработка базы данных с использованием Microsoft SQL Server.
дипломная работа [1,1 M], добавлен 30.03.2015Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.
контрольная работа [135,5 K], добавлен 30.11.2015Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.
курсовая работа [365,0 K], добавлен 18.05.2013Описание технологического процесса напуска бумаги. Конструкция бумагоделательной машины. Обоснование применения нейронных сетей в управлении формованием бумажного полотна. Математическая модель нейрона. Моделирование двух структур нейронных сетей.
курсовая работа [1,5 M], добавлен 15.10.2012Нейронные сети как средство анализа процесса продаж мобильных телефонов. Автоматизированные решения на основе технологии нейронных сетей. Разработка программы прогнозирования оптово-розничных продаж мобильных телефонов на основе нейронных сетей.
дипломная работа [4,6 M], добавлен 22.09.2011Основные функции, требования и характеристики системы тестирования. Создание современной модели WEB-сервиса тестирования знаний студентов с помощью средств WEB-разработки. Описание пользовательского интерфейса сайта, этапы прохождения тестовых заданий.
курсовая работа [6,4 M], добавлен 14.07.2012