Я пытаюсь выяснить, могу ли я распараллелить учебный аспект алгоритма машинного обучения. Вычислительно затратная часть обучения включает разложение Холецкого положительно определенной матрицы (матрицы ковариаций). Я попытаюсь сформулировать вопрос исключительно с точки зрения матричной алгебры. Дайте мне знать, если вам нужна дополнительная информация.
Допустим, у нас есть блочная матрица (ковариационная матрица, но это не имеет отношения к проблеме)
M = A B B* C
где A и C относятся к обучающим данным из двух разных наборов. И А, и В положительно определенные. Предположим также для простоты, что A и C имеют размер nxn.
Существует формула проведения блочной разложения Холецкого. См. http://en.wikipedia.org/wiki/Block_LU_decomposition. Обобщая, имеем следующий результат.
M = LU
где (* указывает на транспонирование)
L = A^{1/2} 0 B*A^{-*/2} Q^{1/2}
где
Q = C - B*A^{-1}B
Теперь предположим, что обучение, связанное с матрицами A и C, уже выполнено, поэтому мы выполнили разложение Холецкого для A и C, дающее A^{1/2} и C^{1/2} (поэтому легко вычислить обратные значения A^{-1/2} и C^{-1/2} с использованием прямой замены).
Переписав Q в терминах этих величин, которые мы теперь имеем.
Q = Q^{1/2} Q^{*/2} = C^{1/2} C^{*/2} - B* A^{-*/2}A^{-1/2} B
Мой вопрос заключается в следующем: при такой настройке возможно ли алгебраически вычислить Q^{1/2} без применения разложения Холецкого к Q. Или, другими словами, могу ли я использовать C^{1/2}, чтобы помочь мне в расчет Q^{1/2}. Если бы это было возможно, то можно было бы легко распараллелить обучение.
Заранее спасибо за любые ответы. Извините за матричную верстку. Есть ли какой-нибудь разумный способ набирать математику или матрицы, в частности?
Мэтт.