В этом видео мы продолжим разбираться с задачей неотрицательного матричного разложения и посмотрим, какие ещё функционалы потерь можно использовать в этой задаче, кроме нормы Фробениуса, и зачем это делать. А также разберёмся с тем, откуда можно взять начальное приближение для наших оптимизационных методов. Функций потерь можно придумать огромное количество. Единственное, чем мы ограничиваем свою свободу здесь — это сепарабельностью. То есть мы хотим, чтоб наша функция потерь распадалась на сумму поэлементных расстояний между матрицами x и x с крышкой. Кроме того, мы хотим, чтобы это расстояние было всегда неотрицательным, и было равно нулю только, когда x и x с крышкой в точности совпадают. В качестве такой функции потерь можно использовать норму l1, норму Фробениуса, то есть сумму квадратов расстояний между матрицами, обобщённую дивергенцию Кульбака‐Лейблера, дивергенцию Итакура‐Саито, расстояние Хеллингера и так далее, это далеко не полный список. В разных прикладных областях используются разные функции потерь. Во многих биологических приложениях, например, используется норма Фробениуса. В анализе аудиозаписи — дивергенция Итакура‐Саито. В задачах моделирования текстов чаще всего используется обобщённая дивергенция Кульбака‐Лейблера. Почему? Почему какие‐то из функций оптимальные для своих классов задач? Часто функции потерь представляют собой замаскированные правдоподобия. То есть существуют такие плотности p(X), что минимизация функций потерь соответствует максимизации логарифма правдоподобия нашей модели. Норма Фробениуса соответствует аддитивной гауссовской модели. Дивергенция Кульбака‐Лейблера соответствует пуассоновской модели данных, то есть случаю, когда наша матрица x заполнена счётчиками. Дивергенция Итакура‐Саито соответствует мультипликативному гамма‐распределённому шуму, и поэтому хорошо подходит для задач анализа аудиозаписи. Дивергенция Кульбака‐Лейблера, пожалуй, на втором месте по популярности среди всех функционалов потерь и задач неотрицательного матричного разложения. Для неё можно точно так же, как мы сделали для нормы Фробениуса, записать блочно‐покоординатный спуск с мультипликативными обновлениями. И точно так же можно показать, что функция потерь будет монотонно не возрастать при таких обновлениях. Ещё один алгоритм, который решает эту же самую задачу минимизации дивергенции Кульбака‐Лейблера, но немного по‐другому, — это метод PLSA, вы о нём услышите очень скоро. Давайте теперь поговорим об инициализации. Инициализация в задачах неотрицательного матричного разложения играет очень большую роль, поскольку у функционала, который мы минимизируем, очень много локальных минимумов, и сходимость нашего метода именно локальная. В зависимости от того, насколько точно наше начальное приближение, мы получим решение разной степени удачности. Откуда же можно брать начальные приближения? Ну, во‐первых, их можно брать случайными. То есть, мы возьмём наши матрицы w и h и заполним их случайными неотрицательными числами. Можно сделать предварительную кластеризацию столбцов матрицы x каким‐нибудь грубым методом, типа K средних, на r кластеров, а затем инициализировать столбцы нашей матрицы w центроидами этих кластеров, а строки матрицы h инициализировать в соответствии с матрицей смежности. Можно здесь использовать какой‐то грубый и быстрый метод кластеризации. Кроме того, начальные приближения можно получать на основе сингулярного разложения. Вы делаете сингулярное разложение, затем выбираете r собственных троек, относящихся к наибольшим собственным числам, и затем из собственных векторов соответствующих конструируете ваши неотрицательные матрицы w и h. Это и есть начальное приближение. Очень эффективно на любом из полученных одним из этих способов в начальном приближении прогнать несколько итераций итеративных наименьших квадратов. Это улучшает качество приближения. Наконец, один из самых эффективных методов получения качественных начальных приближений — это мультистарт. Он сочетает в себе достоинства нескольких приведённых ранее методов. Вы генерируете 10–20 случайных пар матриц w и h. На каждой паре прогоняете по несколько итераций метода попеременных наименьших квадратов. Затем на каждой из полученных пар делаете 10–20 итераций вашего целевого метода, например метода с мультипликативными обновлениями или метода хаос — какой вам хочется дальше использовать. А затем среди полученных 10–20 пар отбрасываете все, кроме той, на которой значение функционала качества минимальное. Вот эта пара и будет вашим начальным приближением, которое вы дальше подадите на вход интересующему вас методу. В этом видео мы поговорили о том, как выбирать функции потерь в задачах неотрицательного матричного разложения, из чего их можно выбирать, и почему выбираются разные. А также обсудили способы инициализации матриц w и h при построении итерационного процесса.