ニューラルネットワークに特徴選択/エンジニアリングが必要なのはなぜですか?


14

特にkaggleコンペティションのコンテキストでは、モデルのパフォーマンスはすべて機能の選択とエンジニアリングに関するものであることに気付きました。従来の/古い学校のMLアルゴリズムを処理する場合にそうなる理由は十分に理解できますが、ディープニューラルネットワークを使用する場合にそうなる理由はわかりません。

深層学習の本の引用:

ディープラーニングは、他のより単純な表現で表現される表現を導入することにより、表現学習におけるこの中心的な問題を解決します。深層学習により、コンピューターはより単純な概念から複雑な概念を構築できます。

したがって、「情報がデータ内にある」場合、十分に深く、十分にパラメーター化されたニューラルネットワークは、十分なトレーニング時間が与えられた場合に適切な機能を取得すると常に考えていました。


4
あなたの脳は機械よりもまだ強力なので、人間からの少しの助けが長い道のりを進みます
Aksakal

機能の選択/エンジニアリングが必要だと誰が言うのですか?参考資料を教えてください。画像を操作する場合、画像はエンドツーエンドでほとんど機能します...

@ user2137591それがポイントです。文献では、ニューラルネットは機能エンジニアリングと選択を自動的に行うため、従来の機械学習からのステップアップとして描かれていることが多いようです(ディープラーニングの本のGoodfellow、Bengio、Courvilleが暗示するように)。これは、情報がまだ不足していると私が考えるCVまたはNLPの多くのタスクに当てはまります。一方、多くのノイズの多いデータが利用可能な競合データサイエンス(カグル)では、競合ソリューションを構築する上で最も重要な要素は「魔法の特徴」を見つけることであると一般的に考えられています。
CephasW 2018年

私はCompVisについて話すことができます。この場合、機能エンジニアリングを行って後でネットワークにフィードするプロジェクトを思い出せません...これは、通常は画質が低い医療画像データにも当てはまります。これは他の分野とは異なるかもしれません...この点に関して参照できる論文や出版された情報源はありますか?感謝します。

回答:


18
  • 「十分に深い」ネットワークが手に負えないほど巨大で、モデルのトレーニングが高すぎる(AWS料金が加算される)場合、またはリソースに制約のある環境にネットワークをデプロイする必要がある場合はどうなりますか?

  • ネットワークが適切にパラメーター化されていることを、アプリオリにどのようにして知ることができますか?うまく機能するネットワークを見つけるには、多くの実験が必要です。

  • 使用しているデータが、数千または数百万のビットで構成されるバイナリ文字列など、各シーケンスが異なる長さの標準的な分析方法に「適さない」場合

  • ユーザーレベルのデータに関心があるが、トランザクションレベルのデータのみを収集するデータベースを使用せざるを得ない場合はどうでしょうか。

  • データのような整数の形であると仮定し、およびタスクは、この例では、ターゲットであるので、数字の合計を予測することである。各桁を解析して配列にしてからその配列を合計すること( "機能エンジニアリング")は簡単ですが、それ以外の場合は困難です。12,32,486,73,5,18,7

私たちはデータ分析が「ターンキー」である世界に住みたいと思いますが、これらの種類のソリューションは通常、特別な場合にのみ存在します。画像分類のための深いCNNの開発には多くの作業が費やされました。以前の作業では、各画像を固定長のベクトルに変換するステップがありました。

特徴エンジニアリングにより、開業医は問題に関する知識を直接、フィードフォワードネットワークに適した固定長ベクトルに変換できます。特徴選択は、信号が失われるほど多くの無関係な特徴を含めるという問題を解決し、モデルへのパラメーターの数を劇的に減らすことができます。


6

ここでのキーワードは、事前スケールです。簡単な例として、写真から人の年齢を予測しようとしていると想像してください。画像と年齢のデータセットを使用すると、ディープラーニングモデルをトレーニングして予測を行うことができます。画像の90%は役に立たないため、これは客観的に本当に非効率的であり、人物がいる領域だけが実際に役立ちます。特に、人の顔、体、そしておそらく服。

一方、事前に訓練されたオブジェクト検出ネットワークを使用して、最初に人物の境界ボックスを抽出し、画像をトリミングしてから、ネットワークに渡すこともできます。このプロセスにより、いくつかの理由でモデルの精度が大幅に向上します。

1)最初に人を見つける必要がないのとは対照的に、すべてのネットワークリソース(つまり、重み)は、年齢予測の実際のタスクに集中できます。人の顔には便利な機能が含まれているため、これは特に重要です。そうしないと、必要な細かい機能が最初の数層で失われる可能性があります。理論的には十分に大きなネットワークでこれを解決できるかもしれませんが、それは途方もなく非効率的です。トリミングされた画像は、元の画像よりもかなり規則的です。元の画像には大量のノイズがありますが、切り取られた画像の不一致は、目的と非常に高い相関があります。

2)トリミングされた画像は、同じ縮尺になるように正規化できます。これにより、2番目のネットワークがスケーリングの問題に対処するのに役立ちます。元のイメージでは、人が近くまたは遠くに発生する可能性があるためです。スケールを事前に正規化することで、トリミングされた画像が完全にトリミングされた画像を満たす人物がいることが保証されるようにします(遠くにある場合はピクセル化されますが)。これがスケーリングにどのように役立つかを確認するために、元の画像の幅と高さの半分であるトリミングされたボディは、処理するピクセルが4分の1少ないため、この画像に同じネットワークを適用すると、各レイヤーで元のネットワークの受容フィールドが4倍になります。

たとえば、Kaggleの肺の競争では、上位のソリューションの共通のテーマは、肺の画像を可能な限り切り取って各肺のコンポーネントを分離する何らかの前処理でした。効果は立体的であるため、これは3D画像で特に重要です。各次元の20%を削除すると、ほぼ半分のピクセルが削除されます。


4

この現象に関する私の直感は、学習するモデルの複雑さに関連しています。ディープニューラルネットワークは、理論的にあらゆる関数近似できますが、パラメーター空間の次元は、数百万の場合のように非常に大きくなる可能性があります。したがって、実際に優れたニューラルネットワークを見つけることは非常に困難です。私は、特徴エンジニアリングをアルゴリズムに有利な出発点を与えると考えています。ある意味で十分なデータ表現に関する追加情報を提供します。もちろん、これは正式な説明ではありません。この質問は科学的に厳密に答えることは本当に難しいかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.