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設計の詳細な説明

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

ブログ    
ブログ    

推薦する

現在人気の人工知能専攻の年収は30万元にも達する

人工知能は再びホットな話題となっている。南京大学に人工知能学院が設立され、新たなチャンスに直面し、今...

3日間で自己学習したAlphaZeroがAlphaGoに勝利。GitHubの2017年年次レポートは人工知能の人気ぶりを示す!

[[207020]]本日 Nature に発表されたこの重要な論文には、Google の Deep...

TPCアライアンス設立:科学的発見の推進に向け、1兆以上のパラメータを持つAIモデルを目指す

11月16日、業界をリードする科学研究機関、米国国立スーパーコンピューティングセンター、そしてAI分...

専門家は「人工知能+教育」は慎重に扱うべきだと考えている

[[278770]]地図:李暁軍● 学校での顔認識の導入は、データセキュリティと個人のプライバシーの...

機械学習の卒業生は就職に不安を感じ始めています!卒業生と企業のどちらがより厳しいでしょうか?

機械学習を専攻する学生も就職について不安を感じ始めているのでしょうか?昨日、あるネットユーザーがRe...

...

このアルゴリズムは顔認識の「マスク」問題を解決し、2日間で1,000人のコミュニティで97%の精度を達成しました | AIが疫病と戦う

ますます成熟する人工知能は、新型コロナウイルス感染症対策の最前線で「逆転者」と呼ばれる特別な集団とな...

大規模言語モデルの量子化手法の比較: GPTQ、GGUF、AWQ

大規模言語モデル (LLM) は過去 1 年間で急速に進化しており、この記事では (量子化) へのい...

Pytorch モデルのトレーニングを最適化するためのヒント

この記事では、ディープラーニング モデルのトレーニングを改善するために私が個人的に見つけた 4 つの...

マイクロソフトの新しい AI テクノロジー: プロフィール写真を動かして感情を「伝える」

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

...

人間の顔の価値はどれくらいでしょうか?顔認識グレー産業チェーン

[[335658]]現在、数十のスタートアップ企業や大手テクノロジー企業が、ホテル、小売店、さらには...

さまざまな分野とフレームワーク、これはディープラーニングモデルの超完全なGitHubコレクションです

研究者や開発者は常に GitHub リポジトリで興味深いプロジェクトや実装を検索してきましたが、特定...