www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Зарисовка доказательства конвергенции для ковариантного обучения в нейронных сетях

Дата публикации Jun 9, 2017

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

Сначала немного предыстории:

Нейронные сети мощны.

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

Перенастройка - это проблема.

Когда нейронная сеть обучена для классификации данных, она в конечном итоге учится отлично сортировать, но она будет идеально сортировать только ваши обучающие данные, потому что оназапоминает весь набор, Когда даноновые данныеЭти модели подходят плохо. Переезд сслучайная сеть(который выполняетслучайныйклассификация) ксеть с запоминанием данных(который выполняетточныйклассификация, т. е. «переоснащение») являетсябольшой скачок, в то время каксети хорошего обобщения(которые хорошо работают нановые данные) сидеть в очкахвозлезапоминание. Исследователи прекращают свое обучение, когда классификатор начинает ухудшаться, когда ему дают новые данные. Это клочок, чтобы обойти тот факт, чтосведение к минимуму «функции потерь» - это не то, чего мы действительно хотим, Мы действительно хотим хорошего обобщения!

Время обучения - это деньги.

Более глубокая нейронная сеть требует гораздо больше времени для обучения и часто требует гораздо больших наборов данных для хорошего обучения. Вы можете использовать графические процессоры (или TPU) для сокращения времени и затрат, ноэто только разовое улучшение, В корне,обучение будет увеличиваться в цене, поскольку сети становятся глубже.Закон Мура мертвпоэтому аргумент, что«Улучшения в компьютерном оборудовании будут продолжать делать глубокие нейронные сети дешевле»падает плоский

И обучение должно происходить везде.

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

Ковариантность - это лекарство

В частности,отрицательныйковариация (и его двоюродный брат,отрицательная корреляция) это решение. Отрицательная ковариация возникает, когда имеют место два сигналав оппозиции: если один включен, другой выключен, и наоборот. Для нейронной сети отрицательная ковариация регистрируется, если нейрон «включен» при правильной классификации данных, и «выключен» при неправильной классификации данных. (И отрицательная ковариация также регистрируется для обратного условия: «выкл» при правильной классификации данных, а «включено» для неправильно классифицированных данных.) Нейроны, регистрирующие отрицательную ковариацию, по существуошибка-детекторы, Они говорят нам: ‘если этот нейрон запускает, то мыскорее всего получит неправильный ответ». Мы должны слушать эти нейроны, чтобы узнать, какие уроки не были извлечены.

Ковариантность устраняет нисходящее обучение

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

Говорят иначе: если нейронные сети были бизнесом, «функция потерь» - это памятка, которая проходит через многие уровни управления, прежде чем перейти к сотрудникам. «Функция потерь» берет результат «Наш бизнес потерял деньги!» И говорит высшему руководству «Делать что-то иначе». Затем эти менеджеры отправляют сообщение всем менеджерам среднего звена, настаивая на том, что они «делают что-то по-другому» К тому времени, когда это сообщение достигнет всех сотрудников,чтоони должны измениться неясно. Записка была неопределенной, для начала, и сталаразбавленныйкак он путешествовал по иерархии.

Продолжение бизнес-метафоры: отрицательная ковариация похожа на целевую заметку после личного обзора эффективности. Ковариант спрашивает каждого нейрона / сотрудника:этот сотрудниксделать работу, которая вызвала сбой нашего продукта? »вся сетьнаходится на рассмотрении, и сообщение «Делать что-то по-другому»толькоотправлено нейронам / сотрудникам, которым НУЖНО сделать что-то по-другому!

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

Ковариантность экономит время и деньги

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

Ковариация экономит время напереобучение, Традиционное обучение создает нейронную сеть, котораястатический; Если новые данные включены в обучение сети, это частопереподготовка с нуля, Предположим, что новые данные требуют изменения некоторых низкоуровневых функций? Сеть должна будет посылать многочисленные «памятки» по иерархии, прежде чем на нижнем уровне произойдут существенные изменения. Отрицательная ковариация позволяет избежать этой проблемынемедленное выявление конкретных нейронов, ответственных за ошибки,безнеобходимость путешествовать по иерархии.

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

Ковариантность продвигает детектирование объектов до самых нижних слоев, чтобы задержать перенастройку

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

Чтобы показать, как все это происходит:

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

Если мы сделаем нейронную сеть с большим количеством слоев, чем онапотребностиМы надеемся, что обучение приведет к «опусканию» обнаружения функций, устранениюдополнительныйслои. Это потому чтодополнительныйслои позволяют сети классифицировать сбольшая специфичность- нам нужнодостаточнослои, чтобы указать нашу классификацию, нослишкомспецифичность позволяет сетивыучить наизусть(«Переоснащение») тренировочных данных.

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

Итак, как отрицательная ковариация «опускает» обнаружение функции?

Если нейрон регистрирует отрицательную ковариацию, он говорит: «Я запускаю, когда сеть совершает ошибку». Чтобы быть в состоянии идентифицировать ошибки, этот нейрон должен бытьполучение данных, которые являются информативными в случае ошибки, То есть:Информация, которая достигает этого нейронаучаствуетв ошибке (Если бы это было НЕ так, нейрон был быневозможно обнаружить ошибкии так, это не будет регистрировать отрицательную ковариацию - утверждение тавтологично!) При обратном распространении от этого нейрона нейроны под ним обескураживаются, чтообескураживание информации, которая привела к ошибкам, Любые функциикоторые были активны во время ошибокбудет обескуражен, и в результате классификация начинаетполагаться на функции, которые были правильными,потому что они единственныене обескуражен,

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

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

Эскиз доказательства сходимости:

Без доказательства сходимости, алгоритм обученияможет бытьпрыгать без достижения идеальной точности данных тренировки. (Этомогдостичь идеальной точности, но у нас не было бы математической уверенности!) Я приведу несколько уловок, чтобы вывести схождение из отрицательной ковариации:

Half-Learning

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

Точка остановки полувыведения

Когда остановится половина обучения? Когда даже малейшая скорость обучения приведет к увеличению количества ошибок. Может ли это произойти, если количество ошибок положительное? Ответ, требующий тщательного наблюдения:

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

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

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

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

В том, что все?

Я не намерен подразумевать, что ковариация позволяет сетивсегда сходятся быстреечем существующие методы. Вместо этого ковариация позволяет тренироватьвставлены кластеры нейронов, обеспечивая быстреепереобучениераз, Вы можете вырастить новый кластер нейроновгде угодновнутри существующей сети, и обучите ее новым данным, в то время как остальные веса сети «заморожены». Я предлагаю установить эти кластеры в нейронах, обнаруживающих ошибки, в нейронной сети Mixture of Experts. Каждый кластер, по сути, действует как «специализированный эксперт», которыйизвлекает функции из детекторов ошибок, чтобы исправить ошибки! Сеть адаптируется к новым данным, не забывая старые уроки (эта забывчивость - проклятие для переподготовки глубоких сетей!)… Я надеюсь, что отрицательная ковариация будет способствовать развитиюисключительно глубокие сетикоторые растут и адаптируются к новой информациибыстро,без потери основных идей, которые они узнали в прошлом,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map