分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。
スモールデータ、すなわちサンプル数が小さいデータセットにおいては、データ解析・機械学習を慎重に行う必要があります。スモールデータにおける問題の詳細は、こちらに書いた通りです。
ここでは、そのようなスモールデータに対するアプローチ方法をまとめます。アプローチ方法として、状況の評価と状況の改善がありますので、それらに分けてまとめます。
[状況の評価] y-randomization
状況の評価としては、y-randomization があります。
y-randomization は、現状のスモールデータが偶然の相関の影響をどれくらい受けているかを評価します。現状のスモールデータで構築したモデルを評価したときに、評価結果がどれだけ信頼できないかを評価できます。
トレーニングデータとテストデータの分割や後に出てくるダブルクロスバリデーションによって、回帰モデルやクラス分類モデルの予測性能を評価しますが、スモールデータでは偶然の相関によって、例えば r2 が 1 になりやすかったり、正解率が 100% になりやすかったりします。r2 が 0.9 になったとしても、y-randomization の結果の r2 が 0.8 でしたら、その 0.9 にはほとんど意味がなく、0.9 – 0.8 = 0.1 しか意味がありません。このように、y-randomization によりスモールデータの状況の評価ができます。
[状況の改善] ダブルクロスバリデーション
状況の改善としてダブルクロスバリデーションがあります。
トレーニングデータとテストデータの分割では、全サンプルを2つ、すなわちトレーニングデータとテストデータに分けるため、どちらか一方を増やすともう一方が減ってしまいます。スモールデータでサンプル数が小さいときには、トレーニングデータとテストデータのいずれかのサンプルが少なくなってしまいます。
ダブルクロスバリデーションでは、テストデータを全サンプルに、トレーニングデータを (全サンプル – 1サンプル) にできます。ダブルクロスバリデーションによって安定的に予測モデルやクラス分類モデルの予測精度評価ができるため、モデルの過信または過小評価を防げます。
[状況の改善] 特徴量を減らす
状況の改善として、特徴量を減らす方法があります。y-randomization で触れたように、スモールデータの問題の一つが偶然の相関です。特徴量を減らすことで、偶然の相関を低減できます。ただし、特徴量を減らすときに、適切な方法で減らしたり、一部特徴量を追加してその分他の特徴量を多く減らしたりすることが重要です。また、特徴量を減らすときに、y の情報を使用してはいけません。y の情報を使うことで、結局、偶然の変換によって特徴量を減らすことになってしまいます。
x だけで特徴量を減らす方法としては、同じ値を持つサンプルの割合や x 間の相関係数に基づいて削除する方法があります。
また、主成分分析やオートエンコーダのように、x の情報を圧縮して x の数を減らした潜在変数に変換することで、特徴量の数を減らす方法も有効です。
他にも、特徴量エンジニアリングによって、ドメイン知識を用いていくつかの特徴量を1つにまとめることで、数を減らすことができます。
[状況の改善] x と y の関係を線形にする
状況の改善として、XとYの間の関係を線形に近づけることも有効です。スモールデータのようにサンプル数が小さいと、過学習 (オーバーフィッティング) を起こしやすくなります。また、非線形モデルは、線形モデルと比較して、オーバーフィッティングを起こしやすいです。元々の特徴量から、例えばドメイン知識等で非線形変換を行うことで、(比較的オーバーフィッティングを起こしにくい) 線形モデルでモデリングできます。
[状況の改善] 半教師あり学習
状況の改善として、半教師あり学習があります。
基本的に、スモールデータでサンプルが少ないのは、y の値をもつサンプルが少ないためであり、例えば、分子のデータなど、y は不明である一方でサンプル自体 (x のデータ) は豊富なことはあります。このようなサンプルを使う半教師あり学習によって、スモールデータの状況を改善できます。例えば、y の不明な x の (豊富な) サンプルを用いて、主成分分析やオートエンコーダを用いて次元圧縮し、そこで計算された潜在変数を x として、y との間でモデル構築を行います。
以下の 論文も参考になると思います。
[状況の改善] 転移学習
状況の改善として、転移学習があります。
対象とする y の値をもつサンプルが少ない場合でも、他の y の値であればもっているサンプルは存在したり、分子シミュレーションやプロセスシミュレーションによって別の y のサンプルを生成することができたりします。このようなデータを活用して転移学習をすることで、対象の y をモデル構築しやすくなります。
今回は、スモールデータ、すなわちサンプル数の少ないデータをデータ解析・機械学習するときのアプローチをまとめました。ぜひ、これらのアプローチを使用することで、スモールデータからでもロバストなモデルを構築していただければと思います。
以上です。
質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。