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

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

Ладно, может, и нет. Но возникает вопрос: если терминаторы не собираются в ближайшем будущем разгуляться, каков предел для искусственного интеллекта? Ответ довольно очевиден - это зависит от вашего определения искусственного интеллекта. Если вы определяете искусственный интеллект как только компьютеры, которые играют в го, я могу сказать вам с большой уверенностью, что в будущем программы Go будут лучше, чем сегодня. Мы бы закончили, но, к сожалению, я не думаю, что кто-то использует это определение. Я не думаю, что когда Mercedes рекламирует свой Intelligent Drive, они говорят о том, насколько хорошо их машины играют в го. С другой стороны, вы можете определить искусственный интеллект как маркетолог; ваша компания использует искусственный интеллект в своем продукте, моя тоже. Никто особенно не уверен, что такого искусственного интеллекта в нашем продукте, но это определенно не искусственно глупо, так что привет.

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

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

Допустим, ваша задача состоит в том, чтобы провести линию, чтобы отделить красные и синие точки, но может быть некоторая случайность в том, как окрашены точки; данные несколько зашумлены. Черная линия кажется разумным решением. Он не классифицирует все точки правильно, но, похоже, учитывает, что некоторые точки на границе могут идти в любом направлении. Зеленое решение успешно разделяет все точки. Но вот в чем разница: я выделил некоторые области, где, если вы пройдете по зеленой линии, новая точка будет классифицироваться как красная, а если вы пройдете по черной линии, новая точка будет классифицирована как синяя.

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

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

Я определенно не первый, кто заметил эту проблему. Я действительно узнал об этом в классе. Многие умные люди пытались решить эту проблему, придумав действительно хитрые способы, используя длинные уравнения и много греческих букв, чтобы модели не находили странных линий, таких как зеленая; это называется регуляризацией. Независимо от того, добавляется ли регуляризация во время обучения или встроена в саму модель, именно так улучшается машинное обучение.

У меня несколько иное мнение - на мой взгляд, мы пропустили самый важный шаг. Прежде чем прибегнуть к причудливой математике, мы забыли спросить себя, почему. Что ж, всегда есть вопрос, почему небо голубое или почему мы существуем во Вселенной, но это не те вопросы, на которые я ссылался (это не вопросы, которые вы ищете). Нет, меня больше волновало, почему интеллект вообще работает. Мы пытаемся выяснить, какие шаблоны работают, но мы не выяснили, почему какой-либо шаблон вообще будет работать. Почему следующая точка должна быть синей или красной; почему он не может быть фиолетовым?

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

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

Интуитивно понятно, что «зеленые» области должны быть больше, содержать больше точек и точнее предсказывать будущие точки. Другими словами, если бы в «зеленых» областях появилось больше точек, мы бы ожидали, что они будут красными. С другой стороны, если бы в «желтых» областях появилось больше точек, а некоторые из них были бы красными, мы бы подумали, что большинство из них были бы синими. Конечно, чтобы набрать больше очков, мы всегда можем собрать больше данных. Но иногда вы оказываетесь бедным студентом бакалавриата без денег, времени или ресурсов, которые есть у других людей. Вздох. В любом случае, иногда невозможно собрать больше данных. Поэтому вместо этого мы можем опустить часть обучающих данных и «добавить» точки, используя точки, которые мы не учли! Это тоже не новая идея - это вызывается с использованием набора для проверки (где мы проверяем шаблоны, найденные моделью из набора для обучения). Использование набора проверки для определения конкретных областей переобучения является новым. Однако есть причина, по которой люди этого не сделали. «Зеленые» регионы звучат очень красиво, но, во-первых, их сложно найти, а во-вторых, регионы были построены с учетом данных. Проще говоря, некоторые области явно «зеленые», а другие явно «желтые», но некоторые области будет трудно раскрасить из-за того, что области были сформированы вокруг данных обучения. Решение этой проблемы основывается на тех же фундаментальных принципах, что и Америка. Было бы странно, если бы две модели, обученные на разных данных, давали одни и те же «желтые» области. Следовательно, если мы повторим этот процесс раскраски для моделей, обученных на несколько иных данных, для регионов, в которых мы не уверены в первой модели, мы можем просто посмотреть на их цвет во второй модели в качестве решающего фактора! Если эта модель обнаружила тот же регион, то мы можем быть уверены, что это не случайно, поэтому он должен быть «зеленым». И наоборот, если вторая модель не нашла область, вероятно, это был шум, и он должен быть окрашен в «желтый цвет».

И еще кое-что. Как мы находим эти регионы? Используем кластеризацию! Вы спросите, что такое кластеризация?

Кластеризация - это поиск кластеров в данных (я не саркастичен намеренно). Но посмотри; кластеризация просто находит три кластера в данных, как показано. Точки в одном кластере похожи на модель. Если существует несколько способов преобразования точек и их последующего построения в модели (скажем, в каждом из слоев нейронной сети), то точки, которые находятся в одних и тех же кластерах на всех графиках, по определению неотличимы для модели. Это ясно - если бы модель могла различать их, то в какой-то момент они оказались бы в разных кластерах. В любом случае, если мы определим места, где точки всегда будут находиться в одном кластере, что ж, теперь у нас есть свои регионы!

Машинное обучение - это просто поиск алгоритмов, которые могут разделять точки (да, и регресс). Алгоритмы стремятся найти зеленую линию, поскольку это минимизирует ошибку классификации. Задача машинного обучения - найти алгоритм, который может найти черную линию, поскольку это, вероятно, будет лучше работать в новых точках. Регуляризация, или причудливая математика, помогает нам приблизиться к черной линии. Вот и все!

Вы хотите формальную версию этого, применимую к глубокому обучению, которое дает самые современные результаты? Вас интересует, как это оправдывает использование бритвы Оккама и связано с традиционной техникой регуляризации? Вы хотите быть крутым ребенком? - › https://arxiv.org/abs/1904.05488 ‹ -

Спасибо за прочтение!