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

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

Upload: positive-hack-days

Post on 14-Jan-2017

230 views

Category:

Technology


1 download

TRANSCRIPT

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

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

(DevOps)[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FuzzyClassificator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В планах:

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

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

Подробнее о 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/

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

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

(DevOps)[email protected]

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