В частности, в контексте соревнований по догонялкам, я заметил, что производительность модели - это выбор функций / разработка. Хотя я могу полностью понять, почему это происходит в случае с более традиционными алгоритмами ML старой школы, я не понимаю, почему это было бы так при использовании глубоких нейронных сетей.
Ссылаясь на книгу глубокого обучения:
Глубокое обучение решает эту центральную проблему в обучении репрезентации путем введения представлений, которые выражаются в терминах других, более простых представлений. Глубокое обучение позволяет компьютеру создавать сложные концепции из более простых концепций.
Поэтому я всегда думал, что если «информация в данных», то достаточно глубокая, хорошо параметризованная нейронная сеть подберет нужные функции при достаточном времени обучения.
Ответы:
Что делать, если «достаточно глубокая» сеть невероятно огромна, что делает обучение модели слишком дорогим (плата за AWS увеличивается!) Или вам нужно развернуть сеть в среде с ограниченными ресурсами?
Как узнать, априори, что сеть хорошо параметризована? Чтобы найти сеть, которая хорошо работает, может потребоваться много экспериментов.
Что если данные, с которыми вы работаете, не «дружелюбны» к стандартным методам анализа, таким как двоичная строка, содержащая тысячи или миллионы битов, где каждая последовательность имеет разную длину?
Что если вы заинтересованы в данных уровня пользователя, но вынуждены работать с базой данных, которая собирает только данные уровня транзакции?
Предположим, ваши данные имеют форму целых чисел, таких как , и ваша задача - предсказать сумму цифр, поэтому цель в этом примере - . Очень просто проанализировать каждую цифру в массив, а затем суммировать массив («проектирование функций»), но сложно в противном случае.3 , 5 , 18 , 712,32,486,7 3,5,18,7
Мы хотели бы жить в мире, где анализ данных «под ключ», но решения такого рода обычно существуют только в особых случаях. Много работы ушло на разработку глубоких CNN для классификации изображений - в предыдущей работе был этап, который превращал каждое изображение в вектор фиксированной длины.
Разработка функций позволяет практикующему врачу напрямую преобразовывать знания о проблеме в вектор фиксированной длины, доступный для сетей прямой связи. Выбор функции может решить проблему включения такого количества несущественных функций, что любой сигнал будет потерян, а также значительно сократить количество параметров модели.
источник
Ключевыми словами здесь являются приоры и масштаб . В качестве простого примера представьте, что вы пытаетесь предсказать возраст человека по фотографии. Имея набор данных изображений и возрастов, вы можете обучить модель глубокого обучения прогнозированию. Это объективно действительно неэффективно, потому что 90% изображения бесполезно, и только область с человеком действительно полезна. В частности, лицо человека, его тело и, возможно, его одежда.
С другой стороны, вы могли бы вместо этого использовать предварительно обученную сеть обнаружения объектов, чтобы сначала извлечь ограничивающие рамки для человека, обрезать изображение, а затем передать его через сеть. Этот процесс значительно улучшит точность вашей модели по ряду причин:
1) Все ресурсы сети (т. Е. Веса) могут сосредоточиться на фактической задаче прогнозирования возраста, в отличие от необходимости сначала найти человека. Это особенно важно, потому что лицо человека содержит полезные функции. В противном случае тончайшие функции, которые вам нужны, могут потеряться в первых нескольких слоях. Теоретически, достаточно большая сеть может решить эту проблему, но это будет крайне неэффективно. Обрезанное изображение также значительно более обычное, чем исходное. В то время как исходное изображение имеет массу шума, его спорные расхождения в обрезанном изображении гораздо более тесно связаны с целью.
2) Обрезанное изображение можно нормализовать, чтобы иметь тот же масштаб . Это помогает второй сети справиться с проблемами масштабирования, потому что в исходном изображении люди могут находиться рядом или далеко. Предварительная нормализация масштаба позволяет сделать так, чтобы в кадрированном изображении был человек, который заполняет полностью кадрированное изображение (несмотря на то, что оно было пикселировано, если они были далеко). Чтобы увидеть, как это может помочь в масштабировании, обрезанное тело, составляющее половину ширины и высоты исходного изображения, имеет в 4 раза меньше пикселей для обработки, и, следовательно, та же сеть, примененная к этому изображению, будет иметь 4-кратное восприимчивое поле исходной сети на каждом слое.
Например, в конкурсе легких легких, общей темой в лучших решениях была какая-то предварительная обработка изображений легких, которые максимально обрезали их и изолировали компоненты каждого легкого. Это особенно важно для трехмерных изображений, поскольку эффект является кубическим: удаляя 20% каждого измерения, вы избавляетесь почти от половины пикселей!
источник
Моя интуиция об этом явлении связана со сложностью изучаемой модели. Глубокая нейронная сеть может действительно аппроксимировать любую функцию в теории , но размерность пространства параметров может быть действительно большой, как в миллионах. Так что на самом деле найти хорошую нейронную сеть действительно сложно. Мне нравится думать о проектировании функций как о начале работы алгоритма, предоставляя ему некоторую дополнительную информацию относительно представления данных, которая в некотором смысле является достаточно хорошей. Конечно, это не формальное объяснение, на этот вопрос может быть действительно трудно ответить с научной строгостью.
источник