『データサイエンティスト養成読本 機械学習入門編』

比戸将平、他=著
表紙 データサイエンティスト養成読本 機械学習入門編
著者
出版社 技術評論社
サイズ 単行本
発売日 2015年09月10日頃
価格 2,508円(税込)
ISBN 9784774176314
このように状況が複雑かつ流動的で、経験と勘による場合分けやルール作りが難しい場合に、機械学習は威力を発揮します。(4ページ)

概要

データ分析のイラスト
本書は、機械学習をこれからはじめようと思っている人、データサイエンティスト、データ分析担当者に向けて書かれた。1980年代に人工知能の研究に携わった者として、現在は企業における品質情報の分析責任者として、本書を手にした。私はプログラミングは得意で、PythonやRは書けるし、大規模データベースの構築経験もあり通読できたが、未経験者にとって2部を読むには少し骨が折れるかもしれない。
第1部は座学である。
機械学習の目的は、一度与えられたデータから、より広範囲に適用できる汎用的な法則性を学ぶことだ。これにより、将来を予測したり、未知のデータに対して同様の推定を行うことができるようになる。経験と勘による場合分けやルール作りが難しい場合に、機械学習は威力を発揮する

機械学習は
1.生データから特徴ベクトルへの変換
2.機械学習アルイゴリズムの適用
という2つのステップを踏む。1ステップ目と2ステップ目の間のやりとりでは、特徴ベクトルという抽象化された中間表現を用いることで、さまざまな種類のデータに対して同じアルゴリズムが適用できる。2ステップ目の学習結果として得られるものをモデルと呼ぶ
機械学習で扱われる問題設定は、正解がある「教師あり学習」と、正解がない「教師なし学習」の大きく2つに分けられる。
教師あり学習」には、実数値を予測する回帰と、カテゴリを予測する分類がある。分類の手法としては、ロジスティック回帰サポートベクタマシンがある。
教師なし学習」には、問題設定としてクラスタリングと次元削減がある。クラスタリングの手法として、K平均法と混合正規分布がある。次元削減の手法として、主成分分析がある。
さらに高度な問題設定として、膨大な数のアイテムの中からユーザに適したアイテムを提示する「推薦」、データの中からほかと異なるサンプルを見つけ出す「異常検知」がある。

ビジネスにおいて、良いセグメント分けとは「KPIに差が出る」分け方だ(58ページ)
予測モデルを構築する際は、最初から全体で1個のモデルを作成するのではなく、セグメントごとに作成する方が良いと言える。予測モデルは大きく分けて、分類モデル(判別分析)と回帰モデル(回帰分析)の2つがある。判別分析は、分類されるクラスが既知のデータを分類する手法であり、教師あり学習だ。回帰分析とは、目的変数と説明変数の間の関係を定式化し、未知の目的変数を与えた際の説明変数の数値を予測する手法だ。

ニューラルネットは、ほかの機械学習のアルゴリズムと比べて大仕掛で、カスタマイズの幅が非常に広いという特徴がある(69ページ)。機械学習では大量のデータを扱うので、完全な勾配を計算せずに、一度に一部のデータに対する損失関数だけを使って勾配を計算することで、正しく最適化ができる。ただし、一部のデータはできるだけランダムに選ぶ必要がある。
過学習とは、訓練データに適合しすぎることで学習には使わなかったデータに対する性能が低下する現象で、ニューラルネットでは深刻な問題になることがある。

第2部では、実際にプログラムを動かして機械学習の演習を行う。使用するのは主に Python で、他にRや Juliaなどを紹介する。環境のインストール方法も説明されており、Linux、Windows、Macを使って演習できる。本書では触れられていないが、プログラミング未経験者にはKNIMEやWekaなどのGUIを勧めている。
Python3にライブラリ NumPySciPymatplotlibscikit-learnをインストールすることで機械学習の仕組みを学ぶことができる。scikit-learnには、機械学習でよく使われるアルゴリズムのほかに、評価のためのツール、実験用のデ一タセット、ファイル操作のためのツールが含まれている。matplotlibを導入すると、グラフや図による可視化が可能になる。

検索やリコメンドといった推薦システムを構築するときに注意すべきことが2つある。
  • 論文で精度が高いと言われるシステムは、データの再現ができているだけであり、導入すれば良くなるわけではない。
  • 推薦システムを評価するためには、導入する目的を明確にし、結果としてサービスをどのように良くするのかを明確にすべきである。
推薦システムは、Webサービスとしての側面が強く、その開発運用には機械学習スキルだけにとどまらずビジネスに対する理解やユーザ体験に対する理解が必要だ。(150ページ)

さらに scikit-imageを導入すると、画像認識を行うことができる(画像をnumpy配列で表現する)。画像認識における物体検出に機械学習が利用できるが、まだ決定的なアルゴリズムは見いだされて織らず、特徴量の抽出に試行錯誤が必要だ。

Jubatus とはNTTとPreferred Networks社が共同開発し、オープンソースとして公開しているオンライン機械学習基盤Jubatusは、オンライン機械学習のアルゴリズムを複数搭載しており、複数の計算機に処理を分散させることで耐障害性とスケールアウト性を両立しており、C++で実装されており高速だ。また、クライアント/サーバモデルを採用しており、クライアン卜側はSDKを用いることでC++、Ruby、Python、Java、Goで記述できる。

レビュー

人工知能とメールをする人のイラスト(男性)
冒頭に、1980年代に人工知能の研究をしたと書いたが、その頃はLispやPrologがもてはやされ、国家プロジェクト「第五世代コンピュータ」ではPrologでOSを構築した。だが、コンピュータの計算力が非力で、ニューラルネットワークを組もうとしたとき、専用ASICを作らなければならないほどだった(現在もAI専用CPUは開発されている)。
また、人工知能開発のためのライブラリもなければ、いまのようにインターネットが普及していなかったから、適当な学習データも手に入らなかった。
けれども、ディープラーニングに代表される機械学習は、当時のニューラルネットワークの発展形であり、40年前のアルゴリズムや技術が、面々を受け継がれ改良されていることを理解できた。当時、ようやく画像認識ができるようになっていたが、いまでは物体検出を手掛けるほど進歩しているのにはワクワクさせられた。

ネット上では ChatGPT が話題であるが、こうしたクラウドサービスや、Pythonを使ったローカルな機械学習システムをAPIで結び、ローコーコードでGUIを書けるようになると、誰でも気軽にAIを利用できるようになるだろう――そんな時代が、案外、すぐやって来そうな予感がする。
(2023年2月18日 読了)

参考サイト

(この項おわり)
header