機械学習で使用する説明変数群から、目的変数に対して影響度の低い変数を除外する機能を提供します。
削減するにあたり、2種類の削減方法をサポートしています。
目的変数が説明変数にどれだけ依存しているかを調べ、依存度の低いものを不要な変数として除外。
説明変数同士の相互の依存度を調べ、同等の変数であると判断した場合、片方の説明変数を冗長として除外。
なお、2については、処理を行わないという設定もできます。1は短時間で終了しますが、2は説明変数内での総当たりチェックとなり、1に比べるとやはり時間がかかってしまいます。
まず簡単に実施したい場合は1のみ、しっかりと実施したい場合は1,2の双方を実行するようにして下さい。
※本プログラムは、弊社の特許技術(特許第7526525号)を利用しています。
MNISTは手書き文字の認識用のデータセットですが、全てのピクセルを使わないと識別できないわけではありません。
本ソフトウェアを利用することで、性能をある程度維持した状態で説明変数を削減することが可能です。但し、既に必要な説明変数だけになるように精査されている場合はその限りではありません。
ケース 説明変数の数 パラメタ数 成績(f値)
通常 784 927,090 0.982
削除ケース1 227 78,660 0.975
削除ケース2 212 68,804 0.974
削除ケース3 182 50,879 0.972
削除ケース4 37 2,280 0.860
なお、モデルは Keras を用いて、3層のMLPを構成し、それを対象として学習・評価した結果を提示しています。モデルとしては、10クラス分類のモデルとなります。中間層の数は、入力層(=説明変数の数)の半分としています。
成績については、乱数の影響を考慮し、3回の試行の平均値を結果としています。
削除ケース1~4は、全て2種類の削減方法を用いています。
成績を見ていただければ、本ソフトウェアの効果はご理解頂けると覆います。MNISTは直感的に不要な説明変数が多いと感じますが、実際に評価してみると説明変数の特徴を考えるとかなり冗長であることがわかります。
エッジ機器など、リソースが制限された環境で使うようなモデルを作る場合、本ソフトウェアの出力を用いてモデルを小型化することは効果があります。
また、モデルが小さくなるので、学習や推論にかかるコストも小さくなります。
モデル評価の初期段階など、性能よりも処理効率を重視するフェーズでも、本ソフトウェアは有効に活用できると考えます。