On-Device?」の意訳です。ここ数週間、数人から電話や組み込み機器でモデルをトレーニングさせる事について質問を受けました。良い知らせは、それは間違いなく可能だということです。これを成功させている複数の事例があります。悪い知らせは、私たちが使っているツールではまだ簡単にはできないということです。2014年、私は電話上で簡単な転移学習を行う方法を示すコードとビデオを公開しました。その時点では、サポートベクターマシンを使用して最終層のオンデバイストレーニングを処理していましたが、バックプロパゲーション(つまりニューラルネットワーク)を使用しなかった根本的な理由はありませんでした。私が良く知っている手法を使用する法が簡単だったのです。私の事例より早く同様な事を実現した他の例がきっとあると確信しています。ニューラルネットワークを使用したオンデバイス学習が長い間普遍的に行われてきた分野の1つが音声認識です。Siri」などの音声アシスタントを起動する言葉)を何度か発声するように貴方に求めてきます。それを使って貴方の発音を学ぶのです。典型的ケースでは、バックプロパゲーションを使用してネットワークを完全に再トレーニングする必要はありませんが、特徴量抽出プロセスまたは最終レイヤ部は転移学習に似ています。space)と呼ぶスペースであなたの発声を比較します。これは、通常の学習の考え方とかなり異なっています。これらのケースは、オンデバイス学習の有効な事例と思います。私はネットワークの変更部分の範囲を把握するために「パーソナライゼーション」という用語を使用することがよくあります。Pythonで構築されたディープラーニングをオンデバイスで構築する必要が出てくる状況もあります。公開されている良い例は、Googleキーボードアプリケーションです。この実装では、匿名化されたモデルのアップデートをネットワーク経由で実施するという新しい側面に焦点を当てていますが、これらのアップデートは、従来のフォワードパスとバックワードパスを電話機で実行する手法からもたらされています。このように、大企業のチームはオンデバイス上で学習するアプリケーションを構築していますが、どうすれば私達は同じことを実現できるのでしょうか?実現のために重要なことは、モデルを訓練するために2つの異なる段階があることを認識することです。1つ目は、勾配を更新するためのバックプロパゲーションを構築することです。2つ目は、実際にサンプルデータをフォワードパスに渡して、その後、勾配の変化をバックパスに渡す事です。TensorFlowを含むほとんどのライブラリは、Pythonでバックプロパゲーション操作を構築するのに必要な微分演算を自動で処理します。このコードでは、推論演算(畳み込みレイヤーがアクティベーション関数に入力されるなど)で定義したモデルを調べ、損失関数を含むバックプロパゲーションの補完的な演算セットを構築します。重要な点は、一度グラフが構築された後、少なくともTensorFlowではPythonコードをもうこれ以上必要しないということです。バックワードパスの実行は、微分段階で作成された操作のサブグラフを実行することを意味します。TensorFlowの観点から言えば、これは、バックワードパスを作成した後、順方向操作と逆方向操作の両方を含むGraphDefを保存できることを意味します。Run()を使ってラベル付きの学習データを用いて勾配の更新を実行することもできます。これはあくまで理論的な話です。++で簡単には行えないような慣れないステップがたくさんあるからです。これは私達が埋めることができるギャップと思います。これらの問題を克服したGoogleの内部チームが存在するので、少なくとも可能であるという証拠があります。同様の作業を行っている外部チームの例があるはずですので、TensorFlowやその他のフレームワークで共有可能なコードがあれば、コメントを追加したりTwitterで返信してくれれば私は喜んでシェアします。コメントをキャンセルメールアドレスが公開されることはありません。中年期のあるとき、困惑するような問題に直面した場合に、人は脳の片側ではなく両側を使う能力を発達させはじめます。それは重い椅子を片腕だけではなく両腕を使って持ち上げるようなものですが、椅子を持ち上げるのによりよい方法であるばかりでなく、脳を使うのにより効率的な方法でもあります。両側の脳を使うのは、中年が全体像をつながりのある状態で見始める原因の一部です。WordPress.。