Если вы знакомы с миром машинного обучения, вам лучше знать великого Эндрю Нга, который произвел революцию в образовательной эпохе своими исключительными учениями и исследованиями в области искусственного интеллекта, машинного обучения, НЛП и многого другого. . Недавно мне удалось прочитать его книгу «Тоска по машинному обучению», в которой показана техническая стратегия инженеров искусственного интеллекта в эпоху глубокого обучения.
Он разделен на различные сегменты, в которых основное внимание уделяется каждому аспекту построения модели и выбору подходящего типа данных. Кроме того, после каждого раздела автор написал дополнительную главу с «выводами» в качестве краткого изложения темы, которая, несомненно, поможет начинающим членам команды пересмотреть важные выводы. Мне очень нравится, как Эндрю объяснил на очень простых примерах простого построения модели, разъяснил все проблемы при выборе правильного типа данных, как их разбить, как сбалансировать метрики оценки и как выбрать оптимизированный подход. Любой новичок в машинном обучении может очень легко следить за деталями.
Ниже приведены 15 основных моментов, которые я считаю полезными:
- Книга начинается с необходимости создания обучающих и тестовых наборов в реальном мире, а также с того, как их можно разделить с учетом множества моделей распределения. Насколько даже 0,01% улучшения производительности могут поднять мораль разработчика, все зависит от размера данных и честности их распределения, но в то же время он заявил, что «не нужно иметь чрезмерно большие dev/ наборы тестов выходят за рамки того, что необходимо для оценки производительности ваших алгоритмов».
- Важность оптимизации показателей оценки наглядно демонстрируется на различных примерах.
- Нет ничего постыдного в изменении набора для разработки/тестирования или даже метрики, если классификаторы ведут проект в неправильном направлении и напрасно тратят время эффективной команды.
- Не начинайте с попыток спроектировать и построить идеальную систему. Вместо этого быстро создайте и обучите базовую систему и работайте над итерационной частью, чтобы улучшать модель на каждом этапе. Два часа ручной работы по анализу ошибок могут сэкономить вам месяц напрасных усилий, поскольку обеспечивают количественную основу для принятия решения о том, стоит ли вкладывать средства в выбор правильного решения.
- Анализ ошибок не дает жесткой математической формулы, которая говорит вам, какой должна быть задача с наивысшим приоритетом. Вы также должны принять во внимание, какого прогресса вы ожидаете достичь по различным категориям, и объем работы, необходимой для решения каждой из них.
- Рассмотрите возможность разделения набора разработчиков на набор разработчиков Eyeball, который вы будете проверять вручную, и набор разработчиков Blackbox, который вы не будете проверять вручную. Если производительность набора разработчиков Eyeball намного выше, чем набора разработчиков Blackbox, вы перенастроили набор разработчиков Eyeball и вам следует рассмотреть возможность получения для него большего количества данных.
- Внедрите практические методы, чтобы сбалансировать компромисс между дисперсией и предвзятостью.
- Попробуйте устранить шум в кривой обучения, либо обучив случайно выбранный обучающий набор путем выборки с заменой из исходного набора, либо выбрав «сбалансированное» подмножество.
- Обычно прогресс идет медленнее в тех задачах, где машины уже превосходят по производительности человека, тогда как прогресс идет быстрее, когда машины все еще пытаются догнать людей.
- Четкая картина того, как решить, использовать ли все ваши данные или включать противоречивые данные, определяется незначительными фактами различных распространенных моделей, таких как обнаружение кошек, прогнозирование цен на жилье и т. д.
- При синтезе данных подумайте, действительно ли вы синтезируете репрезентативный набор примеров. Старайтесь избегать придания синтезированным данным свойств, которые позволяют алгоритму обучения отличать синтезированные примеры от несинтезированных.
- Несмотря на то, что сквозное обучение добилось многих успехов, это не всегда лучший подход.
- Примеры выбора компонентов конвейера более понятны из утверждения: если вы можете взять сложную задачу и разбить ее на более простые подзадачи, то, явно закодировав этапы подзадач, вы даете предварительные знания алгоритма, которые могут помочь ему более эффективно изучить задачу.
- Если у вас есть правильные помеченные пары (вход, выход), вы иногда можете изучать сквозное обучение, даже если выходными данными являются предложение, изображение, аудио или другие выходные данные, которые богаче одного числа.
- Что, если каждый отдельный компонент вашего конвейера машинного обучения работает с производительностью на уровне человека или почти на уровне человека, но общий конвейер далеко не достигает человеческого уровня? Обычно это означает, что конвейер неисправен и его необходимо перепроектировать. Анализ ошибок также может помочь вам понять, нужно ли вам перепроектировать конвейер.
Так что не просто придерживайтесь краткого изложения всей книги, а прочитайте ее целиком, чтобы построить лучшую команду и, конечно же, модель.