この記事では、TF.Learn API を使用して、ワイド線形モデルとディープ フィードフォワード ニューラル ネットワークを同時にトレーニングする方法を説明します。このアプローチは、記憶と一般化の利点を組み合わせたものです。これは、スパースな入力特徴 (つまり、カテゴリ特徴には可能な値の大きなドメインがある) を持つ一般的な大規模回帰および分類の問題に適しています。ワイド ラーニングとディープ ラーニングの仕組みについて詳しく知りたい場合は、研究論文「Wide & Deep Spectrum of Models」を参照してください。では、簡単な例を見てみましょう。 上の図は、ワイド モデル (スパースな特徴と変換プロパティを持つロジスティック回帰モデル)、ディープ モデル (1 つの埋め込み層と複数の隠し層を持つフィードフォワード ニューラル ネットワーク)、ワイドおよびディープ モデル (2 つのモデルの共同トレーニング) の違いを示しています。大まかに言えば、TF.Learn API を使用してワイド、ディープ、またはワイドとディープのモデルを構成する手順は 3 つだけです。
インストール このチュートリアルのコードを試してみたい場合は、次の手順に従ってください。 1. TensorFlow をインストールします。こちらにアクセスしてください。 2. チュートリアル コードをダウンロードします。 3. pandas データ分析ライブラリをインストールします。このチュートリアルでは pandas データを使用する必要があるためです。 tf.learn は pandas を必要としませんが、pandas をサポートしています。 pandasをインストールします: a. pip を取得します。
b. pipを使用してpandasをインストールする
インストールに問題がある場合は、pandas の Web サイトの指示に従ってください。 4. チュートリアルで説明されている線形モデルをトレーニングするには、次のコマンドを実行します。
このコードがどのように線形モデルを構築するかを確認してください。 基本的な機能列を定義する まず、使用する基本的なカテゴリ機能と連続機能の列を定義します。これらの列は、モデルの幅と深さの両方の部分の構成要素として機能します。
ワイドモデル: 交差した特徴列を持つ線形モデル ワイド モデルは、スパースで交差した特徴列を持つ線形モデルです。
交差した特徴列を持つワイドモデルは、特徴間のスパースな相互作用を効果的に記憶できます。つまり、交差した特徴列は、トレーニング データに出現しなかった特徴の組み合わせに一般化することはできません。埋め込みを使用してディープモデルを追加してこれを修正しましょう。 ディープモデル: 組み込みニューラルネットワーク ディープモデルは、前の図に示すように、フィードフォワード ニューラル ネットワークです。それぞれのスパースな高次元カテゴリ特徴は、まず、埋め込みベクトルと呼ばれることが多い低次元の密な実数値ベクトルに変換されます。これらの低次元の密な埋め込みベクトルは連続的な特徴と連結され、フォワードパスでニューラル ネットワークの隠し層に送られます。埋め込み値はランダムに初期化され、他のモデルパラメータと一緒にトレーニングされ、トレーニング損失を最小限に抑えます。埋め込みについてさらに詳しく知りたい場合は、チュートリアル「単語のベクトル表現」を参照するか、Wikipedia の「単語の埋め込み」をお読みください。 embedding_column を使用してカテゴリ埋め込み列を設定し、連続列と連結します。
埋め込みの次元が高くなるほど、モデルがこれらの特徴の表現を学習するために必要な自由度が高くなります。簡単にするために、すべての特徴列の次元を 8 に設定します。経験則として、次元から始める最良の方法は、\log_{2}(n) または k\sqrt[4]{n} の値から始めることです。ここで、n は特徴列内の一意の特徴の数、k は小さな定数 (通常は 10 未満) です。 高密度埋め込みにより、ディープモデルはより適切に一般化され、トレーニング データで以前に遭遇しなかった特徴についてより適切な予測を行うことができます。しかし、2 つの特徴列間の基になる相互作用行列がスパースかつ高ランクである場合、特徴列の効果的な低次元表現を学習することは困難です。この場合、いくつかの例外を除いて、ほとんどの特徴ペア間の相互作用はゼロになるはずですが、密な埋め込みにより、すべての特徴ペアの予測がゼロ以外になるため、過度に一般化される可能性があります。一方、交差特徴を持つ線形モデルは、より少ないモデルパラメータでこれらの「異常なルール」を効果的に記憶できます。 それでは、ワイドモデルとディープモデルを共同でトレーニングして、それぞれの長所と短所を活用する方法を見てみましょう。 ワイドモデルとディープモデルの組み合わせ ワイド モデルとディープ モデルは、最終出力のログ オッズを予測として組み込むことによって結合され、その後、ロジスティック損失関数に入力されます。グラフの定義と変数の割り当てはすべて完了しているので、DNNLinearCombinedClassifier を作成するだけです。
モデルのトレーニングと評価 モデルをトレーニングする前に、TensorFlow 線形モデル チュートリアルで行ったように、国勢調査データセットを読んでください。 入力データ処理のコードも便宜上提供されています。
データを読み取った後、モデルをトレーニングして評価できます。
出力の最初の行は、accuracy: 0.84429705 のようになります。ワイド&ディープ モデルを使用すると、ワイド線形モデルの精度が約 83.6% から約 84.4% に向上することがわかります。エンドツーエンドの実際の例を確認したい場合は、サンプル コードをダウンロードできます。 このチュートリアルは、API にすぐに慣れるための、小さなデータベースを使用した単純な例であることに注意してください。まばらな特徴列と多数の可能な特徴値を持つ大規模なデータセットがある場合、ワイド ラーニングとディープ ラーニングはさらに強力になります。また、ワイドラーニングとディープラーニングが実際に大規模な機械学習にどのように適用されているかについて詳しく知るには、当社の研究論文にご注目ください。 |
<<: AIのために知っておくべき10のディープラーニング手法
>>: 2018 年に人工知能を変える 5 つのビッグデータ トレンド
2017年5月に世界保健機関が発表したデータによると、世界中で毎年約125万人が交通事故で亡くなって...
機械学習の分野では悲観的な見通しが広がっています。機械学習の人材の採用は減速しています。 [[334...
今は少し理解できました。面接の過程で、面接官が私たちにコードを手書きで書くように頼むことがあります。...
6月14日、OpenAIは生成型人工知能の分野での競争上の優位性を維持するため、テキスト生成モデルを...
機械は損失関数を通じて学習します。これは、特定のアルゴリズムが与えられたデータをどれだけ適切にモデル...
[[405587]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
ハイテクノロジーの発展により、ロボットは映画に登場するものではなく、現実のものとなりました。人工知能...
人々は「ソフトウェア 2.0」の時代に入りつつあります。人工知能、ディープラーニング、機械学習、高度...
[51CTO.com クイック翻訳]グラフィックは人々の仕事や生活のいたるところに存在します。たと...
2019年10月26日、Testinが主催する第2回NCTS中国クラウドテスト業界サミットが北京で開...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...