Почему нейронные сети нуждаются в выборе функций / проектировании?


14

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

Ссылаясь на книгу глубокого обучения:

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

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


4
ваш мозг все еще более силен, чем машина, поэтому небольшая помощь от человека имеет большое значение
Аксакал,

кто сказал, что им нужен выбор функций / разработка? Можете ли вы дать какие-либо ссылки? когда вы работаете с изображениями, они в значительной степени работают

@ user2137591 в этом все дело. У меня складывается впечатление, что в литературе нейронные сети часто изображаются как шаг вперед по сравнению с обычным машинным обучением, поскольку они предположительно выполняют автоматическое проектирование и отбор функций (как это подразумевает Гудфеллоу, Бенжио, Курвилль в книге «Глубокое обучение»). Это верно для многих задач в CV или NLP, где я считаю, что информация все еще скудна. С другой стороны, в конкурентной науке о данных (kaggle), где доступно много зашумленных данных, распространено мнение, что наиболее важным фактором при создании конкурентного решения является поиск «магической функции».
CephasW

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

Ответы:


18
  • Что делать, если «достаточно глубокая» сеть невероятно огромна, что делает обучение модели слишком дорогим (плата за AWS увеличивается!) Или вам нужно развернуть сеть в среде с ограниченными ресурсами?

  • Как узнать, априори, что сеть хорошо параметризована? Чтобы найти сеть, которая хорошо работает, может потребоваться много экспериментов.

  • Что если данные, с которыми вы работаете, не «дружелюбны» к стандартным методам анализа, таким как двоичная строка, содержащая тысячи или миллионы битов, где каждая последовательность имеет разную длину?

  • Что если вы заинтересованы в данных уровня пользователя, но вынуждены работать с базой данных, которая собирает только данные уровня транзакции?

  • Предположим, ваши данные имеют форму целых чисел, таких как , и ваша задача - предсказать сумму цифр, поэтому цель в этом примере - . Очень просто проанализировать каждую цифру в массив, а затем суммировать массив («проектирование функций»), но сложно в противном случае.3 , 5 , 18 , 712,32,486,73,5,18,7

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

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


6

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

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

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

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

Например, в конкурсе легких легких, общей темой в лучших решениях была какая-то предварительная обработка изображений легких, которые максимально обрезали их и изолировали компоненты каждого легкого. Это особенно важно для трехмерных изображений, поскольку эффект является кубическим: удаляя 20% каждого измерения, вы избавляетесь почти от половины пикселей!


4

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.