google-research/morph-net

Fast & Simple Resource-Constrained Learning of Deep Network Structure

What it solves

MorphNet은 메모리, 레이턴시 또는 계산 비용(FLOPs)과 같은 특정 리소스 제약을 만족하도록 딥 뉴럴 네트워크를 축소하도록 설계되었습니다. 네트워크 아키텍처를 수동으로 재설계할 필요가 없습니다. 각 컨볼루션 레이어의 출력 채널 수를 조정함으로써 모델이 자체적으로 최적 구조를 학습하도록 합니다.

How it works

MorphNet은 연속 완화를 사용해 네트워크 구조 학습을 제약 최적화 문제로 취급합니다. 특정 리소스(FLOPs 또는 모델 크기 등)를 목표로 하는 정규화 항을 학습 손실에 추가합니다. 모델이 학습되는 동안 이 정규화 항은 특정 필터의 영향을 낮추고, 일정 임계값 이하가 되면 해당 채널을 제거 대상으로 표시합니다.

프로젝트는 여러 정규화 알고리즘을 제공합니다:

  • LogisticSigmoid (FiGS): 채널 정규화를 위한 확률적 접근 방식으로, 모델에 gating 레이어를 추가해야 합니다. 권장 방법입니다.
  • Gamma: BatchNorm 레이어가 있는 모델에 사용합니다.
  • GroupLasso: BatchNorm이 없는 모델에 사용합니다.

Who it’s for

기존 "시드 네트워크"를 보유하고 있으며, 레이턴시와 메모리가 중요한 리소스 제약 하드웨어에 배포하기 위해 최적화가 필요한 머신러닝 엔지니어 및 연구자를 위한 것입니다.

Highlights

  • Resource-Aware Optimization: FLOPs, 모델 크기 또는 하드웨어 특정 레이턴시를 목표로 최적화합니다.
  • Differentiable Architecture Search: 프루닝 알고리즘으로도, 전체 아키텍처 탐색 방법으로도 지원합니다.
  • Automated Structure Learning: 목표 비용에 따라 제거할 채널을 자동으로 결정합니다.
  • Structure Exporter: 학습된 아키텍처를 JSON 형식으로 저장하는 도구를 제공하여 최종 재학습에 활용할 수 있습니다.