めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

「ITエンジニアのための機械学習理論入門」が発売されます。

gihyo.jp

表題の書籍が技術評論社より発売されることになりました。

本書の内容をまとめるにあたっては、国立情報学研究所「トップエスイー」の有志による勉強会で行った議論から、数多くのヒントをいただきました。同勉強会に参加いただいた方々に改めて感謝します。「ITエンジニアのための」と題されていますが、機械学習に興味のある方、これから機械学習を勉強してみたいという方であれば、どなたでも楽しんでいただける内容に仕上げることができました。

Amazonで予約が開始されていますが、参考として、「はじめに」「本書が対象とする読者」「各章概要」を公開しておきます。

はじめに

 「機械学習」にかかわるITエンジニアが、予想以上に増えているのかもしれない――そんな疑問を抱いたのは1年ほど前の出来事でした。「データサイエンス」や「ディープラーニング」、果ては「人工知能」まで、メディア好みのバズワードが溢れる中、データ分析を専門としない一般のITエンジニアに対しても、機械学習の活用が期待される時代がやって来ました。世の中では、「専門知識がなくても使える」と宣伝する機械学習サービスすら提供されています。

 しかしながら、そこには大きな落とし穴があります。さまざまな機械学習のツールやライブライリーがオープンソースとして提供されるようになり、機械学習の計算処理は誰でもできるようになりました。データを投入してプログラムを実行すれば、何らかの結果が出てきます。しかしながら、その結果にはどのような「意味」があるのでしょうか? 機械学習の結果をビジネスに活用するには、その背後にあるアルゴリズムを理解して、その結果が持つ意味を正しくとらえる必要があります。

 本書では、機械学習のビジネス活用を念頭に置き、機械学習の基礎となるアルゴリズムを根本から解説しています。具体的な例題を用いて、「どのような考え方で、何を計算しているのか」という点をごまかさずに説明します。それによって、機械学習、さらにはデータサイエンスの本質を理解していただくことが本書の目標です。機械学習には、さまざまなアルゴリズムがありますが、その根底には「データのモデル化とパラメーターの最適化」という共通した考え方があります。本書では、このような「考え方」に重点をおき、それぞれの数式の意味をできる限り平易に説明するように心がけました。この点が理解できれば、ディープラーニングやニューラルネットワークなど、本書の範囲を超えた、さらに高度なアルゴリズムも恐れることはないでしょう。

 「機械学習のビジネス活用企画を頼まれて困っている」「販売分析アプリケーションの開発プロジェクトに、突然、参加が決まった」――知人のITエンジニアからのこのような声が、冒頭の疑問の出どころでした。これからの時代、機械学習を理解して使いこなすことは、ITエンジニアとして新たな人生を切り開くチャンスになるのは間違いなさそうです。そして何よりも、機械学習には、ITエンジニアの知的好奇心、技術への探究心を存分に満たしてくれる面白さがあります。一人でも多くの方に、本書を足がかりとして、機械学習の世界への第一歩を踏み出していただけることを期待しています。

本書が対象とする読者

 本書は、機械学習のアルゴリズムについて、その背後にある理論を理解して、ビジネスに役立てたいと考えるITエンジニアを対象としています。機械学習にはさまざまな利用目的がありますが、本書では、「データ分析結果をビジネス判断に役立てる」という観点から、各種のアルゴリズムの解説を進めます。機械学習のツールやライブラリーの使い方を説明した書籍ではありませんので、その点はご注意ください。
 また、本書で取り上げる例題の多くは、機械学習の世界ではバイブルとも言える、次の書籍から引用しています。

『パターン認識と機械学習・上/下』 C.M. ビショップ(著)、元田 浩、栗田多喜夫、樋口 知之、松本 裕治、村田 昇(監訳)、丸善出版(2012年)

 機械学習を学ぼうとこの書籍に挑戦したものの、高度で理解しきれなかったという方も多いかもしれません。IT エンジニアに限らず、この「バイブル」を読破するための入門書として、本書を活用していただくこともできるでしょう。

各章概要

第1章 データサイエンスと機械学習

 機械学習のアルゴリズムを学ぶ準備として、より大きなデータサイエンスの枠組みから機械学習を捉えます。「データサイエンスにおける機械学習の役割」を理解することで、機械学習のビジネス活用という観点から、アルゴリズムの特性をより明確に理解することができるようになります。また、第2章~第8章で使用する例題を先に解説した上で、サンプルコードの実行環境を準備する手順を説明します。

第2章 最小二乗法:機械学習理論の第一歩

 機械学習の基礎となる「回帰分析」の中で、もっとも基本的な「最小二乗法」のアルゴリズムを解説します。計算そのものはそれほど難しくありませんが、この手続きを通して、機械学習の理論的基礎となる「統計モデル」の考え方を理解していきます。また、機械学習の結果をビジネスに適用する上でのポイントとなる、「オーバーフィッティング」の検出について説明します。

第3章 最尤推定法:確率を用いた推定理論

 確率を利用した統計モデルの基礎となる「最尤推定法」の手続きを解説します。第2章と同じ例題を扱いながら、最小二乗法との類似点/相違点を整理した上で、機械学習における、確率を用いたモデルの役割を理解していきます。少し高度な話題として、推定量の「一致性」と「不偏性」についても解説を加えます。

第4章 パーセプトロン:分類アルゴリズムの基礎

 「分類アルゴリズム」の基礎となる「パーセプトロン」について解説します。数値計算を用いてパラメーターを修正してゆく「確率的勾配降下法」の手続きは、機械学習における数値計算手法の基礎となります。一般的な入門書ではあまり触れられていない点として、バイアス項の修正による収束速度の改善、および、アルゴリズムの幾何学的な解釈についても解説を行ないます。

第5章 ロジスティック回帰とROC曲線:学習モデルの評価方法

 最尤推定法を用いた分類アルゴリズムとして、「ロジスティック回帰」の解説を行ないます。ROC曲線を利用しながら、現実の問題に機械学習を適用する際の考え方、そして、複数の分類アルゴリズムを比較する方法を学びます。数学的な興味を持つ読者のために、数値計算でパラメーターを修正していく「IRLS法」の厳密な導出も行ないます。

第6章 k平均法:教師なし学習モデルの基礎

 教師なし学習によるクラスタリングの基礎として、「k平均法」のアルゴリズムを解説します。また、具体的な応用例として、画像ファイルの減色処理を実装します。文書データの自動分類など、単純ながらも応用範囲の広いアルゴリズムです。さらに参考として、怠惰学習モデルである「k近傍法」を紹介した上で、機械学習における「データのモデル化」の意義について考えます。

第7章 EMアルゴリズム:最尤推定法による教師なし学習

 教師なし学習によるクラスタリングのアルゴリズムとして、最尤推定法を利用した「EMアルゴリズム」を紹介します。比較的複雑なアルゴリズムとなるため、手書き文字の分類問題に対する、具体的な適用例を通して解説を進めます。現実世界でも活用される「画像分類」のアルゴリズムが、確率を用いた考え方でどのように実現されるのか、興味を引く実例です。

第8章 ベイズ推定:データを元に「確信」を高める手法

 モデルに含まれるパラメーターの値を確率的に推測する「ベイズ推定」の手法を解説します。理論的基礎となる「ベイズの定理」の解説からはじめて、第2章、第3章と同じ回帰分析の例題について、ベイズ推定を適用していきます。ベイズ推定には、計算で得られた結果の「確信度」がわかるという特徴があり、最尤推定法とは異なる、新たな知見を得られることがわかります。