Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Алгоритм построения нейросетевого индекса

Алгоритм построения нейросетевого индекса

Выпускная квалификационная работа бакалавра. Кубанский Государственный университет, факультет компьютерных технологий и прикладной математики, 2016 год

Avatar for Andrey

Andrey

June 23, 2016

Other Decks in Programming

Transcript

  1. Данных много, и постоянно становится больше Нужен поиск:  Быстрый

     Интеллектуальный (формы слов/синонимы и т.п.) Актуальна оптимизация алгоритмов индексации
  2. Задачи  Изучение предметной области искусственных нейронных сетей – их

    структура и основные принципы работы  Разработка алгоритма, реализующего индексацию – c использованием нейросетей  Создание пользовательского интерфейса/среды для работы
  3. Существующие решения  «Artificial Neural Network for Document Classification Using

    Latent Semantic Indexing»  «Информационно-поисковая система с ранжированием на основе нейронных сетей с бинарной функцией выхода»  KETOS
  4. Нейроиндекс  Для каждого файла создаётся сеть- индекс (соответствия терм↔позиция)

     + 1 сеть «верхнего уровня» - определяет файлы вхождения терма Сеть «верхнего уровня» Сеть – Файл 1 Сеть – Файл 2 Сеть – Файл N
  5. Детали реализации  Вход – M * 5 нейронов (терм)

     Скрытые слои – M * 5 * L нейронов  Выход – 1 + P + F нейронов (поз., част.) где: M – макс. длина слова/термы L – некоторое положительное число (3/2) P – кол-во бит, кодирующих «позицию» F – кол-во бит, кодирующих «частоту» Параметры сетей «нижнего уровня»
  6. Детали реализации  Вход – M * 5 нейронов (терм)

     Скрытые слои – M * 5 * L нейронов  Выход – 1+F нейронов (в каких файлах терм) где: M – макс. длина слова/термы L – некоторое положительное число (3/2) F – количество файлов Параметры сети «верхнего уровня»
  7. Детали реализации Общая схема работы ВХОД: имена индексируемых файлов FilesIndexSerializer

    FilesIndex OneFile NeuralIndex IndexingFileLoader {Слово → позиция} Имя файла Готовый индекс Обученный индекс 1-го файла ВЫХОД: файл индекса {Слово → позиция} ВХОД: 1 файл
  8. Детали реализации  Проект на GitHub нейронной сети и обучения

    методом обратного распространения ошибки на с++  Библиотека Standford CoreNLP, предоставляющая возможности лемматизации  JUnit Tests Используемые библиотеки, проекты
  9. Оптимизация Применяемые оптимизации  Оптимизация кода нейронной сети (более эффективный,

    также благодаря возможностям Java)  Оптимизация обучения – добавление критерия остановки при прекращении убывания ошибки  Простейшее добавление параллельных вычислений
  10. Оптимизация 0 10 20 30 40 50 60 0 20

    40 60 80 100 120 140 160 180 исходно 5-бит кодировка увел. Learning rate относ. критерий MSE Ускорение Время время обучения, сек ускорение, x раз
  11. Скорость работы нейроиндекса  файлы по ~200 уникальных термов 

    всего ~500 уникальных термов  minMSE = 0,01  около 15 минут  4-х ядерный Intel i5-3570 3,4 ГГц  8 Гб ОЗУ 1333 МГц Результаты
  12. Выводы  Была рассмотрена предметная область нейронных сетей, нейроиндекска 

    Создана программная система нейроиндекса  Алгоритм backpropagation + относительный критерий остановки  Интерфейс – в командной строке
  13. Заключение  Программная реализация выполнена с использованием системы контроля версии

    Git  Проект распространяется как open source под лицензией GPLv3, исходный код доступен на веб-сервисе GitHub (https://github.com/AndNovAtor/neural_index) Доступность