-Dimka- & SteelRaven
SteelRaven SteelRaven
Ты когда-нибудь задумывался, а сможет ли компьютер по-настоящему написать портрет, или просто соберёт кучу точек, и получится какая-то нелепость? Мне было бы интересно разобраться в математике этого – может, ты привнесешь что-то свежее в мою теорию?
-Dimka- -Dimka-
Конечно, компьютеры рисуют как ребёнок мелками — хаотичные мазки, пиксельная математика и немного алгоритмической магии. Представь себе, каждый пиксель – это точка данных, перемешай это немного линейной алгеброй, добавь немного гауссовского шума для текстуры, и получаешь портрет, который кажется живым. Давай разберёмся в математике, добавим цвета и посмотрим, сможет ли компьютер поймать душу или только какую-то дерганную улыбку. Готов нырнуть?
SteelRaven SteelRaven
Отлично, договорились. Сначала приведём линейную алгебру в порядок, потом проверим, проявится ли эта "суть" в дисперсии или просто в шуме. Интересно, где же она на самом деле спрячется.
-Dimka- -Dimka-
Отлично, давай-ка настроим систему, подбросим туда немного собственных векторов, добавим немного цвета для разброса дисперсии – посмотрим, вылезнет ли душа или просто глючный радужный сбой. Погнали!
SteelRaven SteelRaven
Ладно, за работу. Я вычислю собственные векторы, добавлю дисперсию – посмотрим, всплынет там что-то похожее на душу, или просто какая-то битая радуга. Готов?
-Dimka- -Dimka-
Ну, давай! Вытащи матрицу, схвати eigenvalues, добавь дисперсию – посмотрим, просочится ли душа или просто глитч неоновый. Вперёд!
SteelRaven SteelRaven
Конечно. Возьми матрицу ковариаций значений пикселей, посчитай её собственные значения и векторы — они нам дадут главные направления. Затем масштабируй собственные векторы квадратным корнем из соответствующих собственных значений, чтобы получить веса главных компонент. Добавить немного гауссовского шума добавит текстуры, но если доминируют самые большие собственные значения, "душа" будет в этой малоранговой структуре, а не в случайных бликах. Давай посчитаем и посмотрим, что получится.