Классификация текстов с помощью деревьев решений и нейронных сетей прямого распространения

Тип работы:
Реферат
Предмет:
Языкознание


Узнать стоимость новой

Детальная информация о работе

Выдержка из работы

О.Г. Шевелев, А.В. Петраков
КЛАССИФИКАЦИЯ ТЕКСТОВ С ПОМОЩЬЮ ДЕРЕВЬЕВ РЕШЕНИЙ И НЕЙРОННЫХ СЕТЕЙ ПРЯМОГО РАСПРОСТРАНЕНИЯ
Рассматриваются два различных подхода к автоматической классификации текстов — деревья решений и нейронные сети. Тексты представляются в виде набора количественных признаков. Дается подробное описание подходов, приводятся примеры классификации текстов по авторскому стилю. Производится сравнение эффективности классификации для каждого из подходов при различном числе авторов, различных признаках и объемах выборок.
В ходе анализа и упорядочивания текстов нередко возникает необходимость в их автоматической классификации. Классами, с которыми требуется сопоставить тексты, могут быть различные текстовые стили (индивидуальные, функциональные и др.), жанры, тематика содержания и пр. [1]. Найти формальное описание необходимого класса зачастую практически невозможно, поэтому требуются подходы, позволяющие извлекать необходимую информацию из самих текстов. В данной работе рассматриваются два подхода с использованием методов машинного обучения, в основе которых лежат различные принципы. Методы, основанные на деревьях решений, являются точными (дающими однозначное решение для определенных данных), к тому же их ответ прозрачен для понимания. Нейронные сети являются адаптивными алгоритмами, их точность во многом зависит от числа итераций (повторов) обучения и начальной инициализации. Обученная нейронная сеть представляет собой «черный ящик», способный дать решение, но не объяснить, как оно найдено. Несмотря на то, что указанные подходы довольно хорошо описаны в общем виде, работ по их применению для обработки текстов довольно мало, а важная для их реализации информация рассредоточена. Цель данной работы — предоставить достаточно полное описание подходов с учетом особенностей классификации текстов и дать оценку эффективности их применения на ряде масштабных экспериментов.
ПРЕДСТАВЛЕНИЕ ДАННЫХ
Любая классификация производится на основе каких-либо признаков. Для того чтобы классифицировать текст прежде всего необходимо определить значения выбранных признаков для этого текста. Для использования математических методов признаки, как правило, должны иметь количественное выражение. Количественным выражением признаков, связанных с наличием, взаимодействием или взаиморасположением определенных элементов в тексте, могут стать частоты появления этих элементов (например частоты появления букво- или словосочетаний). Существуют также и другие виды количественного представления признаков (например, в том случае, когда признак характеризует текст целиком).
Для удобства обработки представим тексты как наборы (векторы) количественных признаков. Расположим их в таблице, строки в которой соответствуют отдельным текстам (или фрагментам текстов), столбцы — признакам. В ячейках поместим значения признаков. В заголовки столбцов поместим названия признаков, в заголовки строк — классы, к которым мы хотим отнести тексты (рис. 1).
Так как рассматриваемые методы относятся к методам машинного обучения, для их использования необходим ряд текстов с уже известными классами. Имеющиеся данные разделяют на две группы — обучающую и тестовую выборку. Первая используется
для построения модели, вторая — для тестирования (оценке эффективности). В случае нейронных сетей иногда выделяют еще и третью, валидационную, группу, которая используется для оценки качества промежуточных результатов (определенной нейронной сети, если производится перебор различных сетей).
VarO Varl Var 2 Var3 Var 4
dost- о е vsky f ш 339 95 118 200 191
dost- о е vsky f ш 305 102 111 216 231
dost, g е vsky f m 327 123 139 213 205
dost о є vsky f m 213 33 84 185 165
gon. cha. rovi, а 902 39 67 166 170
goncharovia S9S 43 94 163 153
Рис. 1. Пример представления текстов в виде набора частотных признаков (Var0 — частота появления абзацев- Varl — предложений, состоящих из одного слова- Var2 — из двух и т. д., классификация по индивидуальному стилю)
ДЕРЕВЬЯ РЕШЕНИЙ
Деревом решений называют представленный в виде ациклического графа план, по которому производится классификация объектов, описанных набором атрибутов, по некоему целевому атрибуту. В задаче классификации текстов объектами являются тексты (фрагменты текстов), целевым атрибутом — класс текстов (стиль, жанр и т. п.). В качестве атрибутов, описывающих текст, будем использовать количественные признаки текста.
Дерево на основе определенных данных строится однозначно (рис. 2).
Каждый узел дерева содержит условие ветвления по одному из атрибутов. В том случае, когда атрибуты, описывающие объект, номинальные («да — нет», «удовлетворительно — хорошо — отлично» и т. п.), узел имеет столько ветвлений, сколько значений имеет выбранный атрибут. В случае количественных атрибутов, как в нашей задаче, каждый узел имеет всего два ветвления — если значение атрибута меньше определенного значения, то одна ветвь, если больше или равно — то другая. Листья дерева содержат значения целевого атрибута (классы, участвовавшие в обучении). Следуя по обученному дереву в соответствии со значениями атрибутов произвольного объекта, мы окажемся в одном из листов дерева. Значение этого листа определит значение целевого атрибута (класс) объекта (рис. 2).
Var4 dostoevsk^im 22 goncharGvia 28 dovlatovs 26
& lt-116 & gt-=116
VarO dostoevsk^Hnn 22 goncharovia 28 dovlatovs 26
& lt- 177 & gt-=177

dostoevskyfm 22 goncharovia 28
Рис. 2. Пример дерева решений для классификации текстов по трем индивидуальным стилям (Уаг4 — число появлений предложений, состоящих из 4-х слов, УагО — абзацев)
Алгоритм построения дерева решений
Найти достаточно четкое и подробное описание алгоритма построения дерева в существующих публикациях довольно сложно. Кроме того, в основном в них говорится о номинальных атрибутах, о количественных упоминается лишь вскользь. Поэтому приведем краткое описание алгоритма построения дерева для нашей задачи по шагам и все необходимые для его реализации формулы (за основу взята работа [2]).
1. Создается первый узел дерева (корень), в который входят все тексты (фрагменты текстов), представленные всеми имеющимися признаками (размер признакового вектора для каждого текста равен Ы).
2. Для текущего узла дерева выбирается наиболее подходящий признак и его наилучшее пограничное значение.
3. На основе пограничного значения выбранного признака производится разделение обучающей выборки на две части. Выбранный признак не включается в описание фрагментов в этих частях, т. е. фрагменты в частях представляются вектором с размерностью N — 1.
4. Образовавшиеся подмножества обрабатываются аналогично до тех пор, пока в каждом из них не останутся лишь тексты одного класса (этот класс и станет классом листа) или не останется признаков для различения текстов.
Для выбора самого подходящего признака воспользуемся наиболее часто встречающимся в литературе критерием, в соответствии с которым лучшим для разделения считается признак, дающий максимальную на данном шаге информацию классах. Эта величина определяется по формуле количества информации. В общем виде ее можно записать следующим образом:
I (У | X) = Н (У) — Н (У | X),
где Н (У) — энтропия множества У (множества классов), а Н (У | X) — средняя условная энтропия множест-
ва Y при известном множестве X (рассматриваемого признака). Так как польза от выбора признака в смысле построения наилучшего дерева напрямую зависит от выбора пограничного значения этого признака, формула количества информации приобретает следующий вид:
IG *(Y | X) = maxt IG (Y | X: t),
где t — пограничное значение признака (порог), которое, как правило, находится перебором всех значений признака для текстов в текущем множестве,
IG (Y | X: t) = H (Y) — H (Y | X: t).
Энтропия H (Y) множества классов вычисляется по формуле:
H (Y) = -Х Р (Уг) 1о§ 2 Р (Уг) ,
i
в которой р (у) — вероятность выбора текста i-го класса из оставшегося на текущем шаге множества. H (Y |X: t) — это так называемая пороговая энтропия (thresholded entropy) [2]:
H (Y | X: t) = p (X & lt- t) H (Y | X & lt- t) +
+p (X & gt-= t) H (Y | X & gt-= t),
где p (X & lt- t) и p (X & gt-= t) — вероятности выбора текстов, входящих в текущее множество, со значениями выбранного признака соответственно меньшими или большими заданного порога t.
H (Y | X & lt- t) = -X p (Уг | X & lt- t) 1og2 p (y | X & lt- t),
i
где p (yi X & lt- t) — вероятность выбора текста i-го класса из множества, полученного путем отбора элементов со значениями выбранного признака меньшим t из оставшегося на текущем шаге множества. H (Y |X & gt-= t) вычисляется аналогичным образом.
Для эффективной реализации данного алгоритма нужно учесть следующее:
1. В процессе поиска наилучшего признака и его порога не обязательно вычислять значения H (Y), так как они равны для всех признаков. Тогда для выбора признака и порога надо искать не максимум количества информации, а минимум H (Y | X: t) (пороговой энтропии).
2. В ходе построения дерева желательно не тиражировать данные в листах, а держать всего лишь один массив текстов с признаками. Для этого в каждом узле дерева достаточно хранить список текстов в нем (ссылки на главный массив) и список признаков, которые их описывают.
Оверфиттинг и прореживание
Оверфиттинг представляет собой явление, при котором алгоритм машинного обучения настраивается на шум, ошибки и нехарактерные данные в обучающей выборке. При использовании деревьев решений для борьбы с оверфиттингом используют методики прореживания (prunning). При прореживании на основе некоторого критерия отбрасываются те узлы дерева, которые наиболее вероятно настроились на шум и сократили способность дерева к обобщению.
В задаче классификации текстов нехарактерные данные и шум — частое явление (например фрагменты
текста, написанные в несколько ином, чем предполагается, стиле), поэтому использовать прореживание необходимо. Для этой цели в данной работе был применён алгоритм прореживания после построения, основанный на статистическом тесте независимости с использованием критерия х2 [2]. В виду того, что данный алгоритм дается обычно в самом общем и недостаточном для реализации виде, приведем его полное описание:
1. Выбирается очередной узел дерева.
2. Выдвигается статистическая гипотеза о независимости выбора класса от разделения текстов, производимого в этом узле.
3. Вычисляется достигнутый уровень значимости теста независимости. Если он превышает величину порога отсечения (не путать с пороговым значением признака), гипотеза о независимости не отвергается, разделение признаётся бессмысленным, и узел дерева превращается в лист. В качестве класса листа в таком случае возвращается класс, наиболее часто встречаемый во множестве текстов в данном листе. Порог отсечения находится для конкретных данных эмпирически так, чтобы после прореживания ошибка классификации была бы наименьшей [2].
Вычисление достигнутого уровня значимости в каждом узле дерева производится следующим образом. Строится таблица размера 2п, где п — число классов, «дошедших» до этого узла (см., например, табл. 1).
Т аблица 1
Класс & lt- & gt-= Всего
(1о81-оеУ8ку1т ти т1,2 т{
(1оу1а1"У8 т2,1 т2,2 т2
кирпгш т3,1 т3,2 т3
тт тт2 М
В ячейках таблицы находятся частоты встречаемости текстов соответствующих классов, для которых проверяемый в этом узле признак меньше либо больше или равен найденному на этапе построения дерева порогового значения (ту). В последнем столбце (т& lt-) и в последней строке (тт) располагаются так называемые «маргинальные» частоты. Они равны суммам по соответствующей строке или столбцу. М — общее число записей в узле.
На основании маргинальных частот строится таблица ожидаемых частот, которые мы наблюдали бы, если бы данные не зависели от разделения по пороговому значению:
mmi • т ,¦
& lt-, 1 М
Значение критерия х2, показывающего степень расхождения между двумя выборками, равно:
т& lt-
Это значение — величина случайная, имеющая распределение х2 с (п — 1) степенями свободы, где п -число текстов с различными классами в проверяемом узле.
Подобная обработка, в большинстве случаев, увеличивает способности дерева к обобщению и, таким образом, уменьшает ошибку предсказания на новых данных, не вошедших в обучающую выборку.
Вычислительные эксперименты
Для оценки эффективности применения деревьев решений для выбранной задачи были проведены эксперименты по классификации литературных произведений по индивидуальному стилю. Были рассмотрены два набора количественных признаков:
1. Число абзацев и числа появления предложений, состоящих из определенного числа слов (от 1 до 39, 4О-й признак включает в себя все остальные предложения).
2. Числа появления ста самых часто встречаемых слов («и», «не», «в», «я» и др.).
Кроме того, были рассмотрены три различных по сложности задачи: классификацию текстов 30, 20 и 10 писателей. В число первых вошли классики XIX века (Достоевский Ф.М., Гончаров И. А. и т. п.), писатели начала XX века (Горький М., Грин А. С., Ильф и Петров и т. п.) и современники (Акунин Б., Довлатов С., Улицкая Л. и др.). В число вторых — 20 писателей из первой выборки, имеющих наибольший по числу предложений объем текстов. Третьих — 10 писателей, отобранных по аналогичному принципу.
Так как векторы количественных признаков, подаваемые для классификации дереву решений, можно получить на текстах различных объемов, и эти объемы играют существенную роль в разрешении задачи (например текст из нескольких предложений может не иметь четко выраженных особенностей, а особенности большого текста делают его слишком отличным от прочих), важно было проверить метод на различных объемах текстовых фрагментов. Для этого в начале был рассмотрен случай, когда все тексты были одного объема, затем другого, третьего и т. д.
Для первого признака (объемы измеряются в предложениях) были рассмотрены текстовые фрагменты из 50 предложений, из 100, 200 и т. д. через 100 до 800 для 30 писателей, до 1200 для 20 писателей, до 1800 для 10 писателей. Разный максимальный объем для разного числа писателей связан с тем, что чем больше писателей, тем сложнее найти среди них тех, у которых достаточно много текстов. Для второго признака (объемы в словах) были рассмотрены фрагменты по 1000 слов, 2000 и т. д. через 1000 до 9000 для 30 авторов, до 15 000 для 20 авторов, до 18 000 для 10 авторов. Итого, если сложить число различных объемов для 30, 20 и 10 авторов, всего был исследован 41 набор данных для первого признака и 42 набора данных — для второго (всего 82 набора).
Эффективность работы метода оценивалась по доле правильно классифицированных текстов на тестовой выборке. Данный показатель является универсальным (его значение можно получить для любого классификатора) и простым в получении. Каждый набор данных участвовал в классификации несколько раз в соответствии с известным методом к-подмно-жеств (МоИб) [2]. Данный метод состоит в следующем. Перед экспериментом данные разделяются на к
т=
равных частей. Происходит к запусков алгоритма (обучение и тестирование). В ходе каждого запуска (к — 1) частей участвует в обучении, одна — в тестировании (тестовая часть постоянно меняется). В итоге финальная оценка равна среднеарифметическому полученных к оценок. Для получения наименьшего разброса оценки значение к должно быть равно числу текстов в наборе данных, но такой процесс был бы слишком трудоемкий. Наоборот, если разбиение проводить всего лишь один раз (метод тестового множества), то оценка слишком зависит от конкретного разбиения. В данной работе было выбрано к, равное 10 (компромисс между скоростью и качеством).
Так как эффективность классификации с помощью деревьев решений во многом зависит от выбранного порога отсечения в ходе прореживания дерева, перед проведением масштабных экспериментов нами был произведен перебор значений порога от 0,01 до 1 с шагом 0,01 на нескольких наборах данных из вышеприведенного списка. В ходе этих экспериментов было установлено, что наилучшая эффективность классификации достигается либо в том случае, когда порог отсечения лежит в пределах 0,01 до 0,08, либо, когда отсечение не производится (порог равен 1). Для проверки было выбрано три значения порога отсечения: 0,01- 0,05- 1. В итоге было произведено 2460 построений и тестирований деревьев решений (82 набора данных, 3 значения порога отсечения, 10 тестовых подмножеств).
Полученные результаты представим в виде 6 графиков (30, 20 и 10 авторов для обоих наборов признаков). По оси X расположим объемы выборок, по Y -эффективность классификации. Прямая с точками-ромбами (0) будет соответствовать экспериментам с порогом отсечения 0,01, с плюсами (+) — 0,05, с квадратами (?) для случая, когда прореживание не производилось (рис. 3 — 8).
0. 3
е. гв 0. ?6 0. ?4
0. гг 0. г 0. 18 0. 16 0. 14 0. 1?
0. 1
100 ?00 300 400 500 600 ?№ 800
Рис. 3. Зависимость эффективности классификации от объема текстовых фрагментов при различных порогах отсечения (признаки — число абзацев и числа появления предложений, состоящих из определенного числа слов, классы — 30 авторов)
Как видно из графика на рис. 3, наибольшая эффективность классификации текстов по числу абзацев и числам появления предложений, состоящих из оп-
ределенного числа слов, достигается на текстах из 700 предложений (0,28). На фрагментах меньшего объема эффективность заметно меньше, большего — сказать трудно, так как далее расчеты производились только на объеме 800 предложений, возможно на больших объемах эффективность могла и возрасти. Наилучшим порогом отсечения для всех объемов оказался порог 0,01. В целом деревья решений на данном признаке при 30 авторах довольно плохо классифицируют тексты (всего лишь четверть правильных ответов).
Для 20 авторов (рис. 4) результаты ненамного лучше. Наибольшая эффективность (0,38) достигается на объеме текстов в 1000 предложений (порог отсечения 0,01). Наилучший в плане эффективности объем выделить трудно, можно только сказать, что объем текстов более 800 предложений не дает существенного улучшения классификации. Тексты меньшего объема классифицируются заметно хуже (что подтверждается данными на рис. 3). Влияние порога отсечения не
0.4 0. 35 0.3 0. ?5 0. ?
3. 15 0. 1
?00 400 600 800 1000 1?00
Рис. 4. Зависимость эффективности классификации от объема текстовых фрагментов при различных порогах отсечения (признаки — число абзацев и числа появления предложений, состоящих из определенного числа слов, классы — 20 авторов)
0. 65
0. 6
0. 55
0. 5
0. 45
0. 4
0. 35
0. 3
0. ?5
400 800 1?00 1600
Рис. 5. Зависимость эффективности классификации от объема текстовых фрагментов при различных порогах отсечения (признаки — число абзацев и числа появления предложений, состоящих из определенного числа слов, классы — 10 авторов)
очевидно (где-то результаты лучше, где-то хуже), но в целом порог отсечения 0,01 дает более стабильные результаты (на маленьких объемах он всегда выше, с увеличением объема текстов эффективность в среднем не ниже остальных).
Десять авторов (рис. 5) деревья решений классифицируют заметно лучше, чем 20 и 30, но все же недостаточно хорошо для того, чтобы можно было использовать эти результаты на практике (в лучшем случае всего 60% правильных ответов). Достаточным объемом для классификации, после которого нет заметного улучшения эффективности, вновь является объем в 800 предложений. При пороге отсечения, равном 0,01, эффективность классификации опять в среднем лучше, чем при других порогах.
0. 55 0.5 0. 45 0.4 0. 35 0.3 0. ?5
0. г
0. 15
3000 6000 9000
Рис. 6. Зависимость эффективности классификации от объема текстовых фрагментов при различных порогах отсечения (признаки — числа появления часто встречаемых слов, классы — 30 авторов)
Как видно из рис. 6, числа встречаемости часто встречаемых слов являются намного более информативными признаками для различения индивидуального стиля. Наилучшая эффективность классификации (0,52) почти вдвое выше эффективности по вышерассмотренному признаку при том же числе авторов. Порог отсечения почти не влияет на результат. Объем в 6000 слов является достаточным для эффективной классификации (на больших объемах значительного улучшения не видно).
С уменьшением числа классов эффективность возрастает (наибольшая — 0,66), минимальный объем текстов для качественной классификации, после которого нет заметных улучшений, отодвигается к 10 000 слов. Тем не менее, на 6000 словах качество классификации не кардинально ниже. Значения порога не сильно влияют на результат, но немного лучше других показал себя порог 1 (без отсечения).
На 10 авторах рассматриваемый признак дает очень хорошие результаты (рис. 8). Наибольшая эффективность равна 0,8, что уже допускает возможность использования данных результатов на практике. Пороги отсечения по-прежнему не существенны, хорошими для классификации являются тексты объемом порядка 9000 — 12 000 слов (минимум 6000 слов).
0.7 0. 65 0.6 0. 55 0.5 0. 45 0.4 0. 35 0. 3
3000 6000 9000 1Е000 15 000
Рис. 7. Зависимость эффективности классификации от объема текстовых фрагментов при различных порогах отсечения (признаки — числа появления часто встречаемых слов, классы — 20 авторов)
0.8 0. 75 0.7 0. 65 0.6 0. 55 0.5 0. 45
3000 6000 9000 18 000 15 000 18 000
Рис. 8. Зависимость эффективности классификации от объема текстовых фрагментов при различных порогах отсечения (признаки — числа появления часто встречаемых слов, классы — 10 авторов)
Выводы
По результатам приведенных выше исследований можно сделать следующие выводы:
1. Выбор признаков играет решающую роль в эффективности классификации.
2. Числа абзацев и предложений, состоящих из определенного числа слов, являются намного менее информативными в плане определения индивидуального стиля, чем числа появления часто встречающихся слов.
3. По числам появления часто встречающихся слов с помощью деревьев решений можно достаточно точно различить 10 индивидуальных стилей.
4. Достаточным для классификации по индивидуальному стилю (по крайней мере, на рассмотренных признаках) являются тексты объемом в 800 предложений или 9000 слов (минимум 6000).
5. Порог отсечения не играет решающей роли в задаче классификации текстов, тем не менее, предпоч-тигельным является порог, равный 0,01, так как он дает, если не самые лучшие, то, по крайней мере, не
худшие результаты, кроме того, при таком пороге деревья решений становятся значительно проще для интерпретации (много узлов превращается в листы) и гораздо быстрее работают.
Узнать эффективность классификации самого метода деревьев решений (без учета информативности признаков), можно лишь сравнив результаты его работы с результатами работы других методов классификации на одних и тех же данных.
НЕЙРОННЫЕ СЕТИ ПРЯМОГО РАСПРОСТРАНЕНИЯ
Как известно [3], нейронные сети — вид математических моделей, которые строятся по принципу организации сетей нервных клеток мозга. В основе их построения лежит идея о том, что сколь угодно сложные процессы можно моделировать довольно простыми элементами (нейронами), а вся основная функциональность нейронной сети, состоящей из набора нейронов, обеспечивается связями между нейронами. Каждый нейрон представляет собой сумматор, он строит взвешенную сумму своих входов (вход умножается на соответствующий ему вес) и затем пропускает эту величину через пороговую функцию. Таким образом, получается его выходное значение. Выходные значения сети получаются в процессе взаимодействия всех ее нейронов (выход одного — на вход другого, если есть связь, и т. д.). Процесс настройки (обучения) сети представляет собой подгонку модели, которая реализуется сетью, к обучающим данным (например текстов с известными классами).
Существует множество видов нейронных сетей различной структуры. Нейронные сети прямого распространения являются наиболее популярным и хорошо зарекомендовавшим себя на различных задачах видом нейронных сетей. Они позволяют производить нелинейную аппроксимацию произвольной функции (в нашем случае функции принадлежности к классу) по набору примеров. Нейроны в данных сетях объединены в слои. Сеть состоит из произвольного числа слоев. Нейроны каждого слоя соединяются с нейронами предыдущего и последующего слоев по принципу «каждый с каждым» (рис. 9). Первый слой называется входным (слева), внутренние слои — скрытыми, последний (справа) — выходным. Количество нейронов на скрытых слоях может быть произвольным, размерность входного и выходного слоев зависит от обрабатываемых данных.
Рис. 9. Пример нейронной сети прямого распространения для данных на рис. 1
Для классификации текстов на входы сети предлагается подавать количественные признаки текстов. Размерность входного слоя в таком случае будет равна числу признаков. Число выходов предлагается брать по числу рассматриваемых классов. Выходной вектор тогда будет нулевым вектором с одной единичной компонентой, соответствующей классу текста (для примера на рис. 1 у текстов Достоевского -«1 0», Гончарова — «0 1»).
Нормализация данных
Прежде, чем обучать сеть классифицировать тексты, важно произвести нормализацию данных. Теоретически возможно обучение и без нормализации (тогда на входы подаются непосредственные значения признаков), но в таком случае возникают следующие проблемы:
1. Сеть обучается слишком медленно (значения признаков, как правило, существенно превышают значения весов и поэтому значения нейронов попадают за пределы пороговой функции, в итоге на выходе независимо от входов получаются одинаковые значения).
2. Величина признака зависит от размера текста, поэтому при обучении и тестировании на текстах различных размеров сеть не сможет найти правильное решение.
Существуют различные виды нормализации. На признаках текстов наиболее успешно проявила себя минимакс-нормализация (в таблице обучающей выборки находятся минимальный и максимальные элементы, каждый элемент таблицы модифицируется как (Xjj — min)/(max — min)), но она подвержена второй описанной выше проблеме. Поэтому предпочтительной является нормализация вида Хр /V, где V — объем текста в тех элементах, которые отражает признак (слова, предложения и пр.).
Заметим, что для деревьев решений, описанных ранее, нормализация не требуется. Тем не менее, нормализацию вида Xp/V для них также может быть полезна для того, чтобы можно было классифицировать тексты различных размеров.
Алгоритм обучения
Существует по меньшей мере 8 методов обучения нейронных сетей прямого распространения [4, 5]. В данной работе использовался классический метод обратного распространения с инерцией как наиболее простой в реализации, универсальный и дающий приемлемые результаты, хотя иногда и работающий дольше других методов. Поскольку данный метод зачастую дается в сокращенном или наоборот детализированном варианте (с выводами формул), неудобном для реализации, приведем краткое описание алгоритма по шагам с необходимыми формулами и комментариями (за основу взято описание из работы [6]):
1. Все веса сети приравниваются случайным маленьким величинам порядка 0,3.
2. Выбирается произвольный текст из обучающей выборки.
3. Рассчитываются выходы каждого нейрона от первого слоя к последнему. Выходные значения первого слоя приравниваются нормированным значениям
признаков выбранного текста, а скрытых и последнего слоев рассчитываются по формулам
(
пк пк-1
_ /
у,
(к-1), ]
ЕЕ У
V,_1 У1
(к) _ / (4к))
«(к)
где, 5,-К) — взвешенная сумма входов г-го нейрона к-го слоя- у,(к) — значение выхода г-го нейрона к-го слоя- у/к-1) — у-го нейрона (к — 1)-го слоя- wij^K) — вес связи от у-го нейрона (к — 1)-го слоя к г-му нейрону к-го- пк и пк-1 — число нейронов на соответствующих слоях- / -функция активации. В данной работе была выбрана сигмоидная функция активации, которая вычисляется по формуле
/ (х) _Г-^.
1 — e *
4. Рассчитываются ошибки всех нейронов. Ошибки нейронов последнего слоя равны
5, _(у — ^)/), где у, — - г-й реальный выход последнего слоя- ^ - г-й ожидаемый выход последнего слоя (0 или 1), а
/'- (Уг)_(- / (Уг))/ (Уг).
Ошибки нейронов остальных слоев вычисляются рекурсивно по формуле
5(к) _Г15"-1). w& lt-k-1)) г («-к)),
где 5/к+1) — ошибка у-го нейрона (к+1)-го слоя- wj¦?(k+1) -вес связи от г-го нейрона к-го (текущего) слоя к у-му нейрону (к+1)-го слоя- Уг (к) — выход г-го нейрона к-го слоя.
5. Рассчитываются значения дельта для каждого веса (изначально они все равны 0):
Дwг (k) (г) _ -п (Ц- Awг (k) (/ -1) — (1 — ц) 5(к). У (к-1)),
где Дw?/k)(t) и Дw?,¦(k)(t-1) — текущее и предыдущее значения дельта соответственно- п и д — глобальные параметры алгоритма, которые находятся эмпирически- П — скорость обучения (обычно около 0,1) — д — коэффициент инерции (около 0,3).
6. К каждому весу прибавляется соответствующее ему значение дельта.
7. Шаги 2 — 6 повторяются до тех пор, пока не будут перебраны все тексты в обучающей выборке (каждый текст подается только один раз).
8. Шаг 7 повторяется N раз, где N — число итераций. Таким образом, каждый текст будет подан на вход сети ровно N раз N выбирается порядка 103 — 105).
Вычислительные эксперименты
Для оценки эффективности сетей часто пользуются значением целевой функции обучения [6], равной
Е _ 2 Е (Ур, г — ёР, г)2 ,
2 рг
где Ур, г — реальное значение г-го выхода при подаче р-го примера, — желаемое. Но данный показатель
имеет следующие недостатки:
1. Он привязан к конкретным данным, что не позволяет, например, сравнивать эффективность классификации на различном числе авторов и даже различном числе текстов в обучающей или тестовой выборках.
2. Он не имеет аналогов для других методов классификации (например деревьев решений), т. е. его можно вычислить только для нейронных сетей.
В виду этих недостатков эффективность классификации с помощью нейронных сетей в данной работе оценивалась по доле правильно классифицированных текстов на тестовой выборке (т.е. так же, как и для деревьев решений). Но прежде, чем использовать данный показатель, необходимо было задать функцию, которая вместо дробных значений на выходе сети, лежащих в пределах [0,1], давала бы ответ в виде номера класса. Мы определили ее как
I _ а^шах (у,),
І
где У — -й выход. Ответ классификатора для конкретного примера считается правильным, если I равно реальному номеру класса.
Тестирование эффективности проводилось так же, как и для деревьев решений, по методу к-подмно-жеств, но в виду вычислительной сложности обучения нейронных сетей к было выбрано, равным 5 (вместо 10, как у деревьев решений). Тексты и признаки для экспериментов были взяты те же, за тем исключением, что рассматривались только наборы текстов 10 авторов.
В виду того, что в среднем нейронная сеть обучается в 10 и более раз дольше, чем строится дерево решений на тех же данных, масштабно удалось проверить только сети с одной структурой (один скрытый слой с 10 нейронами на нем). На некоторых объемах текстов 10 авторов были проверены и другие структуры (например 3 нейрона на слое, два скрытых слоя по 10 нейронов), но они показали меньшую эффективность классификации. Обучение производилось при 20 000 итераций. На некоторых данных было проверено 5000 и 50 000 итераций — эффективность классификации оказалась значительно ниже.
В ходе экспериментов выяснилось, что использование момента инерции ухудшает эффективность классификации. Возможно, это связано с тем, что использование инерции подразумевает проведение большего числа итераций (но в результате больше шансов достичь глобального минимума ошибки). Так как проверить это не удалось, в основных экспериментах был взят коэффициент инерции, равный 0 (т. е. без инерции).
Полученные результаты представим в виде 2 графиков (10 авторов для обоих признаков). Так же, как и для деревьев решений, по оси X расположим объемы выборок, по У — эффективность классификации. Прямая с точками-ромбами (?) будет соответствовать экспериментам по классификации с помощью нейронных сетей, с плюсами (+) — для сравнения с помощью деревьев решений при пороге отсечения, равным 0,01 (рис. 10 — 11).
Для признаков числа абзацев и чисел появления предложений, состоящих из определенного числа слов, для нейронных сетей было проверено значительно меньше текстов различных объемов по сравнению с деревьями решений. Тем не менее из рис. 10 четко видно, что эффективность классификации с их помощью значительно выше (0,67 против 0,58). Кроме того, при более тщательном подборе параметров
Рис. 10. Зависимость эффективности классификации от объема текстовых фрагментов для нейронных сетей и деревьев решений (признаки — число абзацев и числа появления предложений, состоящих из определенного числа слов, классы — 10 авторов)
Рис. 11. Зависимость эффективности классификации от объема текстовых фрагментов для нейронных сетей и деревьев решений (признаки — числа появления часто встречаемых слов, классы — 10 авторов)
нейронных сетей возможно еще большее увеличение эффективности. Минимальным объемом текстов для качественной классификации является объем в 1000 предложений (эффективность 0,65).
Для признаков чисел появления часто встречаемых слов (рис. 11) нейронные сети также показали значительно лучшие результаты по сравнению с деревьями решений (эффективность 0,87 против 0,79). Причем они оказались более устойчивыми к недостаточному объему текстов: для 3000 слов падение эффективности классификации не так заметно, как на том же объеме для деревьев решений. Тексты в 1000 слов одинаково плохо классифицируются и тем и другим методом.
ВЫВОДЫ
По результатам проведенных экспериментов можно сделать следующие выводы.
1. На задаче классификации текстов по количественным признакам нейронные сети заметно превосходят по эффективности деревья решений. Но при этом их настройка происходит значительно дольше (в 10 и более раз), чем производится построение деревьев решений. Кроме того, деревья решений дают легко интерпретируемый ответ в виде набора правил выбора того или иного класса, а нейронные сети — лишь информацию о степени принадлежности к классам. Поэтому выбор того или иного метода зависит от задачи: если необходима высокая точность классификации текстов, то следует применять нейронные сети, если нужен наглядный и быстрый ответ — деревья решений.
2. Выбор набора количественных признаков играет решающую роль при классификации текстов. Числа появления часто встречаемых слов значительно более информативны в плане классификации текстов по индивидуальному стилю, чем числа абзацев и числа появления предложений, состоящих из определенного числа слов.
3. Наименьшим объемом текстов для классификации приемлемого качества по авторскому стилю является объем текстов приблизительно в 800 предложений либо в 6000 слов, что согласуется с данными других исследователей (например, [7]).
ЛИТЕРАТУРА
1. СолганикГ.Я. Стилистика текста. М.: Наука, 2005. 253 с.
2. Moore A. Statistical data mining tutorials [Электронный ресурс]. Режим доступа: http: //www-2. cs. cmu. edu/awm/tutorials/, свободный.
3. Уоссермен Ф. Нейрокомпьютерная техника. М.: Мир, 1992.
4. Электронный учебник StatSoft [Электронный ресурс]. Режим доступа: http: //www. statsoft. ru/home/portal/applications/NeuralNetworks Advisor/Adv-new/MultilayerPerceptronsPartII. htm, свободный.
5. Цой Ю. Р., Спицын В. Г. Генетический алгоритм настройки искусственной нейронной сети // Тез. докл. конф. -конкурса студентов, аспирантов и молодых ученых «Технологии Microsoft в информатике и программировании». Новосибирск, 2004. С. 131 — 133.
6. Короткий С. Нейронные сети: алгоритм обратного распространения [Электронный ресурс]. Режим доступа: http: //www. orc. ru/ ~stasson/n2. zip, свободный.
7. Фоменко В. П., Фоменко Т. Г. Авторский инвариант русских литературных текстов. Предисловие А. Т. Фоменко // Фоменко А. Т. Новая хронология Греции: Античность в Средневековье. Т. 2. М.: Изд-во Моск. ун-та, 1996. С. 768 — 820.
Статья представлена кафедрой прикладной информатики факультета информатики Томского государственного университета, поступила в научную редакцию «Информатика» 20 мая 2005 г.

Показать Свернуть
Заполнить форму текущей работой