Skip to content

Commit d623224

Browse files
refac: Revise a pair of notes
1 parent c52644c commit d623224

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

notes/machine_learning/miscellaneous.ipynb

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -403,10 +403,14 @@
403403
"\n",
404404
"#### Проблемы\n",
405405
"\n",
406-
"Если в задаче бинарой классификации положительные примеры встречаютя гораздо реже отрицательных, то из-за этого возникают следующие сложности:\n",
407-
"* дисбаланс классов может мешать оптимизации на этапе обучения;\n",
408-
"* возрастает риск переподгонки (overfitting) под немногие доступные положительные примеры;\n",
409-
"* оценки точности и полноты имеют слишком большую дисперсию, из-за чего разница между разными классификаторами оказывается статистически незначимой.\n",
406+
"Если в задаче бинарой классификации положительные примеры встречаютя гораздо реже отрицательных, то из-за этого могут возникнуть следующие сложности:\n",
407+
"* если функция потерь является аппроксимацией точности по обоим классам (accuracy), то может оказаться, что оптимальным решением является вырожденное, когда классификатор все объекты относит к отрицательному классу;\n",
408+
"* если объектов положительного класса слишком мало в абсолютном выражении, то есть риск переподгонки (overfitting) под них;\n",
409+
"* у полноты и точности по положительному классу (precision) может оказаться слишком высокая дисперсия, из-за чего не получится выявлять статистически значимую разницу между моделями.\n",
410+
"\n",
411+
"Отдельно можно упомянуть проблему более низкой доли положительного класса в доступных данных по сравнению с генеральной совокупностью. Например, пусть есть задача по ответам на соцопрос, за который респондентам платят, предсказать, является ли пользователь очень богатым. Понятно, что очень богатые люди не склонны тратить своё время ради небольшой выплаты за соцопрос. Однако это не столько проблема дисбаланса классов, сколько проблема смещённых данных. Смягчить её можно, дав немногим объектам положительного класса больший вес (но тогда это усугубит проблему переподгонки под них) или добавив в выборку синтетические объекты положительного класса методами наподобие SMOTE или ADASYN (хотя они и [спорные](https://arxiv.org/pdf/2201.08528)).\n",
412+
"\n",
413+
"Далее разбирается, как можно решить три исходных проблемы в зависимости от того, есть ли возможность размечать произвольные объекты.\n",
410414
"\n",
411415
"#### Формирование выборки\n",
412416
"\n",
@@ -423,15 +427,15 @@
423427
"* на ней обучается второй классификатор;\n",
424428
"* на этапе инференса эти классификаторы тоже применяются как каскад, то есть второй применяется лишь к тому, что прошло через первый.\n",
425429
"\n",
426-
"Важным условием корректности описанной схемы является почти идеальная полнота первого классификатора. Если это условие нарушается, полнота каскада заведомо будет ограничена потерями первого классификатора. А если от первого классификатора отказаться, получится, что второй классификатор обучался и оценивался на выборке, смещённой относительно той, к которой он теперь применяется. \n",
430+
"Важным условием корректности описанной схемы является почти идеальная полнота первого классификатора. Если это условие нарушается, полнота каскада заведомо будет ограничена потерями первого классификатора. А если при инференсе от первого классификатора отказаться, получится, что второй классификатор обучался и оценивался на выборке, смещённой относительно той, к которой он теперь применяется.\n",
431+
"\n",
432+
"Проблема только отрицательных предсказанных меток и проблема высокой дисперсии оценок точности и полноты решаются за счёт того, что ни у одного из классификаторов нет дисбаланса классов (для первого классификатора к его положительному классу можно отнести расширенное множество объектов). Проблема малого числа положительных примеров решается тем, что теперь их можно находить с повышенной вероятностью, размечая только объекты, прошедшие через первый классификатор.\n",
427433
" \n",
428434
"#### Обучение на зафиксированной выборке\n",
429435
"\n",
430-
"Однако бывает и так, что выборка уже задана заранее (например, на соревнованиях по машинному обучению или когда нужно обучить модель на готовых данных, которые передал клиент).\n",
431-
"\n",
432-
"В таком случае даже калибровка поможет получить подлинные вероятности лишь в той мере, в какой баланс классов в выборке соответствует балансу классов в генеральной совокупности. Также, если оценки точности и полноты будут слишком шумными, то с этим ничего не сделать.\n",
436+
"Однако бывает и так, что выборка уже задана заранее (например, на соревнованиях по машинному обучению или когда нужно обучить модель на готовых данных, которые передал клиент). В таком случае у проблемы высокой дисперсии метрик качества нет решения. А проблема вырожденных предсказаний решается только выбором функции потерь, различающей ошибки первого и второго рода.\n",
433437
"\n",
434-
"А вот сократить риск переподгонки позволяет приём с автокодировщиком. Можно обучить автокодировщик по исходным признакам восстанавливать их же, чтобы в промежуточном слое меньшей размерности выучивалось более общее признаковое представление. За счёт меньшего количества признаков падает выразительная сила классификатора и тем самым и уменьшается риск принять случайные частности за закономерность. При этом важно соблюсти баланс между понижением размерности и сохранением полезной информации."
438+
"Зато сократить риск переподгонки под немногие примеры положительного класса позволяет приём с автокодировщиком. Можно обучить автокодировщик по исходным признакам восстанавливать их же, чтобы в промежуточном слое меньшей размерности выучивалось более общее признаковое представление. При сокращении количества признаков падает выразительная сила классификатора и тем самым как раз и уменьшается риск принять случайные частности за закономерность. При этом важно соблюсти баланс между понижением размерности и сохранением полезной информации."
435439
]
436440
},
437441
{
@@ -505,8 +509,8 @@
505509
"Допустим, есть объекты двух видов, между которыми существуют взаимосвязи: например, есть тексты и есть пользователи, причём про пользователей известно, какие тексты они читали, а какие нет. Также допустим, что для одного из видов объектов уже есть готовые векторные представления: например, вложения для текстов были получены через [word2vec](__home_url__/notes/Вероятностная интерпретация word2vec) или [BERT](__home_url__/notes/BERT (Bidirectional Encoder Representations from Transformers)). Предположим, что требуется, затратив не слишком много вычислительных ресурсов, получить вложения для объектов второго вида на базе вложений объектов первого вида.\n",
506510
"\n",
507511
"Сделать это можно следующими способами:\n",
508-
"* Проведя ALS-шаг (один шаг попеременного метода наименьших квадратов). По сути, этот шаг является решением $n$ независимых задач линейной регрессии, где $n$ — количество объектов второго вида. В $i$-й задаче выборка основывается на том, с какими объектами первого вида было взаимодействие $i$-го объекта второго вида: скажем, можно взять все тексты, которые читал пользователь, и просэмплировать сколько-то текстов, которые пользователь не читал. Целевой переменной является результат взаимодействия (например, 1, если текст был прочтён, и 0, если текст попал в выборку в результате отрицательного сэмлирования). Признаками являются векторные вложения выбранных объектов первого вида. Вектор коэффициентов, найденных при решении получившейся задачи линейной регрессии, и станет вложением $i$-го объекта.\n",
509-
"* Проагрегировав векторные представления тех объектов первого вида, с которыми взаимодействовал объект второго вида. При этом можно использовать не только сумму, среднее, максимум или минимум: например, если известно время взаимодействия, то можно рассчитать взвешенную сумму с весами, затухающими в зависимости от прошедшего с момента взаимодействия времени."
512+
"* Проагрегировав векторные представления тех объектов первого вида, с которыми взаимодействовал объект второго вида. При этом можно использовать не только среднее: например, если известно время взаимодействия, то можно рассчитать взвешенную сумму с весами, затухающими в зависимости от прошедшего с момента взаимодействия времени. А если в явном виде вложения для объектов второго вида не нужны, а нужно лишь уметь оценивать совместимость пары двух объектов разного вида, то можно посчитать косинусные меры близости между объектом первого вида из этой пары и всеми объектами первого вида, с которыми взаимодействовал объект второго вида из пары, а далее проагрегировать этот список (например, взяв какую-либо перцентиль).\n",
513+
"* Проведя ALS-шаг (один шаг попеременного метода наименьших квадратов). По сути, этот шаг является решением $n$ независимых задач линейной регрессии, где $n$ — количество объектов второго вида. В $i$-й задаче выборка основывается на том, с какими объектами первого вида было взаимодействие $i$-го объекта второго вида: скажем, можно взять все тексты, которые читал пользователь, и просэмплировать сколько-то текстов, которые пользователь не читал. Целевой переменной является результат взаимодействия (например, 1, если текст был прочтён, и 0, если текст попал в выборку в результате отрицательного сэмлирования). Признаками являются векторные вложения выбранных объектов первого вида. Вектор коэффициентов, найденных при решении получившейся задачи линейной регрессии, и станет вложением $i$-го объекта."
510514
]
511515
},
512516
{

0 commit comments

Comments
 (0)