AI系プロジェクトに関わる際に把握しておきたい基礎知識まとめ|AI系プロジェクトのマネジメント #1

ビジネス層向けのセミナーのご依頼をいただいたのですが、最後に類似のセミナーを実施したのが半年以上前でちょっと色々と忘れてしまったので情報をまとめておければと思います。戦略論などは得意なんですが、結構感覚的な理解で言語化していないことが多いので記事という形で言語化しておければと思います。

#1ではAI系のプロジェクトの立ち上げにあたって、マネジメントにあたって最低限知っておきたい基礎知識についてまとめたいと思います。
以下目次になります。

 

1. はじめに
2. 言葉の整理(人工知能機械学習、深層学習の違いについて)
3. 機械学習の全容(教師あり学習、学習、モデル、推論)
4. まとめ


1. はじめに
この記事の読者の想定としてはマネジメント職に就いている方で、AI系のプロジェクトに関わらねばならなくなった方を想定しています。そのため、ビジネス周りの経験はそれなりにあるけれども技術系やAI系の話は詳しくないという方を想定して書きます。
とはいえ事前知識の前提を明確にしたかっただけなので、上記に厳密に当てはまる必要はなく、マネジメントサイドを説得したい技術者の方や技術系はある程度わかるマネージャーの方もいらないところは飛ばした上で参考にしていただけると良いのではと思います。#1は基本事項の取りまとめなので、ある程度事前知識のある方は#2から読んでいただけたらと思います。

 

2. 言葉の整理(人工知能機械学習、深層学習の違いについて)

まずは、基本事項ということで言葉の整理について行なっていければと思います。
プロジェクトを進めていくにあたって専門職でなくても最低限知っておかねばならない共通言語として言葉を整理して行きます。ここでは人工知能機械学習、深層学習の違いについて解説します。(あくまで共通言語として使用したいだけであまり厳密な定義について議論したくはないので、ざっくりとした説明にとどめたいと思います。稀に厳密な定義を確認されるケースが時折あるのですが、不毛な気がするのでこの辺はどうでも良いかと思います)

人工知能について
まず人工知能についてですが、Wikipediaの冒頭の記述では下記のように記されています。(https://ja.wikipedia.org/wiki/人工知能)

人工知能(じんこうちのう、英: artificial intelligence、AI)とは、「「計算(computation)」という概念と「コンピュータ(computer)」という道具を用いて「知能」を研究する計算機科学(computer science)の一分野」を指す語。「言語の理解や推論、問題解決などの知的行動を人間に代わってコンピューターに行わせる技術」、または、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」ともされる。

小難しい記述ですが、一言で抜粋するなら「知的行動を人間に代わってコンピューターに行わせる技術」の部分がイメージつきやすいのではと思います。人工知能の歴史については、大きく分けて3回のブームがあり、現在は第三次ブームとされています。一次ブームでは推論やゲームAIなどの探索系のアルゴリズム、二次ブームではエキスパートシステムのような知識表現、そして現在の三次ブームが機械学習が中心となっているとされています。

ちなみにこの人工知能という言葉はビジネス側では受けがいい反面、理論側からはケチがつきやすい表現だったりします。ビジネス側は「AI作ってくれ」、理論側は「機械学習っていうべき」のような論争が多いです。
個人的にはどちらもナンセンスだと思っています。というのも、人工知能を技術の枠組みで捉えるからよくなくて、UI/UXを高めるための手段として捉える方がビジネスの文脈だと良いと思っています。ビジネス側は即効性を求めるし理論側は知識の範囲内でしか提案ができない、そういったプロジェクトを多く見てきましたが、UI/UXを高めるための手段としてしまえば多くの矛盾点が解決することが多いです。
というのも、「知的行動を人間に代わってコンピューターに行わせる技術」を実現するには機械学習のような小難しい手法を使う以外でも実現が可能だからです。人工知能を技術として捉えると手段が目的化し、プロジェクトが迷走する原因になります。

 

機械学習について
機械学習SAS社の定義がわかりやすいので引用します。

(https://www.sas.com/ja_jp/insights/analytics/machine-learning.html)

機械学習とは、コンピューターがデータから反復的に学習し、そこに潜むパターンを見つけ出すことです。そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測することができます。

上記の通り、データからパターン(規則)を見つけ出して将来の予測に役立てるというのが機械学習になります。

f:id:lib-arts:20190112170010p:plain

上記の画像が簡単な一例になります。身長と体重のデータ(特徴量)と、それが大人か子供かを見分けるフラグ(教師ラベル)を与えた際に、それぞれ大人の身長と体重の平均と子供の身長と体重の平均の二点を取って、二点から等距離の直線を引くだけで規則を作り出すことができます。機械学習と聞くと難しそうですが、案外根本の原理に照らし合わせて考えていくとそこまで難しい訳ではないので、とにかくざっくりしたイメージをつかむことが重要です。

 

・深層学習について

深層学習(ディープラーニング: DeepLearning)に関しては、上記で述べた機械学習アルゴリズムの一つであるニューラルネットワークの複雑なバージョンです。近年深層学習の話題が多い理由としては画像認識や音声認識などの次元数の多いデータ(リッチなデータ)の認識が得意だからです。これらの次元数の大きなデータの取り扱いは従来非常に難しく、インパクトが強かったことが近年ディープラーニングの話題が非常に増えた理由です。
特に画像認識では、2010年より始まった画像認識の世界的なコンペティションであるILSVRC(ImageNet Large Scale Visual Recognition Challenge)の2012年の会の画像の分類のタスクで深層学習のアルゴリズムが2011年以前の結果を大きく上回って優勝したというのが大きなエポックとなり現在までで深層学習系のアルゴリズムは目覚ましい成果をあげています。

ディープラーニングがその他の機械学習とは違う点としては、前処理のウェイトよりもモデルの構造(ネットワークアーキテクチャ)の選択の方が前処理よりも先に検討すべき事項になるということです。その理由としては、マーケティングデータなどの次元数の小さいデータとは異なりディープラーニングを主に用いる画像認識などのケースは次元数が非常に大きなデータを扱うので、前処理よりもネットワークのアーキテクチャをどうするかについて知っていないとそもそもベンチマークとして正しい結果を得ることができないからです。(反対に次元数の小さいデータであれば、処理のアルゴリズム云々よりも特徴空間をどう作るかという前処理が非常に大きなファクターになってきます。)

 

3. 機械学習の全容(教師あり学習、学習、モデル、推論)

2節で人工知能機械学習、深層学習の概要については確認できたので、3節では近年の人工知能ブームのコア技術となっている機械学習についてまとめたいと思います。

 

教師あり学習教師なし学習に関して

f:id:lib-arts:20190112170010p:plain

上図は2節で用いていた図と同様ですが、こちらの例で表していたのが教師あり学習になります。Xに当たるデータ(特徴量)とyに当たる教師ラベルを元に規則(パターン)を作成し、未知のXに対してyを予測する問題になります。

f:id:lib-arts:20190112170230p:plain

一方で、教師なし学習は教師ラベルに当たるyがないので、上図のようにXで与えられるデータに対してそれぞれの類似度を計算したりグルーピングしたりすることは可能です。が、そこから知見を導き出すためには解釈が必要となります。

上記が教師あり学習教師なし学習の概要ですが、ビジネス文脈で用いる際には基本的に教師あり学習を用いることを推奨しています。理由としては、アウトプットが明確でアクションに繋げやすいからです。具体的には、下記のような問題設定が簡易例としてあげられると思います。

・DMのメールの反応確率の予測 -> 発送の効率化
・疾患の確率の予測 -> 検診のリコメンド
・画像の認識 -> 分類やセグメンテーションによる作業の効率化
不正アクセスの予測 -> 対応の効率化

一方で、教師なし学習のアウトプットとして出てくるのは何かと何かが似ているという類似度の情報や、類似度に基づいてグルーピングした結果の情報などが主です。一見意味ありげな情報に見えるのですが、ビジネス的な知見に落とそうとすると踏み込んだ解釈が必要になります。こちらは非常に難しく、意思決定の権限を持っている人間がある程度の素養を持っている前提かつ質の良い報告が下から上がってくる必要があります。この辺の素養のある意思決定者を見つけることと、質の良い報告をあげられる担当者を見つけることはどちらも非常に大変なので、低コストで機械学習をビジネスに生かしていくことを考えると基本的には教師あり学習を中心に考えると良いかと思います。

とはいえ、そのようなありきたりの教師あり学習を導入するだけで良いのかという質問もよくいただきます。こちらについての回答に関しては、そもそも機械学習の技術を強みとしてビジネスを展開している会社でなければ変に難しく考えずにありきたりのアルゴリズムを実装するだけで十分です。難しいことをやらなくてはというよりも、自社に何が必要かという視点で物事を考えられる力という方が重要になります。

 

教師あり学習の流れ(学習と推論とモデル)
教師あり学習の流れとしては、学習と推論については必ず理解が必要です。

f:id:lib-arts:20181228195839j:plain

上図のような回帰分析の問題が与えられた際に、y軸を家の家賃(円)、x軸を家の広さ(㎡)とするとyはxの一次関数で表すことができます。こちらもデータを元に規則を作成しているので機械学習と見ることができます。
この際の規則となる一次関数を作ること(一次関数のパラメータaとbを求めること)を機械学習の文脈では学習と呼んでいます。一方で、作成した規則に対して新しい家の広さを与えることで家賃を予測することを推論と呼んでいます。また、学習によって作成された規則のことをモデルと呼んでいます。

1. 学習(訓練と呼ぶこともある、英語だとtrain)
2. 推論(予測と呼ぶこともある、英語だとinference、predict)

上記のように、様々な呼び方があるのでそれぞれ押さえておくようにしてください。ちなみに、機械学習を行う際にデファクト的に用いられるscikit-learnでは、学習をfit、推論をpredictで一括でインターフェースが実装されています。

学習と推論については専門職でなくとも、機械学習系のプロジェクトに関わる際には常識的に知っていないとお話にならないキーワードなので、こちらについては必ず把握しておいてください。


4. まとめ

上記がAI系のプロジェクトを行う上で最初に抑えておきたい知見になります。
基本用語として、2節と3節で強調した単語を抑えておければ大体の概要はつかめるかと思います。
#1で基本的な内容は大体抑えられたかと思いますので、#2ではプロジェクトの問題定義の仕方などのマネジメントよりの話をまとめていければと思います。