Ловите плюс, тема и статья интересная, но выскажу свое личное оценочное суждение по формату статьи: я, как человек, не занимающийся областью интеллектуальных ИС, не знаю, что такое NEFClass и чем он отличается от персептрона Розенблатта и подобных нейросетей. Было бы полезно сделать некоторое вступление, поясняющее базовые понятия для непосвященных.
А даже если человек знает, неплохо указывать задачи из реальной жизни, которые решаются с помощью рассматриваемого подхода. Например, «бинарные классификаторы»: отлично подходят для фильтрации спама.
Тема интересная, но так статьи не пишут. Во-первых, нет отсылок к работам с хотя бы кратким описанием нейро-нечетких классификаторов. А во вторых, создается впечатление, что автор обращается к аудитории, которая каждый божий день работает с нечеткими системами и отчетливо представляет себе, чем NEFClass М круче NEFClass.
я использую правила генерации системы NEFClass.
Цель которого создать k нейронов правил NEFClass.
если кратко, то работает по следующему принципу:
1. Выбираем образец
2. Для каждого входного нейрона, находим функцию принадлежности
3. Если по-прежнему число узлов правил k меньше kmax и не существует узла правила R, то создаем такой узел и соединяем его с выходным узлом ci, если ti=1
4. Если еще остались необработанные образцы в L и k<=kmax, то переходим на шаг 1, а иначе стоп.
5. Определяем базу правил по одной из трех следующих процедур:
“Простое” обучение правил: оставляем только первые k правил.
“Лучшее” обучение правил: обрабатываем образцы в L и накапливаем активации каждого нейрона правил для каждого класса образцов, которые были распространены. Если нейрон правила R показывает большее накопление активации для класса Cj, чем для класса CR, который был специфицирован для следствия правила, тогда изменяем следствие R на Cj, то есть соединяем R с нейроном выхода cj.
Оставляем k нейронов правил с наивысшими значениями VR и удаляем другие нейроны правил из системы NEFClass.
“Лучший для каждого класса” алгоритм обучения: действуем также как и в предыдущем случае, но оставляем для каждого класса Cj те лучшие
[k/m] правил, следствия которых представляют класс Cj (где [x] – целая часть от x).
p.s. Могу дополнить с формулами:)
Во — первых
Если посмотреть на твою выборку, то видно что лица в первую очередь различаются не ЛИЦАМИ а общим цветовым фоном и наполнением. 1.) Первая линейка (фото где женщина) — светлые изображения. 2.) Вторая линейка — белое и черное с явным контрастом. 3.) Последняя линейка — Серое размытое. В результате у тебя классификатор заточится не на форму лица и его особенности, а на ненужные тебе совсем особенности изображений Вывод — выборка не репрезентативна, на фото в других условиях (при другом освещении например) обученная модель не сработает. Во-вторых
Сами изображения для обучения используют редко, обычно используют некие дескрипторы (см HOG, LBP, Haar) В-третьих
Ознакомься с этой вещью docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html и сравни производительность. И ещё
Скачай базу с лицами и протестируй на ней, 10 изображений это очень мало для получения работоспособной модели.
Вы главное не унывайте. Хороших статей про машинное обучение в рунете не просто мало, а почти нет. Если у вас материал накопился, вы пишите. Я с удовольствием буду читать. Про то, что гугл купил эпл, майкрасофт засудил амазон и т.д. добра на Хабре хватает:)
Вступление добавьте, расскажите, какие задачи решаются этим методом, какие плюшки есть. Вот, например, isvirin тоже по своей научной работе о многопоточном программировании цикл статей написал habrahabr.ru/company/nordavind/blog/176541/. Думаю, можно взять как образец.
Может у вас крутая диссертация, но данная заметка, увы, тянет разве что на отчет (по моему мнению, хотя чукча сам не писатель=)). Чтобы быть более конструктивным, вот мои мысли по её поводу(все очень субъективно):
1)Нет никакого вступления, сразу идет plain text, как-будто выдранный из середины какой-то статьи.
2)Не совсем понятно, чем отличается ваша сеть NEFClass N от, например, нечетких сетей Такаго-Сугэно-Канга(там также оптимизируется среднеквадратичное отклонение по выборке). А последние показывают не очень хорошие результаты, в сравнении с теми-же глубокими сетями.
3)Удивительно, что вы не строили ROC кривую, анализируя зависимость качества обучения от числа правил в базе(куча цифр в таблице — совсем не наглядное представление данных).
Я тестировал на базе ORL, все эксперименты удались. Система успешно внедрена на одном предприятии.
Надо было с основ начать, следующие посты будут посвящены началу моего пути.
Конкретно для сравнения лиц (а не для выделения!) ни Хаара ни LBP не используют. А вот текстурных методов используют много разных (взять хотя бы классический Eigenface). Так что сама идея для сравнения лиц использовать нейронную сеть по изображениям — достаточно правильна. Только изображения нужно ещё нормировать и растягивать, предварительно находя там ориентацию лица. Другое дело, что в тех алгоритмах, которые наиболее успешны статистически используется множество разных методов, текстурные — лишь часть.
А в остальном вы всё верно пишите.
Соглашусь с предыдущими оратороми, было бы интересно почитать по подробней про эту тему. Эксперименты это круто, но начинать нужно с теории, мне кажется. Жду новых постов -)
Для первого поста на хабр — хорошо. Но в будущем постарайтесь писать более живые тексты. Хабр это всё-таки не ВАКовский журнал:) Тут в первую очередь хочется чтобы красиво и интересно было написано с максимумом картинок, графиков и выводом формул:)
Просто я сейчас тоже диссер защищаю, хотя и на совершенно иную тему:)
Стиль, принятый в современных российских «научных» журналах слишком хорошо в глаза бросается:)
Надеюсь, что это черновик статьи? Т.к. «На основании проведенного анализа и проведенных экспериментов следует отметить о наилучшей конфигурации сети и параметров предварительной...» делает мой мозг кипеть. А ещё использование будущего времени («В качестве проверки будем проводить тестирование на проверочной выборке.») обычно не допускается в научных публикациях.
А какая статистика получается по нормальной базе у алгоритма, если не секрет?
Мы просто сталкивались при работе с очень похожей задачкой пару месяцев назад, реализовали самые простые текстурные алгоритмы, получили средненькие результаты, думали куда дальше разрабатывать, в сторону алгоритмов выделяющих особенности, или в сторону усложнения сравнения.
Реальная статистика такова, из 100 человек идентифицирует 98%, 2% не относит ни к чему, в ряду нечеткости камеры, этот нюанс еще просматриваю и изучаю, но все равно 98% это уже большое достижение.
Разработка нечеткой нейронной сети NEFClass M