in

データ特徴とアルゴリズムの選び方

文/Flow AI Blog 編集部

【要約】データとアルゴリズムを選ぶ時の3つの注意点:
1. 特徴を選定し、「木を通して森を見る」の方向でデータ処理
2. 4つの要点で最適なアルゴリズムを見つけよう
3. 企業独自のAIツールボックスを構築しよう

本シリーズでは、我々FLOW AIは元トレンドマイクロ社のベテランITマネージャーであるチャールズ・チャン氏を招き、長年最前線でAIチームを管理してきた経験と、AIプロジェクトの実行経験についてお話を伺いしました。

AI業界では「データの特徴は機械学習の上限を決定するが、その上限にどれだけ近づけられるかはモデルとアルゴリズムで決まる」という言葉があります。この言葉からデータ特徴の影響力がお分かりになると思いますが、では、AIを開発する際にはどのようにデータ特徴とアルゴリズムを選定すればよいのでしょうか?

データとモデルを用意して、どんな特徴をAIに学習させるのか?

特徴の選び方についてお話しする前に、「面倒くさい特徴探しはやめて、ディープラーニングにすればいいのでは?」と考える方もいるのかもしれません。

確かにディープラーニングはAIが自らデータを通して学習と予測を行うので、特徴データを与える必要はないと一見簡単そうに見えますが、ディープラーニングは考慮すべき要素が複雑なため、トレーニングも一筋縄にはいかないものです。今抱えているビジネス課題の解決にはディープラーニングが向いてるという根拠がない限り、初手からディープラーニングに手を出すことは推奨しかねます。

従来データの特徴を探す場合、エンジニアは専門家が決めた規則、つまりエキスパートルールを参考にし、人間の知識で特徴を見つけ出すことが一般的です。しかし専門家の経験と言っても万能ではなく、人の感覚は主観的であるため「木を見て森を見ず」というようなこともあれば、選出した特徴のカバー率が低く、100件あるデータのうち1件にしかマッチしなかったと言うようなこともあります。

この場合、シナジーの観点からデータをよく観察し、中から代表的な特徴だけ抽出すれば精度は著しく改善され、統計学的な手法やディープラーニングを利用することで可能となります。統計学というのは、そもそもビッグデータからサンプルを抜き取り、その特性から母集団の特徴を推測する学問です。そのため「木を通して森を見る」ことも可能になります。ディープラーニングは、ニューラルネットワークとオートエンコーダの中間層の出力結果を代表的な特徴(Deep Representation)として使用することができるため、これも特徴を求める方法の一つです。

代表的な特徴が決まったら、次に悩むべきはアルゴリズムの選択です。

線形回帰とロジスティック回帰、どっち?

ネット上の参考文献は、簡単な線形回帰(Linear Regression)かロジスティック回帰(Logistic Regression)のアルゴリズムから入門するように勧めるものが多いです。

ここで一旦初心に返ってみましょう。選んだアルゴリズムを使って、どんなことがしたいのか、どんなことができるのか?

エンジニアにとって「優れたアルゴリズム」とは以下のような要件を満たしているものを指します。 

  1. 柔軟に多種多様な特徴に対応できる:
    変数の多い特徴でも、このアルゴリズムを適用することができれば、特徴量のエンジニアリングや特徴分類にかける労力を軽減できます。
  2. 特徴の重要性を判断できる:
    前述したように、特徴の選択はAIのモデルトレーニングにおいて非常に重要な一環です。アルゴリズムで特徴の重要性を判断できたなら、最初のモデルを構築する際の手間を大きく省けるほか、データと問題点に対する理解も深まるでしょう。
  3. 複雑性を調整可能:
    AIモデルが育つには、どのくらいのデータが必要?」では、モデルの複雑性・データ量とビジネス課題の関係性について話ました。パラメータの調整が可能なモデルならば、必要データ量とビジネス課題の複雑性を評価する際にきっと役立ちます。
  4. トレーニングの速さと出力の安定性:
    POCの段階では、迅速に大量の実験と調整をこなして行く必要があるため、アルゴリズムが速ければ速いほどより多くの実験が可能となります。出力が安定していれば、データの特徴に小さな変化やノイズがある場合でもモデルは安定したパフォーマンスを見せ、結果、解読も容易になります。

これらを踏まえると、単純すぎた線形回帰とロジスティック回帰では上記の要件を満たすことはできないことに気づくでしょう、ですが複雑なディープラーニングにしようというのも、いささか役不足でしょう。そのため、POC段階ではまずツリーベース法のアルゴリズムから試すことをお勧めします。

アルゴリズムの良し悪しではなく、ツールボックスを作ろう

アルゴリズムはそれぞれ異なる用途のツールのようなもので、優劣をつけるのは難しいことです。どんなアルゴリズムでも、全ての問題に対して最良の結果を出せるわけではありません。

上図左はアメリカペンシルベニア大学の研究報告書から、生物関連のデータセットを対象に、異なるアルゴリズムを使った結果を比較したものです。Gradient Boosting Classifierは最多となる51個のデータセットで優れたパフォーマンスを見せましたが、他のデータセットでは別のアルゴリズムがよりいい結果を出したことがわかります。

上図右は2019年Google社のデータサイエンティストがTwitterで発表した機械学習プラットフォーム「Kaggle」で行われたコンペのうち、上位5チームが使用したアルゴリズムとフレームワークを調査した結果です。ディープラーニング・フレームワークのKerasを使ったチームが最も多いのですが、ツリーベースのLightGBMとXGBoostを採用したチームの数はそれぞれ2位、3位を占めていることがわかります。 

抱えているビジネス課題が、特定タイプのアルゴリズムで成果を出せることが既に証明されているのであれば、まずはそれでPOCを進めてみましょう。そうでない場合、地道にアルゴリズムを一つずつ試していけば問題ありません。

つまり、最初のモデルはできるだけシンプルに、正しいデータ処理プロセスを確立させることが大切なのです。

機械学習が登場して以来、雨後の筍のように新しいアルゴリズムが続々と出てきているので、目がくらむ思いをする方も多いでしょう。そのため、まず半年ほどの時間を投資して、様々な属性のアルゴリズムを分類し、企業独自の「AIツールボックス」を作成することを強くお勧めします。ツールボックスを作るに当たって中身を全て試す必要はありませんが、分類という過程を通じてより一層アルゴリズムの特性への理解が深まるので、新たなアルゴリズムが現れた際、すぐに現有のものとの異同を比較することができるようになります。

AIツールボックスはエンジニアにとって有益なだけでなく、プロジェクトマネージャーにとっても必須科目の一つです。構築には時間はかかりますが、備えがあればアルゴリズムを選ぶ際の根拠となり、どれから試していけば良いのかわかるため、プロジェクト全体の効率化が図れるでしょう。

今回はデータ特徴とアルゴリズムの選び方を紹介しました。引き続きモデルの学習が間違った場合の修正方法についてお話したいと思います。

関連記事
・AIプロジェクトが行き詰まる理由は?
・AIモデルの育成にどれだけのデータが必要?


AI モデルが育つには、どのくらいのデータが必要?