Top Banner
Нейронечёткая классификация слабо формализуемых данных Тимур Гильмуллин Руководитель отдела технологий разработки (DevOps) [email protected] https://www.linkedin.com/in/tgilmul lin
26

Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Jan 14, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Нейронечёткая классификация слабо формализуемых данных

Тимур ГильмуллинРуководитель отдела технологий разработки

(DevOps)[email protected]

https://www.linkedin.com/in/tgilmullin

Page 2: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Что такое классификация?

Page 3: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Постановка задачи классификации

Page 4: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Выбор инструментов

Для решения широкого класса задач классификации предлагается использовать:• теорию нечётких множеств

• инструмент для нечёткой оценки свойств объектов: нечёткие шкалы

• теорию нейронных сетей

Page 5: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Нечёткие множества и нечёткие шкалы

Page 6: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Нечёткие множества

Лотфи ЗадеОснователь теории нечётких множеств и нечёткой логики

Нечёткое множество A = "Много" для перечислимых объектов: 1 - это немного, 2, 3 - тоже немного, а 4, 5, 6, … - много или нет?

Page 7: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Нечёткие шкалы

• Нечёткая шкала (fuzzy scale) – это упорядоченная совокупность S нечётких переменных Ai, определенных своими F-функциями, значения из которой может принимать некоторая лингвистическая переменная s: 

• S = {Min, Low, Med, High, Max}– универсальная нечёткая шкала

Page 8: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Нейронные сети

Page 9: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Биологический и математический нейрон

Page 10: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Конфигурация нейронной сети

Page 11: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

FuzzyClassificator

Page 12: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

FuzzyClassificator – нечёткий нейроклассификатор

Код в GitHub:• https://github.com/Tim55667757/FuzzyClassificator/tree/master

• Pyzo:http://www.pyzo.org/

• PyBrain library:http://pybrain.org/

Для его работы требуется:

Page 13: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Этапы работы FuzzyClassificator

Page 14: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Где используется FuzzyClassificator?

Внедрён в Компании для решения одной из прикладных задач по автоматической классификации уязвимостей, найденных нашими сканерами безопасности.

Это позволило:

• Экономить до 70% времени ручных тестировщиков на разбор уязвимостей

• Увеличить число сканируемых CMS

• Увеличить число сканеров, участвующих в конкурентном анализе (КА)

Page 15: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Решение задачи классификации уязвимостейпри помощи FuzzyClassificator

Page 16: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

1 этап процесса классификации уязвимостей: обучение НС

(Продолжение см. на сл. слайде)

Page 17: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

2 этап процесса классификации уязвимостей: классификация

(Начало см. на пред. слайде)

Page 18: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Автоматизация классификации в TeamCity

Page 19: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Пример отчёта для этапа обучения

Page 20: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Пример отчёта для этапа классификации

Page 21: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Выгрузка результатов классификации в TFS

Page 22: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Ограничения и доработки FuzzyClassificator

Page 23: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Ограничения инструмента FuzzyClassificator

Корректная классификация при помощи FuzzyClassificator:• сильно зависит от выбранного метода кодирования входных данных

• требуется хорошее знание предметной области, для которой выполняется классификация

• требуются значительные усилия в подготовки "хороших" входных данных для обучения

Page 24: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Возможные доработки инструмента FuzzyClassificator

• На данный момент для кода инструмента и всех его низкоуровневых методов уже выполнена оптимизация алгоритмов

В планах:

• перевести инструмент на CPython

• реализовать исполнение его кода на GPU

Page 25: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Подробнее о FuzzyClassificator

• Подходы к автоматизации процесса валидации уязвимостей, найденных автоматическими сканерами безопасности, при помощи нечётких множеств и нейронных сетейhttp://math-n-algo.blogspot.ru/2014/08/FuzzyClassificator.html

• Применение нейросетей для решения классических задач линейного и нелинейного разделения элементов множества на классыhttp://math-n-algo.blogspot.ru/2013/04/blog-post.html

• Сканеры безопасности: автоматическая валидация уязвимостей с помощью нечетких множеств и нейронных сетейhttps://habrahabr.ru/company/pt/blog/246197/

• Сканеры безопасности: автоматическая классификация уязвимостейhttps://habrahabr.ru/company/pt/blog/274241/

Page 26: Нейронечёткая классификация слабо формализуемых данных | Тимур Гильмуллин

Спасибо!Вопросы?

Тимур ГильмуллинРуководитель отдела технологий разработки

(DevOps)[email protected]

https://www.linkedin.com/in/tgilmullin