2.機械学習システム構築のためのアプローチ[1]

2.機械学習システム構築のためのアプローチ[1]

2.1.問題の定式化

   問題の定式化では、どのような問題を解くか、問題を定義する。その際、重要なのは、何を目的にするのかを明らかにすることである。企業であれば経営課題から戦略、戦術、技術上の課題・問題の関係(目的・手段の関係)を要求ツリー[16]やValue Graph[27]等の形式で表現する[16]。さらに、これらの上位課題と具体的な機械学習の問題の改善の程度を示すKPIも定める。

 

2.2.機械学習を適用すべきかの検討

機械学習を本当に使うべきかどうか、検討する。機械学習を使うシステムには以下の課題がある。

  1. 確率的な処理があるため自動テストがしにくい。
  2. 長期運用しているとトレンドの変化などで入力の傾向が変化する。
  3. 全体の処理に関する工程(パイプライン)が長くなる。
  4. データの依存関係が複雑になる。
  5. 開発システムと本番システムの言語/フレームワークが残りやすい。
    機械学習を使うシステムには、このような課題があるため、もし、対象とする問題が機械学習を使わなくてもよい問題であるならば、早い段階で機械学習を使わないということを意思決定すべきである。
    一方、機械学習を適用することによって効果が生まれるような問題は以下のようなものと考えられる。
  • 大量のデータに対して、高速に安定して判断する必要がある問題。
  • 機械学習の判定結果に、一定の誤りが含まれることが許容される。
    機械学習の利点として、大量のデータに対して同じ基準で判断し続けることができる。また機械学習の課題として、機械学習結果が100%正解である保証もない。したがって、機械学習を適用する問題はこのようなことが許容される問題、もしくは誤りをカバーできる仕組みが必要である。

 これらの条件が整ったうえで、まずMVP(Minimal Viable Product)を作るとよい。MVPとは、最低限の顧客価値を生み出す最小のプロダクトのことである。MVPを作成し、検証することで、自分が建てた仮説が妥当かどうか、本当に顧客が必要としているものは何か、そもそもコンセプトの方向性は正しかったのかなどについてプロジェクトの早い段階で確認することが出来る。

2.3. システム設計

問題の定式化とMVPの検証が済んだら、機械学習を含めたシステム設計を行う。重要な点は以下である。

  1. 機械学習の判定結果(予測結果)をどのような形で利用するのか
  2. 機械学習の判定結果の誤り(予測誤り)をどこで吸収するのか

①の機械学習の判定結果の利用については、例えば具体的なユースケースで考察すると、バッチ処理で予測した結果をWEBインタフェースでユーザに非同期で提供するのか、データベースで配布するかなどを決める必要がある。

の機械学習の判定結果誤りについては、人手で確認し修正する必要があるのか、必要ならばシステムのどこで対応するのか、などについて検討する必要がある。

2.4.機械学習のアルゴリズムの選定

 機械学習を適用する際には、対象とする問題にどのような機械学習のアルゴリズムをあらかじめ見通しを立てておく必要がある。 

そのため、機械学習のアルゴリズムの全体像(図1)[11]を概観する。

機械学習は、大別して教師なし学習と教師あり学習に分類される。教師なし学習は、教師となるデータ(学習データ、訓練データ)を必要としない学習である。主としてクラスタリングのために使われる。

 一方、教師あり学習では、教師となるデータ(学習データ、訓練データ)を用いて学習する。教師あり学習には、回帰と分類(図2)[15]がある。回帰は対象の入出力関係をモデル化するもので、出力が連続的な値をとる。分類は、入力されたデータが、どのようなカテゴリに属するかを判別するもので、出力は離散的な分類結果となる。

 クラスタリングのアルゴリズムには、k-means クラスタリング、階層クラスタリング、階層型ニューラルネットワーク、混合ガウス分布、自己組織化マップなどがある。

 分類のアルゴリズムには、線形判別、2次判別、k-最近坊識別、単純ベイズ分類、決定木、アンサンブル学習、階層型ニューラルネワーク、サポートベクターマシン(SVM)などがある。

 回帰のアルゴリズムには、線形回帰モデル、一般化線形回帰モデル、非線形化機器モデル、回帰木、アンサンブル学習、階層型ニューラルネワークなどがある。

2.5. 特徴量、教師データの設計

 定式化した問題に対し、どのようなアルゴリズムを使うかについて見通しがついたら、次にどのような情報が使えるかについて検討する。

特徴量とは、機械学習の予測モデルの入力する情報のことである。機械学習においては、入力情報はまず、数値ベクトルにする。たとえば、明日の天候を予測するために、今日の気温(25℃)、降水量(2mm)、風速(1.5m/H)、天気(曇り)を使うとすると、それぞれを数値化したベクトル(25.0,2.0,1.5,1)を特徴ベクトルとして定義する。

 ここで、「曇り」というようなラベルで表現される特徴量をカテゴリカル変数と言う。また、「晴れ」は0、「曇り」は1のような数値データに変換して学習させる。このような数値データのことをダミー変数と呼ぶ。

 古典的な(従来の)機械学習においては、どのような特徴量を使うかがポイントとなる。具体的にはドメイン知識(アプリケーション分野の知識)の蓄積が重要である。例えば、工場の設備の故障診断を行う場合に、どのような種類のセンサーデータを観測することが有効であるかについて、その設備の動作履歴や動作状況について詳しく知っている熟練者や専門家の存在がポイントとなる。

 例えば、ある調査によると回転機械の故障モードとして、異常振動、摩耗、異常音、割れ、疲労、ゆるみ、不足、漏れ、油圧か、材料劣化、異常温度、絶縁劣化、その他などがある[21]。また機械の故障診断装置においては振動診断の方法として、①振動レベル、新同派系の特徴、②振動スペクトルと励振力の関係、③診断退職機種と含まれる要素、④回転数変化と振動の関係、⑤振動の触れ回り方向、⑥振動の発生方向、⑦振動の分布(モード)、⑧振動の時間的変化、⑨運転条件と振動の変化 のような診断プロセスが組み込まれている製品がある[20]。

  特徴量をいったん決めたら、教師データを用意する。教師データは、教師あり学習と呼ばれる複数の学習カテゴリを予測する問題を解く際に必要な、正解カテゴリのラベルのもととなるデータセットである。このような分類対象のカテゴリ(集合)のことを機械学習ではクラスと呼ぶ。

 

2.6.前処理

 前処理は、具体的に解く問題の種類やタスクに依存するが、学習に不要なデータを事前に除外したりするなど、データを機械学習に使える形にするための重要なプロセスである。

 数値データの場合には、センサーデータが一部取得できていない欠損値と呼ばれるデータの処理や、異常のデータを除外したり、値の取り得るはあんうぃ正規化したりする必要がある。

 テキストデータの場合には、2.5の特徴量のところで説明したように、ラベルデータであるカテゴリ変数を数値データであるダミー変数にあらかじめ変換しておく必要がある。

 

2.7.学習とパラメータチューニング

 学習のフェーズでは、機械学習のアリゴリズムのふるまいを支配するパラメータを試行錯誤しながらチューニングする。たとえば、階層型ニューラルネットワークの階層数、各階層のノード数、学習係数、線形自己回帰モデルの字数、非線形自己回帰モデルで使用するニューラルネットワークやラジアル(放射)基底関数の数、正則化項の係数などである。

 また、早い段階で予測性能が99%などのような高い性能が出た場合には、過学習(overfitting)などの現象が生じている可能性が高い。

 過学習を防ぐ方法としては、以下の手法がある。

  1. 交差検証(Cross validation)を使ってパラメータチューニングをする。
  2. 正則化(Regularization)を行う。
  3. 学習曲線(Learning Curve)を見る。

 

2.8.システムへの組込み

 学習を行って、ある程度、良い性能の機械学習モデルが得られれば、それをシステムに組み込んでテスト運用を経て、実運用のフェーズに入る。

 実運用に入った場合には、モデルの予測西欧とそれにともなうビジネスのインパクトの関係を常にモニタリングするようにする。システムに組み込むことは、最初に問題に対して建てた仮説を検証するための一つのステップに過ぎない。

 予測性能の評価のために、あらかじめ人手で用意したデータと正解ラベルのセットを使って予測性能を測定する。このようなデータセットをゴールデンスタンダードという。

 学習させた予測モデルの開発、改善だけでなく、もともと、その機械学習システムを作った際の目的(経営課題、製造課題、顧客の満足向上課題、ITの課題など)が達成されているか、適切なKPIの改善がなされているか、モニタリングすることが重要である。


このコンテンツは会員限定のコンテンツです。
会員登録または、ログインしてください。

あわせて読みたい