Я тут всерьез занялась повышением квалификации - своей истинной квалификации как кибернетика - и удаленно получаю специализацию Machine Learning от Университета Вашингтона.
Так вот. Сейчас изучаю практические алгоритмы, нюансы и подходы к задачам классификации. Скажем, у вас есть мешок яблок, и для каждого известно, хорошее оно или плохое. Требуется для начала описать яблоки валидным набором параметров (feature engineering), а затем, используя уже оцененный кем-то мешок, научить свой маленький (или большой, как знать) классификатор различать подаваемые на вход яблоки на хорошие и плохие. Сиречь сделать так, чтобы когда вы в него засыпете новый мешок яблок, он вам с минимумом ошибок их разделил на хорошие и плохие.
Задачи классификации не новы, мы их еще в универе изучали, они хорошо и красиво описаны математическими алгоритмами, сдобрены теорией вероятности и сведены к извечному и универсальному методу градиентного спуска. Помимо собственно "предсказания" - версии классификатора о том, хорошее яблоко или плохое, такие математические классификаторы выдают еще и степень уверенности в своем предсказании - какова вероятность того, что я, мол, не ошибся - опять же исходя из имеющегося у меня обучающего мешка яблок и того, что я уже знаю о мире.
Так вот к чему я это все веду. Сегодня прорабатывала то, что называется overfitting или переобучение. Эффект также известный и универсальный для всех задач машинного обучения с учителем: чем сложнее мы делаем модель (если совсем просто, то чем дотошнее мы "прикапываемся" к яблокам нашего обучающего мешка, чем больше особенностей замечаем, чем больше аспектов учитываем), тем очевидно лучше мы отрабатываем на обучающих яблоках, мы их практически все - а с определенного момента и реально все - правильно классифицируем на плохие и хорошие. НО с определенного момента мы и хуже работаем на новых мешках. Мы начинаем слишком сложно - и совершенно неправдоподобно - думать обо всем окружающем мире. Мы то что называется теряем способность к обобщению. Фактически мы сводим весь наш мир к эту самому пресловутому обучающему мешку, а об остальном мире по факту ничего и не знаем.
Эффект, как я говорила, логичный, математически очевидный, и очень универсальный для всех задач машинного обучения. Но для классификации он обретает еще одну интересную - и исключительно математически обусловленную - побочную особенность. Философско-обнажающую способность, я бы сказала.
Переученные (overfitted) модели дают сверхуверенные предсказания (overconfident predictions). Вероятность их правоты - уверенность модели в ответе - практически на всех тестовых объектах стремится или близка к единице. Это, безусловно, делает модель еще более опасной - она дает неверные ответы и совершенно убеждена в своей правоте.
Это логическая алгоритмическая модель обучения, построенная на общих принципах человеческой логики, записанных грамотным - а значит, весьма непростым для неспециалиста - математическим языком. Это экспоненциальные сигмоиды и натуральные логорифмы, это максимизация и минимизация, градиенты и дроби. Но, как бы там ни было, эта четкая и уверенная математическая модель еще раз подтверждает - или утверждает, если вы в этом сомневались - психологическо-философскую истину. Индивиды, упрямо обучающиеся на наборе примеров своей жизни и сводящие свой мир ко множеству этих примеров - отрицающие наличие других примеров, вариаций - неизбежно ошибаются в новых ситуациях, какой бы хорошей ни была их обучающая выборка. При этом они категорически уверены в своей правоте.
Одним из признаков переобучения в классификации является также крайне узкая область неуверенности (region of uncertainty). Деление мира на черное и белое - признак переобучения. И неэффективных суждений.
Обожаю математику. В этом плане тотально солидарна с Пифагором и его музыкально-математической гармонией мира. Математика обнажает истинную структуру мира. В моем восприятиии она где-то рядом с океаном - они словно два проявления этой истинности.