この記事では、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 つのビッグデータ トレンド
6月29日、最新の研究により、人工知能によって生成されたツイートは実際の人間が書いたものよりも説得...
人工知能は意識を発達させることができるか?これはアメリカのテレビシリーズ「ウエストワールド」で取り上...
[[189044]]昨年、自動運転車がニュージャージー州モンマス郡に侵入した。チップメーカーのNvi...
まず、Zhihu の「アルゴリズム エンジニアになるのはどんな感じか」という質問に対する私の回答を共...
人工知能(AI)は生活のあらゆる分野に浸透しています。人工知能は医療にどのようなメリットをもたらすの...
近年、人工知能の継続的な台頭により、顔認識が広く使用されるようになり、「顔スキャン」の時代が静かに到...
[51CTO.com クイック翻訳]ディープニューラルネットワーク (DNN) には大量のトレーニ...
2021 年には技術変化のペースが加速し、歴史が示すように、2022 年もそのペースは加速し続けるで...
[[439547]]一部の研究者は、量子コンピューターがいつの日かデジタル暗号の解読や薬剤の設計な...
Andrew Ng 氏は、Tess Ferrandez 氏が修了したディープラーニング特別コースのイ...
7月9日、世界人工知能会議クラウドサミットが正式に開幕しました!アマゾン ウェブ サービスは、202...
3D 形状、2D 画像、および対応する言語記述を整合させることにより、マルチモーダル事前トレーニング...