Я новичок в машинном обучении (также немного статистики), некоторое время изучал знания (алгоритмы обучения под наблюдением / без присмотра, соответствующие методы оптимизации, регуляризации, некоторые философии (такие как компромисс отклонения?)). Я знаю, что без какой-либо реальной практики я не смог бы получить глубокое понимание этих вещей машинного обучения.
Поэтому я начну с некоторой проблемы классификации с реальными данными, скажем, классификации рукописных цифр (MNIST). К моему удивлению, без какого-либо обучения / разработки функций точность достигает 0,97 с использованием классификатора случайного леса с необработанными значениями пикселей в качестве входных данных. Я также попробовал другие алгоритмы обучения, такие как SVM, LR с настраиваемыми параметрами.
Тогда я заблудился, это будет слишком легко или я что-то здесь упускаю? Просто выбрать алгоритм обучения из инструментария и настроить некоторые параметры?
Если бы это было все о машинном обучении на практике, то я бы потерял интерес к этой области. Я думал и читал некоторые блоги в течение нескольких дней, и я пришел к некоторым выводам:
Наиболее важной частью машинного обучения на практике является проектирование функций , то есть, учитывая данные, выясняется лучшее представление функций.
Какой алгоритм обучения использовать, также важен, также настройка параметров, но окончательный выбор больше касается экспериментов.
Я не уверен, что понимаю это правильно, надеясь, что кто-нибудь сможет исправить меня и дать мне несколько советов о машинном обучении на практике.
источник
Ответы:
Машинное обучение (ML) на практике зависит от цели ML. В некоторых ситуациях достаточно хорошей предварительной обработки и применения набора готовых методов ML. Однако даже в этих ситуациях важно понимать, как работают методы, чтобы иметь возможность устранять неполадки, когда что-то идет не так. Тем не менее, ML на практике может быть гораздо больше, и MNIST является хорошим примером того, почему.
Обманчиво легко получить «хорошую» производительность в наборе данных MNIST. Например, согласно веб-сайту Янн Ле Куна о производительности MNIST , K ближайших соседей (K-NN) с евклидовой метрикой расстояния (L2) также имеет частоту ошибок 3%, такую же, как и у вас из случайного набора случайных чисел. лес. L2 K-NN примерно так же прост, как алгоритм ML. С другой стороны, лучший результат Янна, Йошуа, Леона и Патрика, первый выстрел в этом наборе данных, LeNet-4, имеет уровень ошибок 0,7%, 0,7% меньше четверти 3%, так что если вы поместите эту систему в На практике читая рукописные цифры, наивный алгоритм требует в четыре раза больше усилий человека, чтобы исправить свои ошибки.
Сверточная нейронная сеть, которую использовали Янн и его коллеги, соответствует задаче, но я бы не назвал это «разработкой функций», а лишь попыткой понять данные и закодировать это понимание в алгоритме обучения.
Итак, какие уроки:
источник
Я думаю, что примеры, которые вы найдете в блоге или на сайтах, являются примерами, когда известно, что общие методы работают хорошо (даже если, конечно, их можно улучшить).
Моя специализация - разработка функций, и я могу вам сказать, что часто стандартные алгоритмы не работают вообще. (У меня нет никаких знаний в этой области, но часто я работаю с людьми, которые имеют это.).
Здесь есть реальная проблема, где я работал в течение 6 месяцев: учитывая матрицу X со 100 образцами и 10000 переменными, представляющими генетическую ценность пациентов, и выходом y размером 100 x 1, который представляет плотность костей.
Можете ли вы сказать мне, какие гены влияют на плотность костей?
Сейчас я работаю над другой проблемой. У меня есть производственный набор данных с 2000 образцов и 12000 переменных. Мой босс хотел бы извлечь из этого набора данных не более 30 переменных без присмотра.
Я пробовал некоторые алгоритмы, но я не могу выбрать менее 600 переменных, потому что они очень сильно коррелированы между ними. (Я все еще работаю над этим ...)
Еще одна важная мысль, которую следует учитывать, - это быстродействие различных алгоритмов. Во многих ситуациях вы не можете ждать 20 минут, ожидая результата. Например, вам нужно знать, когда использовать NIPALS, а когда использовать SVD для вычисления PCA.
Надеюсь, что это может дать вам представление о проблемах, которые часто встречаются в мл.
источник