TensorFlow が NSL ニューラル構造学習フレームワークをオープンソース化

TensorFlow が NSL ニューラル構造学習フレームワークをオープンソース化

本日、Google TensorFlow は、ニューラル グラフ学習手法を使用してグラフと構造化データでニューラル ネットワークをトレーニングする Neural Structured Learning (NSL) オープン ソース フレームワークのリリースを発表しました。

Google TensorFlow ブログによると、NSL は初心者から上級者まで、構造化信号を使用してニューラル ネットワークをトレーニングできるシンプルなフレームワークであり、正確で堅牢なビジョン、言語理解、予測モデルの構築に使用できます。

  • プロジェクトアドレス: https://github.com/tensorflow/neural-structured-learning

構造化データにはサンプル間の豊富な関係情報が含まれており、多くの機械学習タスクがその恩恵を受けています。たとえば、引用ネットワークのモデリング、文の言語構造の知識グラフに関する推論と推論、分子指紋の学習には、個々のサンプルだけでなく構造化された入力から学習するモデルが必要です。

これらの構造は、明示的に(たとえば、グラフとして)与えることも、暗黙的に(たとえば、敵対的例として)推論することもできます。トレーニング フェーズ中に構造化シグナルを活用すると、特にラベル付けされたデータの量が比較的少ない場合に、開発者はより高いモデル精度を実現できます。 Google の調査によると、構造化シ​​グナルを使用したトレーニングによって、より堅牢なモデルが実現できることもわかっています。

図 2. ネットワーク学習の一般的なプロセス。

Google はこれらの技術を使用して、画像の意味的埋め込みの学習などのモデルのパフォーマンスを大幅に向上させました。

Neural Structured Learning (NSL) は、構造化された信号を使用してディープ ニューラル ネットワークをトレーニングするためのオープン ソース フレームワークです。これは、Google が論文「ニューラル グラフ学習: グラフを使用したニューラル ネットワークのトレーニング」で紹介したニューラル グラフ学習を実装し、開発者がグラフを使用してニューラル ネットワークをトレーニングできるようにします。

ここでのグラフは、ナレッジグラフ、医療記録、ゲノムデータ、マルチモーダル関係(画像とテキストのペアなど)など、多岐にわたります。さらに、NSL は敵対的学習にも適用できます。つまり、敵対的摂動を使用して入力サンプル間の構造を動的に構築できます。

NSL を使用すると、TensorFlow ユーザーはさまざまな構造化信号を簡単に組み込んで、さまざまな学習シナリオ (教師あり、半教師あり、教師なし (表現) 設定) でニューラル ネットワークをトレーニングできます。

NSLの仕組み

NSL フレームワークでは、構造化された情報 (グラフとして定義できるデータや暗黙的な敵対的サンプルなど) を使用してニューラル ネットワークのトレーニングを正規化し、モデルが正確な予測を行うことを学習できるようにします (監督損失を最小限に抑えることにより)。同時に、同じ構造からのすべての入力が同じ類似性を維持するようにします (最近傍損失を最小限に抑えることにより)。この手法は一般化可能であり、フィードフォワード ニューラル ネットワーク、畳み込みニューラル ネットワーク、再帰型ニューラル ネットワークなどのニューラル ネットワーク アーキテクチャで使用できます。

NSL の基本構造。

NSL によるモデルの構築

NSL を使用すると、構造化データを使用するモデルの構築が簡単かつ非常に直感的になります。グラフ(特定の構造を持つ)とトレーニング サンプルが与えられると、NSL はこれらのサンプルを TFRcords に入力してダウンサンプリング操作を実行するツールを提供します。

具体的なコードは次のとおりです。グラフやデータを入力するために、関連するコマンドライン ツールを使用できます。

  1. python pack_nbrs.py --max_nbrs= 5 \
  2. ラベル付きデータ.tfr \
  3. ラベルなしデータ.tfr \
  4. グラフ.tsv \
  5. マージされた例.tfr

その後、NSL は、カスタマイズされたモデルを「パッケージ化」し、処理されたサンプルを入力し、グラフ構造を使用して正規化操作を実行できるいくつかの API を提供します。具体的なコードは次のとおりです。

  1. neural_structured_learning を nsl としてインポートします
  2. # シーケンシャル、機能的、またはサブクラスのカスタム モデルを作成します。
  3. base_model = tf.keras.Sequential(…)
  4. # カスタム モデルをグラフ正規化でラップします。
  5. graph_config = nsl.configs.GraphRegConfig(
  6. neighbor_config = nsl.configs.GraphNeighborConfig(max_neighbors = 1 ))
  7. graph_model = nsl.keras.GraphRegularization(ベースモデル、graph_config)
  8. # コンパイル、トレーニング、評価します。
  9. graph_model.compile(オプティマイザ='adam',
  10. 損失=tf.keras.losses.SparseCategoricalCrossentropy()、メトリック=['精度'])
  11. graph_model.fit(train_dataset、エポック= 5 )
  12. graph_model.evaluate(テストデータセット)

わずか 5 行のコード (コメントを含む) を追加するだけで、NSL はニューラル モデルとグラフ信号を組み合わせることができます。データの観点から見ると、グラフ構造を使用すると、モデルはトレーニング中にラベル付けされたデータを少なく使用しても、精度をあまり失うことはありません (元の教師あり学習よりも 10% または 1% しか少なくありません)。

明示的な構造のないグラフによるトレーニング

明示的な構造を持つグラフがない場合、または入力として使用されていない場合、NSL をトレーニングするにはどうすればよいですか? NSL は、生データからグラフを構築するためのツールを提供します。さらに、NSL は暗黙的な構造シグナルから敵対的サンプルを「導出」するためのツールを提供します。敵対的サンプルはモデルを意図的に誘導するために使用され、トレーニングされたモデルを小さな入力変動に対してより堅牢にします。関連するコードは次のとおりです。

  1. import neural_structured_learning as nsl # シーケンシャル、機能的、またはサブクラスのカスタム モデルを作成します。
  2. base_model = tf.keras.Sequential(...) # カスタムモデルをグラフ正規化でラップします。
  3. graph_config = nsl.configs.GraphRegConfig(
  4. neighbor_config = nsl.configs.GraphNeighborConfig(max_neighbors= 1 ))
  5. graph_model = nsl.keras.GraphRegularization(base_model, graph_config) # コンパイル、トレーニング、評価を行います。
  6. graph_model.compile(オプティマイザ='adam',
  7. 損失=tf.keras.losses.SparseCategoricalCrossentropy()、メトリック=['精度'])
  8. graph_model.fit(train_dataset、エポック= 5 )
  9. graph_model.evaluate(テストデータセット)

5 行未満の追加コード (コメントを含む) で、暗黙的な構造を持つ敵対的サンプルを使用してトレーニングされたニューラル モデルを取得できます。経験的に、敵対的サンプルがない場合、悪意はあるが人間には検出できない変動データが入力に追加されると、モデルの精度は大幅に低下します (例: 30% 低下)。トレーニングに敵対的サンプルを追加すると、このような問題を回避できます。

<<:  ウェルズ・ファーゴ:人工知能と機械学習は「諸刃の剣」

>>:  AIが銀行業務をどう変えるか

ブログ    
ブログ    
ブログ    

推薦する

人工知能は機械に流動的知能を与えることができるか?

2021年2月初旬に開催された第35回AAAI人工知能会議で、新しいタイプの人工知能(AI)機械学...

AI は銀行がますます激化する詐欺の競争に勝つためにどう役立つか

今日のイノベーションのペースが競争だとしたら、世界は猛烈なスピードで変化しています。今日の世界で起こ...

...

...

ディープラーニングのためのテキスト前処理方法

[[432936]] [51CTO.com クイック翻訳]昨今、ディープラーニング、特に自然言語処理...

マイクロソフトのグローバル副社長ハリー・シャム氏:AIは社会変革を極限まで推し進める

[[248704]] 11月6日午前のニュース、第20回「21世紀のコンピューティング」学術セミナー...

...

...

世界初の大型モデルエージェントが発売!口を動かすだけでPCが働き者になる

最近、謎のアシスタントであるシャオ・シュアイの助けにより、彼のオフィスの効率は以前に比べて10倍以上...

今後 10 年間で人工知能が私たちの生活を支配するようになるとき、携帯電話はどのようなものになるでしょうか?

テクノロジー業界のほとんどの人は、今後 10 年以内にユビキタス テクノロジーが 1 日のあらゆる瞬...

オフライン手法の可能性を最大限に引き出すために、武漢大学とKuaishouは分離型ビデオインスタンスセグメンテーションフレームワークDVISを提案した。

ビデオセグメンテーションタスクは、画像セグメンテーションタスクの拡張版です。ビデオ内のすべてのターゲ...

ベストプラクティスを実際のデザインパターンに抽象化することはできますか?機械学習

機械学習におけるデザインパターン定義上、デザイン パターンは一般的な問題に対する再利用可能なソリュー...

人工知能(AI)がビデオマーケティングを変える

ビデオ マーケティングで人工知能 (AI) を使用すると、企業はユーザーの好みを分析してカスタマイズ...

マイクロソフトとヤフーが検索広告契約を締結、Bingがヤフーの独占アルゴリズムに

7月29日、これまでの多くの噂がついに確認された。マイクロソフトとヤフーは10年間の検索協力契約を締...

2,000 ドル相当のコースノートをオープンソース化しました。講演者はKaggleの元チーフサイエンティストです!

数日前、fast.ai の創設者であり、Kaggle の元主任科学者である Jeremy Howar...