В своей работе исследователи обнаружили, что в больших нейросетях есть так называемые «подсети» — небольшие части общей сети, ответственные за финальный результат работы. Сейчас для их появления требуется очень много ресурсов и времени, которые тратят на тренировку сетей. Но ученые предполагают, что правильную «подсеть» можно создать с самого начала, минуя долгий период построения большой нейросети.
«В традиционной работе с нейросетями строится рандомная структура, и после тренировки на огромном количестве данных, она волшебным образом начинает работать», говорит профессор Майкл Карбин. «Это как покупать мешок лотерейных билетов, хотя чтобы разбогатеть надо купить лишь пару нужных. Теперь дело за малым — понять как находить выигрышные билеты не зная, какой номер выпадет в лотерее».
Пока способ не найден, исследователи строят огромные нейросети и тренируют их классическим способом. Затем они начинают «отрезать» связи с самыми низкими весами, пока нейросеть не будет способна работать на смартфонах и слабых машинах. После этого они сбрасывают веса на всех связях до состояния, которое было перед началом обучения и начинают тренировать ту же самую сеть еще раз — но уже в урезанном виде. И она показывает аналогичные результаты.
Гипотеза ученых состоит в том, что большинство связей в нейросети просто не нужны для ее работы. Они отрезают низковесные связи до тех пор, пока сеть не теряет способность к обучению. Чтобы подтвердить гипотезу, ученые повторяют процесс десятки тысяч раз на большом количестве сетей при различных условиях.
Опираясь на свое исследование они утверждают, что современные способы обучения нейросетей далеки от оптимального, и есть огромное пространство для совершенствования. Чтобы оно стало возможным, ученые будут пытаться понять, как именно обучаются «подсети» и как их быстрее находить.
Но для этого потребуется много ресурсов и годы работы. Тем не менее, сообщество считает работу перспективной. На международной конференции ICLR в Новом Орлеане проект был признан одним из лучших среди 1600 заявок.
Комментарии (22)
kraidiky
07.05.2019 15:18Удалено
raamid
07.05.2019 21:59И что эта нейросеть делает?
kraidiky
07.05.2019 22:42В статье описанно. Решает синтетическую задачу запоминания сложного рельефа опираясь на всего две входные переменные. Чтобы сделать то же самое с той же точностью обычной полносвязанной сетью потрбовалось бы в разы большее количество нейронов и синапсов.
Cryvage
08.05.2019 02:31+1Теперь дело за малым — понять как находить выигрышные билеты не зная, какой номер выпадет в лотерее.
Я всю жизнь над этим бьюсь. Пока безрезультатно.
osmanpasha
08.05.2019 06:49А почему, собственно, для поиска этой подсети нужны феерические ресурсы? Если мы можем натренировать полную сеть, то останется только выкинуть низковесные связи и натренировать сеть размером в 10 раз меньше оригинальной. То, что останется, будет в 10 раз быстрее работать на смартфоне, профит.
osmanpasha
08.05.2019 06:53Я к тому, что даже если задача поиска подсети без обучения полной сети ещё не решена, то этот метод сокращения существующей сети можно применить ко всем используемым сетям и получить профит. Или нет?
hippohood
08.05.2019 15:39Насколько мне известно, так и происходит — смартфон использует уже обученные и прореженные сети. Новость в том что, видимо, можно обучать сеть на порядок меньшего размера
samhuawey
08.05.2019 08:18Почему бы не поступить обратным способом — начать с одного нейрона и добавлять связи пока удаётся улучшить результат на контрольной выборке. Как только улучшения становятся ниже некоторого критерия, прекратить добавления.
kraidiky
08.05.2019 08:47+1Там операционной единицей является не нейрон, а синапс, у вас может быть, например слой всего с 3 нейронами, и какому-нибудь одному из них достаточно трёх синапсов и не понять как решать сколько синапсов данному конкретному новому нейрону нужно.
superstarstas306
08.05.2019 09:50+1Не наезжаю, но какое-то слабоватое предположение для исследователей из MIT, когда к такому выводу приходит кто угодно, прочитавший статью типа «Как работают нейросети» или прослушавший первый урок любого курса по нейронкам. «А неплохо было бы не полурандомно подбирать веса, а сразу их задавать идеально».
Эти потуги ведь давно уже не новость — из этой идеи как раз и вытекли всякие фишечки типа knowledge distillation и bottleneck features.
storm_r1der
Очень странный перевод, или сама новость: учёные обнаружили, что если удалить из нейронной сети все ненужное — она будет работать, как и работала, хм...
kraidiky
Вы не поняли главный посыл. Если удалить из архитектуры сети все ненужное, после этого сбросить веса и научить снова с нуля, то сеть будет столь же эффективна. Хотя с нуля училась будучи малюсенькой.
На самом деле оценка про «в 10 раз» ещё очень консервативная. Было исследование, где показывали сжатие сети в 100 раз без заметной потери результата.
GokenTanmay
Вот насчет «повторно натренировать» обрезанную NN до того же уровня точности предсказаний — готов поставить под сомнения.
Эффективность тренировки NN с заведомо большим числом связей, чем требуется, обусловлена тем, что в момент тренировки «ненужные» связи позволяют «проходить/проскакивать/выходить из» локальных максимумов и минимумов.
Когда сеть натренированна — разумеется ее можно очень сильно оптимизировать.
Daemonis
«Вот насчет «повторно натренировать» обрезанную NN до того же уровня точности предсказаний — готов поставить под сомнения.»
Именно такой результат продемонстрирован в их работе.
kraidiky
Тут нужно внимательно смотреть оригинал. Как правильно заметил комментатор выше, дополнительные синапсы облегчают прохождение мелкоямчатого рельефа в котором много маленьких локальных минимумов. Соответственно нужно смотреть какие задачи они использовали, в одних задачах такая «стиральная доска» естествнным образом возникает, в других функция потерь относительно равномернеькая. Второй важный момент — какой они алгоритм используовали для обучения. Потому что Стохастический спуск или обучение небольшими батчами, например по 5-10% от учебной выборки и меньше, уже сами по себе имеют мощные механизмы проскакивания микрорельефа.
Если бы они обнаружили такой результат на задаче с сильно пересечённым рельефом и при обучении батчами по четверь выборки например, и получили такой результат я бы ему очень сильно удивился.
Daemonis
«Тут нужно внимательно смотреть оригинал»
Кто ж вам не дает? :) openreview.net/pdf?id=rJl-b3RcF7
ustin
Новость в другом. Ненужное не только не влияет на результат работы обученной сети(это очевидно), но и не влияет на процесс обучения(совсем не очевидно).
Хотят научиться искать ненужное до обучения и сразу его выкидывать, упрощая весь процесс.
kraidiky
Ну на самом деле, из моих исследований исходя, они в первом обучении, до регуляризации и резни — определяют оптимальную архитектуру слоёв и количества синапсов под задачу. А на втором проходе убеждаются, что именно такая архитектура минимально достаточна. О полной независимости результата от, например, стартовой точки обучения, речь, я надеюсь, не идёт. Это не только не очевидно, но и является некоторым преувеличением.
Сдаётся мне, они хотят повторить мой результат 4 летней давности.
habr.com/ru/post/249031 Использованная мной в этой статье разряженная нейросеть содержала всего 36 нейронов примерно в десятке слоёв. Только они задачу для себя неправильно сформулировали. Нужно не до начала обучения это определять, а на самом первом этапе обучения. Но если они будут сасредоточенно искать решение именно этой задачи, то то или иное решение, я полагаю, найдут.
mat300
А не повод ли это исследование эмайтишников, чтобы вернуться к утверждению гугловцев, что нейронки это голография. Стоит нам, как и в оптической голографии убрать часть информации, и… почти ничего в итоговой картинке не поменяется, кроме резкости, что есть суть точность результата нейронки.
kraidiky
Нет, не голография.
В своей статье habr.com/ru/post/249031 я чётко показал, что в сети можно выделить структурные элементы хранения отдельных признаков, и они очень ограничены, остальная сеть практически не влияет. Вот только этими структурными единицами оказались не нейроны, как казалось исходя из теории «нейрона бабушки», а группы синапсов.
daylightcat
Скорее так: «Если заранее удалить из нейронной сети связи, которые все равно ничему не обучатся, результат последующего обучения будет аналогичным полной сети», а меньшее количество связей -> меньшие вычислительные мощности для обучения.