Исследователи Массачусетского Технологического Института (MIT) предположили, что современные нейросети можно уменьшить до десяти раз, не потеряв в точности предсказаний. Скорость и легкость обучения таких сетей также может быть значительно выше. При этом тренировать и обеспечивать данными их смогут даже программисты-одиночки, а не только технологические гиганты с GPU-серверами и огромными датасетами.

В своей работе исследователи обнаружили, что в больших нейросетях есть так называемые «подсети» — небольшие части общей сети, ответственные за финальный результат работы. Сейчас для их появления требуется очень много ресурсов и времени, которые тратят на тренировку сетей. Но ученые предполагают, что правильную «подсеть» можно создать с самого начала, минуя долгий период построения большой нейросети.

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

Пока способ не найден, исследователи строят огромные нейросети и тренируют их классическим способом. Затем они начинают «отрезать» связи с самыми низкими весами, пока нейросеть не будет способна работать на смартфонах и слабых машинах. После этого они сбрасывают веса на всех связях до состояния, которое было перед началом обучения и начинают тренировать ту же самую сеть еще раз — но уже в урезанном виде. И она показывает аналогичные результаты.

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

Опираясь на свое исследование они утверждают, что современные способы обучения нейросетей далеки от оптимального, и есть огромное пространство для совершенствования. Чтобы оно стало возможным, ученые будут пытаться понять, как именно обучаются «подсети» и как их быстрее находить.

Но для этого потребуется много ресурсов и годы работы. Тем не менее, сообщество считает работу перспективной. На международной конференции ICLR в Новом Орлеане проект был признан одним из лучших среди 1600 заявок.

Комментарии (22)


  1. storm_r1der
    07.05.2019 14:50
    +1

    Очень странный перевод, или сама новость: учёные обнаружили, что если удалить из нейронной сети все ненужное — она будет работать, как и работала, хм...


    1. kraidiky
      07.05.2019 15:15
      +2

      Вы не поняли главный посыл. Если удалить из архитектуры сети все ненужное, после этого сбросить веса и научить снова с нуля, то сеть будет столь же эффективна. Хотя с нуля училась будучи малюсенькой.

      На самом деле оценка про «в 10 раз» ещё очень консервативная. Было исследование, где показывали сжатие сети в 100 раз без заметной потери результата.


      1. GokenTanmay
        07.05.2019 15:39

        Вот насчет «повторно натренировать» обрезанную NN до того же уровня точности предсказаний — готов поставить под сомнения.
        Эффективность тренировки NN с заведомо большим числом связей, чем требуется, обусловлена тем, что в момент тренировки «ненужные» связи позволяют «проходить/проскакивать/выходить из» локальных максимумов и минимумов.
        Когда сеть натренированна — разумеется ее можно очень сильно оптимизировать.


        1. Daemonis
          07.05.2019 15:48

          «Вот насчет «повторно натренировать» обрезанную NN до того же уровня точности предсказаний — готов поставить под сомнения.»
          Именно такой результат продемонстрирован в их работе.


          1. kraidiky
            07.05.2019 16:05

            Тут нужно внимательно смотреть оригинал. Как правильно заметил комментатор выше, дополнительные синапсы облегчают прохождение мелкоямчатого рельефа в котором много маленьких локальных минимумов. Соответственно нужно смотреть какие задачи они использовали, в одних задачах такая «стиральная доска» естествнным образом возникает, в других функция потерь относительно равномернеькая. Второй важный момент — какой они алгоритм используовали для обучения. Потому что Стохастический спуск или обучение небольшими батчами, например по 5-10% от учебной выборки и меньше, уже сами по себе имеют мощные механизмы проскакивания микрорельефа.

            Если бы они обнаружили такой результат на задаче с сильно пересечённым рельефом и при обучении батчами по четверь выборки например, и получили такой результат я бы ему очень сильно удивился.


            1. Daemonis
              07.05.2019 16:07

              «Тут нужно внимательно смотреть оригинал»
              Кто ж вам не дает? :) openreview.net/pdf?id=rJl-b3RcF7


    1. ustin
      07.05.2019 15:16
      +1

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

      Хотят научиться искать ненужное до обучения и сразу его выкидывать, упрощая весь процесс.


      1. kraidiky
        07.05.2019 15:26

        Ну на самом деле, из моих исследований исходя, они в первом обучении, до регуляризации и резни — определяют оптимальную архитектуру слоёв и количества синапсов под задачу. А на втором проходе убеждаются, что именно такая архитектура минимально достаточна. О полной независимости результата от, например, стартовой точки обучения, речь, я надеюсь, не идёт. Это не только не очевидно, но и является некоторым преувеличением.

        Сдаётся мне, они хотят повторить мой результат 4 летней давности.
        habr.com/ru/post/249031 Использованная мной в этой статье разряженная нейросеть содержала всего 36 нейронов примерно в десятке слоёв. Только они задачу для себя неправильно сформулировали. Нужно не до начала обучения это определять, а на самом первом этапе обучения. Но если они будут сасредоточенно искать решение именно этой задачи, то то или иное решение, я полагаю, найдут.


        1. mat300
          07.05.2019 22:45

          А не повод ли это исследование эмайтишников, чтобы вернуться к утверждению гугловцев, что нейронки это голография. Стоит нам, как и в оптической голографии убрать часть информации, и… почти ничего в итоговой картинке не поменяется, кроме резкости, что есть суть точность результата нейронки.


          1. kraidiky
            08.05.2019 01:37

            Нет, не голография.
            В своей статье habr.com/ru/post/249031 я чётко показал, что в сети можно выделить структурные элементы хранения отдельных признаков, и они очень ограничены, остальная сеть практически не влияет. Вот только этими структурными единицами оказались не нейроны, как казалось исходя из теории «нейрона бабушки», а группы синапсов.


    1. daylightcat
      07.05.2019 15:44

      Скорее так: «Если заранее удалить из нейронной сети связи, которые все равно ничему не обучатся, результат последующего обучения будет аналогичным полной сети», а меньшее количество связей -> меньшие вычислительные мощности для обучения.


  1. kraidiky
    07.05.2019 15:18

    Удалено


    1. raamid
      07.05.2019 21:59

      И что эта нейросеть делает?


      1. kraidiky
        07.05.2019 22:42

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


  1. RobertLis
    08.05.2019 00:45

    Дистилляция нейросетей давно не новость, вроде бы?


  1. Cryvage
    08.05.2019 02:31
    +1

    Теперь дело за малым — понять как находить выигрышные билеты не зная, какой номер выпадет в лотерее.

    Я всю жизнь над этим бьюсь. Пока безрезультатно.


  1. osmanpasha
    08.05.2019 06:49

    А почему, собственно, для поиска этой подсети нужны феерические ресурсы? Если мы можем натренировать полную сеть, то останется только выкинуть низковесные связи и натренировать сеть размером в 10 раз меньше оригинальной. То, что останется, будет в 10 раз быстрее работать на смартфоне, профит.


    1. osmanpasha
      08.05.2019 06:53

      Я к тому, что даже если задача поиска подсети без обучения полной сети ещё не решена, то этот метод сокращения существующей сети можно применить ко всем используемым сетям и получить профит. Или нет?


      1. hippohood
        08.05.2019 15:39

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


  1. samhuawey
    08.05.2019 08:18

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


    1. kraidiky
      08.05.2019 08:47
      +1

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


  1. superstarstas306
    08.05.2019 09:50
    +1

    Не наезжаю, но какое-то слабоватое предположение для исследователей из MIT, когда к такому выводу приходит кто угодно, прочитавший статью типа «Как работают нейросети» или прослушавший первый урок любого курса по нейронкам. «А неплохо было бы не полурандомно подбирать веса, а сразу их задавать идеально».
    Эти потуги ведь давно уже не новость — из этой идеи как раз и вытекли всякие фишечки типа knowledge distillation и bottleneck features.