3Dデモを使用してさまざまな最適化アルゴリズムを理解します。これはC++プログラマーにとって朗報です。

3Dデモを使用してさまざまな最適化アルゴリズムを理解します。これはC++プログラマーにとって朗報です。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

機械学習には、 SGDAdamAdaGradAdaDeltaなど、多くの最適化アルゴリズムがあります。それらの反復式だけでも、人々に頭痛の種を与えるのに十分です。

幸いなことに、これらの最適化ツールは TensorFlow、Keras、PyTorch に統合されていますが、ステップごとの反復でどのように最小値に「スライド」するかを本当にご存知ですか?

現在、機械学習最適化アルゴリズムのデモがあり、パラメータ調整が画像からのアルゴリズム結果に与える影響や、それぞれの長所と短所を直感的に感じることができます。

小さくなりました!開発者はデモを提供しているだけでなく、プログラマー向けの C++ データベースもパッケージ化しています。まずは試してみましょう。

デモを試す

試用方法は非常に簡単で、ソフトウェアをインストールする必要もありません。ensmallen の Web サイトにアクセスし、[デモ] タブを選択するだけで、一連の最適化アルゴリズムの 3D 概略図が表示されます。

デフォルトのページでは、一般的な Adam アルゴリズムが使用されています。パラメータが赤いルートをたどり、最終的に損失関数の最高点に下がることがわかります。

左側にはパラメータの初期値の場所(図の赤い点)があり、マウスで自由にドラッグできます。

中央と右のグラフはどちらも損失関数の「等高線」です。中央では異なる高さが異なる色でマークされ、損失関数の勾配フィールドが右側に直接示され、矢印は勾配の方向を示し、長さは勾配のサイズを示します。等高線が密になればなるほど、勾配が大きくなることがわかります。

上記の損失関数のグラフが明確で直感的ではないと思われる場合は、高解像度の 3D グラフもあります。

反復回数が増えるにつれて、損失関数の値は減少し続けます。

Adam アルゴリズムで調整できるハイパーパラメータは、ステップ サイズ反復回数許容誤差β1β2ファジー係数 ϵバッチ サイズです。

スライダーをドラッグしてハイパーパラメータを調整すると、「赤い線」の形状と終点がそれに応じて変化します。ステップ サイズを調整して、このパラメーターが結果にどのような影響を与えるかを確認しましょう。

ステップ サイズを大きくすると学習曲線の振動が大きくなり、ステップ サイズが小さすぎると損失関数の収束が遅くなります。

ステップサイズはそれぞれ0.3、0.03、0.003です

上記は最も単純なケースです。デモ インターフェースでは、他にも奇妙な損失関数が提供されています。

ほぼすべての一般的な最適化アルゴリズム:

これらの最適化アルゴリズムには、さまざまな形状の損失関数においてそれぞれ長所と短所があります。

損失関数の「輪郭」が楕円の場合、Adam は非常に速く収束し、わずか 100 回の反復で収束しますが、AdaGrad では収束までに 300 回近くの反復が必要です。

しかし、アダムには絶対的な優位性はありません。複数の鞍点と極小値を持つグラフでは、Adam は初期段階では急速に減少しますが、最終段階ではより激しく振動し、収束速度は AdaGrad よりも遅くなります。

上記の「遊び方」はデモのほんの一部です。もっと試してみたい方は、記事末尾のリンクをご覧ください。

C++プログラマーにとって朗報

ensmallen は単なる楽しいデモだと思わないでください。実際には効率的な C++ 最適化ライブラリです。 C++ を使用して AI をプログラミングするプログラマーにとっては、任意の関数に対して数学的最適化を実行できるため、C++ 機械学習ツールの不足という問題点が解決されます。

基本的な最適化アルゴリズムをパッケージ化するだけでなく、ensmallen では、ユーザーがシンプルな API を使用して新しいオプティマイザーを簡単に追加することもできます。新しいオプティマイザーを実装するには、メソッドと新しい目的関数のみが必要であり、通常は 1 つまたは 2 つの C++ 関数で実行できます。

ensmallen をインストールするには、次の要件を満たす必要があります。

  • C++11をサポートするコンパイラ
  • C++ 線形代数および科学計算ライブラリArmadillo
  • 数学ライブラリOpenBLASまたはIntel MKLまたはLAPACK

ensmallen 内のすべては ens 名前空間内にあるため、コード内に using ディレクティブを配置すると便利な場合がよくあります。

  1. 使用して 名前空間ens;

Adam を例にとると、コードは次のようになります。

  1. ローゼンブロック関数 f;
  2. arma::mat 座標 = f.GetInitialPoint();
  3. Adam オプティマイザー (0.001, 32, 0.9, 0.999, 1e-8, 100000, 1e-5, true );
  4. optimizer.Optimize(f, 座標);

このうち、Adam オプティマイザーのパラメータの順序は、ステップ サイズ、バッチ サイズ、β 1 、β 2 、ϵ、最大反復回数、許容誤差、各関数にランダムにアクセスするかどうかです。

その他の最適化アルゴリズムについては、Web サイトにアクセスして詳細なドキュメントを参照できます。

***すべてのリソースを添付します:

縮小圧縮パッケージのダウンロードアドレス:

https://ensmallen.org/files/ensmallen-1.14.2.tar.gz

デモアドレス:

https://vis.ensmallen.org/

<<:  自動化ロボットのHMI設計の詳細な説明

>>:  人工知能の知られざる歴史: 目に見えない女性プログラマーたち

ブログ    
ブログ    

推薦する

コンピュータビジョンディープラーニングにおける8つのよくあるバグ

コンピューター ビジョンのディープラーニングでよくある 8 つのバグをまとめました。誰もが多かれ少な...

...

パラメータは最大2兆個、GPT-4をはるかに超える!アマゾンの新型オリンパス大型モデルが公開、近日発表予定

大きなモデルの波から遠ざかっていたように見えるAmazonが、ついに最新の進捗状況を発表することにな...

「ビッグデータによる既存顧客殺し」を厳しく罰し、アルゴリズムがユーザーにより良いサービスを提供できるようにする

7月2日、国家市場監督管理総局は「価格違反に対する行政処罰(意見募集稿)」を発表し、ダンピング、価格...

馬懿、沈向陽、曹英の最新AIレビューが人気に!作成に3か月かかりました。ネットユーザー必読の論文です

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Appleのアプリランキングアルゴリズム調整の裏側:ランキング管理企業が一夜にして沈黙

4月1日早朝のニュース:3月初旬から、AppleはAppランキングアルゴリズムを徐々に調整し、ランキ...

ロビン・リー:百度はすでに独自のハイエンドチップを製造する能力がある

「中国の改革開放40年はIT産業の爆発的な成長をもたらしたが、ハイエンドチップは常に輸入に依存してき...

人工知能の役割がクローズアップ!ロボットが増えると雇用に影響が出るでしょうか?

短期的には、人工知能が雇用全体に与える影響は比較的軽微であり、構造的影響が量的影響を上回っている。し...

...

人工知能は偏見の岐路に立っている

企業がより多くの機械学習や人工知能モデルを本番環境に導入するにつれて、システム内の偏りに対する認識が...

画像認証コードで人工バカになる

[[416826]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

MITが脳制御ロボットを開発:脳波を使ってロボットのエラーを修正できる

ロボットが人間のように行動するためには、人間を理解する必要があります。多くの場合、それは妥協しなけれ...

3つのステップで声紋システムを構築する方法

背景声紋検索は、その名前が示すように、話者認識であり、音を通じて話者の声を確認または識別します。声紋...