12 ловушек машинного обучения

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

1. Обучение = представление + оценка + оптимизация

Машинное обучение состоит из трех основных компонентов. Это; 1 - выбор правильного алгоритма классификации / регрессии, 2 - выбор правильной функции стоимости, 3 - выбор правильного оптимизатора. Комбинация этих трех вариантов определяет производительность на тестовых данных.

2. Главное - обобщение.

Обобщение - это конечная цель разработки алгоритма машинного обучения. Важность перекрестной проверки невозможно переоценить.

3. Одних данных недостаточно

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

4. Многогранность переобучения

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

5. Интуиция терпит неудачу в больших измерениях

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

6. Теоретические гарантии - это не то, чем кажется.

Производительность алгоритма используется из практических соображений. Даже 100% тестовая производительность не гарантирует производительность на новых данных. Мы не обучили алгоритм на бесконечном количестве примеров. Даже в этом случае невозможно создать идеальный алгоритм математически.

7. Разработка функций - ключ к успеху.

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

8. Больше данных лучше более умного алгоритма

Иронично, но факт. Чем больше данных, тем умнее алгоритм, а не дизайн алгоритма. Видимо, потому, что больше данных помогает обобщению.

9. Изучите множество моделей, а не одну

Правда в том, что вы не можете выбрать лучший алгоритм машинного обучения, не зная всех возможностей. (Существуют алгоритмы, которые помогают выбрать лучший алгоритм. Проверьте лекцию adaboost и adaNet the School of AI по этой ссылке.)

10. Простота не означает точности

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

11. Репрезентативность не означает, что можно научиться

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

12. Корреляция не подразумевает причинно-следственной связи.

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

Чтобы узнать больше, следите за моими бесплатными ресурсами;

Источники изображений (кроме изображения Берил с Сираджем): Pixabay.