[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

吴恩达老师DeepLearning.ai课程笔记
【吴恩达Deeplearning.ai笔记一】直观解释逻辑回归
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络上
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络下
深度网络不好使?吴恩达老师带你优化神经网络(1)
【deeplearning.ai】深度学习:优化神经网络(2)

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

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

1 Ортогонализация


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

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

Это упрощает проверку независимости одного алгоритма от другого, а также сокращает время проектирования и разработки.

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

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

При разработке системы обучения с учителем должны выполняться следующие четыре предположения, и они ортогональны:

  1. Установленная модель хорошо работает на обучающей выборке;
  2. Установленная модель хорошо работает на наборе для разработки (набор для проверки);
  3. Созданная модель хорошо показала себя на тестовом наборе;
  4. Установленная модель хорошо работает в реальных приложениях.

Если после ортогонализации вы обнаружите:

  1. Производительность на обучающем наборе недостаточно высока - попробуйте использовать более глубокую нейронную сеть или перейти на лучший алгоритм оптимизации;
  2. Производительность набора для разработки недостаточно высока - попробуйте упорядочить или добавить дополнительные данные обучения;
  3. Производительность на тестовом наборе недостаточно высока - попробуйте использовать больше наборов для разработки для проверки тестов;
  4. В реальных приложениях производительность недостаточно высока - это может быть связано с неправильной настройкой набора тестов или неправильной оценкой функции стоимости.

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

2 оценки одиночного числа


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

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

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

  • TP (True Positive) - предсказание положительного класса как положительного числа класса
  • FN (False Negative) - предсказать положительный класс как отрицательное число класса
  • FP (False Positive) - прогнозировать отрицательный класс как положительный номер класса
  • TN (True Negative) - предсказать отрицательный класс как отрицательное число класса.Если
    [Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения
    следующую ситуацию трудно различить, вам необходимо использовать метрику F1 (оценка F1), чтобы оценить качество двух классификаторов.
    [Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения
    Метрика F1 определяется как:

Метрика F1 на самом деле представляет собой среднее гармоническое значение скорости точности и скорости отзыва.Это метод, основанный на улучшении среднего значения, что лучше, чем просто взятие среднего значения.

Таким образом, значение метрики F1 классификатора A на приведенном выше рисунке рассчитано как 92,4%, а классификатор B - 91,0%. Никогда не было известно, что классификатор A лучше. Здесь значение измерения F1 используется как единый числовой индикатор оценки.

3 Встречайте и оптимизируйте индикаторы


[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

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

В это время вам необходимо установить один индикатор как индикатор оптимизации (Optimizing Metric), а другие как индикатор удовлетворенности (Satisficing Metric).

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

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

Например, ошибки распознавания из двух кошек классификаторов А и В 3% и 5%, соответственно, но по какой-то причине, распознаватель будет ошибочно идентифицировать порнографическое изображение как кошка, вызывая дискомфорт для пользователя, в то время как В не будет иметь это В этом случае B с большей ошибкой распознавания является лучшим классификатором. Для расчета коэффициента ложного распознавания можно использовать следующую формулу:
[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

Вы можете также установить со (я), когда х (я) является порнографической картинкой, ω (I) является 10, в противном случае это 1, с тем, чтобы различать порнографические изображения и другие misrecognized фотографий:
[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения
так в соответствии с реальной ситуацией, правильно Определите индекс оценки, чтобы убедиться, что индекс оценки оптимален.

4 обработка данных


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

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

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

Во-вторых, нам нужно обратить внимание на разделение размера каждого набора данных. В эпоху раннего машинного обучения для всех имеющихся у вас наборов данных вы обычно используете 70% из них в качестве обучающего набора, а оставшиеся 30% - как тестовый; или, если вы хотите присоединиться к набору для разработки, используйте 60% в качестве обучающего набора. 20% на комплекты для разработки и тестирования.

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

Если будет получен один миллион выборок данных, 98% данных будет использоваться в качестве обучающего набора, а 1% или 10 000 данных будут использоваться в качестве набора для разработки, а 1% данных будет достаточно в качестве тестового набора.

Следовательно, данные следует разделять в соответствии с реальной ситуацией, а не строго следовать традициям.

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

5 сравните характеристики человека


В настоящее время проектирование и создание системы машинного обучения стало проще и эффективнее, чем раньше. Некоторые алгоритмы машинного обучения могут конкурировать с людьми во многих областях, например AlphaGo, разработанная Google DeepMind.

Однако многие задачи для нас, людей, могут быть выполнены почти идеально, и системы машинного обучения также пытаются достичь или превзойти человеческие возможности.
[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

На приведенном выше рисунке показаны изменения в уровнях машинного обучения и производительности человека с течением времени. Как правило, когда машинное обучение превышает уровень производительности человека, оно развивается медленно. Одна из важных причин заключается в том, что люди Уровень производительности некоторых проблем естественного восприятия близок к байесовской ошибке (Bayes Error).

Байесовская ошибка определяется как наилучшая возможная ошибка, другими словами, любая функция отображения от x до точности y не может превышать это значение.

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

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

[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

Разница между ошибкой обучающего набора и ошибкой действий человека называется смещением, которое можно избежать (Avoidable Bias).

Например, в двух сценариях на приведенном выше рисунке сравните частоту ошибок человека с частотой ошибок модели машинного обучения, чтобы увидеть, что в сценарии A частота ошибок алгоритма обучения и частота ошибок человека относительно велики. В этом случае дальнейшая работа состоит в том, чтобы уменьшить частоту ошибок обучающего набора с помощью метода, представленного ранее, чтобы уменьшить отклонение. В сценарии B алгоритм обучения и производительность человека эквивалентны, а отклонение, которого можно избежать, составляет всего 0,5%. Последующая работа должна быть направлена ​​на уменьшение 2% -ной разницы между набором для разработки и набором для обучения, насколько это возможно.

Уровень производительности человека обеспечивает метод оценки байесовской ошибки. При обучении системы машинного обучения определенному типу вещей уровень производительности человека на предмете используется как байесовская ошибка, что позволяет избежать частоты ошибок при обучении во время процесса обучения. Оптимизируйте напрямую с целью 0%.

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

Если разница ошибок между обучающим набором и уровнем производительности человека больше, чем разница между обучающим набором и набором для разработки, то вам следует сосредоточиться на уменьшении систематической ошибки, в противном случае вам следует сосредоточиться на уменьшении дисперсии.
[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

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

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

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

Примечание: изображения и материалы, включенные в эту статью, составлены и переведены из серии Deep Learning Эндрю Нг, и авторские права принадлежат ему. Уровень перевода и сопоставления ограничен, и вы можете указать на любые неправильные моменты.
[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

Рекомендуемая литература:

Марковские процессы марковского процесса принятия решений
[Deep Learning Actual Combat] Как работать с заполнением входной RNN последовательностью переменной длины в pytorch
[Базовая теория машинного обучения ] Подробно объяснить понимание максимальной апостериорной оценки вероятности (MAP)

      欢迎关注公众号学习交流~         

[Deeplearning.ai] Глубокое обучение: о проектах структурированного машинного обучения

рекомендация

отblog.51cto.com/15009309/2554226
рекомендация