# Once-for-All Channel Mixers (HyperTinyPW): Generative Compression for TinyML > [!info] Talk metadata > - **会議:** [[MLSys2026]] Day 3 (May 20 / Wed)、Grand Ballroom 2、17:30 - 17:45 PDT > - **セッション名:** Research Track Oral: Model Compression > - **登壇者:** Yassien Shaalan, PhD(Independent Researcher、[email protected]) > - **URL:** https://mlsys.org/virtual/2026/oral/3818 > - **OpenReview:** https://openreview.net/forum?id=NrDa5Fu10D > - **コード:** https://github.com/yassienshaalan/tinyml-gen(オープンソース) > [!abstract] 概要 > マイクロコントローラ(MCU)上のニューラルネットワークはキロバイト単位のフラッシュ/SRAM に制約され、INT8 量子化後でも 1x1 ポイントワイズ(PW)ミキサがメモリの大部分を占める。本研究は **compression-as-generation** アプローチ HyperTinyPW を提案する。共有マイクロ MLP がレイヤごとの小さなコードからポイントワイズカーネルをロード時に一度だけ合成し、キャッシュした後は標準の INT8 整数演算で推論を実行する。MCU ランタイムをそのまま維持し、合成は一回限りのコストである。層間で潜在基底を共有することで層間冗長性を排除し、形態学的に敏感な最初の PW(PW1)を INT8 のまま保持する。TinyML 忠実な packed-byte 計量(ジェネレータ、ヘッド/分解行列、コード、保持 PW1、バックボーン)と、ブートストラップ CI による統一評価プロトコルを導入する。3 つの ECG ベンチマーク(Apnea-ECG、PTB-XL、MIT-BIH)において、約 225 kB で 1.4 MB の CNN に対し 6.31 倍のフラッシュ圧縮(84.15% 削減)を達成し、大規模モデルの macro-F1 の 95% 以上を保持する。さらに Speech Commands キーワード検出で 96.2% のテスト精度を達成し、ECG 以外への汎化を示す。 ## 問題設定: PW ミキサが MCU のボトルネックである - MCU(Arm Cortex-M4 クラス)は約 256 kB のフラッシュと約 64 kB の SRAM しか持たず、DSP 拡張も限定的である。 - 分離可能 1D CNN では、デプスワイズ(DW)畳み込みが MAC 演算を担い、1x1 ポイントワイズ(PW)畳み込みがパラメータの大半を集中させる。INT8 量子化後でも複数の PW 層は合計フラッシュを 64 kB 超に押し上げることが多い。したがって MCU 配備の制約要因はデプスワイズ層ではなく PW ミキサである。 - 古典的圧縮手法(量子化、枝刈り、低ランク分解、構造化変換)はパラメータを縮小するが、**各 PW 層に完全なパラメタリゼーションを保持**する。層間冗長性は未活用のままであり、TinyML スケールではレイヤごとのメタデータが蓄積する。 - 動的重み生成手法(HyperNetworks、動的フィルタネットワーク、CondConv)は入力ごとにカーネルを生成・混合するため、分岐、SRAM スパイク、レイテンシジッタが生じ、リアルタイム MCU ワークロードと相容れない。 ## 核心アイデア: compression-as-generation HyperTinyPW は「格納された重みを**生成された重み**に置き換える」手法である。3 つの構成要素からなる。 1. **小さなレイヤコード** $z_l \in \mathbb{R}^{d_z}$(4〜6 次元)を各 PW 層に割り当て、完全な $C_\mathrm{out} \times C_\mathrm{in}$ の重み行列の代わりに保存する。 2. **共有ジェネレータ** $g_\phi$(マイクロ MLP)がコードを隠れ表現 $h_l \in \mathbb{R}^{d_h}$ にマッピングし、レイヤごとのヘッド $H_l$(または分解形式 $A_l B$)がフルカーネルに射影する。 3. **キャッシュと INT8 推論**: 合成された重みはロード時に一度だけ生成されキャッシュされる。定常状態の推論は標準整数カーネル(CMSIS-NN / TFLM 互換の 1x1 conv / GEMV パス)のみを使用し、カスタムオペレータは不要である。 ### ハイブリッド設計: PW1 を保持する理由 初期のチャネルミキシングは形態学的に敏感である(ECG では P 波、QRS 群などの波形レベル特徴量を捕捉する)。PW1 を INT8 の格納層として保持し、PW2 以降のみを合成する。これにより勾配が安定し、波形レベルの表現力が維持される。 ## アーキテクチャの数理(式 1〜3) ### 式 1: 埋め込み生成 $h_l = g_\phi(z_l)$ 共有ジェネレータがコード $z_l \in \mathbb{R}^{d_z}$ を隠れベクトル $h_l \in \mathbb{R}^{d_h}$ にマッピングする。ここで層間共有により共通の潜在基底を学習し、暗黙的なマルチタスク正則化として機能する。 ### 式 2: カーネル射影 $\hat{w}_l = H_l h_l, \quad \hat{W}_l = \mathrm{reshape}(\hat{w}_l,\; C_\mathrm{out}^{(l)},\; C_\mathrm{in}^{(l)})$ レイヤごとのヘッド $H_l$ が埋め込みを平坦化カーネルベクトルに射影し、PW 行列に成形する。 ### 式 3: ヘッドの分解(任意) $H_l = A_l B, \quad A_l \in \mathbb{R}^{(C_\mathrm{out}^{(l)} C_\mathrm{in}^{(l)}) \times r}, \quad B \in \mathbb{R}^{r \times d_h}, \quad r \ll d_h$ $B$ は全層で共有され、各層は軽量アダプタ $A_l$ のみを保存する。容量の大部分は共有行列 $B$ に集中する。 ## Packed-byte 計量(式 4, 6) ### 式 4: テンソルごとのフットプリント $\lceil N_\tau \cdot b_\tau / 8 \rceil \quad \text{bytes}$ $N_\tau$ は要素数、$b_\tau$ はビット幅。 ### 式 6: 総フラッシュ $\mathrm{flash\_total} = |\phi| + \left(\sum_l |H_l| \text{ or } \sum_l |A_l| + |B|\right) + \sum_l |z_l| + |\mathrm{PW1}| + |\mathrm{stem, DW, head}|$ $(d_z, d_h, r) \ll C_\mathrm{out}^{(l)} C_\mathrm{in}^{(l)}$ であるため、packed byte は大幅に縮小する一方、推論コストはベースラインと一致する。ジェネレータ $\phi$、ヘッド/分解行列、コード $z_l$ は 4/6/8 ビットで量子化し、PW1・バックボーン(ステム、DW)・分類ヘッドは INT8 のまま保持する。 ## 訓練: 7 項複合損失(式 5) $\mathcal{L} = \mathrm{CE}(y, \hat{y}) + \lambda_\mathrm{foc}\,\mathrm{Focal}_\gamma(y, \hat{y}) + \lambda_\mathrm{KD}\,\mathrm{KL}(\sigma(\hat{y}/T) \| \sigma(\hat{y}^\mathrm{teach}/T)) + \lambda_\mathrm{feat}\|\hat{f} - \hat{f}^\mathrm{teach}\|_2^2 + \lambda_\mathrm{softF1}\,\mathcal{L}_\mathrm{softF1}(\hat{y}, y) + \lambda_\mathrm{spec}\,\mathcal{R}_\mathrm{spec}(\theta) + \lambda_\mathrm{size}\|\theta_\mathrm{heads,codes}\|_1$ 各項の役割: | 項 | 機能 | |---|---| | CE | 基本分類シグナル | | Focal | 困難・少数クラスの重み付け(MIT-BIH の陽性率 7% への対処に重要) | | KL 蒸留 | RegularCNN 教師からの知識転移($\alpha=0.7$, $T=2$) | | 特徴マッチング | 中間表現の教師との整合 | | Soft-F1 | 評価指標を直接最適化(CE の最適解と F1 の最適解が乖離する場合に重要) | | スペクトル正則化 | ジェネレータのダイナミクスを安定化し、層間の平滑性を制約 | | L1 サイズペナルティ | コードとヘッドをコンパクトに押し込み、フラッシュ使用量を削減 | 訓練には AdamW を使用し、小バッチ安定性のため BatchNorm を GroupNorm(1) に置換する。NaN 安全初期化、勾配クリッピング、重みの EMA を適用する。量子化はポストトレーニングパッキング(8 または 6 ビット、QAT なし)で実施する。 ## 評価プロトコル(Figure 2) 1. 検証ロジットにシグモイドを適用し、1D メディアンフィルタ($k=5$)で平滑化する。 2. 閾値 $t \in [0.05, 0.95]$ を均一グリッド(19 点)で掃引し、macro-F1 を最大化する $t^\star$ を選択する。 3. テストでは RAW(非 EMA)チェックポイントを $t^\star$ で評価する。EMA は独立アブレーションとして別途報告する。 4. 全指標(精度、バランス精度、macro-F1、ROC-AUC)に 95% クラスタブートストラップ CI(レコード/患者単位、1,000 リサンプル)を付与する。 ## MCU 配備: ブート合成と遅延合成(Algorithm 1) 合成はレイヤごとに一度だけ実行され、以降は再利用される。2 つのスケジュールが存在する。 - **ブート合成**: 起動時に PW2 から PW_L まで全てを生成する。初回推論からストールなし。常時通電センサ(連続 ECG モニタリングなど)に適する。 - **遅延合成**: 各 PW_l を初回使用時に生成する。高速起動、レイヤごとに一回限りのストール。イベント駆動デバイスに適する。 いずれのスケジュールでも定常状態レイテンシは同一である。推論はキャッシュされた INT8 カーネルのみで動作し、$g_\phi$ は入力ごとには呼び出されない。 ### システム保証 - 合成された PW テンソルは標準 1x1 conv / GEMV パスにそのまま配置され、CMSIS-NN / TFLM と互換する。グラフ書き換えや入力ごとの制御フローは導入されない。 - ピーク SRAM は最大 PW アクティベーションとワークスペースの max で決定される。書き込み可能フラッシュが利用可能であれば、合成重みをフラッシュへストリーミングして SRAM ピークを抑制できる。 - 合成はインストール時に一度だけ実行し電力サイクル間でキャッシュ可能であり、OTA 更新ペイロードの削減にも寄与する。 ## データセットと前処理 ### ECG ベンチマーク(3 種) | データセット | 特徴 | 分割 | |---|---|---| | Apnea-ECG | 睡眠時無呼吸スクリーニング。18 秒ウィンドウ、100 Hz。訓練はほぼ均衡だが検証/テストは陽性 62〜66% に偏移 | レコード単位 80/10/10 | | PTB-XL | 21,837 件の臨床 12 誘導 ECG(18,885 患者)。Lead II、100 Hz。NORM vs. 診断上位クラスの二値化。スケール・ノイズの多様性が汎化の試金石 | フォールド 8/1/1 | | MIT-BIH | 47 被験者の不整脈。AAMI 二値分類。陽性率わずか 7% で極端な不均衡 | 患者単位分割 | 全 ECG タスクでレコード/患者単位分割を使用し、アイデンティティリーケージを回避する。 ### 音声ベンチマーク - **Speech Commands** v0.02: 16 kHz、1 秒発話、105,829 件、35 語彙。12 クラス構成(10 キーワード + unknown + silence)。MFCC 特徴量(40 係数 x 101 フレーム)。公式分割を使用する。 ## モデルスイートとベースライン 7 モデルを 0.5 kB〜1,422 kB の範囲で比較する。同一訓練プロトコル・同一評価手順を適用する。 | モデル | フラッシュ | 設計点 | |---|---|---| | **HyperTinyPW(提案手法)** | 約 225 kB | コード + 共有ジェネレータからの PW 合成。PW1 保持 INT8 | | RegularCNN(教師) | 約 1,422 kB | フルキャパシティ 1D CNN。精度の上界であり KD 教師 | | ResNet1D Small | 約 62 kB | スキップ接続付き残差 1D CNN | | TinySeparableCNN | 約 14 kB | 標準 DW+PW MobileNet 型。バイト効率は高いが早期に飽和 | | TinyVAE-Head | 約 10 kB | DW/PW エンコーダ + VAE 潜在 + 分類器。潜在圧縮 vs. 重み合成の対比 | | HRVFeatNet | 約 0.5 kB | 16 次元 HRV 特徴量 + 線形分類器。古典的下界 | ## 主要結果 ### 256 kB 以下のフラッシュ制約下でのベスト(Table 1、スライド Headline Results) | データセット | Macro-F1 | 精度 | バランス精度 | AUC | フラッシュ (kB) | |---|---|---|---|---|---| | Apnea-ECG | 0.7172 (71.7%) | 0.7391 (73.9%) | 0.7164 (71.6%) | 0.8324 (83.2%) | 225.46 | | PTB-XL | 0.6291 (62.9%) | 0.6310 (63.1%) | 0.6327 (63.3%) | 0.8760 (87.6%) | 225.46 | | MIT-BIH | 0.5673 (56.7%) | 0.9016 (90.2%) | 0.562 (56.2%) | 0.962 (96.2%) | 225.27 | ### RegularCNN(1.4 MB)に対する圧縮(Table 2、スライド Compression vs. RegularCNN) | モデル | フラッシュ (kB) | 圧縮率 | フラッシュ削減 (%) | Apnea F1 保持 (%) | PTB F1 保持 (%) | |---|---|---|---|---|---| | **HyperTinyPW** | **225.5** | **6.31x** | **84.15** | **95.40** | **99.97** | | resnet1dsmall | 62.5 | 22.76x | 95.61 | 87.52 | 98.92 | | tinyseparablecnn | 14.5 | 98.14x | 98.98 | 88.59 | 98.11 | | tinyvaehead | 10.2 | 139.96x | 99.29 | 85.59 | 94.36 | HyperTinyPW は 6 倍以上の圧縮を行うモデルの中で最高の F1 保持率(95〜100%)を示す。コンパクトモデルはより多く圧縮するが保持する精度は低い。 ### フラッシュ予算別の最適モデル(Table 3) フラッシュ予算が拡大するにつれ、推奨アーキテクチャが明確に切り替わる。 - **32〜128 kB 以下**: TinySeparableCNN や ResNet1D Small などコンパクトな分離/残差ベースラインが優位。ジェネレータのオーバーヘッドをまだ償却できない。 - **256 kB 以下**: **HyperTinyPW が 3 データセット全てで最良**。ジェネレータオーバーヘッドが償却され、合成チャネルミキサが格納バイトあたり最大の精度向上をもたらす。 この切替は Pareto 曲線(Figure 3)の約 225 kB エルボーに対応する。最初の 200〜250 kB がチャネルミキシング容量の不釣り合いに大きな向上を購入し、そこを超えると潜在基底が飽和し追加バイトの収穫が逓減する。 ### クロスドメイン: Speech Commands キーワード検出(Table 4、スライド Cross-Domain) - 234,853 パラメータの HyperTinyPW インスタンスを 20 エポック訓練(Adam, lr=10^-3, バッチサイズ 64)。 - 最良検証精度 98.2%(エポック 12)、**テスト精度 96.2%**。 - packed フラッシュは 235 kB 以下(全 INT8 パッキング上界)。 - 同じ generate-and-cache アーキテクチャが ECG 以外の音声特徴量にも移行し、整数のみの推論パスを変更なく機能させる。 ### 三値量子化ベースラインとの比較(Table 4、スライド Ternary Baseline) PTB-XL で HyperTinyPW(72.3 kB, バランス精度 79.4%)と三値重み(6.7 kB, バランス精度 55.3%)を比較する。三値は極端に小さいフラッシュを実現するが、多数派クラス予測器に崩壊する(クラス 0 精度 13.1%、クラス 1 精度 97.5%)。HyperTinyPW はバランスの取れた性能を維持し、MCU 実用に耐える。 ### マルチスケール検証(Table 5) Apnea-ECG 上で 3 構成を 20 エポック訓練し、圧縮率は全スケールで一定 12.5 倍を維持する。 | 構成 | パラメータ数 | フラッシュ (kB) | テスト精度 | |---|---|---|---| | Small (base=16, latent=16) | 231,325 | 72.29 | 82.1% | | Medium (base=20, latent=20) | 347,453 | 108.58 | 80.4% | | Large (base=24, latent=24) | 489,015 | 152.82 | 84.9% | 圧縮率がスケールに対し安定しており、ジェネレータ+コード構造が広い範囲で機能することを裏付ける。 ## レイテンシ・エネルギー分析(Table 15, 16) 定常状態レイテンシはワンショット合成・キャッシュ後の値である。レイテンシは Arm M クラスの仮想 MCU 構成(CMSIS-NN/TFLM INT8 カーネル、-O3 コンパイル)の命令カウントモデルから得る。エネルギーはボードレベル電流モデル(データシート較正)のサイクルから導出し、nJ/inference で正規化する。 | モデル | フラッシュ (kB) | Apnea レイテンシ (ms) | Apnea エネルギー (mJ) | |---|---|---|---| | HyperTinyPW | 225.46 | 2.383 | 0.0148 | | regularcnn1d | 1,422.00 | 3.717 | 7.125 | | resnet1dsmall | 62.49 | 1.963 | 0.0518 | | tinyseparablecnn | 14.49 | 0.831 | 0.0754 | HyperTinyPW は Apnea-ECG で RegularCNN 比 2.38 ms vs. 3.72 ms と低レイテンシだが、PTB-XL では演算子構成とテンソル形状が異なるため最小フラッシュモデルが最速とは限らない。フラッシュ・SRAM・レイテンシ・エネルギーの共同報告の重要性が強調される。 ## 議論と制約 ### Pareto エルボーの解釈 約 225 kB のエルボーが 3 データセット全てで一貫して出現する。層間生成がチャネルミキシング容量をコンパクトな共有基底から不釣り合いに効率的に集約するため、最初の 200〜250 kB で表現力の大きな跳躍が得られる。それを超えると基底が飽和し、追加バイトあたりの精度向上が逓減する。 ### 配備上の考慮 - 定常状態推論は標準 INT8 演算子で動作し、ワンショットの実体化ステップの後はランタイム演算子集合もフロー制御も変化しない。 - packed-byte サイズにはジェネレータ、ヘッド/分解行列、コード、保持 PW1、バックボーンを含む。ピーク SRAM は最大 PW アクティベーションで決定される。 - 本設計は現状 **mid-budget レジーム**(200〜250 kB)での精度・圧縮バランスを優先している。32 kB 以下の極端な低フラッシュ領域ではコンパクトな手設計ベースラインが依然優位である。 ### 制約 1. 現設計は mid-budget の精度・圧縮バランスを優先しており、ヘッド/コードブックのさらなる圧縮(共有コードブック、低ランク/ヘッドタイイングの強化、混合精度キャッシュ)でエルボーをより小さいフラッシュ予算へ押し下げることが今後の課題である。 2. レイテンシ/エネルギーはプロキシベース(仮想 MCU バックエンドの命令カウント + データシート較正電流モデル)であり、ターゲット MCU 上での実計測は今後の課題として残されている。 ### 拡張性 compression-as-generation の機構は反復的な線形チャネルミキシング演算子がパラメータ量を支配するアーキテクチャに広く適用可能である。具体的には (i) 1x1 ボトルネック/拡張を持つ効率的 CNN ブロック、(ii) Q/K/V および MLP 射影が支配するトランスフォーマブロック、(iii) 多くの層が重み構造を共有するチャネルミキシング MLP ブロックが候補として挙げられる。 ## 所感・位置づけ - TinyML における PW 層のフラッシュ支配という具体的ボトルネックに対し、「重みを格納するのではなく生成する」という明快な転換を提案する研究である。既存の量子化・枝刈り・構造化変換が各層独立にパラメータを削減するのに対し、HyperTinyPW は**層間の冗長性を共有ジェネレータで吸収**し、推論時には完全に標準の INT8 パスに帰着させる。 - 「PW1 を保持し PW2 以降を合成する」ハイブリッド設計は、初期層の形態学的感度と後続層の冗長性という ECG 信号処理の特性を巧みに利用している。Speech Commands への移行結果は、この構造が音声特徴量にも有効であることを示す。 - packed-byte 計量の厳密さは TinyML 論文における「何が実際にデバイスに載るか」の透明性を高める貢献である。パラメータ数や FP32 サイズではなく、ジェネレータ・ヘッド・コード・バックボーンの全てを含む packed byte でモデルを比較するアプローチは、MCU 配備の実務者にとって直接的に有用である。 - 現状の制約として mid-budget(200〜250 kB)レジームへの最適化に留まる点、レイテンシ/エネルギーがプロキシベースである点があり、今後の改良でエルボーの低フラッシュ側への移動と実機計測が期待される。