Structured pruning
Зачем это важно? Большинство процессоров умеют быстро считать плотные матрицы. Если просто обнулить веса, сеть становится разреженной, но ускорения не будет — все слои всё равно работают. Структурная обрезка уменьшает число каналов и слоёв, поэтому объём вычислений и памяти сокращается напрямую. Это критично для смартфонов, дронов и «умных» камер, где энергия ограничена.
Интуитивно это похоже на уход за кустом: можно отрезать листья по одному, а можно убрать целые ветви. В нейросети ветви — это группы нейронов, отвечающие за похожие признаки. После обучения многие из них дублируют друг друга. Обрезка находит избыточные блоки и удаляет их, сохраняя суть модели.
Пример. У свёрточной сети для распознавания дорожных знаков на первом слое сто фильтров, каждый ищет свой узор. Тридцать из них почти не влияют на точность. Удаляем их целиком — сеть становится на четверть уже. На видеокарте она работает на 40% быстрее, а точность падает с 98,2% до 97,8% — это допустимо.
Вывод: структурная обрезка — это компромисс между компактностью и качеством. Она не заменяет обучение с нуля, но позволяет запускать уже готовые модели на ограниченном железе. ИИ становится быстрее, дешевле и доступнее — а это именно то, что нужно для повседневных устройств.
Поделиться