機械学習タスクの機能を設計する方法についてアドバイスや読み物はありますか?ニューラルネットワークでも、優れた入力機能は重要です。選択した機能は、必要な数の隠れニューロンと必要な数のトレーニング例に影響します。
以下は問題の例ですが、私は一般的に特徴工学に興味があります。
動機付けの例:パズル( 15パズルや倉庫番など) を見るときの良い入力は何ですか?2つの状態のどちらが目標に近いかを認識することは可能でしょうか?
優れた特徴エンジニアリングには2つのコンポーネントが含まれます。1つ目は、解決しようとしているタスクのプロパティと、それらが使用している分類子の長所と制限とどのように相互作用するかを理解することです。2つ目は実験的な作業で、期待をテストし、実際に機能するものと機能しないものを見つけます。
これは繰り返し行うことができます。問題をトップダウンで理解することで実験が促進され、それらの実験で学習するボトムアップの情報は、問題をよりよく理解するのに役立ちます。問題をより深く理解することで、より多くの実験を推進できます。
分類器へのフィッティング機能
ロジスティック回帰のような単純な線形分類器または線形カーネルを備えたSVMを使用しているとしましょう。測定して分類器への入力として提供できるさまざまな属性間に興味深い相互作用があると思われる場合は、それらの相互作用をキャプチャする機能を手動で構築して提供する必要があります。ただし、多項式またはガウスカーネルでSVMを使用している場合、入力変数間の相互作用は、モデルの構造によってすでにキャプチャされています。
同様に、一部の入力変数が他の入力変数よりもはるかに広い範囲の値をとる場合、SVMのパフォーマンスが低下する可能性があります(たとえば、ほとんどの機能は0または1の値を取りますが、1つの機能は-1000から1000の間の値を取ります)。したがって、SVMの特徴エンジニアリングを行う場合は、分類器に提供する前に、特徴の値を正規化してみることをお勧めします。ただし、決定木またはランダムフォレストを使用している場合、これらの分類子はさまざまな機能がとる値の大きさの違いに対してロバストであるため、このような正規化は必要ありません。
特にパズルの解き方に関する注意
複雑な状態空間の問題を解決することを検討している場合は、Q学習のような強化学習アプローチを使用することをお勧めします。これは、システムによる一連の中間ステップによっていくつかの目標を達成することを含む学習タスクを構造化するのに役立ちます。