Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП AIS.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
557.06 Кб
Скачать

Алгоритмы и структуры данных

Экспертная система для выбранной предметной области должна осуществлять, сбор, хранение и обработку приведенной структуры данных:

  1. ФИО

  2. Пол

  3. Возраст

  4. Боль за грудиной

  5. Частое прерывистое дыхание

  6. Учащенное, неритмическое сердцебиение

  7. Слабый, учащенный пульс

  8. Вздутие шейной вены

  9. Холодные кисти рук

  10. Обморок или потеря сознания

  11. Реакция на нитроглицерин

  12. Чувство слабости

  13. Холодный, липкий, обильный пот

  14. Тошнота и иногда рвота

  15. Бледность лица

  16. Редкое, поверхностное дыхание

  17. Длительность приступа до 15 минут

Структура данных представлена экземплярами класса «Card». Данные хранятся и считываются с файлов на жестком диске.

Рисунок 1 – Реализация класса «Card»

Представление данных имеет две формы:

    1. Нормальную

    2. Весов синаптических связей

Веса связей представлены списками соответствующими, конкретному слою нейросети.

Рисунок 2 – Представление весов синаптических связей

Для обучения нейронной сети используется алгоритм обратного распространения ошибки. Обучение алгоритмом обратного распространения ошибки предполагает два прохода по всем слоям сети: прямого и обратного. При прямом проходе входной вектор подается на входной слой нейронной сети, после чего распространяется по сети от слоя к слою. В результате генерируется набор выходных сигналов, который и является фактической реакцией сети на данный входной образ.

Рисунок 3 – Прямое прохождение сигнала

Во время обратного прохода все синаптические веса настраиваются в соответствии с правилом коррекции ошибок, а именно: фактический выход сети вычитается из желаемого, в результате чего формируется сигнал ошибки. Этот сигнал впоследствии распространяется по сети в направлении, обратном направлению синаптических связей.

Рисунок 4 – Обратное прохождение сигнала по сети

Описание программы

Функционал разработанного программного средства реализован в виде набора модулей, каждый из которых может быть запущен соответствующим ключом.

Список модулей и их описание

Запуск сети - исполняется параметром «--run»; производит инициализацию топологии и весов связей сети, картотеки, после чего осуществляет вывод информации о текущем состоянии системы.

Диагностика – исполняется параметром «--diff»; осуществляет интерактивный сбор данных, соответствующих полям структуры данных указанных в пункте «Алгоритмы и структуры и данных», после чего производит прямое прохождение собранных данных по сети и выводит информацию о предполагаемом диагнозе.

Добавление нового пациента – исполняется параметром «--add»; осуществляет интерактивный сбор данных, соответствующих полям структуры данных указанных в пункте «Алгоритмы и структуры и данных», после чего производит их добавление в файл картотеки на жестком диске.

Автоматическое добавление n числа пациентов – исполняется параметром «-add n», где n – число пациентов которых следует добавить в файл картотеки на жестком диске, при этом поля структуры данных, заполняются случайным образом согласно справочным данным.

Обучиться – исполняется параметром «--edu»; производит сброс весов синаптических связей и обучение по алгоритму обратного распространения ошибки, используя в качестве обучающей выборки данных все данные из файла картотеки на жестком диске, после чего фиксирует величину весов и перезаписывает соответствующий файл на жестком диске.

Забыть веса связей ­­– исполняется параметром «--dell»; очищает файл с весами связей на жестком диске.

Настройки параметров сети – исполняется параметром «--set»; выводит информацию о внутреннем устройстве системы, названия конфигурационных скриптов и т.д.

Помощь – исполняется параметрами «-h», «--h», «-help», «--help»; осуществляет вывод информации о доступных параметрах и их назначении.

Описание структуры программного средства

NNDA представлена набором скриптов и директорий, представленных на скриншоте ниже.

Рисунок 5 – Структура проекта NNDA

  • В директории «core» хранятся базовые скрипты отвечающие за функциональность и работу нейронной сети. Директория включает в себя модуль – network.py.

  • Директория «data-processing» содержит скрипты для обработки данных и включает в себя модули – card.py; cardfile.py; disease.py

  • Каталог «data-storage» - является хранилищем данных на жестком диске, включает в себя следующие базы данных – db.xml; patients.xml; input-weights.xml; output-weights.xml.

  • В директории «documentation» - находится документация проекта.

  • Корневая директория NNDA содержит 2 модуля - main.py; settings.py.