Сегодня я узнал, что люди могут на глаз прикидывать ранг матрицы!
(напомню, ранг — это количество линейно независимых строк или столбцов)


image


Типа, вот смотрят на вот это и говорят, что ранг —


ну! ну!

3


Как же устоять и не попробовать обучить это делать нейросеть, подумали укурки cтуденты из Carnegie Mellon?


То есть, вот взять матрицу, перевести в такую картинку и дать на вход CNN, чтобы она предсказывала ранг или является ли матрица вырожденной.


image


Смотреть на болд. Вот оно, будущее оптимизации алгоритмов.


Статья здесь и в ней великолепны и слог, и поднимаемые вопросы, и список авторов, и вообще все.


Например, дальше они этот же подход применяют к умножению матриц и нахождению обратной:


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)


  1. gena_glot
    18.04.2016 11:29

    Ну не знаю, видимо на картинке люди закодировали ранг матрицы по количество разных цветов в строке, такое ощущение. То есть выбрать строки с максимумом различных элементов. Я почему-то глянул на столбцы и сказал что ранг 6 или 7

    Вопрос — как это добро кодировать. Видимо, одинаковые число надо кодировать одинаковым цветом. Причем близкие числа нужно кодировать цветом поближе.

    Проблем у существующего подхода два:
    1. Это быстрая оценка, но хорошая идея.
    2. Какова вычислительная сложность калибровки цветов? Такие дела, если маленькая то годидзе, если нет — то негодидзе, быстрее будет так ранг посчитать.

    В принципе задача найти ранг приблизительно хорошая, например для разложений матрицы на подматрицы. Крайне душеполезно и все такое но надо поподробнее написать, а то карнеги мелон марнеги мелон


    1. sim0nsays
      18.04.2016 12:17

      Они кодируют совершенно стандартными color maps, которые буквально один лукап на число. Выбрать строки с максимумом элементов разных цветов — имеет далекое отношение к рангу, или вы в смысле что у их генерации может быть такой артефакт?

      Практическое применение очень спорно, точность совсем не та. Но я в некотором смысле в шоке что оно вообще что-то находит.

      Про подробнее — я не очень понял, что подробнее-то расписать :)


      1. couatl
        19.04.2016 15:14

        была матрица с рангом 2: A =
        1 1 2
        2 1 2
        3 2 4

        Поменяли вторую 1 на 0.999 и ранк уже 3, а близость к цвету хорошая


        1. sim0nsays
          19.04.2016 21:14

          Все так, на такой матрице алгоритм ошибется. Однако если сгенерировать много матриц разных рангов, угадывает все равно сильно лучше рандома.


    1. EndUser
      18.04.2016 12:46

      Надо прикинуть максимальное количество непохожих (по колебанию тонов) строк (или столбцов).
      При этом соответствие чисел цветам не существенно и не требует калибровок.
      (Разве что можно подобрать цвета, которые максимально различается глазом по оттенкам)


  1. skiedr
    18.04.2016 15:07
    +3

    Судя по коментариям статью принимают всерьез!


    1. sim0nsays
      18.04.2016 16:26

      Почему нет — все результаты реальные :)


  1. Brotherofken
    18.04.2016 16:13
    +1

    Те, кому приходится по душе такой юмор, могут почитать proceedings ежегодной конференции SIGBOVIK. Доклад про ранги матриц как раз оттуда (сборник за 2015 годl).


    1. sim0nsays
      18.04.2016 18:57
      +1

      Запостите, что ли, какие-то особо адовые работы?


  1. Ockonal
    18.04.2016 16:36
    +4

    Идея для приложения: чтоб узнать, готовы ли пельмени, фоткаешь их и нейронная сеть основываясь на миллионе фоток готовых пельменей, отвечает


    1. sim0nsays
      18.04.2016 18:57

      Да! Больше нейросетей! Возможно, правда, придется по видео со звуком!