NanoNets: データが限られている場合にディープラーニングを適用するにはどうすればよいでしょうか? (優れた)

NanoNets: データが限られている場合にディープラーニングを適用するにはどうすればよいでしょうか? (優れた)

私は AI をロケット船の建造に例えています。巨大なエンジンと大量の燃料が必要です。エンジンが大きくても燃料が足りなければ、ロケットを軌道に乗せることはできません。また、エンジンが小さくても燃料が多ければ、離陸に成功しない可能性もあります。したがって、ロケット船を建造するには、巨大なエンジンと大量の燃料が必要になります。

ディープラーニング(人工知能を作成するための重要なプロセスの 1 つ)についても同じことが言えます。ロケット エンジンはディープラーニング モデルであり、燃料はアルゴリズムを適用できる膨大な量のデータです。 ——アンドリュー・ン

ディープラーニングを使用して問題を解決する際の一般的な障壁は、モデルのトレーニングに必要なデータの量です。ビッグデータの必要性は、学習する必要があるモデル内のパラメータの数が多いことから生じます。

以下に、最近のモデルに必要なパラメータの数を示す例をいくつか示します。


ディープラーニングモデルの詳細

ニューラルネットワークはディープラーニングとも呼ばれ、積み重ねることができる階層構造です(レゴを想像してください)

ディープラーニングは、データが一方から入力され、推論や知識が他方から出力されるフローチャートとして考えることができる、大規模なニューラル ネットワークに他なりません。

ニューラル ネットワークを分解し、切り離し、好きな場所から推論を取り出すことができます。そこから何か意味のあることは得られないかもしれませんが、Google DeepDream のように実行することは可能です。

モデルサイズ ∝ データサイズ ∝ 問題の複雑さ

必要なデータの量とモデルのサイズの間には、興味深いほぼ直線的な関係があります。 基本的な考え方は、モデルは、データ内の関係 (画像のテクスチャや形状、テキストの文法、音声の音素など) と問題の具体的な詳細 (カテゴリの数など) の両方をキャプチャできるほど十分に大きくする必要があるということです。モデルの初期レイヤーは、入力のさまざまな部分間の高レベルの関係 (エッジやパターンなど) をキャプチャします。後のレイヤーは、最終的な決定を下すのに役立つ情報をキャプチャし、多くの場合、望ましい出力を区別するのに役立ちます。そのため、問題の複雑度が高い場合(画像分類など)、必要なパラメータの数とデータの量も非常に多くなります。


AlexNetが各ステップで見るもの

転移学習が救いの手となる!

特定のドメインの問題に取り組む場合、このサイズのモデルを構築するために必要なデータ量を見つけることができないことがよくあります。 ただし、1 つのタスク用にトレーニングされたモデルは、データ タイプ間の関係をキャプチャし、同じドメイン内のさまざまな問題に簡単に再利用できます。 この技術は転移学習と呼ばれます。

転移学習は、誰も守ろうとしない最高の秘密のようなものです。 業界内の誰もがそれを知っていましたが、外部の誰も知りませんでした。


Google トレンド 機械学習 vs ディープラーニング vs 転移学習

ディープラーニングのトップ論文を確認するには、「Awesome — Most Cited Deep Learning Papers」を参照してください。最も引用されているディープラーニング論文のうち、50% 以上が何らかの形の転移学習または事前トレーニングを使用しています。 転移学習は、リソース(データとコンピューティング)が限られている人々にもますます適用できるようになっていますが、残念ながら、このアイデアはそれにふさわしい社会化を受けていません。 それを最も必要としている人々はまだそれを知りません。

ディープラーニングが聖杯であるならば、データは門番であり、転移学習が鍵となります。

転移学習を使用すると、すぐに利用できる大規模なデータセットでトレーニングされた事前トレーニング済みモデルを取得し、同じ入力で異なる出力を持つまったく異なるタスクでトレーニングすることができます。 次に、再利用可能な機能を出力するレイヤーを探します。 このレイヤーの出力を入力機能として使用し、必要なパラメータが少ない、はるかに小さなネットワークをトレーニングします。 この小規模なネットワークは、事前トレーニング済みモデルからのデータ内のパターンをすでに学習しており、現在はそれが特定の問題にどのように関連するかを学習するだけです。 このようにして、ゴッホの作品を再現するために再利用できる猫検出モデルをトレーニングすることができます。

転移学習を使用するもう一つの大きな利点は、モデルが非常によく一般化されることです。 大規模なモデルはデータに過剰適合する傾向があり(つまり、基礎となる現象ではなくデータをモデル化する)、未知のデータでテストするとパフォーマンスが低下します。 転移学習により、モデルはさまざまな種類のデータを確認できるようになるため、世界の根本的なルールをより良く学習できるようになります。

オーバーフィッティングは学習ではなく記憶であると考えてください。 ——ジェームズ・ファグモス

転移学習によるデータ削減

青と黒のドレス対白と金のドレスの論争を終わらせたいとしましょう。青と黒のドレスと白と金のドレスの検証済み画像を収集し始めます。上記のような正確なモデル(1億4000万個のパラメータを持つ)を自分で構築したい場合。このモデルをトレーニングするには、120 万枚の画像を見つける必要がありますが、これは不可能な作業です。 そこで転移学習を試すことができます。

転移学習を使用してこの問題を解決するために必要なパラメータの数を計算します。

  • パラメータ数 = [入力サイズ + 1] * [出力サイズ + 1]
  • = [2048+1]*[1+1]~ 4098パラメータ

パラメータの数が 1.4×10⁸ から 4×10³ に 5 桁減少していることがわかります。 そこで、ドレスの画像を 100 枚未満収集することになりますが、これで十分でしょう。ふう!

ドレスの実際の色を知るのが待ちきれず、待ちきれない場合は、下にスクロールして、自分のドレスをモデル化する方法を確認してください。

· · ·

感情分析に関連する例を使用した転移学習のステップバイステップガイド

この例では、72件の映画レビューがあります

  1. 62には感情が割り当てられていないため、これらはプレモデルに使用されます。
  2. 8つには感情が割り当てられており、モデルのトレーニングに使用されます。
  3. 2つには感情が割り当てられており、モデルのテストに使用されます。

ラベル付けされた文(感情が関連付けられているもの)は 8 つしかないため、最初にコンテキストを予測するモデルを直接トレーニングします。 8 つの文だけでモデルをトレーニングすると、精度は 50% になります (50% はコインを投げて決定を下すようなものです)。

この問題を解決するために、転移学習を使用して、まず 62 個の文でモデルをトレーニングします。 次に、最初のモデルの一部を使用して、その上で感情分類器をトレーニングします。 8 つの文を使用してトレーニングし、残りの 2 つの文でテストすると、モデルは 100% の精度を生成します。

ステップ1

単語間の関係をモデル化するためのネットワークをトレーニングします。文中の単語を渡し、その単語が同じ文のどこに現れるかを予測してみてください。次のコードでは、埋め込み行列のサイズは vocabulary xembedding_size であり、各単語を表すベクトルを格納します (ここではサイズは「4」です)。

Github アドレス: https://gist.github.com/sjain07/98266a854d19e01608fa13d1ae9962e3#file-pretraining_model-py

ステップ2

同じコンテキストで表示される単語が同様のベクトル表現を取得できるように、このアイコンをトレーニングします。これらの文を前処理して、ストップワードをすべて削除し、トークン化します。次に、単語を 1 つずつ渡して、その単語ベクトルと周囲の単語との距離を短くし、その単語ベクトルとコンテキストに含まれていないランダムな単語との距離を最大化しようとします。

Github アドレス: https://gist.github.com/sjain07/3e9ef53a462a9fc065511aeecdfc22fd#file-training_the_pretrained_model-py

ステップ3

次に、その文章が表現しようとしている感情を予測します。現在、肯定ラベルと否定ラベルが付いた文が 10 個 (トレーニング用に 8 個、テスト用に 2 個) あります。前のステップで得られたモデルにはすでにすべての単語から学習されたベクトルが含まれており、これらのベクトルの数値属性は単語のコンテキストを表すことができるため、感情の予測をさらに簡素化できます。

このとき、文を直接使用するのではなく、文ベクトルをその文に含まれるすべての単語の平均値に設定します (このタスクは、実際には LSTM に似た技術によって実現されます)。文ベクトルは入力としてネットワークに渡され、出力はコンテンツが肯定的であるか否定的であるかのスコアになります。隠れた中間層を使用し、ラベル付きの文でモデルをトレーニングしました。ご覧のとおり、毎回 10 個のサンプルのみが使用されたにもかかわらず、モデルは 100% の精度を達成しました。

Github アドレス: https://gist.github.com/sjain07/a45ef4ff088e01abbcc89e91b030b380#file-training_the_sentiment_model-py

これは単なる一例ですが、転移学習技術の助けにより、精度が 50% から 100% に急速に向上したことがわかります。完全な例とコードを表示するには、次のアドレスにアクセスしてください。

https://gist.github.com/prats226/9fffe8ba08e378e3d027610921c51a78

転移学習の実際の例

  • 画像認識: 画像強化、スタイル転送、物体検出、皮膚がん検出。
  • テキスト認識: ゼロショット翻訳、感情分類。

転移学習の実装の難しさ

モデルは少量のデータでトレーニングできますが、このテクノロジーを使用するには高度なスキルが必要です。上記の例でハードコードされたパラメータの数を見て、モデルをトレーニングする前にこれらのパラメータを常に調整する必要がある場合、転移学習技術を使用することがいかに難しいか想像してみてください。

  1. 転移学習技術が現在直面している問題は次のとおりです。
  2. 事前トレーニングに必要な大規模なデータセットを見つける
  3. 事前トレーニングに使用するモデルの決定
  4. どちらかのモデルが期待どおりに動作しない場合は、デバッグが困難になります。
  5. モデルをトレーニングするのにどれだけの追加データが必要か不明
  6. 事前学習済みモデルを使用する際にどこで停止するかを決めるのが難しい
  7. 事前トレーニング済みモデルに基づいて、モデルに必要なレイヤー数とパラメータを決定する
  8. 統合モデルをホストして提供する
  9. より多くのデータやより優れたテクノロジーが利用可能になったら、事前トレーニング済みのモデルを更新します。

データサイエンティストを見つけるのは困難です。データ サイエンティストを発見できる人を見つけるのも同じくらい難しいのです。 --Krzysztof Zawadzki

転移学習をより簡単に

私たちは、こうした問題を身をもって体験した後、転移学習技術に対応したクラウドベースのディープラーニングサービスを構築し、この使いやすいサービスを通じてこれらの問題を解決しようと試みました。このサービスには、何百万ものパラメータにトレーニングされた事前トレーニング済みモデルのコレクションが含まれています。独自のデータをアップロードする(またはインターネットでデータを検索する)だけで、サービスが特定のタスクに最適なモデルを選択し、既存の事前トレーニング済みモデルに基づいて新しい NanoNet を構築し、データを NanoNet に入力して処理します。


NanoNets の転移学習技術 (このアーキテクチャは基本的なプレゼンテーションのみです)

独自の NanoNet (画像分類) を構築する

1. ここで処理したいカテゴリを選択します。

2. ワンクリックで Web の検索とモデルの構築を開始します (独自の画像をアップロードすることもできます)。

3. 青と金のドレスをめぐる論争を解決します(モデルの準備ができたら、シンプルで使いやすい Web インターフェースを通じてテスト画像をアップロードできるようにし、特定の言語に依存しない API も提供します)。


<<:  データ拡張: データが限られている場合にディープラーニングをどのように使用するか? (下)

>>:  50 以上の実用的な機械学習および予測 API (2018 年版)

推薦する

...

2021 年のトップ 12 AI ツールとフレームワーク

AI トレンドがあらゆるところで広がる 2021 年を迎える準備はできていますか? ここでは、202...

詳細な分析: AI LLM フレームワークの通信モジュール - なぜそれがコア モジュールなのか

この記事は、AI LLMフレームワークアーキテクチャシリーズの第2弾です。通信モジュール人工知能 (...

機械学習に関する7つの誤解

ディープラーニングを学ぶ過程では、私たちが当たり前だと思っているさまざまな噂やさまざまな「こだわり」...

オープンソース! Gartner の 100 ページの機械学習ブックが無料でダウンロードできるようになりました。

今日の大企業は、産業化以来最大の変革を経験しています。人工知能は、産業や私たちの働き方、考え方、交流...

人工知能がソフトウェアテストに混乱をもたらす4つの方法

ソフトウェアテストにおける人工知能の使用はますます一般的になりつつあり、それには十分な理由があります...

顔認識が再び物議を醸す

人工知能の中で最も議論の多い技術分野といえば、顔認識技術でしょう。 1 つ目は、顔認識の収集方法であ...

一般的な機械学習アルゴリズム11種の紹介

近年、需要の高さと技術の進歩により、機械学習の人気は大幅に高まっています。 データから価値を生み出す...

注意深い! CCTVの科学的テスト:マスクは顔の代わりに携帯電話のロックを解除することもできる

[[349033]]テクノロジーの継続的な進歩により、私たちの日常生活はますます便利になっています。...

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

今日、人工知能 (AI) は多くの業界に多くの資産と利点をもたらし、チャットボットから Siri や...

AI Eyes: テクノロジーを活用して予防可能な失明をなくす

暗い世界に生きる自分を想像してみてください。人生の大半を目が見えている状態で過ごし、ある日突然失明し...

自然言語処理シーケンスモデル - CRF 条件付きランダムフィールド

シーケンスモデルにおけるHMM(隠れマルコフモデル)を習得した後は、別のシーケンスモデルであるCRF...

ネイチャー誌の年間トップ10科学者・イベント:天問1号の主任設計者、張栄橋氏がリスト入り

Nature の年間トップ 10 科学者およびトップ 10 科学イベントが発表されました。今年の科学...

年末総括:セキュリティ業界は2020年にCOVID-19パンデミックの課題に対処するのに貢献した

新型コロナウイルス感染症のパンデミックは、セキュリティ業界を含む世界中のあらゆる業界のあらゆる側面に...

将来のAIの世界における興味深い仕事

現在、人工知能 (AI) システムは反復的で非創造的なタスクを実行するのが得意ですが、スクリプトから...