Автор работы: Пользователь скрыл имя, 12 Мая 2012 в 21:54, курсовая работа
В данном курсовом проекте была разработана программа-анализатор слов естественного языка с использованием нейросети.
В ходе выполнения данного курсового проекта была разработана библиотека, содержащая классы для лексического анализа слов естественного языка с использованием нейросети (для решения поставленной задачи была выбрана нейросеть обратного распространения ошибки), была написана тестирующая программа, подготовлены тесты. При тестировании, после соответствующей настройки, программа не допустила ни одной ошибки.
Введение
1. Анализ нейронных сетей
1.1 Выбор разновидности сети
1.2 Модель многослойного персептрона с обучением по методу обратного распространения ошибки
1.3 Постановка задачи
2. Проектирование библиотеки классов для реализации нейросети и тестовой программы
2.1 Программная реализация нейросети обратного распространения ошибки
2.2 Класс перевода текста в двоичный вид
2.3 Класс хеш-таблицы и методов работы с ней
2.4 Класс разбиения текста на лексемы и распознавания
2.5 Описание тестирующей программы
2.6 Результаты тестирования
3. Руководство программисту
Заключение
Список используемой литературы
Приложения
Государственное образовательное учреждение
высшего профессионального образования
Кубанский государственный технологический университет
Армавирский механико-технологический институт
Кафедра внутризаводского
электрооборудования и
к курсовому проекту
по дисциплине: Теория языков программирования
на тему:
«Распознавание слов естественного языка с использованием нейросетей»
на курсовой проект
Студенту
специальности 230105(2204) «Программное обеспечение вычислительной техники и автоматизированных систем»
Тема проекта: «Распознавание слов естественного языка с использованием нейросетей»
Содержание задания:
1. Настройка и обучение нейросети.
3. Распознавание типа слов.
Требования: язык программирования
C#, объектный метод
Объем работы:
Пояснительная записка 30 – 35 листов
Графическая часть 2-3 листа формата А3
Рекомендуемая литература:
ГОСТ Р ИСО 9001-2001 Системы менеджмента качества. Требования.
ГОСТ 7.1-2003 СИБИД. Библиографическая запись. Библиографическое описание. Общие требования и правила составления.
ГОСТ 19.101-77 ЕСПД. Виды программ и программных документов.
ГОСТ 19.102-77 ЕСПД. Стадии разработки.
ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов.
ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам
ГОСТ 19.202-78 ЕСПД. Спецификация. Требования к содержанию и оформлению.
ГОСТ 19.404-79
ЕСПД. Пояснительная записка
ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.
Реферат
Пояснительная записка к курсовому проекту содержит 17 рисунков, 4 литературных источников, 3 приложения. К пояснительной записке прилагается 1 диск с готовой программой и материалами к ней, а также графическая часть, состоящая из трех листов.
ЛЕКСЕМА, НЕЙРОННАЯ СЕТЬ, ВХОДНОЙ СЛОЙ, СКРЫТЫЙ СЛОЙ, ВЫХОДНОЙ СЛОЙ, ОБУЧАЮЩАЯ ВЫБОРКА, ТЕСТОВАЯ ВЫБОРКА, ХЕШ-ТАБЛИЦА, ТАБЛИЦА ЛЕКСЕМ
Объект: лексический анализатор слов естественного языка с использованием нейросети.
Цель: закрепление теоретических знаний по дисциплине «Теория языков программирование и методов трансляции», получить практические навыки проектирования и разработки элементов транслятора.
Произведен выбор нейросети, рассмотрен ее алгоритм, представлена программная реализация на языке C# в библиотеке классов и написана тестирующая программа.
Содержание
Введение
1. Анализ нейронных сетей
1.1 Выбор разновидности сети
1.2 Модель многослойного персептрона с обучением по методу обратного распространения ошибки
1.3 Постановка задачи
2. Проектирование
библиотеки классов для
2.1 Программная
реализация нейросети
2.2 Класс перевода текста в двоичный вид
2.3 Класс хеш-таблицы и методов работы с ней
2.4 Класс разбиения текста на лексемы и распознавания
2.5 Описание тестирующей программы
2.6 Результаты тестирования
3. Руководство программисту
Заключение
Список используемой литературы
Приложения
Введение
Цель данного проекта: применение нейронной сети в лексическом анализе слов естественного языка.
Задачи: смоделировать, программно реализовать, настроить и обучить нейросеть для лексического анализа слов естественного языка.
Входной информацией являются параметры нейросети, файлы с обучающей выборкой.
Выходной информацией является таблица лексем.
Результатом курсового проекта должна быть программа-анализатор слов естественного языка с использованием нейросети.
1. Анализ нейронных сетей
1.1 Выбор разновидности сети
Искусственные нейронные сети — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети Маккалока и Питтса. Впоследствии, после разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др.
Искусственные нейронные сети представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
Существует много
Недостатками сети Кохонена является ее сложность и проблемы при классификации похожих образов. Сеть Хопфилда также может стать нестабильной, если обучающие примеры являются слишком похожими. Данные недостатки являются существенными, т.к. сходные по написанию слова естественного могут относиться к разным частям речи. Соответственно, для реализации лексического анализатора наиболее подходящей является сеть обратного распространения ошибки. Обратное распространение - первый эффективный алгоритм обучения многослойных нейронных сетей. Один из самых популярных алгоритмов обучения, с его помощью были решены и решаются многочисленные практические задачи.
1.2 Модель многослойного персептрона с обучением по методу обратного распространения ошибки
Ф. Розенблаттом использовал в своем персептроне не дифференцируемую ступенчатую функцию активации. Возможно, именно это помешало ему найти эффективный алгоритм обучения, хотя сам термин Back Propagation восходит к его попыткам обобщить свое правило обучения одного нейрона на многослойную сеть.
Разберем этот ключевой для нейрокомпьютинга метод несколько подробнее.
Алгоритм
обратного распространения - это
итеративный градиентный
Алгоритм
обратного распространения
На рисунке 1 показана укрупненная схема многослойной сети (многослойного персептрона). Нейроны представлены кружками, связи между нейронами - линиями со стрелками.
Рисунок 1 - Многослойный персептрон
Обозначим входы n-го слоя нейронов , весовые коэффициенты wij. Нейроны этого слоя вычисляют соответствующие линейные комбинации ai:
(1)
и передают их на следующий слой, пропуская через нелинейную функцию активации:
. (2)
Нелинейная функция f называется активационной и может иметь различный вид, как показано на рисунке 2. Одной из наиболее распространенных является нелинейная функция с насыщением, так называемая логистическая функция или сигмоид (т.е. функция S-образного вида):
(3)
При уменьшении a сигмоид становится более пологим, в пределе при a=0 вырождаясь в горизонтальную линию на уровне 0.5, при увеличении a сигмоид приближается по внешнему виду к функции единичного скачка с порогом T в точке x=0. Из выражения для сигмоида очевидно, что выходное значение нейрона лежит в диапазоне [0,1]. Одно из ценных свойств сигмоидной функции – простое выражение для ее производной.
Рисунок 2 - а) функция единичного скачка; б) линейный порог (гистерезис); в) гиперболический тангенс; г) сигмоид
Следует отметить, что сигмоидная функция дифференцируема на всей оси абсцисс, что используется в некоторых алгоритмах обучения. Кроме того она обладает свойством усиливать слабые сигналы лучше, чем большие, и предотвращает насыщение от больших сигналов, так как они соответствуют областям аргументов, где сигмоид имеет пологий наклон.
Для построения алгоритма обучения необходимо знать производную ошибки по каждому из весов сети:
. (4)
Таким образом, вклад в общую ошибку каждого веса вычисляется локально, простым умножением невязки нейрона на значение соответствующего входа. (Из-за этого, в случае, когда веса изменяют по направлению скорейшего спуска , такое правило обучения называют дельта-правилом.)
Входы каждого слоя вычисляются последовательно от первого слоя к последнему во время прямого распространения сигнала:
, (5)
а невязки каждого слоя вычисляются
во время обратного
. (6)
Рассмотрим алгоритм сети обратного распространения ошибки подробнее.
Входной набор данных, на котором сеть должна быть обучена, подается на входной слой сети (рисунок3), и сеть функционирует в нормальном режиме (т.е. вычисляет выходные данные).
Рисунок 3 - Прямое распространение сигнала
Полученные данные сравниваются с известными выходными данными для рассматриваемого входного набора. Разница между полученными и известными (опытными) данными - вектор ошибки.
Вектор ошибки используется для модифицирования весовых коэффициентов выходного слоя с тем, чтобы при повторной подаче (рисунок 4) того же набора входных данных вектор ошибки уменьшался.
Информация о работе Распознавание слов естественного языка с использованием нейросетей