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

ブログ    

推薦する

...

2019年、AI技術は製造業が小さな努力で大きな成果を達成するのを助けるだろう

[[251579]] 2019 年には、新世代の人工知能 (AI) ソリューションが注目を集めるでし...

OpenAI が ChatGPT と Bing 検索の統合を発表、ChatGPT Plus ユーザーのみが利用可能に

6月28日、モバイルチャットロボットChatGPTがインターネットにアクセスできるようになったが、検...

Forbes: 14 人の技術専門家が、将来 AI によって混乱が生じる業界を予測しています。

AI の恩恵を受ける業界はどれでしょうか?人工知能と機械学習はすでにさまざまな業界に導入されており...

SQL Server 2008 のデータ マイニングのための 9 つのアルゴリズム

SQL Server 2008 データ マイニング決定木アルゴリズム決定木は判断木とも呼ばれ、バイナ...

...

GPT-4 の RAW 画像はまだリリースされていないのですか? CMUの中国人医師の新作、大型モデルGILLは画像生成や検索が可能で誰でも遊べる

GPT-4 のマルチモーダル機能については、もう少し待たなければならないかもしれません。最近、CMU...

AI 駆動型スマートビルは将来のトレンドになるでしょうか?

人工知能 (AI) は、建物の管理と制御の方法に革命をもたらし、これまで以上に効率的でコスト効率の高...

私の国はAIや5Gを含む多くの技術で米国を上回っており、米国が私たちを絞め殺すことはますます困難になっています。

世界大国として、中国と米国は多くの分野、特に科学技術分野で競争している。中国は科学技術分野で比較的目...

Keras の重み制約を使用してディープ ニューラル ネットワークの過剰適合を減らす

[[333587]]重み制約は、ディープラーニング ニューラル ネットワーク モデルのトレーニング ...

2023 年の IT ネットワーク トレンド トップ 10

2023 年には、IT ネットワーキング分野でいくつかの重要なトレンドが流行するでしょう。大まかに...

130 の大学が人工知能専攻を追加。次の「陥没穴」専攻になるのでしょうか?

大学の専攻の盛衰は、時代の発展と技術の進歩を最もよく物語る証拠でもあります。今日のいわゆる「落とし穴...

インテリジェントロボットを活用してビジネス運営を強化する方法

インテリジェントロボットはビジネスの世界で大きな注目を集めています。スマートロボットの使用には、効率...

2つのセッションの提案から見るロボット産業の5つの大きなトレンド

感染症の影響で延期されていた2020年全国人民代表大会と中国人民政治協商会議が5月21日に開幕した。...

海外の専門家による人工知能の発展見通しに関する衝撃的な4つの予測

人工知能技術が成熟するにつれ、この技術のより広範な社会的、倫理的影響に十分な注意が払われていないので...