Парф
Суть дела в том, что за всё приходится дополнительно платить. И за желанную точность, учитывающую все возможные нюансы, и за изначальное незнание того, что при расчетах важно, а что – не важно. В случае обучающих процедур платить приходится стремительным ростом размера потребной обучающей выборки.
Когда мы для обучения опросника используем аналитический метод, то он опирается на вычисление на обучающей выборке минимального количества заранее определенных фичей с понятным смыслом. А именно, это расчет типных средних для каждого анкетного вопроса. Но даже в этом случае возникает эффект переобучения (проявляющийся в том, что достигнутая сходимость на обучающей выборке оказывается выше, чем впоследствии на контрольной). Чтобы этот эффект свести к минимуму, нам даже на этом минимальном наборе вполне понятных фичей приходится использовать обучающую выборку не менее 1000 человек. И даже в этом случае небольшое переобучение остается, и чтобы довести его хотя бы до уровня в 1-2%, потребуется уже обучающая выборка примерно в 5000 человек.
Нейросеть в отличие от аналитического метода вообще не знает, какие фичи естественны, а какие нет. Например, она вдобавок к рассмотрению типных средних бросится учитывать еще и попарные сочетания вопросов (то есть, дополнительно, многочисленные нелинейные связи, а иначе нафиг она вообще и нужна). Но всё это резко усиливает эффекты переобучения, и для сведения их до уровня в 1-2% потребуется выборка-учитель размером минимум на порядок больший, чем в случае аналитического метода, а именно ДЕСЯТКИ ТЫСЯЧ ЧЕЛОВЕК. Что не реально для практики.
А что будет, если не устранять переобучение? Тогда чем больше будет эффект переобучения на обучающей выборке, тем хуже и ничтожней получится результат на контрольной выборке (потому что размер переобучения – это тот шум, который мы дополнительно вносим).
Расскажу кое-что из личного опыта:
Не все знают, что и в EXCEL имеется встроенная нейросетевая опция. Это фирменный макрос, называемый «ПОИСК РЕШЕНИЯ». Вполне обычная нейросеть с задаваемыми параметрами своей работы (в частности, можно задавать как градиентный, так и не градиентный поиск), которая для любой экселевской формульной процедуры способна подбирать одновременно до 200 числовых параметров, чтобы свести в итоге решение (то есть задаваемый некоей формулой числовой критерий) либо к максимуму, либо к минимуму, либо к заданному числу.
Когда мы ищем диагностические коэффициенты анкетных вопросов, то вместо обычного аналитического метода можно, в принципе, в Экселе использовать и эту нейросетевую процедуру. В этом случае искомые 200 диагностических коэффициентов анкетных вопросов рассматриваются как варьируемые нейросетью параметры, а в качестве максимизируемого критерия выступает сходимость итогового диагноза с заявленными типами. Числовое ограничение 200-ми варьируемыми искомыми параметрами тоже преодолевается, если процедуру применять много раз, каждый раз рандомно меняя набор варьируемых коэффициентов. В итоге можно подобрать и не 200, а все 3200 нужных вопросных диагностических коэффициентов. Однажды было дело - я на это решился и за неделю циклических вычислений сподобился подобрать все 3200 «оптимальных» коэффициентов (200 анкетных вопросов по 16 типных коэффициентов для каждого).
И что тогда получилось? На обучающей выборке в итоге была достигнута сходимость с заявленными типами = 95%, но вот далее, на контрольной выборке, она обратилась уже … лишь в 35%.
Для сравнения: в случае использования аналитического метода при том же самом объеме выборки-учителя сходимость на обучающей выборке получается всего лишь 65%, но зато на контрольной она будет уже не ниже 56-58% (а не 35%, как в случае использования экселевской нейросети!).