среда, февраля 08, 2006

XOR3D

Везде как пример эффективности применения ИНС для решения нелинейных задач приводится двухмерный XOR. Бывает рисуют в духмерное решение в 3Д. Честного 3D не видел, поэтому решил сделать. Картинки не оформлены не приведены по размерам, просьба не ругаться. Интересуют решения этой же задачи другими методами, критика, дополнения.
Итак:
2D XOR: есть два класса - красные и синие, линейно неразделимые




2D XOR в 3Д


3D XOR: Классы в пространстве 3-х признаков будут выглядеть так




Линейное решение
1D:значение
2D:прямая
3D:плоскость
nD:гиперплоскость




Это наверное самое честное решение, которое можно ожидать для такой задачи от деревьев решений, экспертных систем, основанных на правилах (если-то) и прочего подобного.
|если x<0.5>0.5 и y>0.5 и z>0.5 то класс=1
иначе говоря Class=round(x) xor round(y) xor round(z)

Такое же решение даст к-средних с 8 кластерами если нам чертовски повезет и центры классов займут свое место по вершинам. А потом мы честно поделим евклидово пространство на классы.

Поправьте если не так.



То же самое с к-средних, но с использованием регрессии.
Класс рассчитывается в соответствии с обратновзвешенным расстоянием до кодированных кластеров. Получено IDW интерполяцией.



Ну наконец MLP 3-3-1. Красота. Попробуйте на пальцах представить как поверхности границ классов себя ведут.


и пара изоповерхностей, чтобы было яснее





MLP 3-5-1. Кто-нибудь прокомментирует?







RBF 3-6-1. Какова оптимальная структура для правильного решения?



PNN 3-20-2-1. Не оптимально, но это то что в лоб получилось.



GRNN 3-20-2-1



SOFM. Ну это наверно тоже один из честных вариантов. Куб рисовался вручную, для демонстрации идеи. Саму SOFM на SOMBase baselab получил далеко не сразу. Раз на 25 :)



Пытался на 4-х признаках анимацию делать, получается не очень внятно. Постепенного изменения картины при изменении одного признака не выходит. Увы.
Что посоветуете еще?

2 комментария:

Анонимный комментирует...

Прикольные визуализации!

Unknown комментирует...

Не хотели ли бы Вы предложить еще какие-нибудь решения XOR3D? Например классификаторами Байеса. Для визуализации мне нужна матрица "Признак 1, Признак 2, Признак 3,Значение класа"

Мой список блогов