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が銀行業務をどう変えるか

ブログ    
ブログ    
ブログ    

推薦する

AIGC に向けてビジネスを準備するために CIO が尋ねるべき 8 つの質問

企業は現在、AIGC の可能性を活かすためにデータ、人材、プロセスを準備することが今後の課題であると...

クラッシュラマ2!マイクロソフトの13億パラメータphi-1.5は、単一のA100でトレーニングされ、SOTAを更新します

モデルが大きくなれば機能も増えるのでしょうか?しかし、そうではありません。最近、マイクロソフトの研究...

機械学習が詐欺防止に優れたツールである理由は何ですか?

現代技術の発展と向上により、生活はますます快適になりました。以前は複雑な操作を同時に実行することは不...

地球と宇宙の廃棄物問題を解決するためにAIを活用する4つの企業

人工知能は、世界中の組織において情報に基づいた意思決定を行うための重要なツールとなっています。人工知...

機械学習アルゴリズムの実践: ナイーブベイズ

[[197761]]序文前回の記事「機械学習アルゴリズムの実践: 決定木」では、決定木の実装について...

開発者にとって朗報:中国初の AI 自動脆弱性マイニング システムが公開テストを開始

最近、国家発展改革委員会は初めて「新インフラ」情報インフラの範囲を明確にした。5G、人工知能、クラウ...

2020 Forrester Wave レポート: Dynatrace が AI を活用した IT 運用 (AIOps) のリーダーに選出

「Forrester Wave™: IT 運用のための人工知能、2020 年第 4 四半期」レポート...

ビッグデータと AI を現代の教育とどのように組み合わせることができるでしょうか?

転載は歓迎しますが、署名し、「劉鵬の未来を見つめる」公開アカウントからの転載であることを明記し、この...

IoTとロボットの連携

明らかに、ロボット工学とモノのインターネットはまったく異なる分野です。しかし、両者が互いに成長し革新...

AIとクラウドコンピューティングの深い統合は何をもたらすのでしょうか?

「AIは多くのリソースを消費し、強力なコンピューティング能力を必要とし、規模の経済性を反映する技術...

オープンソースプロジェクト向けのChatGPTベースのコードレビューロボットプログラム

翻訳者 |ブガッティレビュー | Chonglouコードレビューは、現代のソフトウェア開発において重...

...

Python ベースのパーセプトロン分類アルゴリズムの実践

[[374354]]パーセプトロンは、バイナリ分類タスク用の線形機械学習アルゴリズムです。これは、人...

人工知能、VR、音声検索、従来のマーケティングモデルを変える「三銃士」

人工知能と関連技術はマーケティングの未来を変えつつあり、仮想現実 (VR)、音声検索、人工知能はマー...

...