Пример нечеткой логики в классификации

Мне нужно классифицировать объекты с помощью нечеткой логики. Каждый объект характеризуется 4 признаками - {размером, формой, цветом, текстурой}. Каждая функция размыта лингвистическими терминами и некоторой функцией принадлежности. Проблема в том, что я не могу понять, как выполнить дефаззификацию, чтобы узнать, к какому классу принадлежит неизвестный объект. Используя вывод Mamdani Max-Min, может ли кто-нибудь помочь в решении этой проблемы?

Объекты = {мусорное ведро, банка, бутылка, чашка} или обозначаются как {1,2,3,4} соответственно. Нечеткие множества для каждой функции:

Особенность : Размер

$\tilde{Size_{Large}}$ = {1//1,1/2,0/3,0.6/4}  for crisp values in range 10cm - 20 cm

$\tilde{Size_{Small}}$ = {0/1,0/2,1/3,0.4/4}  (4cm - 10cm)

Форма:

$\tilde{Shape_{Square}}$ = {0.9/1, 0/2,0/3,0/4}  for crisp values in range 50-100

$\tilde{Shape_{Cylindrical}}$ = {0.1/1, 1/2,1/3,1/4}  (10-40)

Особенность : Цвет

$\tilde{Color_{Reddish}}$ = {0/1, 0.8/2, 0.6/3,0.3/4}  say red values in between 10-50 (not sure, assuming)

$\tilde{Color_{Greenish}}$ = {1/1, 0.2/2, 0.4/3, 0.7/4}  say color values in 100-200

Особенность : Текстура

$\tilde{Tex_{Coarse}}$ = {0.2/1, 0.2/2,0/3,0.5/4}  if texture crisp values 10-20

$\tilde{Tex_{Shiny}}$ = {0.8/1, 0.8/2, 1/3, 0.5/4}  30-40

Правила классификации If then else

R1: ЕСЛИ объект имеет большой размер И цилиндрическую форму, И зеленоватый цвет, И грубую текстуру, ТОГДА объект является Мусорным ящиком.

или в виде таблицы просто для экономии места

Object type  Size   Shape          Color        Texture
Dustbin :   Large  cylindrical       greenish   coarse
Can :       small  cylindrical       reddish    shiny
Bottle:     small  cylindrical        reddish    shiny
Cup :       small  cylindrical       greenish   shiny

Затем есть неизвестная функция с четкими значениями X = {12 см, 52,120,11}. Как мне его классифицировать? Или я неправильно понимаю, что мне нужно переформулировать все это?


person SKM    schedule 03.06.2014    source источник
comment
Рассматривали ли вы использование сети Бейса вместо нечеткой логики? По крайней мере, там всему есть ясный физический смысл.   -  person mdaoust    schedule 12.06.2014


Ответы (2)


Нечеткая логика означает, что каждый шаблон принадлежит классу до определенного уровня. Другими словами, вывод алгоритма для каждого шаблона может быть вектором, скажем, процентов сходства с каждым классом, которые в сумме дают единицу. Тогда решение для класса может быть принято путем проверки порога. Это означает, что целью нечеткой логики является количественная оценка неопределенности. Если вам нужно решение по вашему делу, должно быть достаточно простого классификатора минимального расстояния или большинства голосов. В противном случае снова определите свою проблему, приняв во внимание «числовой фактор».

person fyts    schedule 02.07.2014
comment
Спасибо за ваш ответ, но он не ясен, и не могли бы вы уточнить, как принять решение? Следует ли рассматривать дефаззификацию? Как мне определить функцию принадлежности для классов, чтобы сказать, что конкретная функция принадлежит классу. Это мне непонятно. Итак, Мусорная корзина - это класс, тогда как представлять функцию принадлежности, если это вообще требуется, и как классифицировать? - person SKM; 02.07.2014

Одним из возможных подходов может быть определение центроидов для каждого отдельного атрибута объекта, например, Large_size=15cm и Small_size=7cm. Затем функция принадлежности может быть определена как функция расстояния от этих центроидов. Затем вы можете сделать следующее: 1) Рассчитать евклидову разность * ядро ​​Гаусса или Баттерворта (чтобы зафиксировать диапазон вокруг центроида) для каждой функции. Подготовьте ядро ​​для каждого класса, например, для мусорной корзины, поскольку цель требует большого размера, грубой текстуры и т. д. 2) Вычислите произведение всего вышеперечисленного (это наивный байесовский подход). На этом нечеткая логика заканчивается. 3) Затем вы можете назначить шаблон классу с наибольшим значением функции принадлежности. Извините за слишком долгий ответ, надеюсь, это поможет.

person fyts    schedule 09.07.2014
comment
Извините, я заметил ответ сегодня. Я не могу понять, как назначаются метки классов. Обычно мы говорим, что когда нейрон выводит [100] как класс 1; или [001] как класс 2. Как поступить для нечеткого случая, когда вы говорите, что образец относится к классу с наибольшим значением функции принадлежности. - person SKM; 28.07.2014