AutoMLは、どのようにスーパーネットを最適化されたTinyMLモデルに変換するのでしょうか?

エッジAIアプリケーションでは、ニューラルネットワークを適切に設計することが非常に重要です。お客様は通常、ai8xのサンプルモデルを使用するか、独自のモデルを作成して自身のデータを用いて学習させますが、その学習結果は多くの場合、満足のいくものになりません。これは、MAX78002 が低ビットモデル(INT8、INT4、INT2など)を使用しており、各値が保持する情報量が非常に少ないため、通常のFP32モデルと比べて学習が難しく、不安定になるためです。このため、モデル設計には十分な配慮が必要です。この問題を解決するために、AutoMLを採用して最適なモデルアーキテクチャを探索するアプローチが有効です。
ai8x toolは、Once-For-All(OFA) と呼ばれるAutoML手法を提供しています。OFAの目的は、モデルを一度学習させるだけで、同等の性能を持つ複数の小規模なサブネットを自動的に取得することです。これは3つのステップで構成されます。

スーパーネットの学習:

スーパーネットとは、より深いレイヤ、より多くのチャンネル数、およびより大きなカーネルサイズを持つ巨大なFP32ベースのCNNであり、MCUに直接展開することはできません。OFAでは、知識蒸留(KD)と重み共有を用いて順次型スーパーネットを学習し、複数のサブネットにわたるロバスト性を確保します。最適解の探索には時間がかかるため、最も高い精度を持つ単一のサブネットだけを繰り返し探索することが目的ではありません。KDの間、スーパーネットからサンプリングされたサブネットはスーパーネットの重みを再利用することで、効率的な学習を可能にし、性能の一貫性を維持します。

ニューラルアーキテクチャ探索(NAS):

スーパーネットの学習が完了すると、NAS(Neural Architecture Search)を適用してより小規模で最適なサブネット(TinyDurianNet)を特定します。OFAは進化的探索戦略を採用しており、時間と計算リソースの面で従来のNAS手法よりも効率的です。NASの手順により、精度はほぼ同等でありながら、アーキテクチャが異なる複数のサブネット候補が出力されます。ターゲットハードウェアの性能特性や消費電力制約に応じて、適切なサブネットを最終的なTinyDurianNetとして選択できます。


図4. スーパーネットの知識蒸留による学習


図5. スーパーネットとTinyDurianNetの比較

量子化を考慮した学習(QAT)

量子化を考慮した学習(QAT)により、ニューラルネットワークは、INT1、INT2、INT4、およびINT8の重みに対応する MAX78002 のCNNアクセラレータ上で効率的に動作できるようになります。

QATの基本的な考え方は、学習中に低ビット量子化誤差をシミュレート(擬似量子化)し、順伝播と逆伝播の両方でモデルが量子化ノイズを許容するように学習させることで、低精度ハードウェアに展開した際にも正確さを維持することです。

ai8xのQATでは、逆伝播にStraight-Through Estimator(STE)ルールが適用されます。図6にQATの処理を示します。QATの完了後、INT8ベースのTinyDurianNetが得られ、 MAX78002 に直接展開できます。


図6. 量子化を考慮した学習のワークフロー

適用品番
DigiKey品番 メーカー品番
MAX9867ETJ+TTR-ND、
MAX9867ETJ+TCT-ND、
MAX9867ETJ+TDKR-ND
MAX9867ETJ+T
MAX9867EWV+TTR-ND、
MAX9867EWV+TCT-ND
MAX9867EWV+T
MAX9867ETJ±ND MAX9867ETJ+
505-MAX9867ETJ+G3U-ND MAX9867ETJ+G3U
MAX9867ETJ+TG3U-ND MAX9867ETJ+TG3U
505-MAX9867EWV+G47-ND MAX9867EWV+G47
505-MAX78002GXE±ND MAX78002GXE+
3318-PG1302XA-NA0-ND PG1302XA-NA0
3318-PG2405CA-NA0-ND PG2405CA-NA0
757-NHD-2.4-240320AF-CSXP-ND NHD-2.4-240320AF-CSXP
NHD-2.4-240320CF-CSXN#-F-ND NHD-2.4-240320CF-CSXN#-F
1548-NHD-2.4-240320CF-BSXV-F-ND NHD-2.4-240320CF-BSXV-F
757-NHD-2.4-240320CF-BSXV-FT-ND NHD-2.4-240320CF-BSXV-FT
NHD-2.8-240320AF-CSXP-F-ND NHD-2.8-240320AF-CSXP-F
1597-104990802-ND 1.05E+08
757-NHD-2.4-240320AF-CTXP-ND NHD-2.4-240320AF-CTXP
5491-AFY240320B0-2.4INTH-ND AFY240320B0-2.4INTH
3387-ATM0200B3-ND ATM0200B3
NHD-2.4-240320CF-CSXN#-FT-ND NHD-2.4-240320CF-CSXN#-FT
5491-AFY240320A1-2.8INTH-ND AFY240320A1-2.8INTH
757-NHD-2.4-240320AF-CTXP-T-ND NHD-2.4-240320AF-CTXP-T
757-NHD-2.4-240320AF-CSXP-T-ND NHD-2.4-240320AF-CSXP-T
4863-WF0200BSYAJDNN0-ND WF0200BSYAJDNN0
3390-GLT035240320WH1-ND GLT035240320WH1
3086-MDT0280A1IH-MULTI-ND MDT0280A1IH-MULTI
1528-4421-ND 4421
1597-104990803-ND 1.05E+08
5491-AFL240320A0-2.0INTM-ANO-ND AFL240320A0-2.0INTM-ANO
5491-AFL240320A0-2.4N12NTM-ANO-ND AFL240320A0-2.4N12NTM-ANO
5491-AFL240320A0-2.8N12NTM-ANO-ND AFL240320A0-2.8N12NTM-ANO
757-NHD-2.4-240320AF-CSXP-CTP-ND NHD-2.4-240320AF-CSXP-CTP
757-NHD-2.8-CSXP-BREAKOUT-ND NHD-2.8-CSXP-BREAKOUT
5491-AFR240240A0-1.5INTN-ND AFR240240A0-1.5INTN
5491-AFL240240A0-1.3INTM-ANO-ND AFL240240A0-1.3INTM-ANO
5491-AFR240320A0-2.0INTM-ND AFR240320A0-2.0INTM
5491-AFR240240A0R-1.3INTM-ND AFR240240A0R-1.3INTM
757-NHD-2.4-240320AF-CTXP-CTP-ND NHD-2.4-240320AF-CTXP-CTP
5491-AFY240320A1-2.4INTH-C1-ND AFY240320A1-2.4INTH-C1
5491-AFY240320A1-2.8INTH-C1-ND AFY240320A1-2.8INTH-C1
NHD-2.8-240320AF-CSXP-FT-ND NHD-2.8-240320AF-CSXP-FT
277-1132710-ND 1132710
3387-ATM0240B32-ND ATM0240B32
5491-AFY240320A1-2.8INTH-R-ND AFY240320A1-2.8INTH-R
757-NHD-1.5-240240AF-CSXP-ND NHD-1.5-240240AF-CSXP
757-NHD-1.5-240240AF-CSXP-T-ND NHD-1.5-240240AF-CSXP-T
5491-AFY240320A2-2.4INTH-R-ND AFY240320A2-2.4INTH-R
757-NHD-2.4-CTXP-BREAKOUT-ND NHD-2.4-CTXP-BREAKOUT
757-NHD-2.4-CSXP-BREAKOUT-ND NHD-2.4-CSXP-BREAKOUT
757-NHD-2.4R-CTXP-BREAKOUT-ND NHD-2.4R-CTXP-BREAKOUT
757-NHD-2.4R-CSXP-BREAKOUT-ND NHD-2.4R-CSXP-BREAKOUT
757-NHD-2.8R-CSXP-BREAKOUT-ND NHD-2.8R-CSXP-BREAKOUT
757-NHD-2.4C-CTXP-BREAKOUT-ND NHD-2.4C-CTXP-BREAKOUT
757-NHD-2.4C-CSXP-BREAKOUT-ND NHD-2.4C-CSXP-BREAKOUT
757-NHD-2.8C-CSXP-BREAKOUT-ND NHD-2.8C-CSXP-BREAKOUT
2544-AFL240135A0-1.14INTM-ANO-ND AFL240135A0-1.14INTM-ANO
4863-WF0200BTYAJDNN0-ND WF0200BTYAJDNN0
3390-GLT024240320TR2-ND GLT024240320TR2
3190-DLC-T2.0ASC#1-ND DLC-T2.0ASC#1
4863-WF24MTLAJDNN0-ND WF24MTLAJDNN0
3749-ST0154A1W-RSLW-C-ND ST0154A1W-RSLW-C
2544-AFY240320A0-2.4INTH-R-ND AFY240320A0-2.4INTH-R
3086-MDT0200FIH-MULTI-ND MDT0200FIH-MULTI
2632-E15RA-FW255-N-ND E15RA-FW255-N
2632-E24GA-I-CW850-RTB-ND E24GA-I-CW850-R
2632-E24GA-I-CW1000-N-ND E24GA-I-CW1000-N
2632-E28RA-I-CW480-N-ND E28RA-I-CW480-N
2632-E24RA1-FW420-N-ND E24RA1-FW420-N
3190-DLC0283BCM04CB-1-ND DLC0283BCM04CB-1
3749-ST0280A3WY-RSLW-F-ND ST0280A3WY-RSLW-F
4863-WF0200BTYAJDNG0-ND WF0200BTYAJDNG0
2544-AFY240320A0-2.4INTH-C-ND AFY240320A0-2.4INTH-C
2632-E24RA-I-CW500-N-ND E24RA-I-CW500-N
2632-E32RA-CW380-N-ND E32RA-CW380-N
2632-E32RA-CW350-R-ND E32RA-CW350-R
3190-DLC0140AZP03SF-1-ND DLC0140AZP03SF-1
2632-E28RA-FW480-N-ND E28RA-FW480-N
2632-E28RA-I-CW600-C-ND E28RA-I-CW600-C
3749-ST0430E2WCY-RSLW-F-ND ST0430E2WCY-RSLW-F
2632-E32RA-CW370-C-ND E32RA-CW370-C
2632-E28RA-FW580-C-ND E28RA-FW580-C
3749-ST0144S4W-RSLW-F-ND ST0144S4W-RSLW-F
3318-PG28006A-ND PG28006A
2632-E24RB-I-CW1150-N-ND E24RB-I-CW1150-N
3749-ST0280A3W-RSLW-F-ND ST0280A3W-RSLW-F
2632-E24RE-I-CW400-C-ND E24RE-I-CW400-C
5491-AFL240240A0-1.54INTM-ANO-ND AFL240240A0-1.54INTM-ANO
5491-AFR240320A0-1.77INTM-ND AFR240320A0-1.77INTM
NHD-2.8-240320AF-CSXP-FCTP-ND NHD-2.8-240320AF-CSXP-FCTP
1597-104990542-ND 1.05E+08
2470-ATM0280B3-ND ATM0280B3
1471-MIKROE-6587-ND MIKROE-6587
1471-MIKROE-6588-ND MIKROE-6588
2114-4DLCD-24-240-320-RT-NM-165-M16/S-ND 4DLCD-24-240-320-RT-NM-165-M16/S
2114-4DLCD-24-240-320-NT-CLB-170-M16/S-ND 4DLCD-24-240-320-NT-CLB-170-M16/S
2114-4DLCD-28-240-320-NT-NM-175-M8/M16-ND 4DLCD-28-240-320-NT-NM-175-M8/M16
2114-4DLCD-28-240-320-RT-NM-140-M8/M16-ND 4DLCD-28-240-320-RT-NM-140-M8/M16
2114-4DLCD-28-240-320-RT-NM-170-M16/S-ND 4DLCD-28-240-320-RT-NM-170-M16/S
2114-4DLCD-24-320-240-CT-NM-170-M16/S-ND 4DLCD-24-320-240-CT-NM-170-M16/S
2114-4DLCD-24-240-320-CT-CLB-165-M16/S-ND 4DLCD-24-240-320-CT-CLB-165-M16/S
2114-4DLCD-28-320-240-CT-NM-170-M8/M16-ND 4DLCD-28-320-240-CT-NM-170-M8/M16
2114-4DLCD-28-240-320-CT-CLB-157-M8/M16-ND 4DLCD-28-240-320-CT-CLB-157-M8/M16
5491-AFY240320A1-2.8INTH-C-ND AFY240320A1-2.8INTH-C
2544-AGU240320A00-1.77INSM-ND AGU240320A00-1.77INSM
5491-AFY240320A1-2.4INTH-C-ND AFY240320A1-2.4INTH-C
5491-AFR240240A0-1.3INTM-ND AFR240240A0-1.3INTM
3749-ST0103A2W-WSNLW-F-ND ST0103A2W-WSNLW-F
2544-AFY240320A0-2.8INTH-C-ND AFY240320A0-2.8INTH-C
2114-4DLCD-25-240-240-NT-NM-300-M16/S-ND 4DLCD-25-240-240-NT-NM-300-M16/S
2114-4DLCD-25-240-240-CT-NM-255-M16/S-ND 4DLCD-25-240-240-CT-NM-255-M16/S
2114-4DLCD-25-240-240-CT-CLB-300-M16/S-ND 4DLCD-25-240-240-CT-CLB-300-M16/S
2544-AFY240320A0-2.8INTH-ND AFY240320A0-2.8INTH
2544-AFY240320A0-2.8INTH-R-ND AFY240320A0-2.8INTH-R
2632-E28RA-I-CW384-R-ND E28RA-I-CW384-R
5491-AFY240320A1-2.4INTH-R-ND AFY240320A1-2.4INTH-R
5491-AFY240320A1-2.4INTH-ND AFY240320A1-2.4INTH
3749-ST0280H4W-RSMLW-F-ND ST0280H4W-RSMLW-F
3749-ST0200H2W-RSLW-F-ND ST0200H2W-RSLW-F
4863-WF0200BSYAJDNG0-ND WF0200BSYAJDNG0
6233-GF-M36XGF20383-01-ND GF-M36XGF20383-01
2632-E24BA-CW1000-N-ND E24BA-CW1000-N




オリジナル・ソース(English)