見出し画像

近刊『ビジュアルテキスト パターン認識』まえがき公開

2021年3月下旬発行予定の新刊書籍、『ビジュアルテキスト パターン認識』のご紹介です。
同書のまえがきを、発行に先駆けて公開します。

画像1

***


まえがき

●この本の特長
パターン認識技術は現代社会のさまざまなサービスの中に取り込まれ、すっかり身近なものになりました。みなさんもスマートフォンで指紋認識、音声認識、顔画像認識、楽曲認識、文字認識など、さまざまなパターン認識技術を当たり前のように利用していると思います。

そのため、パターン認識技術に関する書籍も多く存在しますが難解な内容が多く、初学者にはハードルが高い分野になってしまっています。技術や理論は置いておいて、ともかく動かしてみましょうというスタンスの書籍が多い理由も、技術の難解さにあるのかもしれません。

この本では、現在のパターン認識技術の根幹である統計的パターン認識技術の基礎理論を、その数学的意味を丁寧に説明することで、根本的な意味から理解できるように努めました。

対象は大学低学年を意識して、大学初年度程度の基礎知識があれば読み進められるようにしました。

多くの書籍ではページ数の都合で掲載されていない式の導出過程を詳細に示すことで、文を読むような感覚で式を読み進められるようにしてあります。こうすることで、基本的な式から始まって、順次さまざまな理論へと関係付けながら理解できるように心がけました。

さらに、この式は何を意味しているのか、式と式の関係はどうなっているのかなど、わかりにくい部分に関しては、図と式を用いて意味を可視化することを心がけました。それでも数学的な理論は理解しにくいので、多くの例題で理解を深められるようにしてあります。

専門書というよりも読み物に近い内容になっていることもあり、読み進めていくうちに自分が今、全体の理論構成の中のどこを歩いているのかがわからなくなるかもしれません。そこで、章末にまとめを設け、各事項の参照ページ番号と式・表・図番号を示すことで、各章を振り返れるようにしました。

また、理解を深めるためにLet’stry!という問題を作り、各技術的説明の後に置きました。理解度をチェックするために用いてください。

さらに、サンプルプログラムも用意しました。用意してあるものは本文中にProgramと示してあります。サンプルのプログラムはPythonで書きましたので、さまざまなOSで動かすことができると思います。実際に動かして理解を深めてください。

このサンプルプログラムとLet’s try!の簡単な解答例は

https://www.morikita.co.jp/books/mid/088091

から取得することができます。

このような構成にしたのでページ数は多くなりました。さらに、教師なし学習などさまざま提案されている技術も網羅できていません。しかし、この本で取り上げている技術は、現在のパターン認識技術の根幹の部分であり、この基礎的理論を数学的に理解できれば、この先にあるさまざまな技術の理解も容易になると考えています。

理論がブラックボックスになりかけてしまっている現代に新たにこの分野に入ってこられる読者のみなさんが、パターン認識の基礎理論を理解するための助けになれば幸いです。

●この本のあらすじ
では、この本で扱う内容を簡単に説明しましょう。本書の内容を図1から図4にまとめました。まず、図1を見てください。ここでは、目の前に現れた未知の動物が「犬」か「猫」かを見分けることを例として考えます。

みなさんは未知の動物が与えられたときに、今まで経験したことを思い出して、それらのうちのどれに似ているだろうと考えるでしょう。似ているというのは、図に示したように距離で測ることができます。さて、この方法は記憶との総当たりです。これでは、知っていることが増えると破綻してしまうので、人間はこのようには認識していないでしょう。

ではみなさん、「犬」をイメージしてみましょう。一つのイメージが頭に浮かびますよね。これが典型例(プロトタイプ)です。物体一つに対し一つの典型例だけなので、識別にかかるコストは低くなりました。

ここで、「犬」と「猫」のプロトタイプの間には、未知の動物との距離が等しくなる点があります。これが識別境界(決定境界)です。この境界を識別関数f(x)で定めると、その正負だけで認識ができます。便利ですね。

ところが、プロトタイプを用いた方法だと、識別境界の近くに既知の事例が存在することがあります。そこで、既知の事例群の間のマージンが最大になるように境界線を引くことを考えました。みなさんが図のようなデータを与えられたら、大体真ん中に境界を引きますよね。それがマージン最大化です。

画像7

次は、図2を見てください。ここまでは、直線(線形関数)で犬と猫(〇と□)を分割できましたが、この例では分割できません。実際の場合では、このようなことがよく起きます。では、識別境界を定めていた識別関数を拡張することを考えましょう。

まず、一つ目は評価関数最小化法です。今までは距離という尺度を用いていて、それにより識別境界が決まっていました。この方法では、距離を用いずに、理想的な識別関数の値を一つひとつの事例に対し教師信号として与えます。そして、教師とのズレが最小になるように識別関数を決めようと考えます。

二つ目は直線で引けないなら曲線で引けばよい、と考える方法です。実際に曲線だと自由度が高すぎるので、細かい線分を組み合わせて識別境界を決めます。この考え方に近いのがニューラルネットワーク(多層パーセプトロン)です。

最後は先ほどのマージン最大化の拡張です。自分の領地からはみ出たデータには負のマージンがあるとしてマージンを定義し直し、マージン最大化を行う方法です。ソフトマージンSVMといいます。

画像3

この本で扱うのは、このように、みな識別関数に基づいた方法です。

では、次は図3を見てください。このようにさまざまな方法で認識された結果は本当に正しいのでしょうか。認識した結果の確からしさを考える必要がありそうですね。図に示すように、確率モデルを導入した認識方法が多く提案されています。この本ではベイズ推定を中心に、何を確率モデルで表現するかに注意しながら代表的な認識手法を説明していきます。

画像4

画像5

最後に、どのような点に留意しながら認識を行うかを考えてみます。図4を見てください。

ここまでの例では、「目の前に現れた未知の動物が犬か猫か?」を認識していました。それが図中(A)の枠の部分で、目の前にある現物を何と判断するのが最も尤も(もっとも)らしいかという基準で認識を行います。

ところが私たちは、それ以外の知識も使いながら認識を行っています。例えば、認識結果が“猫”ではなく“ライオン”だったとしましょう。そして未知動物が現れたのは、“家の中”です。「まさか!こんなところに」と思うわけですが、これが常識、先験知識などと呼ばれるもので、それを考慮した認識法が図中(B)の枠の部分です。

さらに、何のために認識を行っているかといえば、その判断結果に基づき行動するからです。未知動物がライオンの場合、あなたが正しくライオンだと認識すれば、家の外に逃げるでしょう。一方、間違って猫と認識してしまうと、あなたはライオンに襲われてしまい大きな損害を被るでしょう。では、未知動物が猫の場合はどうでしょう。誤った認識をしても、大した損害はなさそうですね。このように損害まで考えてどのように認識をすべきかを考える方法が図中(C)の枠の部分です。この本の最後で扱います。

この本の全体の構成をお話ししてきましたが、イメージがつかめたでしょうか。このようにこの本では、現在まで提案されてきたさまざまなパターン認識技術を関連付けながら説明していきます。きちんと腰を据えて読み進めれば、きっと理解できますし、これらの基礎技術が理解できれば、これからの未来に提案されるだろう新しい技術もきっと理解できるでしょう。

***

『ビジュアルテキスト パターン認識』
https://www.morikita.co.jp/books/book/3560

著:荒井秀一

パターン認識の基礎について、やさしく丁寧に解説した入門書。
図と数式によって、きちんと理解することができます。
初めて学ぶ方や、ほかの本では難しいと感じている方に、おすすめの一冊です。

〈本書のおすすめポイント〉
●数式や概念を、多くのカラー図を使って解説
→初学者がつまずきやすい難しい部分も、視覚的に理解することができます。
●やさしい語り口で、数式の意味をかみ砕きながら説明
→物語を読むかのように、自然と読み進めることができます.
●例題や「Let's try!」という問題が豊富
→理解度をチェックすることができます。
●Pythonのサンプルプログラムを提供
→実際に手元で動かして、理解を深めることができます。

***

サンプルページ

画像6

画像7

パターン認識目次1

パターン認識目次2

パターン認識目次3

パターン認識目次4

パターン認識目次5


この記事が気に入ったらサポートをしてみませんか?