機械学習は人の判断をまねることにもよく利用される。例えば、構造計画研究所が提供している「目視検査/目視判断の自動化ソリューション」がある。専門家の“目”による判断を、機械学習によって代行しようというソリューションである。

教師データで規則性を学ばせる

 富士通総研では、ブログから生活者の実態を分析する「Do-Cube」を提供している。富士通研究所の技術も利用して実現したサービスである。「どんな人」が「どうしている」、さらに「どうして」その行動をしたのかの情報を分析、提供するサービスである。

 その際、どんな人かを示す、性別や未既婚、職業、趣味・興味といった属性を割り出すのに、機械学習の識別モデルを使っている。識別モデルとは目的のモノやデータをある規則性に基づき分類するものである。Do-Cubeの場合は、正しいデータを基に規則性を学ぶ「教師あり学習」の方法で分析モデルを構築した。

 担当者がブログを調べて、プロフィルが記載されているものを抽出し、そのうち記載内容が適切かどうかを担当者が判断して教師データを作成した。その教師データを学習させて評価、チューニングを繰り返して完成させた。「推定精度は、性別が93.3%、未婚既婚は87.2%、職業は68.6%」(富士通総研第一コンサルティング本部流通・サービス事業部の安藤美紀マネジングコンサルタント)と言う。この属性を基に、ブログの内容を分析して生活者情報として提供する。

人の判断をまねる

 人の判断をまねることにも機械学習はよく利用される。例えば、構造計画研究所が提供している「目視検査/目視判断の自動化ソリューション」がある。専門家の“目”による判断を、機械学習によって代行しようというソリューションである。

 「塗料の開発で実績がある」(構造計画研究所エンジニアリング営業部ストックマネージメント室の佐藤壮室長代理)と言う。塗料は成分と塗り方が見栄えに大きく影響する。「はじき」「ピンホール」「クラック」などの不具合の種類がある。従来、成分や塗り方を変え、人が見て判断、数をカウントするということを繰り返していた。これをデータ分析によって効率化した。

 不具合の種類は、人が見れば専門家でなくてもある程度判断できる。しかし、いざデータとして分析するとなると、何が良品と不良品を分ける要因なのかは不明確である。そこで機械学習によって識別させることにした。教師データを用意してコンピュータに学習させて、自動的に不具合の種類の識別が可能になった。

 このように、人は比較的容易に識別できても、コンピュータにそれを代行させるのは難しい場合がよくある。このような場合、人の判断結果を教師データとして学習させれば、コンピュータが判断してくれる。

 機械学習自体は長い間研究が進められてきており、様々な分析モデルやアルゴリズムが確立されている。これらを利用するためのツールもある。オープンソースの「Mahout」がその代表例である。Mahoutは分散処理基盤のHadoop上で動作する。Rにも機械学習のライブラリが用意されている。

 米アマゾン・ドット・コムや米グーグルなども、アルゴリズムやツールを開発、公開している。例えば、グーグルは「Google Prediction API」を無料で提供している。ただし、データの格納などに「Google Cloud Storage」サービス(有料)を利用する必要がある。APIを介して、学習および予測などを実行できる。

機械学習が抱える課題

 とはいえ、機械学習の導入は容易とはいえない。やはり通常のデータ分析と同じく、データサイエンティストのスキル、ビジネスの知識などが必要となる。

 理論的には、目的(変数)を決めて、すべてのデータをコンピュータに入力させれば分析モデルは作れるはずだ。しかし、いかにコンピュータの処理能力が高くなったとはいえ、すべてのデータを様々なアルゴリズムと組み合わせて、最適な分析モデルを導き出すのは非現実的である。

 そのため、データサイエンティストがそのビジネスの内容から、適当と思われる変数だけを選んで学習させる必要がある。最初から期待する結果が得られる可能性は低い。学習させる変数を変えたり、増やしたり減らしたりという試行錯誤が不可欠である。それでもうまくいかなければ、利用するアルゴリズムなどを変更して最初からやり直しになる。

 さらに面倒なことがある。平日や休日、男性や女性など、条件によって特性が異なる場合だ。このようなときに予測式を作るには、あらかじめデータを分類した方が精度が高まる場合が多い。こうなると、データサイエンティストの作業はさらに大変になる。どのようにデータを分類したら精度が高まるのかの仮説を立て、それを基に試行錯誤の回数がさらに増えることになる。

 別の課題として、分析モデルや予測式の更新がある。過去のデータを学習させて、モデルなどを作成しても、ずっとそのまま利用するというわけにはいかない。ユーザーの嗜好が変わったり、環境が変化したりして、精度が低くなる場合がよくあるという。新製品の発売などによっても、モデルなどの見直しが必要になる場合がある。

 そのため、定期的にデータを用意して学習し直すといった作業が必要となるケースが少なくない。

この記事をいいね!する