Comments 33
Ловите плюс, тема и статья интересная, но выскажу свое личное оценочное суждение по формату статьи: я, как человек, не занимающийся областью интеллектуальных ИС, не знаю, что такое 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. Могу дополнить с формулами:)
Цель которого создать 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 изображений это очень мало для получения работоспособной модели.
Если посмотреть на твою выборку, то видно что лица в первую очередь различаются не ЛИЦАМИ а общим цветовым фоном и наполнением. 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/. Думаю, можно взять как образец.
Вступление добавьте, расскажите, какие задачи решаются этим методом, какие плюшки есть. Вот, например, isvirin тоже по своей научной работе о многопоточном программировании цикл статей написал habrahabr.ru/company/nordavind/blog/176541/. Думаю, можно взять как образец.
Насчет направленности я бы поспорил. Хабр только лучше станет, если подобного рода штучки будут больше освещаться.
Может у вас крутая диссертация, но данная заметка, увы, тянет разве что на отчет (по моему мнению, хотя чукча сам не писатель=)). Чтобы быть более конструктивным, вот мои мысли по её поводу(все очень субъективно):
1)Нет никакого вступления, сразу идет plain text, как-будто выдранный из середины какой-то статьи.
2)Не совсем понятно, чем отличается ваша сеть NEFClass N от, например, нечетких сетей Такаго-Сугэно-Канга(там также оптимизируется среднеквадратичное отклонение по выборке). А последние показывают не очень хорошие результаты, в сравнении с теми-же глубокими сетями.
3)Удивительно, что вы не строили ROC кривую, анализируя зависимость качества обучения от числа правил в базе(куча цифр в таблице — совсем не наглядное представление данных).
1)Нет никакого вступления, сразу идет plain text, как-будто выдранный из середины какой-то статьи.
2)Не совсем понятно, чем отличается ваша сеть NEFClass N от, например, нечетких сетей Такаго-Сугэно-Канга(там также оптимизируется среднеквадратичное отклонение по выборке). А последние показывают не очень хорошие результаты, в сравнении с теми-же глубокими сетями.
3)Удивительно, что вы не строили ROC кривую, анализируя зависимость качества обучения от числа правил в базе(куча цифр в таблице — совсем не наглядное представление данных).
Во-вторых
Сами изображения для обучения используют редко, обычно используют некие дескрипторы (см HOG, LBP, Haar)
Это не совсем так. Сейчас сильно развиваются методы representation learning, которые спосбоны выучить эффективные признаки из сырых данных.
Я тестировал на базе ORL, все эксперименты удались. Система успешно внедрена на одном предприятии.
Надо было с основ начать, следующие посты будут посвящены началу моего пути.
Надо было с основ начать, следующие посты будут посвящены началу моего пути.
Конкретно для сравнения лиц (а не для выделения!) ни Хаара ни LBP не используют. А вот текстурных методов используют много разных (взять хотя бы классический Eigenface). Так что сама идея для сравнения лиц использовать нейронную сеть по изображениям — достаточно правильна. Только изображения нужно ещё нормировать и растягивать, предварительно находя там ориентацию лица. Другое дело, что в тех алгоритмах, которые наиболее успешны статистически используется множество разных методов, текстурные — лишь часть.
А в остальном вы всё верно пишите.
А в остальном вы всё верно пишите.
Соглашусь с предыдущими оратороми, было бы интересно почитать по подробней про эту тему. Эксперименты это круто, но начинать нужно с теории, мне кажется. Жду новых постов -)
Посты в принципе уже готовы, я их редактирую. Там написано все с самого начала.
Для первого поста на хабр — хорошо. Но в будущем постарайтесь писать более живые тексты. Хабр это всё-таки не ВАКовский журнал:) Тут в первую очередь хочется чтобы красиво и интересно было написано с максимумом картинок, графиков и выводом формул:)
Вы поняли, что это ВАК статья?:). Да вы правы — это именно ВАК статья. Впредь будут живые посты.
Просто я сейчас тоже диссер защищаю, хотя и на совершенно иную тему:)
Стиль, принятый в современных российских «научных» журналах слишком хорошо в глаза бросается:)
Стиль, принятый в современных российских «научных» журналах слишком хорошо в глаза бросается:)
Надеюсь, что это черновик статьи? Т.к. «На основании проведенного анализа и проведенных экспериментов следует отметить о наилучшей конфигурации сети и параметров предварительной...» делает мой мозг кипеть. А ещё использование будущего времени («В качестве проверки будем проводить тестирование на проверочной выборке.») обычно не допускается в научных публикациях.
А какая статистика получается по нормальной базе у алгоритма, если не секрет?
Мы просто сталкивались при работе с очень похожей задачкой пару месяцев назад, реализовали самые простые текстурные алгоритмы, получили средненькие результаты, думали куда дальше разрабатывать, в сторону алгоритмов выделяющих особенности, или в сторону усложнения сравнения.
Мы просто сталкивались при работе с очень похожей задачкой пару месяцев назад, реализовали самые простые текстурные алгоритмы, получили средненькие результаты, думали куда дальше разрабатывать, в сторону алгоритмов выделяющих особенности, или в сторону усложнения сравнения.
нечеткая статья по нечеткой нейронной сети
Sign up to leave a comment.
Разработка нечеткой нейронной сети NEFClass M