Как машинное обучение объясняет реальный мир

от автора

Природа мира склонна повторять себя, например: каждый раз, когда возникает вопрос об эффективном использовании ресурсов, мы изобретаем кэши. Компьютеры, иерархии компаний, DNS — все это примеры того, как одни и те же подходы вновь и вновь используются для решения схожих задач. Эта фрактальная природа мира объясняет, почему обучение нейронных сетей так похоже на человеческое: и там и там базовая структура это нейронная сети.

Примечание: чтобы не путаться ниже под «нейронная сеть» я буду понимать нейронные сети, которые мы реализуем в компьютерах и те, что у нас находятся в голове, хоть они и принципиально отличаются. Под ML же я буду понимать только реализацию нейронных сетей в компьютерах.

Почему ML работает?

В первую очередь хочется понять, почему в принципе обучение нейронных сетей в компьютерах работает?

Потому что нейронные сети не явно использует принцип эволюции. По сути сеть это целая популяция параметров, и те, что не помогают в решении задачи потихоньку изменяются (умирают). Поэтому работает обучение пакетами и несколько эпох на одних данных. А именно: для каждого отдельного батча нейронная сеть изменяется, чтобы давать лучшее предсказания для него, но изменения, которые не приводят к улучшениям в других пакетах будут нивелированы, таким образом долгосрочно останется только то, что работает для большинства.

Во истину, если бы нейронные сети не могли бы обучаться, то и нас бы не существовало, потому что наши мозги похожи на нейронные сети.

Что такое обучение на самом деле?

Понятие «обучение», кажется интуитивно понятным, но если копнуть глубже чем интуитивные мысли, что такое обучение на самом деле?
Мне нравятся два по сути одинаковых определения.

  • обучение это построение ментальной модели

  • обучение это мягкое запоминание

Обучение это построение ментальной модели

Для дальнейших рассуждений нужно понимать что такое ментальная модель. Реальный мир в тех или иных проявлениях работает по некоторым законам, и важно иметь маленькую модель какого-то явления, чтобы в нужный момент ей воспользоваться и понять, чего можно ожидать. На самом деле понятие «ментальная модель» очень точное, когда я его слышу, я всегда представляю какой-то физический объект. Например, представим модель игрушечного самолетика, а теперь со всей силы кинем ее в стену, что произойдет? Я представляю как модель красиво распадается на кусочки. Так мы можем предсказывать результаты каких-то действий, которые на самом деле не происходили в реальности. Это важно, потому что это и есть причина по которой нейронные сети способны давать хорошие результаты на входных данных, которые они никогда не видела. Потому что сеть строит свою внутреннюю модель о том, как работает мир.

Хорошо, но почему нейронная сеть строит свою внутреннюю модель? Почему она, например, не запоминает пары входных и выходных данных? На самом деле построить модель это всегда быстрее и эффективнее, как например легче научиться складывать числа чем запомнить все результаты от складываний чисел от 0 до 100 000 (значит, причина по которой нейронные сети в первую очередь строят внутренние модели, именно в том, что это просто проще).

Хочется разделить понятия обучение и запоминание в разные области (т.е. обучение — построение ментальных моделей, а запоминание некий более простой механизм заучивания). Но на самом деле не существует границы между запоминанием и обучением, это одно и то же (с какого-то момента сеть перестает находить новые закономерности, а просто запоминает, но ведь запоминание это и есть поиск закономерностей, просто не применимых к другим экземплярам входных данных). И чисто логически, представим, что мы не умеем складывать числа и нас заставляют этому научиться, задача строго определена: складывать числа от 0 до 100 000, вероятно первым прогрессом будет когда мы научимся складывать числа, и сможем посчитать ответ. Но что будет если нас продолжат тренировать решать эту задачу? Предсказываю, что мы будем все больше запоминать ответы и все меньше считать.

Обучение это мягкое запоминание

Под мягким, я имею в виду не точное запоминание. Если бы модели работали как точные запоминатели (как хеш таблица), то они бы не имели смысла. Ценно именно то, что модель способно предсказывать результаты для данных, которые в точности не повторяют ранее видимые.

Невозможно отделить обучение от запоминания, запоминание шаблонов и есть обучение. Переобучением называют тот момент когда training loss продолжает уменьшаться, а validation loss уже нет, но что происходит до этой точки? Мягкое запоминание training data приводит к лучшей производительности на test data. То есть обучение это процесс в ходе которого мы не пытаемся построить точно отображение из каждого входного x в каждый выходной y, мы скорее запоминаем шаблоны которые нам помогают отображать x в y, но мы ни в коем случае не требуем это делать строго, напротив, нам важен именно побочный эффект запоминания, от того что сеть научиться давать ответы на входные данные которые она никогда не видела.

С другой стороны запоминание это и есть обучение, мы как будто строим большой пазл с пропущенными детальками, но при этом можем догадаться чего же там не хватает. Обучение невозможно без забывания, это и есть та мягкость.

Эффективные методы обучение соответствуют устройству мира

Интерливинг. В реальном мире мы не оттачиваем отдельный скилл до идеала, скорее мы обучаемся разным его особенностям одновременно. Например, если вы учитесь готовить, то уже в свою первую готовку вы столкнетесь с множеством задач от выбора продуктов до их подачи. Это совершенно отличается от задачи обучения в университете, где каждая лекция сосредоточена на отдельной теме, которая связано с другими, тем не менее достаточно изолированная, и хотя к ней и будут возвращаться впоследствии, но лишь вскользь. В отличие от приготовления пельменей, задачи которая будет повторяться практически в таком же виде. Или, например: когда рождается ребенок, он одновременно учиться распознавать образы, распознавать звук и контролировать свое тело, и он тренируется в этом вперемешку.

У ML аналогом интерливинга является батчинг (сеть как бы пытается одновременно учиться давать правильные результаты для разных входных данных).

Вариативность. Когда вы смотрите на свою бабушку, вы всегда видите ее с немного разных углов, что и позволяет научиться узнавать ее хорошо. В отличии от заучивания стихов, где задача запомнить какой-то определенный текст (в реальном мире практически таких задач не бывает).

Как в том эксперименте: восьмилетние дети тренировались забрасывать мячи в баскетбольную корзинку. Половина детей стояли на расстоянии одного метра от корзины, остальные чередовали броски с полуметра и с полутора метров. Через 12 недель все дети прошли тест на броски с расстояния одного метра. Лучшие результаты показали те, кто упражнялся бросать мяч с полу- и полутораметрового расстояния, но не совершил ни одного метрового броска.

У ML чем разнообразнее входные данные, тем выше производительность модели.

Интервальность. Вы готовите периодически, что заставляет вас каждый раз доставать знания из долгосрочной памяти, а значит запоминать все лучше и лучше. В отличии от прочитанной книге, о которой вы ни разу не вспомнили и поэтому забыли. Или, например, замечали, что сериал просмотренный за день практически полностью выветривается из памяти? Не удивительно что четырех часовой интенсив никак не повлиял на вашу жизнь.

У ML аналогом является обучение на протяжении нескольких эпох (есть большая разница между обучением 10 эпох с lr=0.01и одной с lr=0.1).

Это не похоже на совпадение, нейронные сети оптимизированы именно под обучение в «реальном» мире.

Поэтому не нужно удивляться почему так тяжело подготовиться к экзамену за день до сдачи, почему забылась книга прочитанная год назад, почему не хочется учиться. Мозг ожидает обучения в другом виде.

Почему нейросети постоянно видят закономерности которых на самом деле нет?

Фундаментально нейросети не способны отделить важное от не важного. Нейросети стремятся эксплуатировать всю доступную информацию. Не существует механизма, который мог бы отделить важные фичи от не важных, потому что на уровне фичей это понятие просто не имеет смысла (действительно, где граница между мало значимой фичей и шумом?). То есть нейронные сети находят любые закономерности, и для них нету такого понятия как «ложная» закономерность, это как раз изобретение людей.

Интересным подтверждением является эксперимент с дайверами, которые на суше лучше вспоминали слова которые они запоминали на суше, а под водой, то что запоминали на глубине. Мозг не смог понять, что задача запоминания слов не связана с информацией, о том где мы находимся сейчас и автоматически добавил ее в контекст. С этой точки зрения понятно почему в соревнованиях по машинному обучение удаление не важных фичей ведет к улучшению результатов, самой сети сложно признать что-то совершенно не имеющим смысла.

Следствием невозможности отделить важное от не важного является связь между гениальностью и помешательством. И не совпадение, что в машинном обучении замечено, что большие модели (с бóльшим числом параметров) способны легче обучиться произвольной функции, но в то же время более склонны к переобучению (т.е. больше запоминают входные данные, а не находят в них закономерности).

Рассмотрим пример связи гениальности и помешательства, Джон Форбс Нэш-младший получил нобелевскую премию по экономики и считал, что инопланетяне с ним общаются. Это не совпадение, чем больше человек способен видеть закономерностей в мире, тем больше он находит закономерностей там где их нет (то есть тупость может быть своего рода защитой). А существует ли граница между настоящими закономерностями и ложными? Принципиальных отличий нету.

Поэтому повышенный интеллект не базовое благо, а имеет свои преимущества и недостатки (иначе бы эволюция давно бы устранила эту проблему, и сделала бы всех одинаково гениальными, но этого мы не наблюдаем, значит с точки зрения эволюции родиться немного тупее эквивалентно тому, чтобы родиться немного умнее относительно 100 IQ). Быть тупее (менее восприимчивым к взаимосвязям) помогает не циклиться на не важном, а как бы смотреть на ситуацию в целом, а значит использовать более простые правила. Об этом же говорит Нассим Талеб, что простые модели, как правило, работают лучше. Поэтому существуют приколы на тему того, что очень глупые и очень умные люди думают одинаково, просто глупые руководствуются простыми правилами, потому что не могут понять более трудные, а умные в свою очередь специально изобретают простые правила (потому что, они понимают почему простые правила работают лучше), чтобы принять решения.

Поэтому Альберт Эйнштейн и плоскоземельщики — одного поля ягоды, в том смысле, что они подвергают сомнению нечто, что всем известно и понятно.


ссылка на оригинал статьи https://habr.com/ru/articles/863784/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *