Форум программистов, компьютерный форум, киберфорум
Konst2016
Войти
Регистрация
Восстановить пароль
Оценить эту запись

О практической невозможности разделить XOR нейросетями.PS Нашел решение

Запись от Konst2016 размещена 31.07.2020 в 14:18

Здравствуйте!Об этом я хочу сообщить и я тщательно все тестировал с помощью 2 проектов keras и мною разрабатываемой ИНС на основе разложения
в ряд Фурье,отлаженная такая сеть оказалась мощнее keras, сделал ее конфигурируемой и многослойной и она только поддерживает оптимизацию
для бинарной классификации(например для sigmoid на конце ИНС), но и это нужно для решения задачи XOR.Я в обоих сетях не использую рандомного распределения(мои
опыты более воспроизводимы и более математически выверены).На обоих сетях я не получил полного решения XOR (в keras использовал,да и в своей
сети также, адаптивные learning rate-ы и пороговые колбеки по выходу по достижению 100% определению обучающего набора, также так
можно запрограммировать выход по достижению определенной среднеквадратичной ошибки).Я ставил максимум 2_000 эпох. Решение AND и OR,
я быстро получал,моя сеть вышла на 14-ой эпохе.При этом могла для AND ответить так (0.6, 0.7)-> 1.445(Т.е уверенности да - 144%-в
Фурье сети особая инициализация матрицы сети(весов).Но ни одна сеть никак не вышла из этих эпох для XOR, максимум они узнают
3 из 4 примеров (acc=0.75 -> 75% ). Никто не смог определить что 1 xor 1==0.

Система уравнений:

0*x+1*y=1

1*x+1*y=0

где x, y - веса сети,

математически не имеет решения,P.S. имеет решение(пока не все понятно),похоже это отразилась на практике(Как здесь может помочь стыковка матриц и нелинейность т.е. функции активации теперь точно не понятно).
P.S. Оказывается xor решается) у меня просто оказываться архитектура была слабая,было такое решение
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
p20=(push_obj,X_and_or_xor,nparray,push_obj,Y_xor,nparray,determe_X_Y,
         make_net,('S',('D','D', 'D'),(2, 4, 4, 1),('s','t','r'),('use_bias_1', 'use_bias_1',  'use_bias_1'),ke_init[0]),
         k_summary,
         compile_net, (opt, compile_pars[1], compile_pars[2]),
         cr_callback_wi_loss_treshold_and_acc_shure, (0.0001, 1),
         fit_net, (fit_pars[0], fit_pars[1], fit_pars[2], fit_pars[3], fit_pars[4]),
         evalu_,
         predict,
         sav_model,
         sav_model_wei,
         plot_train, "Logic XOR",
         stop
         )
Это для моего проекта(тестировочного стенда) keras-shell-co.(Писал о нем в другой статье) Что важно ke_init[0] - это рандомность, без нее не решает.Вышла на 359 эпохе из 1_000.
Размещено в Без категории
Просмотров 124 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.