№ 5 (35) 2011
А. А. Мицель, докт. техн. наук, профессор Томского государственного университета систем управления и радиоэлектроники А. А. Погуда, аспирант Национального исследовательского Томского государственного университета
Нейросетевой подход к задаче тестирования
Основным недостатком проверки знаний обучаемых с помощью традиционного тестирования является дуальный характер получаемого результата. Повысить степень объективности и глубины оценивания знаний можно путем применения более тонких методов организации тестирования и обработки его результатов.
Введение
Один из самых распространенных способов контроля и оценивания знаний студентов состоит в предъявлении тестируемому фиксированного множества тестовых заданий и различных вариантов ответов на каждое из них. Все, что остается тестируемому, — выбрать один или несколько истинных, по его мнению, ответов на каждое тестовое задание. За основу таких способов, как правило, берется оценивание истинности предлагаемых вариантов ответов по принципу «правильно — неправильно». Это, соответственно, означает, что организатор тестирования должен считать ответ либо абсолютно правильным, либо абсолютно неправильным. Основной недостаток подобного подхода состоит в невозможности учитывать при тестировании неполные или не совсем точные ответы обучаемого.
Один из алгоритмов тестирования знаний был подробно рассмотрен авторами в работах [1- 3], где приводятся конкретные примеры и предлагается новый универсальный алгоритм для дисциплин, в которых ответы на вопросы даются в словесной форме.
При анализе систем тестирования выделим их основные проблемы, которые заключаются в следующем:
1) большая часть вопросов представляется в закрытой форме;
2) если случайно дан неправильный ответ, нет возможности его исправить;
3) по завершении тестирования невозможно проанализировать его результаты, поскольку неправильные ответы не выводятся и не разъясняются.
В работе [4] автор предлагает использовать многоуровневые тесты, в которых каждый последующий уровень вопросов уточняет ответ, данный на предыдущем уровне. Согласно этому методу тестируемому задаются вопросы в порядке возрастания сложности, тем самым исключается вариант угадывания, т. к. если на втором уровне тестируемый не ответит правильно на вопрос, это означает, что на первом уровне он просто угадал верный ответ. Тем не менее, у такого способа есть небольшой недостаток: все вопросы на каждом из уровней должны быть проработаны преподавателем, что занимает довольно много времени.
Алгоритм, предлагаемый авторами в настоящей статье, в большей или меньшей степени позволяет исключить недостатки, присущие описанным выше методам тестирования с помощью нейронных сетей.
Метод уточнения результата
Основой для данного алгоритма послужили результаты работ [4, 5]. В работах [1 - 3] авторы рассматривали проблему тестирования по гуманитарным дисциплинам более детально, и в качестве одного из вариантов предлагалось использование в задачах тестирования нейронных сетей. Существует несколько десятков различных нейросетевых
60 у
№ 5 (35) 2011
архитектур, причем эффективность многих из них доказана математически. К наиболее распространенным и изученным архитектурам относятся многослойный персептрон, нейронная сеть с общей регрессией, нейронные сети Кохонена.
Искусственная нейронная сеть — это набор нейронов, соединенных между собой. Как правило, передаточные функции всех нейронов в нейронной сети фиксированы, а веса являются параметрами нейронной сети и могут изменяться. Некоторые входы нейронов помечены как внешние входы нейронной сети, а некоторые выходы — как внешние выходы нейронной сети. Подавая любые числа на входы нейронной сети, получаем какой-то набор чисел на выходах. Таким образом, работа нейронной сети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами нейронной сети. Нейронные сети могут менять свое поведение в зависимости от состояния окружающей их среды. После анализа входных сигналов (возможно, вместе с требуемыми выходными сигналами) они самонастраиваются и обучаются, чтобы обеспечить правильную реакцию. Обученная сеть может быть устойчивой
к некоторым отклонениям входных данных, что позволяет ей правильно «видеть» образ, содержащий различные помехи и искажения. Практически любая задача сводима к задаче, решаемой нейронной сетью.
Выделяют три парадигмы обучения: с учителем, самообучение и смешанную. В первом способе известны правильные ответы к каждому входному примеру, а веса подстраиваются так, чтобы минимизировать ошибку. Обучение без учителя позволяет распределить образцы по категориям за счет раскрытия внутренней структуры и природы данных. При смешанном обучении комбинируются два вышеизложенных подхода. Существует большое число алгоритмов обучения, ориентированных на решение разных задач. Среди них выделяют алгоритм обратного распространения ошибки, который является одним из наиболее эффективных современных алгоритмов. Его основная идея заключается в том, что изменение весов синапсов происходит с учетом локального градиента функции ошибки. Разница между реальными и правильными ответами нейронной сети, определяемыми на выходном слое, распространяется в обратном направлении — навстречу потоку сигналов (рис. 1). В итоге
I £
си
I
Рис. 1. Метод обратного распространения ошибки для многослойной полносвязанной нейронной сети
61
№ 5 (35) 2011
каждый нейрон способен определить вклад каждого своего веса в суммарную ошибку сети. Простейшее правило обучения соответствует методу наискорейшего спуска, т. е. изменения синаптических весов пропорциональны их вкладу в общую ошибку.
Так как тест может выполняться в несколько этапов, множество входов конечно: X = {х1, ..,хп}, 1 < п < Множество значений каждого входа конечно и дискретно: хп = {хп1,..., хпт}, 1 < п < гс, 1 < т < гс. Множество выходов (реакций) конечно Y = {у,.., ук}, 1 < к < гс. Множество значений каждой реакции конечно и дискретно: ук = {ук1,..., ук1}, 1 < I < гс. Будем считать, что значения реакций могут использоваться на дальнейших этапах для последующей классификации. Поскольку выполнение проверки результата будет проходить в один этап, можно использовать сеть вида, показанного на рис. 2.
тестируемый сможет объяснить, почему он дал именно этот ответ, что позволит исключить элемент угадывания. Кроме того, представится возможность исправить результат, если на уровне 1 был дан неверный ответ, т. к. в результате упор будет сделан не на ответ первого уровня, а на истинность ответа, введенного на втором уровне. В результате тестирования выводятся данные, в которых отражается итоговый результат не только по первому уровню, но и по второму, что позволяет увидеть, в каком месте тестируемый допустил ошибку.
При применении этого метода тестируемый увидит свои ошибки и в дальнейшем будет более внимательным при ответе на вопросы первого уровня.
Поскольку тест будет состоять из нескольких этапов, разделим его на блоки:
• блок А;
• блок В;
• блок С;
Блок А. В нем содержатся ответы закрытой формы. Результат ответа первого уровня будет учитываться при окончательном анализе, после обработки ответа открытой формы. Очевидно, что блок А потребуется в спорных случаях, если ответ в блоке В неверен. Введем коэффициент истинности ответа q, который определим так:
• q = 1, если ответ верен;
• q = 0, если ответ неверен.
Очевидно, что в некоторых тестах закрытой формы встречаются вопросы с изюминкой, на которые следует давать строго определенные ответы, но при этом среди выбранных вариантов приводятся и другие, которые частично верны. Поэтому для частных случаев следует дополнить возможные значения q значением 0,5, которое означает частично верный ответ.
Блок В отвечает за обработку ответа, который будет введен тестируемым в открытой форме с помощью нейронной сети. Такой подход успешно используется в тесте Айзека [5]. Либо тестируемый подробно объясняет, почему он выбрал именно этот вариант ответа в блоке А, либо система задает ему
со
о &
Рис. 2. Вариант сети:
X — вектор входов, № — множество весовых
коэффициентов, Ь — порог, D — вектор ожидания работы сети, Y — матрица выходов, Е — вектор ошибок, 8 — локальный градиент
Значения признаков, умноженные на вектор весовых коэффициентов, распределяются по сумматорам, число которых соответствует числу реакций. С множеством хп на сумматор подается порог Ь. Полученная матрица выходов Y поступает на вход бло-
« ка сравнения, где сравнивается с весовой ч матрицей эталонов Wj. Следовательно, ис-
I
тинными ответами будут считаться те, у которых полученная матрица Y максимально <0 приближена к матрице эталонов W¡. <5 Как и в работе [4], на уровне 1 использу-Л ем вопрос закрытого типа, но ответ на уров-ё не 2 будет даваться в отрытой форме, где
62
№ 5 (35) 2011
дополнительный вопрос из той же темы, например если ответ был дан неверно. На любой вопрос ответ может быть дан по-разному, эта проблема подробно рассмотрена в работах [1, 2]. В итоге ответ тестируемого сравнивается с правильным ответом (весовая матрица эталонов), после чего на выходе имеем процентное соотношение истинности Р(. Использование нейронных сетей представляет собой принципиально новый подход к решению задач тестирования и контроля знаний. Использование нейронных сетей подходит для анализа текстов на естественном языке, что может максимально приблизить оценивание знаний компьютером к выводам, которые делает преподаватель при проверке устного или письменного задания.
Особенностью данного блока является то, что если тестируемый неверно ответил на вопрос в блоке А, то здесь ему дается шанс исправиться, так как в этом случае в блоке В ответ оценивается независимо от ответа в блоке А.
Блок С. В нем вычисляется итоговый результат.
Оценка в тесте выводится за каждый ответ, и в конце теста выводится результат (табл. 3) в виде средней оценки, которая находится по формуле:
1 п
о =1У V,
где О — оценка за тест, у( — оценка ответа на (-й вопрос, вычисляется по формуле а( + Р(, где а( — оценка ответа в блоке А, Р( — оценка ответа в блоке В; п — количество оценок, полученных в тесте. Результат оценки по каждому вопросу выводится с учетом данных табл. 2.
Таблица 1
Оценка истинности ответа а( в блоке А
Количественный показатель ц Показатель а,
0 0
0,5 25%
1 50%
В блоке В показатель р, вычисляется автоматически, исходя из процентного соотношения значения весовой матрицы эталонов W¡2 и ответа тестируемого.
Таблица 2
Оценка за ответ V
Ответ на вопрос, в процентном соотношении Оценка ответа V,
10% — 40% 2(неудовлетворительно)
41% — 50% 3 (удовлетворительно)
51% — 75% 4 (хорошо)
> 75% 5 (отлично)
Таблица 3 Пример итогового результата теста
Нумерация вопросов Формулировки вопросов Балл за ответ блок А / блок В Оценка V,
1 Кто победил в Бородинском сражении в 1812 году? 50% / 30% 5
2 Какие из перечисленных металлов не вытесняют водород из кислот? 0% / 60% 4
3 Перечислите основные компоненты персонального компьютера 50%/100% 5
4 Кто из перечисленных поэтов жил во второй половине ХХ в . ? 25% / 20% 3
Итоговая оценка за тест 4 (4,25)
Схема работы предложенного метода представлена на рис. 3.
Практическая часть
Для интерфейсной части программы авторами выбран язык программирования
§
г
I
63
№ 5 (35) 2011
Вопрос
вывод результата
Рис. 3. Схема работы метода уточнения результата
Borland C++ Builder 6. Перечислим основные аргументы в пользу выбора данной среды разработки:
• высокая производительность создаваемых модулей ПО промежуточного уровня для веб-служб;
• обеспеченность полной поддержкой стандартных протоколов SOAP, XML, WSDL и XSL;
• возможность разработки кросс-плат-№ форменных приложений для Windows Ü и Linux;
• поддержка баз данных IBM DB2, IBM g Informix, Oracle, Sybase, MySQL, dBASE, £ Paradox и Borland InterBase. Драйверы баз « данных dbGo for ADO, dbExpress и BDE, <? входящие в состав C+ + Builder, обеспе-ч чивают высокопроизводительную работу Ï5 приложений с такими СУБД, как DB2, Infor-^ mix, Oracle, Sybase, Microsoft SQL Server, § MySQL, Access, Paradox и InterBase. SQL <s Monitor и другие отладочные инструмен-Л ты позволяют достичь высокой произво-ё дительности, масштабируемости и умень-
шения времени отклика создаваемых приложений баз данных.
Для хранения базы таких вопросов и результатов тестирования была выбрана СУБД MySQL. Основанием для этого послужил ряд немаловажных причин, одна из которых заключается в следующем: MySQL относится к продуктам класса Open Source (открытые исходные тексты), которые можно получить бесплатно (с некоторыми ограничениями для платформы Windows). Как правило, сервер и клиент MySQL входят в любой дистрибутив операционных систем семейства BSD (FreeBSD, NetBSD, OpenBSD) и Linux, которые используются на большинстве веб-серверов, но при необходимости последнюю версию MySQL для всех поддерживаемых систем (в том числе и для Windows) также можно найти на сайте компании MySQL AB — разработчиков MySQL (http://www.mysql.com). Второй немаловажной причиной является надежность и защищенность. Например, если в других СУБД опираются на концепцию
№ 5 (35) 2011
транзакций, которая обеспечивает целостность и согласованность таблиц, фиксируя только законченные изменения, легко откатывая базу данных к последнему согласованному состоянию в случае неудачи, то в MySQL применяется концепция «запирания» таблицы перед проведением операций, потенциально опасных для целостности базы данных, не позволяя в этот момент другим соединениям изменять и читать данные с таблицы и ставя запросы в очередь. Существует множество различных СУБД. Все они в свое время пользовались большим спросом. В настоящее время на рынке малых, средних и промышленных систем лидирует корпорация Oracle. Ей принадлежит две популярных СУБД: ORACLE и MySQL. Сравнивать такие разные СУБД довольно тяжело, потому что они принадлежат к разным областям применения. MySQL больше подходит для проектов, в которых будет обрабатываться малое количество информации и отсутствует относительно большое количество пользователей. ORACLE больше подходит для крупных проектов.
Разрабатываемая программа состоит из двух модулей: модуль «клиент» и модуль «администратор». Первый позволяет пройти тестирование и посмотреть его результаты. Второй — править базу данных вопросов,
т. е. вносить изменения, добавлять новые вопросы или варианты ответов, а также про- ё сматривать полную статистику результатов ^ тестирования. Интерфейс программы изо- ^ бражен на рис. 4, где представлен модуль § администратора. Ц
На данный момент в программе полно- ^ стью реализован блок А, а также блок С. ^ Программа успешно проходит тестирование в Национальном исследовательском Томском государственном университете на факультете инновационных технологий. Блок В находится в разработке. Так как блок В отключен, блок С не может функционировать корректно, поэтому программа действует по следующему принципу: тестируемому задается вопрос и в случае неверного или частично верного ответа (этот параметр задается в модуле «администратор») ему задается дополнительный вопрос из той же темы, но вариант ответа не вводится, а выбирается из предложенных, как в блоке А. Пример выполнения теста изображен на рис. 5.
Модуль «клиент»
Модуль «клиент» представляет собой отдельный исполняемый файл с набором библиотек и служит только для проведения тестирования, т. е. просмотреть или внести какие-либо изменения в БД не получится,
Рис. 4. Интерфейс программы Рис. 5. Пример выполнения теста
«НейроТест» (дополнительный вопрос)
65
№ 5 (35) 2011
т. к. база данных располагается отдельно и устанавливается только на сервер, где устанавливается модуль «администратор». Для корректной работы модуля «клиент» на ПК требуется установка двух бесплатных приложений, которые входят в состав комплектации: MySQL Connector C++ и MySQL Connector ODBC. Если требуется установка на локальный компьютер, то также нужно установить MySQL 5.5.11. После настройки ODBC на сервер, где стоит БД, программа будет готова к работе.
1
2 Модуль «администратор»
il
k Модуль «администратор» позволяет вно-£ сить изменения в БД, т. е. править сущест-<| вующие вопросы и ответы, добавлять новые S вопросы или варианты ответов, а также про-^ сматривать полную статистику результатов тестирования. Среди прочих инструментов * для удобства преподавателей планирует-§ ся внедрить функцию импорта результатов fe в Microsoft Excel.
Л С целью структуризации вопросов име-зс ется возможность разбить весь матери-
ал по темам или блокам. Как изображено на рис. 6, тест разбит на три основных блока: философия, культурология и политология (А). Из каждого блока тестируемому предлагается по 10 основных вопросов, этот параметр задается в столбце «Кол-во вопросов из темы» (Б). При добавлении вопросов в базу данных администратор должен указать, к какой теме относится тот или иной вопрос (В). Далее заполняются поля «Ответ», а также отмечается, какой ответ правильный (Г). Это требуется для того, чтобы в результатах тестирования отобразить общее количество вопросов, на которые был дан верный ответ. Справа от поля «Ответ» вводится коэффициент истинности ответа д. Как уже говорилось, если тестируемый ответит на поставленный вопрос верно, т. е. д = 100%, то система задаст ему следующий вопрос. Если же ответ неверен или не является полным, т. е. д ~ 50%, то будет задан дополнительный вопрос.
В итоге после прохождения тестирования есть возможность самостоятельно посмотреть результаты, которые включают
66 у
№ 5 (35) 2011
Результаты тестов
Фамилия Имя Отчество Уч.за веде Кчрс Группа Дата/время К.вопр Прав Непр Прерв.
► :-н!=;.. тг- Иван Иванович ТГУ ФИТ 4 18603 01.07.2011 22:27:40 30 30 0 100 0
Петров Иван Семёнович ТГУ ФИТ 4 1SG03 04.07.2011 11:51:37 31 14 17 46 0
Сидоров Петр Иванович ТГУ ФИТ 5 18501 05.07.2011 10:13:15 0 0 0 0 1
Семенов Иван Петрович ТГУ 2 17845 05.07.2011 10:17:53 21 9 12 51 0
Сидоров Иван Иванович ТГУ 5 454677 05.07.2011 10:18:43 33 14 19 48 0
' и
-Завершенное^ Г Завершен« Г Незаверше Г иные Пр ™1
Рис. 7. Таблица результатов тестирования
сведения о тестируемом, число заданных вопросов и число вопросов с правильными ответами. В модуле «администратор» преподаватель может увидеть более детальную статистику, т. е. сколько раз тестируемый проходил тестирование, был ли тест прерван во время прохождения, а также общее время, затраченное на тестирование (рис. 7).
Заключение
В статье предложен новый метод проверки знаний учащихся, основанный на применении аппарата нейронных сетей. Для более корректной работы данного метода выбранную нейронную сеть следует правильно «обучить», т. е. подобрать такие значения ее весов, чтобы она работала нужным образом. В используемых на практике нейронных сетях количество весов может составлять несколько десятков тысяч, поэтому обучение — действительно сложный процесс. Для многих архитектур разработаны специальные алгоритмы обучения, которые позволяют настроить веса нейронной сети определенным образом. Наиболее популярный из этих алгоритмов — метод обратного распространения ошибки (Error Back Propagation), используемый, например, для обучения персеп-трона.
Разработано программное обеспечение, представляющее собой систему тестирования по гуманитарным дисциплинам «Нейро-Тест». Также разработаны модуль «клиент»
а
для тестирования студентов и модуль «администратор» для редактирования и просмот- ё ра базы данных. ^
Программа проходит тестирование в На- .опциональном исследовательском Томском го- а| сударственном университете на факультете Ц инновационных технологий, где преподаватели трех гуманитарных дисциплин — со- ^ циологии, истории и философии — принимают участие в составлении тестов и апробации программного продукта перед зачетом или экзаменом по данным дисциплинам. Ведется работа по завершению блока B, планируется применять систему «Нейро-Тест» для проверки остаточных знаний студентов, а в будущем и для экзаменов и зачетов.
Список литературы
1. Мицель А. А., Погуда А. А. Модели и алгоритмы для компьютерного контроля знаний // Открытое образование. 2010. № 6. С. 44 - 49.
2. Мицель А. А., Погуда А. А. Универсальный алгоритм проверки естественно-языковых тестов // Доклады ТУСУРа. 2010. № 2 (22). Ч. 2. С. 290 - 294.
3. Мицель А. А., Погуда А. А. Тестирование как неотъемлемая часть современного образования // Сборник материалов VI Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых. Томск: ТГУ, 2010. С. 92 - 96.
4. Молнина Е. В. Примеры реализации многоуровневого способа тестирования // Тезизы докладов VII Всероссийской научно-практической конференции «Модернизация инженерного и общего образования: проблемы и перспективы». Юрга: изд-во ТПУ, 2009. С. 39 - 42.
5. Рудинский И. Д. Модель нечеткого оценивания знаний как методологический базис автоматизации педагогического тестирования // Информационные технологии. № 9. 2003. С. 46 - 51.
6. Борисов А., Крумберг И., Федоров И. Принятие решений на основе нечетких моделей. Рига: Знание, 1990. — 352 с.
7. Кальченко Д. А. Нейронные сети: на пороге будущего // КомпьютерПресс. № 1. Янв. 2005.