「書評 ワトソンで体感する人工知能」

「書評 ワトソンで体感する人工知能

 

 

 

 

Twitter書評は以下。

「ワトソンで体感する人工知能」 3.5点。人工知能の初心者には、かなりわかりやすく書かれており、一度は目を通しておきたい貴重な本。ワトソンで実際に人工知能を体験させる手順も載っている。私は、人工知能の概要・解説が役立った。説明が秀逸。

 

 

以下、要約、抜粋します。

 

             データ。

               ↓

訓練データ → 学習器 → 学習モデル

               ↓

             分類・予測結果。

P58以降。

 

 

学習器に与える訓練データの作り方によって、機械学習は「教師あり学習」と「教師なし学習」のどちらかに分類できます。

 

教師あり学習では答えの付いた訓練データを与えます。例。ネコの画像には「ネコ」という答えをつけるなど。

 

教師なし学習では答えの付いていない訓練データを与えます。例。ネコとイヌの大量の画像を訓練データとして与えて、それぞれの画像がネコであるかイヌであるかの判別は、機械学習によって法則を見つけ出し、判別するのです。

 

色に注目して、白ネコと白イヌを同じグループに分類してしまう可能性があります。しかし、色分けが一つの分類の仕方でもありますし、教師なし学習によって、人間の先入観とまったく異なる分類方法を機械が見つけ出す可能性はあります。

 

一部のデータにだけ答えを与えて教師あり学習を行い、答えを与えられていないデータを分類して、さらに精度の高い学習モデルを作り出そうという方法も開発されました。これは「半教師あり学習」と呼ばれています。

 

プログラミングは、人間が全て支持する命令でした。プログラミングによって作り出されたプログラムは、機械学習における学習モデルに相当します。

 

言い換えると、プログラムを開発するために人間がやっていたプログラミングと同じ役目を、機械学習では機械が自ら行うのです。しかし、機械学習における学習モデルと、人間が作り出すプログラムには大きな違いがあります。

 

プログラミングにおいては「プログラマーが作ったプログラムによってのみコンピュータは動作する」という前提があります。

 

一方、機械学習は「統計的」なアプローチです。「◯◯だったら☓☓する」という決定論的なアプローチ(プログラミング)では、0%か100%のどちらか(YesかNoか)で結果が出力されますが、機械学習では30%とか80%とかの確率を伴った結果となります。

 

機械学習における学習モデルでは、プログラムのように人間が作ったとおりの値が出力されるという保証はありません。人間の予期していない値が出力されたからといって、バグではないのです。ただ、予期せぬ出力があまりに多いようなら、学習モデルの精度が低いのです。P59〜63。

 

機械学習とプログラミングのこうした違いは、得意分野の違いとなります。

例。企業の会計処理システム。1+2は当然3となり、その可能性は100%。「3の可能性が90%だけど、4の可能性が10%ということはない」。

 

会計データの蓄積などから将来の売上を予測することや、異常な会計データを見つけ出そうというとき、機械学習の出番です。予測や異常探知には「絶対の答え」が存在しないからです。

 

仮に、来期1億円の売上予測があるとして、それが実現する可能性が100%はないです。1億円の可能性が80%はありえるとしても、9000万円の可能性も1億1000万円の可能性もあります。天変地異が起こってゼロという可能性すらあります。

 

人間のプログラミングではこの不確実な世界には対応できません。

 

ただし、一口に売上予測といっても、その中では単純な計算を行う処理もあり、それは従来のプログラミングを用い、統計的な処理を機械学習でやるのが一般的です。

 

例2 監視カメラが撮影した映像から異常を検知して、警察や警備会社に自動通知するシステムの開発。

 

必要な要素は、映像からの異常検知と、警察などへの通報の2つです。

 

映像からの異常検知は機械学習が行い、警察への連絡は従来のプログラミングで実現すべきです。P63〜65。

 

機械学習の分類。  

     

              → 分類

     → 教師あり学習 → 回帰

機械学習   

     → 教師なし学習 → クラスタリング

              → 次元削減

P66。

 

 

分類とは、与えられたデータの様々な値を用いて、そのデータに何らかの「ラベルを付けること」です。

分類には大きく分けて、2つのラベルのどちらかを付ける「二値分類(ニクラス分類)」と、3つ以上のラベルのどれかを付ける「多値分類(多クラス分類)」があります。

 

機械学習では、それぞれの長さがどの程度のときに、何という品種(ラベル、クラス)に分類すればよいかをあらかじめ学習して、学習モデルを作っておきます。そして、実際の花の花びらとがくの長さを測定し、機械学習によって作り出した学習モデルに与えれば、その花が何という品種であるかを分類できるというわけです。ここで、花びらの長さと、がくの長さのことを、アヤメの花の品種を分類する際の「特徴量」といいます。P68。

 

分類を行うための学習アルゴリズムはいろいろあり、何か一つの方法を常に使っていればよいというものではありません。

略。

それぞれの学習アルゴリズムの詳細を説明することは本書の目的ではないので避けますが、今後の学習のためにいくつか触れておきます。

実用でよく使われるのはロジスティック回帰ですが、こちらも基本的には線形分離が可能なデータが対象です。名前に「回帰」と付いていますが、分類のための学習アルゴリズムです。

 

パーセプトロンと異なり、分類した際に、それが正しいと思われる確率が分かることが特徴です。線形分離が不可能なデータの場合や、特徴量が多い場合は、サポートベクトルマシン(SVM)や、パーセプトロンを多層に重ねた多層パーセプトロン等といった別種のニューラルネットワーク、さらにはその発展系であるディープラーニングが用いられます。

 

ロジスティック回帰やサポートベクトルマシンには、「なぜそのような分類となったかが説明しづらい」という欠点があります。そこが問題になる場合は、一連の質問によって分類を決定する「決定木」がしばしば用いられます。P73、74。

 

機械学習の「回帰」とは、主に売上や株価、気温といった時系列データについて、過去のデータの傾向から未来を予測する方法です。また、過去のデータをもとに正常な範囲を見つけ出し、そこからかけ離れた値が検知された際に「異常が発生した」と判断するような用途もあります。

 

時系列データ以外では、広告宣伝費と売上高の関係から一定の法則性を見つけ出し、仮に100万円の広告宣伝費をかけたら、どの程度の売上高になるかを予測したり、住宅の立地や広さ、設備といったデータから価格を推測したりする例があります。

 

データ(値)は大きく2種類に分けることができます。

量的データ(連続値ともいう)。身長、速度、温度、時間、金額など。計算や測定が可能。

質的データ。モノの名前や性別、順位といった計算できず測ることも不可能な値。

 

回帰が対象にするのは、量的データ(連続値)です。

教師あり学習では、答えのある訓練データから法則性を学び取り、その法則性に依拠して何かを予測します。このうち、連続値を予測するものが回帰であり、離散値を予測するものが分類であると言えます。

 

統計学では回帰分析を以下の2種類に分けます。

単回帰分析。求める値に対して関係する値が1つであり、例えば、広告宣伝費だけから売上高を予測する場合が該当。

重回帰分析。関係する値が複数あり、例えば、住宅の立地・広さ・設備といった多くの項目から価格を予測する場合が該当。

 

実際に分析を行うための手法として、「最小二乗法」がありますが、回帰のための機械学習アルゴリズムとしてもそのまま用いられます。P75〜77。

 

教師なし学習。

クラスタリングクラスター分析ともいう)は、大量のデータの中から同じ特徴を持つデータ群を見つけ出し、グループ(クラスター)に分け、束ねることを指します。

 

「分類」が、教師あり学習を行ってラベルを付けることであるのに対し、クラスタリングでは、教師なし学習でラベルを付けるという点が大きな違いです。

 

クラスタリングは既に様々な分野で用いられています。

例。企業のマーケティング活動では、しばしば顧客をセグメント分けしますが、このとき、居住地域や年齢層、収入、世帯人数など様々な値の組み合わせを用います。この作業をクラスタリングによって行えば、実際のデータから共通する特徴を機械が見つけ出し、あらかじめ指定した数のグループに顧客を振り分けてくれます。

 

クラスタリングの方法は、グループ相互の階層構造を表現できる「階層的クラスタリング」と、そうでない「非階層的クラスタリング」に分けることができます。非階層的クラスタリングの代表的なアルゴリズムのひとつに、K−Means法があります。K−Means法では、分割したいグループ数を指定すると、そのとおりの数で分割することができます。P78、79。

 

次元削減。

機械学習で分類を行う際、特徴量の数が大きくなると、それだけ次元数が大きくなり、計算量が膨大になってしまうと説明しました。その緩和策として、教師なし学習のアルゴリズムのひとつである、主成分分析を用いる方法があります。

 

主成分分析を行うと、データの中で、ばらつきが小さい部分を見つけ出すことができます。ばらつきが小さいということは、データの中で全体的に共通しているということなので、その部分は無視しても大勢には影響を及ぼしません。そこで、その部分を削除してしまうと、特徴量の数を減らせます。そうすれば次元数が小さくなり、計算量を減らせます。この手法を「次元削減」といいます。

P79。

 

以下、メモ。

 

ディープラーニング(深層学習)については、P80以降をお読みください。

 

畳み込みニューラルネットワーク(CNN) 。

 

リカレントニューラルネットワーク(RNN)。

 

TensorFlow。

Chainer。

MicrosoftCNTK(Cognitive Toolkit。コグニティブ・ツールキット)。

 

Microsoft Azure Machine Learning(Azureはアジュールと読む)

 

参考・引用文献。