tacА в какой момент при обучении бинарной классификации с позиционным кодированием нарушится инвариант
![$W_{ar}[i, 0] = -W_{ar}[i, 1]$ $W_{ar}[i, 0] = -W_{ar}[i, 1]$](https://dxdy-03.korotkov.co.uk/f/a/3/8/a38f321bd97fcaf2a74637488fd28a4f82.png)
?
Изначально он соблюдается (они все нулевые).
Если один из выходов неправильный, то другой тоже неправильный. И значит процесс обучения поменяет ведущие к ним веса, причем все поправки будут опять противоположными по знаку.
(может быть я неправильно понимаю Ваше описание, но если правильно, то для бинарного таргета позиционное кодирование ничего не дает; а т.к. мне его лень реализовывать, то, если можно, хотелось бы обойтись без него)
Но постфактум, когда пара обучающий-тестовый датасет попадает в перцептрон, по виду графика мы 100% видим "связана" эта пара или нет, скажем так есть ли что-то в обучающей выборке полезное для прогнозирования в тестовой. Ваши примеры показывают, что там ничего нет
Вот именно про это я говорил выше.
Я подозреваю, в конечном итоге у Вас получится требование "есть вот такое семейство функций, и нужно, чтобы таргет выражался через признаки функцией из этого семейства, в том числе на тестовой выборке".
По сути, у Вас ограничение на датасеты "Ваша модель может хорошо по обучающей выборке научиться предсказывать тестовую". Но аналогичная формулировка будет верна для любой модели, просто ограничения разные.
И да, как я уже сказал - логистическая регрессия на этом датасете показывает результат лучше монетки. Так что Вам придется вводить определение "свазанности", привязанное конкретно к Вашей модели.
Но при этом, ровно наоборот, вы не можете распространить выводы, полученные на таких "случайных парах обучающей-тестовой" на практические датасеты
Насколько я знаю, пока что нет никаких интересных теоретических утверждений о практических датасетах.
Выше уже я приводил отрывок о интерпретации ошибки Ehard / Esoft
Тем самым Вы сразу отказываетесь соревноваться с большинством моделей - почти все модели для бинарной классификации выдают вероятность.
И как мы видим дополнительно нужна перетасовка
Это внутреннее дело модели, как ей учиться.
Ну, и правильная мера "переобучения", как усреднение
И сейчас подумал - это, на самом деле, тоже внутреннее дело модели. Во многих моделях говорить об итерациях вообще нельзя.
Наше дело - задать гиперпараметры модели. Если модель хочет одним из параметров число итераций - имеет право, тогда будем сравниваться и по нему. Если, как у Вас, не хочет (потому что обучение останавливается по условию на трейне) - тоже имеет право.
Представьте, что я вместо Вашего алгоритма обучения предложу "алгоритм mihaild": если мы видим, что на текущем шаге достигнем нулевой ошибки на трейне, то вместо этого делаем 100500 шагов, из которых на четных всегда выдаем 0, а на нечетных 1, и в конец делаем те веса, которые должны были получить.
Вроде бы очевидно, что ничего полезного моя процедура не делает. Но, если финальная модель хоть немного лучше монетки, то моя процедура внезапно спасает от переобучения.
Хорошее определение переобучения - у Митчелла (свою попытку сформулировать страниц 10 назад я отзываю - она не принципиально неверна, но более корява). По нему мы сравниваем именно предсказания моделей, а не их внутреннее устройство.
это датасет имеет на столько случайный характер, что для прогнозирования не пригоден
Пригодность датасета для прогнозирования зависит от модели!Представьте, что у меня задача классификации: вход - битовые строки длины 100, выход - последний бит md5 от этой строки. Даже полностью детерменированный, всё, как Вы любите.
Очевидно, что ни одна из стандартных моделей - ни деревья, ни любые нейросети, ни Ваш перцептрон Розенблатта - за время жизни Вселенной ничему лучшему чем монетка на такой задаче не обучатся. Тем не менее, простейшая предобработка данных внезапно позволит достичь единичной точности на этой задаче почти любой модели.