Добрый день.
Пытаюсь написать метод предсказания концентрации смеси веществ по их спектрам. В основе метода лежит
алгоритм PLS2 (стр. 10-11).
PLS2 позволяет по матрице спектров предсказать концентрации сразу для нескольких веществ. В моём методе используются дополнительные параметры (регрессионные коэффициенты), значения которых требуется искать методом градиентного спуска. Возникла сложность с составлением якобиана.
Для функций с одним результатом я выполняю численное дифференцирование исходя из определения частного дифференциала. Ищу вектор результата при некоторых исходных значениях коэффициентов. Для каждого коэффициента нахожу приращение, нахожу новые вектора результатов с учетом приращения. В соответствующий столбец якобиана подставляю разность векторов, деленный на приращение. Как-то так.
В моём случае результатом для матрицы спектров является не вектор расчетных концентраций, а матрица концентраций. По аналогии с численным дифференцированием для вектора концентраций точно так же можно найти разность матриц и каждый элемент полученной матрицы поделить на приращение соответствующего параметра. Но в якобиан мне нужно подставить столбец, а не матрицу, т.е. её нужно свести к столбцу. Дальше у меня начинается каша в голове. В голове крутится преобразовать каждую строку разностной матрицы в сумму квадратов. Но тогда теряется знак, который важен для направления сходимости. Требования к ошибке определения концентрации для всех веществ примерно одинаковые. Может быть вычислять стандартное отклонение по элементам строки? У стандартного отклонения тоже нет знака.
Пока писал, ещё одна идея в голову пришла. При численном диффиренцировании из каждой расчетной матрицы вычитать матрицу-константу аттестованных значений. Тогда функция будет давать матрицу отклонений. Её можно преобразовать к вектору стандартных отклонений, который и требуется минимизировать. Я прав?