В настоящее время я узнаю об оценках регрессии методом наименьших квадратов (и других) и из того, что я также читаю в некоторых литературах по адаптивным алгоритмам, часто появляется фраза "... и поскольку поверхность ошибки выпуклая ..." любой глубины относительно того, почему она является выпуклой, для начала не существует.
... Так что именно делает его выпуклым ?
Я нахожу это повторяющееся упущение слегка раздражающим, потому что я хочу иметь возможность разрабатывать свои собственные адаптивные алгоритмы с моими собственными функциями стоимости, но если я не могу сказать, дает ли моя функция стоимости выпуклую поверхность ошибки или нет, я не смогу слишком далеко в применении чего-то вроде градиентного спуска, потому что не будет глобального минимума. Может быть, я хочу проявить творческий подход - возможно, я не хочу использовать наименьших квадратов в качестве моих критериев ошибки, например.
Покопавшись глубже (и мои вопросы начинаются здесь), я обнаружил, что для того, чтобы определить, есть ли у вас выпуклая поверхность ошибки, вы должны убедиться, что ваша матрица Гессе является положительной полуопределенной. Для симметричных матриц этот тест прост - просто убедитесь, что все собственные значения матрицы Гессе неотрицательны. (Если ваша матрица не симметрична, вы можете сделать ее симметричной, добавив ее в свою собственную транспонирование и выполнив тот же тест на собственные значения в силу грамиана , но это здесь не важно).
Что такое гессенская матрица? Матрица Гессе кодифицирует все возможные комбинации частичек вашей функции стоимости. Сколько есть частичных? Столько, сколько число объектов в вашем векторном объекте. Как вычислить частичные? Возьмите частичные производные «вручную» из исходной функции стоимости.
Так что это именно то, что я сделал: я предполагаю, что у нас есть матрица данных x n , обозначенная матрицей X , где m обозначает количество примеров, а n обозначает количество признаков в примере. (который также будет числом частичных чисел). Я предполагаю, что мы можем сказать, что у нас есть m временных выборок и n пространственных выборок от датчиков, но физическое применение здесь не слишком важно.
Кроме того, у нас также есть вектор размером m x 1 . (Это ваш вектор «метки» или ваш «ответ», соответствующий каждой строке X ). Для простоты я принял m = n = 2 для этого конкретного примера. Итак, 2 «примера» и 2 «функции».
Итак, теперь предположим, что вы хотите определить «линию» или полином наилучшего соответствия здесь. Таким образом, вы проецируете свои входные данные на свой полиномиальный коэффициент , чтобы ваша функция стоимости была:
Теперь возьмем первую частную производную по (функция 0). Таким образом:
Теперь давайте вычислим все вторые частичные, поэтому:
Мы знаем, что гессиан не что иное, как
Теперь, основываясь на том, как я построил матрицу данных (мои «особенности» идут по столбцам, а мои примеры идут по строкам), гессиан выглядит так :
... который является ничем иным, как образцом ковариационной матрицы !
Так что я не совсем уверен, как интерпретировать - или я должен сказать, я не совсем уверен, насколько обобщенно я должен быть здесь. Но я думаю, что могу сказать следующее:
Всегда правда:
- Матрица Гессе всегда контролирует, является ли ваша поверхность ошибки / стоимости выпуклой.
- Если ваша матрица Гессе имеет полу-полуопределение, вы выпуклые (и можете с удовольствием использовать алгоритмы, такие как градиентный спуск, чтобы сходиться к оптимальному решению).
Правда только для LSE:
- Матрица Гессе для критерия стоимости LSE - не что иное, как исходная ковариационная матрица. (!).
- Для меня это означает, что, если я использую критерий LSE, сами данные определяют, есть ли у меня выпуклая поверхность? ... Что тогда означало бы, что собственные векторы моей ковариационной матрицы каким-то образом способны «формировать» поверхность затрат? Это всегда правда? Или это просто сработало по критериям LSE? Меня просто не устраивает, что выпуклость поверхности ошибки должна зависеть от данных.
Итак, вернемся к контексту исходного вопроса: как определить, является ли погрешность поиска ошибок (на основе выбранной вами функции стоимости) выпуклой или нет? Основано ли это определение на данных или на гессиане?
Благодарность
TLDR: Как именно и практически я могу определить, дает ли моя функция стоимости и / или набор данных выпуклую или невыпуклую поверхность ошибки?