TensorFlow

ProximalAdagradの最適化アルゴリズムの解説

PROXIMALADAGRAD最適化アルゴリズムとは、正則化項の最小化と引き換えに、最初のフェーズの結果に近接した状態を維持する瞬間的な最適化問題を解決できます。目次:概要、定義、実験(PROXIMALADAGRAD vs ADAM)

ADABELIEFの最適化アルゴリズムの解説

AdaBeliefの最適化アルゴリズムとは、アダムとSGDに匹敵する一般化として高速収束を実現します。 勾配方向の「信念」に応じてステップサイズを適応させます。予測された勾配と観測された勾配の差によってステップサイズを適応的にスケーリングします。 Pythonの実験

TensorFlowの公平性指標(Fairness Indicators)

目次 1. TensorFlowのFairness Indicators 1.1 公平性指標(Fairness Indicators)とは 1.2 Fairness IndicatorsのAPI 2. 実験 2.1 環境構築 2.2 データセット 2.3 公平性指標 関連記事: 機械学習モデルを解釈するSHAP eli5でモデルの解釈   1. TensorFlowのFairness Indicators 1.1 公平性指標(Fairness Indicators)とは Fairness Indicators はTensorFlow Model Analysis (TFMA)のパッケージにあり、公平性メトリックの計算するライブラリです。既存のツールの多くは、大規模なデータセットやモデルではうまく機能しません。しかしTensorflowのFairness Indicatorsでは、10億ユーザーのシステムで動作できるツールで大規模に強いのが特徴です。 公平性指標でやることは、 データセットの分布 定義されたユーザーグループ間のモデルのパフォーマンスを評価 個々のスライスを深く掘り下げて、根本的な原因で改善 です。 1.2 Fairness IndicatorsのAPI パッケージ: Tensorflowデータ検証(TFDV) Tensorflowモデル分析(TFMA)公平性指標 What-Ifツール(WIT) 資料https://www.tensorflow.org/tfx/guide/fairness_indicators#render_fairness_indicators GitHub: https://github.com/tensorflow/fairness-indicators   2. 実験 環境:Google Colab …

TensorFlowの公平性指標(Fairness Indicators) Read More »

TensorFlow2.7の新機能

目次 1. tf.function エラーメッセージの改善 2. tf.experimental.ExtensionTypeのリリース 3. TF2の移行が容易になりました 4. 新しいコミュニティがTensorFlow Hubでモデルを提供 関連記事:https://data-analysis-stats.jp/深属学習/tensorflow-2-0-主な変更   TensorFlowは2021年11月10日にリリースされました。このリリースでは、エラーメッセージが明確になり、スタックトレースが簡素化されて使いやすさが向上し、TF2に移行するユーザー向けの新しいツールとドキュメントが追加されています。   今回はTensorFlow2.7の新機能を紹介したいと思います。 詳細は下記のパスのご参照ください。 https://blog.tensorflow.org/2021/11/whats-new-in-tensorflow-27.html   1. tf.function エラーメッセージの改善 スタックトレースがより単純かつ短くなり、コードの問題を理解して修正することが容易になります。 レイヤーをデバッグするときに最初に行うことは、入力の形状とdtype、およびトレーニング引数とマスク引数の値を出力することです。 この情報を、カスタムKerasレイヤーから発生するすべてのスタックトレースに自動的に追加するようになりました。 エラーメッセージは、フレームワークが期待したこと、フレームワークの期待と一致しなかったことを示し、問題を修正するためのヒントを提供する必要があります。 主な違いは、tf.functionの実行中に発生するランタイムエラーに、エラーの原因を示すスタックトレースがユーザーのコードに含まれるようになったことです。   # … Python stack trace of the function call … TypeError: Originated from a graph execution error. The graph execution error is detected at a node built …

TensorFlow2.7の新機能 Read More »

SPARSEMAXの活性化関数

目次 1. SPARSEMAX活性化関数の概要 1.1 SPARSEMAX活性化関数とは 1.2 SPARSEMAX関数 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 SPARSEMAXの活性化関数を作成 2.5 RELUの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. SPARSEMAX活性化関数の概要 1.1 SPARSEMAX活性化関数とは SPARSEMAXとは、ソフトマックスに似たが、スパース確率を出力できる新しい活性化関数です。SPARSEMAX損失関数は、滑らかで凸状のロジスティック損失のスパースアナログです。 1.2 SPARSEMAX関数 softmaxとsparsemaxの比較 実験の結果 SPARSEMAXは、一般的なアクティベーションに比較して優れたパフォーマンスになります。 sparsemaxは、ラベルの数が多い問題に適しているようです。 SPARSEMAXの論文:From Softmax to Sparsemax: A Sparse Model of Attention and Multi-Label Classification. https://arxiv.org/abs/1602.02068 TensorFlowの資料:https://www.tensorflow.org/addons/api_docs/python/tfa/activations/sparsemax PyTorchの資料:https://github.com/KrisKorrel/sparsemax-pytorch   2. 実験 データセット:CIFAR-10 は、32×32 のカラー画像からなるデータセットで、その名の通り10クラスあります。全体画像数は60000件となり、そのうち50000件が訓練用データ、残り10000件がテスト用データに分けます。 モデル:SPARSEMAXの活性化関数のモデル …

SPARSEMAXの活性化関数 Read More »

RRELUの活性化関数

目次 1. RRELU活性化関数の概要 1.1 RRELU活性化関数とは 1.2 RRELU関数 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 RRELUの活性化関数を作成 2.5 RELUの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. RRELU活性化関数の概要 1.1 RRELU活性化関数とは RRELUとは、randomized leaky rectified linear units の略称で、ランダム化されたReLU関数です。RRELUは、活性化関数の負の部分にゼロ以外の勾配を組み込むことで、一貫して結果の改善を期待されて導入されました。最初にはKaggleNDSBコンペで使用されました。大規模な画像分類タスクでは、パフォーマンスはReLUよりもはるかに優れていると言われています。 1.2 RRELU関数 乱数はサンプリングされます。 RRELUの論文:Empirical Evaluation of Rectified Activations in Convolution Network https://arxiv.org/abs/1505.00853   TensorFlowの資料: https://www.tensorflow.org/addons/api_docs/python/tfa/activations/rrelu?hl=ja   PyTorchの資料: https://pytorch.org/docs/stable/generated/torch.nn.RReLU.html   2. 実験 データセット:CIFAR-10 は、32×32 …

RRELUの活性化関数 Read More »

NOVOGRAUDの最適化アルゴリズムの解説

  目次 1 NOVOGRAUD最適化アルゴリズムの概要 1.1 NOVOGRAUD最適化アルゴリズムとは 1.2 NOVOGRAUD定義 2. 実験 2.1 データロード 2.2 データ前処理 2.3 NOVOGRAUD最適化アルゴリズムのモデル作成 2.4 Adam最適化アルゴリズムのモデル作成 2.5 まとめ 記事:最適化アルゴリズムのまとめ 1 NOVOGRAUD最適化アルゴリズムの概要 1.1 NOVOGRAUD最適化アルゴリズムとは、層ごとの勾配正規化と分離された重み減衰を使用した適応確率的勾配降下法です。論文より、画像分類、音声認識、機械翻訳、言語モデリングのためのニューラルネットワークの実験では、SGD、Adam、AdamWと同等かそれ以上のパフォーマンスの結果になりました。今回私達も評価とサンプルコードを紹介していきます。 NOVOGRAUDの特徴: 学習率と重みの初期化の選択に適しています 大規模なバッチ設定でうまく対応できます。 Adamに対しての半分のメモリフットプリントになります。   アルゴリズム: NovoGradは3つのアイデアを組み合わせています。 層ごとの2次モーメントを使用します。 層ごとの2次モーメントで正規化された勾配を使用して1次モーメントを計算します 重量減衰を切り離します。 論文:Training Deep Networks with Stochastic Gradient Normalized by Layerwise Adaptive Second Moments https://arxiv.org/pdf/1905.11286.pdf   Tensorflow: https://www.tensorflow.org/addons/api_docs/python/tfa/optimizers/NovoGrad?hl=ja   PyTorch: https://pytorch-optimizer.readthedocs.io/en/latest/_modules/torch_optimizer/novograd.html   …

NOVOGRAUDの最適化アルゴリズムの解説 Read More »

LISHTの活性化関数

  目次 1. LISHT活性化関数の概要 1.1 LISHT活性化関数とは 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 LISHTの活性化関数を作成 2.5 Reluの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. LISHT活性化関数の概要 1.1 LISHT活性化関数とは LISHT活性化関数とはLinearly Scaled Hyperbolic Tangent の略称です。ReLUとSwishは、大きな負の入力値を利用できず、勾配消失問題に悩まされる可能性があります。LiSHT活性化関数は、非線形双曲線タンジェント(Tanh)関数を線形関数でスケーリングし、勾配消失問題を解決します。 論文より、分類実験は、ベンチマークIris、MNIST、CIFAR10、CIFAR100、およびtwitter140データセットに対して実行され、より高速な収束とより高いパフォーマンスの結果になりました。多層パーセプトロン(MLP)、畳み込みニューラルネットワーク(CNN)、および長短期記憶(LSTM)のようなリカレントニューラルネットワークを含む3つの異なるタイプのニューラルネットワークで、優れたパフォーマンスの向上が見られます。 LISHTの論文:LiSHT: Non-Parameteric Linearly Scaled Hyperbolic Tangent Activation Function for Neural Networks https://arxiv.org/pdf/1901.05894.pdf   TensorFlowの資料: https://www.tensorflow.org/addons/api_docs/python/tfa/activations/lisht?hl=ja   2. 実験 データセット:CIFAR-10 は、32×32 のカラー画像からなるデータセットで、その名の通り10クラスあります。全体画像数は60000件となり、そのうち50000件が訓練用データ、残り10000件がテスト用データに分けます。 モデル:LISHTの活性化関数のモデル vs Reluの活性化関数のモデル …

LISHTの活性化関数 Read More »

LAMBの最適化アルゴリズムの解説

  目次 1 LAMB最適化アルゴリズムの概要 1.1 LAMB最適化アルゴリズムとは 1.2 LAMB定義 2. 実験 2.1 データロード 2.2 データ前処理 2.3 LAMB最適化アルゴリズムのモデル作成 2.4 Adam最適化アルゴリズムのモデル作成 2.5 まとめ 記事:最適化アルゴリズムのまとめ   1 LAMB最適化アルゴリズムの概要 1.1 LAMB最適化アルゴリズムとは LAMBは、LARSに触発されて、大きなミニバッチを使用してディープニューラルネットワークのトレーニングを加速するための手法です。 LAMBの適応性は2つあります。(i)ADAMで使用される2次モーメントの平方根に関する次元ごとの正規化、および(ii)層ごとの適応性によって得られる層ごとの正規化です。 LAMBのアルゴリズムは下記になります。 以下の表は、ResNet-50ネットワークを使用したImageNetデータセットの実験結果です。 LAMBは高精度を実現できます。 論文: https://arxiv.org/abs/1904.00962 Tensorflow: https://www.tensorflow.org/addons/api_docs/python/tfa/optimizers/LAMB?hl=ja PyTorch: https://github.com/cybertronai/pytorch-lamb/blob/master/pytorch_lamb/lamb.py   2. 実験 データセット:cifar10: 60000枚の32ピクセルx32ピクセルの画像。10クラス([0] airplane (飛行機)、[1] automobile (自動車)、[2] bird (鳥)、[3] cat (猫)、[4] deer (鹿)、[5] dog (犬)、[6] frog (カエル)、[7] …

LAMBの最適化アルゴリズムの解説 Read More »

HARDSHRINKの活性化関数

目次 1. HARDSHRINK活性化関数の概要 1.1 HARDSHRINK活性化関数とは 1.2 HARDSHRINK関数 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 HARDSHRINKの活性化関数を作成 2.5 Reluの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. HARDSHRINK活性化関数の概要 1.1 HARDSHRINK活性化関数とは HARDSHRINK活性化関数とは入力データと出力データは原点の周りは、0だがそれ以外では値のある関数です。下記の関数になります。 関数 の形をしており、変数lower/upperのデフォルト値は0.5です。 1.2 HARDSHRINK関数 TensorFlowの関数 tfa.activations.hardshrink( x: tfa.types.TensorLike, lower: tfa.types.Number = -0.5, upper: tfa.types.Number = 0.5 ) -> tf.Tensor TensorFlowの資料: https://www.tensorflow.org/addons/api_docs/python/tfa/activations/hardshrink?hl=ja   PyTorchの資料: https://pytorch.org/docs/stable/generated/torch.nn.Hardshrink.html   2. 実験 データセット:CIFAR-10 …

HARDSHRINKの活性化関数 Read More »