あなたはキング・オブ・グローリーをプレイしていますが、誰かがiPhoneを使ってニューラルネットワークをトレーニングしています

あなたはキング・オブ・グローリーをプレイしていますが、誰かがiPhoneを使ってニューラルネットワークをトレーニングしています

知っていましたか? LeNet 畳み込みニューラル ネットワークは iOS デバイス上で直接トレーニングすることもでき、パフォーマンスもまったく悪くなく、iPhone や iPad を実際の生産性に変えることもできます。

モバイル端末への機械学習の応用は、一般的に次の 2 つの段階に分けられます。第 1 段階はモデルのトレーニングであり、第 2 段階はモデルの展開です。従来のアプローチでは、強力な GPU または TPU でモデルをトレーニングし、一連のモデル圧縮方法を使用して、モバイル デバイスで実行できるモデルに変換し、APP に接続します。 Core ML は主にモデル展開の最終ステップを解決します。開発者に便利なモデル変換ツールを提供し、トレーニング済みのモデルを Core ML タイプのモデル ファイルに簡単に変換して、モデルと APP データ間の相互運用性を実現します。

上記は通常の動作です。しかし、iOSデバイスのコンピューティング性能が向上するにつれて、iPad Proのコンピューティング能力は一般的なラップトップのそれを上回るという噂もあります。その後、「勇敢な人」が現れ、iOS デバイス上で直接ニューラル ネットワークをトレーニングできるプロジェクトをオープンソース化しました。

プロジェクト作成者は、macOS、iOS シミュレーター、実際の iOS デバイスでテストしました。 60,000 MNIST サンプルで 10 エポックのトレーニングを行いました。モデル アーキテクチャとトレーニング パラメータがまったく同じという前提で、Core ML を使用して iPhone 11 でトレーニングすると約 248 秒、TensorFlow 2.0 (CPU のみ使用) を使用して i7 MacBook Pro でトレーニングすると 158 秒かかりますが、精度は 0.98 を超えています。

もちろん、248 秒と 158 秒の間にはまだ大きな差がありますが、この実験の目的は速度を比較することではなく、モバイル デバイスやウェアラブル デバイスを使用したローカル トレーニングの実現可能性を探ることです。これらのデバイス内のデータは機密性が高くプライバシーに関わることが多く、ローカル トレーニングの方がセキュリティを強化できるためです。

プロジェクトアドレス: https://github.com/JacopoMangiavacchi/MNIST-CoreML-Training

MNISTデータセット

この記事では、MNIST データセットを使用して画像分類モデルを展開する方法を紹介します。この Core ML モデルは、事前に他の ML フレームワークでトレーニングする必要がなく、iOS デバイス上で直接トレーニングされる点が注目に値します。

ここで著者は非常に有名なデータセット、MNIST 手書き数字データセットを使用しました。 60,000 個のトレーニング サンプルと 10,000 個のテスト サンプルが提供され、それらはすべて 0 から 9 までの手書きの数字の 28 x 28 の白黒画像です。

LeNet CNN アーキテクチャ

CNN の詳細と利点を理解したい場合は、LeNet アーキテクチャが適切な出発点となります。 LeNet CNN + MNIST データセットの組み合わせは、機械学習の「トレーニング」の標準的な組み合わせであり、ディープラーニング画像分類の「Hello, World」にほぼ相当します。

この投稿では、iOS デバイス上で直接、MNIST データセット用の LeNet CNN モデルを構築およびトレーニングする方法に焦点を当てています。次に、研究者らはこれを、TensorFlow などの有名な ML フレームワークに基づく従来の「Python」実装と比較します。

Swift で Core ML トレーニング用のデータを準備する

Core ML で LeNet CNN ネットワークを作成してトレーニングする方法について説明する前に、まず MNIST トレーニング データを準備して Core ML 実行に適切にバッチ処理できるようにする方法を見てみましょう。

次の Swift コードでは、MNIST データセット専用のトレーニング データのバッチが用意されており、各画像の「ピクセル」値を、初期範囲の 0 ~ 255 から「理解可能な」 0 ~ 1 の範囲に単純に正規化します。

Core ML モデル (CNN) トレーニングの準備

トレーニング データのバッチを処理および正規化した後、SwiftCoreMLTools ライブラリを使用して、Swift の CNN Core ML モデルで一連のローカル準備を実行できるようになります。

次の SwiftCoreMLTools DSL 関数ビルダー コードで、同じものが Core ML モデルに渡される方法も確認できます。同時に、損失関数、オプティマイザー、学習率、エポック数、バッチ サイズなどの基本的なトレーニング情報とハイパーパラメータも含まれます。

Adam オプティマイザーは、次のパラメータを使用してニューラル ネットワークをトレーニングするために使用されます。

次のステップは、CNN ネットワークを構築することです。畳み込み層、活性化層、プーリング層は次のように定義されます。

次に、前と同じ畳み込み、アクティベーション、プーリング操作のセットを使用して、Flatten レイヤーを入力し、Softmax を使用して 2 つの完全に接続されたレイヤーの後の結果を出力します。

結果として得られたCNNモデル

今構築した Core ML モデルには、2 つの畳み込み層と最大プーリングのネストされた層があり、すべてのデータを平坦化した後、隠し層に接続され、最後に Softmax アクティベーション後の結果を出力する完全接続層があります。

ベースライン TensorFlow 2.0 モデル

結果、特に実行時間の観点からのトレーニング パフォーマンスをベンチマークするために、著者らは TensorFlow 2.0 を使用して同じ CNN モデルの正確なコピーを再作成しました。

以下の Python コードは、TF 内の各レイヤーの同じモデル アーキテクチャと出力形状を示しています。

レイヤー、レイヤーの形状、畳み込みフィルター、プーリング サイズが、SwiftCoreMLTools ライブラリを使用してデバイス上で作成された Core ML モデルとまったく同じであることがわかります。

比較結果

トレーニング実行時間のパフォーマンスを見る前に、まず、Core ML モデルと TensorFlow モデルの両方が、同じ 10,000 個のテスト サンプル画像に対して、同じエポック数 (10)、同じハイパーパラメータ、非常に類似した精度メトリックでトレーニングされていることを確認します。

以下の Python コードからわかるように、TensorFlow モデルは Adam オプティマイザーとカテゴリクロスエントロピー損失関数を使用してトレーニングされており、テストケースの最終的な精度結果は 0.98 を超えています。

Core MLモデルの結果が下図の通りです。TensorFlowと同じオプティマイザー、損失関数、トレーニングセット、テストセットを使用しています。認識精度も0.98を超えていることがわかります。

<<:  12 のシナリオ アプリケーション、100 を超えるアルゴリズム、AI はどのようにして経済を征服するのか?

>>:  今後 20 年以内に、完全自動運転のコネクテッドカーが登場するでしょうか?

ブログ    
ブログ    
ブログ    

推薦する

ジェフリー・ヒントンの最新インタビュー: 5年以内に脳の仕組みを解明できるだろうが、それはバックプロパゲーションによるものではない

過去10年間で、AIはコンピュータービジョン、音声認識、機械翻訳、ロボット工学、医学、計算生物学、タ...

現代の分散ストレージシステムをサポートするアルゴリズム

アプリケーションによって処理されるデータの量が増え続けるにつれて、ストレージの拡張はますます困難にな...

人工知能アルゴリズムが核融合の応用に一歩近づく

核融合は現在一般的に使用されている核分裂法よりも安全で環境に優しいことはよく知られています。しかし、...

この記事では、テンセントが独自に開発した汎用大規模言語モデル「Hunyuan Large Model」を紹介します。

2023年9月7日午前、テンセントグローバルデジタルエコシステムカンファレンスで、テンセントグルー...

効果は爆発的! OpenAIが初のビデオ生成モデルをリリース、1分間のスムーズなHDビデオ、ネットユーザー:業界全体が安らかに眠る

先ほど、ウルトラマンがOpenAI初の動画生成モデル「ソラ」をリリースしました。 DALL·E 3 ...

レゴブロックを積み上げるように: ニューラルネットワークの数学をゼロから説明する

ニューラル ネットワークは、線形モジュールと非線形モジュールを巧みに組み合わせたものです。これらのモ...

LoRAShear: LLM プルーニングと知識回復に関する Microsoft の最新研究

LoRAShear は、言語モデリング (LLM) を最適化し、知識を保存するために Microso...

予想外だが妥当: ガートナーの 2020 年データ サイエンスおよび機械学習プラットフォームのマジック クアドラントの解釈

最近、ガートナーはデータ サイエンスおよび機械学習 (DSML) プラットフォームに関するマジック ...

チューリング賞受賞者のヨシュア・ベンジオ氏:ディープラーニングの最優先事項は因果関係を理解すること

ディープラーニングは大量のデータからパターンを見つけるのが得意だが、それらの間のつながりを説明するこ...

マイクロソフトが人工知能の小規模スタートアップBonsaiを買収

海外メディアの報道によると、マイクロソフトは水曜日、小規模な人工知能スタートアップ企業であるボンサイ...

ロボットが人間の「仲間」となり、人間と機械の関係が変化する。これは良いことなのか、悪いことなのか?

最近南京で開催された2020年世界知能製造会議において、中国工程院の研究者らは、人類の発展の観点から...

AIチップ分野におけるNvidiaの優位性により、スタートアップ企業の資金調達は困難になっており、資金調達取引件数は80%減少した。

9月12日、複数の投資家は、NVIDIAがすでに人工知能(AI)チップ製造の分野で優位に立っており...

人工知能の利点をどう生かすか

企業で人工知能が応用され、開発されるにつれて、ビジネスリーダーは市場競争力を向上させるためにクラウド...

企業における機械学習の導入を妨げる4つの障害

[51CTO.com クイック翻訳] 機械学習には多くの利点があるのに、なぜ誰もが導入しないのでしょ...

DeepGlint: 顔認識の最新の進歩と産業グレードの大規模な顔認識の実践に関する議論

[[380229]] 1. 顔認識の背景紹介簡単に言えば、顔認識の問題は、2 つの顔が与えられたとき...