Сегодня я узнал, что люди могут на глаз прикидывать ранг матрицы!
(напомню, ранг — это количество линейно независимых строк или столбцов)
Типа, вот смотрят на вот это и говорят, что ранг —
3
Как же устоять и не попробовать обучить это делать нейросеть, подумали укурки cтуденты из Carnegie Mellon?
То есть, вот взять матрицу, перевести в такую картинку и дать на вход CNN, чтобы она предсказывала ранг или является ли матрица вырожденной.
Смотреть на болд. Вот оно, будущее оптимизации алгоритмов.
Статья здесь и в ней великолепны и слог, и поднимаемые вопросы, и список авторов, и вообще все.
Например, дальше они этот же подход применяют к умножению матриц и нахождению обратной:
We then use this data to train the network with
stochastic gradient descent on a mean square error
(MSE) loss for 100 epochs. Some qualitative predictions
on unseen data are shown in Figures 7 and 8.
We found the multiplication task to be easily solved
by our network architecture, but the inversion task
proved much more challenging, as shown by the
higher MSE values. We note that this is analogous to
humans taking Linear Algebra 101.
Ржу нимагу.
На сладкое — слайды.
Комментарии (11)
Brotherofken
18.04.2016 16:13+1Те, кому приходится по душе такой юмор, могут почитать proceedings ежегодной конференции SIGBOVIK. Доклад про ранги матриц как раз оттуда (сборник за 2015 годl).
gena_glot
Ну не знаю, видимо на картинке люди закодировали ранг матрицы по количество разных цветов в строке, такое ощущение. То есть выбрать строки с максимумом различных элементов. Я почему-то глянул на столбцы и сказал что ранг 6 или 7
Вопрос — как это добро кодировать. Видимо, одинаковые число надо кодировать одинаковым цветом. Причем близкие числа нужно кодировать цветом поближе.
Проблем у существующего подхода два:
1. Это быстрая оценка, но хорошая идея.
2. Какова вычислительная сложность калибровки цветов? Такие дела, если маленькая то годидзе, если нет — то негодидзе, быстрее будет так ранг посчитать.
В принципе задача найти ранг приблизительно хорошая, например для разложений матрицы на подматрицы. Крайне душеполезно и все такое но надо поподробнее написать, а то карнеги мелон марнеги мелон
sim0nsays
Они кодируют совершенно стандартными color maps, которые буквально один лукап на число. Выбрать строки с максимумом элементов разных цветов — имеет далекое отношение к рангу, или вы в смысле что у их генерации может быть такой артефакт?
Практическое применение очень спорно, точность совсем не та. Но я в некотором смысле в шоке что оно вообще что-то находит.
Про подробнее — я не очень понял, что подробнее-то расписать :)
couatl
была матрица с рангом 2: A =
1 1 2
2 1 2
3 2 4
Поменяли вторую 1 на 0.999 и ранк уже 3, а близость к цвету хорошая
sim0nsays
Все так, на такой матрице алгоритм ошибется. Однако если сгенерировать много матриц разных рангов, угадывает все равно сильно лучше рандома.
EndUser
Надо прикинуть максимальное количество непохожих (по колебанию тонов) строк (или столбцов).
При этом соответствие чисел цветам не существенно и не требует калибровок.
(Разве что можно подобрать цвета, которые максимально различается глазом по оттенкам)