Как стать автором
Обновить

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 42 и 43

Время на прочтение5 мин
Количество просмотров3.2K
Автор оригинала: Andrew Ng

предыдущие главы


42. Еще про несоответствие данных


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


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


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


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


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


43. Искусственный синтез данных


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


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


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


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


Имейте в виду, что с искусственным синтезом данных есть свои проблемы: иногда довольно просто создать синтетические данные, которые представляются человеку реалистичными, однако не являются таковыми для компьютера. Например, предположим, что имеется 1000 часов речевых данных для обучения алгоритма распознавания речи и только 1 час автомобильного шума. Если вы неоднократно используете один и тот же 1 час автомобильного шума с различными частями, взятыми из 1000 часов тренировочной выборки, вы получите синтетический набор данных, в котором один и тот же автомобильный шум повторяется снова и снова. Хотя человек, слушающий этот звук, вероятно, не сможет сказать — отличаются ли от него другие дорожные и автомобильные шумы и для большинства из нас этого часа покажется вполне достаточно. Компьютер же может переобучиться на этом одном часе. Таким образом, возможно, алгоритм будет плохо обобщать свою работу на новый аудиоклип, в котором автомобильный шум звучит иначе.


Или предположим, что у вас 1000 уникальных часов автомобильного шума, но все они были записаны в 10 разных автомобилях. В этом случае алгоритм может «переобучиться» на этих 10 автомобилях и работать плохо, если он будет тестироваться на аудио, записанном в автомобиле, не входящем в эту десятку. К сожалению, такие проблемы, возникающие при синтезировании данных, довольно сложно обнаружить.


image


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


У игровой компании может быть порядка ~ 20 дизайнов автомобилей. Изготовление 3D-модели автомобиля стоит очень дорого; Играй вы в такие игры, вы могли бы и не заметить, что видите одни и те же автомобили снова и снова, возможно, только по разному окрашенными. Т.е. эти данные для вас выглядят очень реалистично. Но по сравнению с множеством всех автомобилей на дорогах — и, следовательно, тем, что скорее войдет в валидационную и тестовую выборки — эта выборка из 20 синтезированных автомобилей охватывает лишь незначительную долю всех существующих в Мире машин. Таким образом, если все 100 000 обучающих примеров, получены из 20 нарисованных автомобилей, на которых обучена ваша система, то эта система «переобучится» на этих 20 конкретных конструкциях автомобилей, и она не сможет хорошо обобщить свою распознающую способность на валидационные и тестовые выборки, включающие в себя другие модели автомобилей.


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


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


продолжение

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Публикации