深属学習

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

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

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 »

TabNet(表形式データ向けの深層学習)

目次 1.TabNetの概要 1.1TabNetとは 1.2TabNetの手法 2.TabNetの実験 2.1環境構築 2.2データセット 2.3 TabNetモデル 2.4XGBoost 3.まとめ   1.TabNetの概要 1.1TabNetとは TabNetとは、Google Researchで発表された表形式データ向けの新しい深層学習です。TabNetは、シーケンシャルアテンションメカニズムを使用して、各決定ステップで処理する意味がある特徴量を選択します。インスタンスごとの特徴選択により、モデルの容量が最も顕著な特徴に完全に使用されるため、効率的な学習が可能になります。また、選択マスクの視覚化により、より解釈しやすい意思決定が可能になります。TabNetが、さまざまなドメインの表形式のデータセット全体で以前の作業よりも優れていると言われています。   1.2TabNetの手法 TabNetは、推論のために入力特徴のサブセットを処理することに焦点を当てた複数の決定ブロックを利用しています。 マスクされた自己監視学習による教師なし表現学習は、教師あり学習タスクのエンコーダーモデルを改善します。 TabNetエンコーダー。機能トランスフォーマー、注意深いトランスフォーマー、および機能マスキングで構成されています。分割ブロックは、処理された表現を分割して、後続のステップの注意深いトランスフォーマーと全体の出力で使用します。各ステップで、特徴選択マスクはモデルの機能に関する解釈可能な情報を提供し、マスクを集約してグローバルな特徴の重要な属性を取得できます。 論文:TabNet: Attentive Interpretable Tabular Learning https://arxiv.org/abs/1908.07442   Github: google-research/tabnet/ https://github.com/google-research/google-research/tree/master/tabnet   2.TabNetの実験 環境:Google Colab データセット:frmgham  Framingham Studyは、男性と女性の心血管疾患の発症に影響を与える体質的および環境的要因の縦断的調査です。 モデル:TabNet vs XGBoost モデル評価:Accuracy   2.1環境構築 TabNetのライブラリをインストールします。 !pip install pytorch-tabnet   ライブラリのインポート import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns   …

TabNet(表形式データ向けの深層学習) 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 »