31
1 深層学習のすべて 北海道科学大名誉教授 大堀隆文 北海道科学大教授 木下正博 目次 1.まえがき 2. 深層学習 2.1 深層学習とは 2.2 深層学習の歴史 2.3 従来のニューラルネットとの違い 演習課題 3.パターン認識 3.1 パターン認識とは 3.2 パターン認識システムの構成 3.3 パターンの前処理 3.4 パターンの特徴抽出 3.5 パターンの識別法 3.6 パターン認識の数値例 演習課題 4. 人工知能入門 4.1 人工知能とは 4.2 機械学習とは 4.3 ニューラルネットとは

深層学習のすべて - oohorisemi.web.fc2.comoohorisemi.web.fc2.com/otaru/SJ/AllDeepLearning0104.pdf · 深層学習 6.1 深層学習入門 6.2 畳み込みニューラルネット

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

1

深層学習のすべて

北海道科学大名誉教授 大堀隆文

北海道科学大教授 木下正博

目次

1.まえがき

2. 深層学習

2.1 深層学習とは

2.2 深層学習の歴史

2.3 従来のニューラルネットとの違い

演習課題

3.パターン認識

3.1 パターン認識とは

3.2 パターン認識システムの構成

3.3 パターンの前処理

3.4 パターンの特徴抽出

3.5 パターンの識別法

3.6 パターン認識の数値例

演習課題

4. 人工知能入門

4.1 人工知能とは

4.2 機械学習とは

4.3 ニューラルネットとは

2

4.4 深層学習とは

演習課題

5. ニューラルネット

5.1 ニューラルネットの概要

5.2 ニューロンの基本構造

5.3 ニューロンのモデル

5.4 ニューロンによる論理関数の実現

5.5 パーセプトロン学習

5.6 パーセプトロンによる文字認識学習

5.7 誤差逆伝播学習

演習課題

6. 深層学習

6.1 深層学習入門

6.2 畳み込みニューラルネット

6.3 深層学習の課題

演習課題

7. 深層学習の実行環境と実行サイト

7.1 Azure ML とは

7.2 Azure ML の登録と利用形態

7.3 Azure ML サイトのデータとモデルで行う深層学習

7.4 Azure ML サイトの学習データを用いた深層学習

7.5 Azure ML サイトの学習データとモデルをユーザ作成の深層学習

演習課題

8.深層学習の応用

8.1 画像認識関係

8.2 自然言語関係

3

8.3 自動運転関係

8.4 知能関係

8.5 サービス

8.6 医療関係

演習課題

9.深層学習関連用語集

9.1 統計アルゴリズム

9.2 情報推薦手法

9.3 画像認識

9.4 機械学習

9.5 ニューラルネット

9.6 自然言語処理

10.あとがき

11.参考文献

4

1.まえがき

本書のタイトルである深層学習は英語では Deep Learning(ディープラーニ

ング)といい、機械学習の一種でニューラルネットを用いた人工知能技術の総称

である。近年、画像認識、ゲーム戦略、情報推薦、自動運転など様々な分野に

おいて画期的成果が得られ数多く実用化されている。深層学習はニューラルネ

ットのルネッサンスと表現されることもあり、特定手法を指すのではなくニュ

ーラルネットの一種の多層パーセプトロンの最新手法全般を指す。

したがって、最近深層学習、ディープラーニング、人工知能などの啓蒙書、

教科書、応用書などが数多く出版されている。しかし、これらの書籍は必ずし

も深層学習の全分野を網羅したものではなく、基礎理論から応用技術、実際の

応用まで幅広く学びたい人にとりやや物足りない印象を受ける。

深層学習は、政府が掲げている新産業創出にとり欠かせない学問領域である

が、現在大学において深層学習の講義が行われているケースは少ない。また、

従来の教科書は数式が多く、深層学習の概念を分りやすく噛み砕いて説明して

いるものは少ない。

本書では次の 2 つの方法を考える。一つは深層学習の本質をできるだけ数理

表現を用いずに説明する。二つ目は読者が深層学習に興味や面白さを感じ、学

習への意欲を引き出す例題や課題を数多く用意する。

本書では,読者のモチベーションを保ちながら深層学習の基礎を習得するこ

とを目的として、できるだけ数理的表現を使わずに、かつ読者の興味の引きそ

うな例題や課題を開発した。すなわち、数学が苦手な読者、特に文科系の読者

にはレベルの高い数学的表現を極力減らし、最小限の数学からなる身近な話題

から例題、課題を作成した。

本書は以下の 1~10 章と参考文献で構成される。2 章では、深層学習の概要

5

をその開発の歴史を交え述べるとともに、他のニューラルネットとの違いを比

較する。3 章では、深層学習の主な学習対象であるパターン認識について、そ

の概要と従来の代表的手法である最近傍法を述べる。4 章では、深層学習と密

接に関係する人工知能の手法について、概要と歴史さらに手法の相互関係につ

いて述べる。5 章では、深層学習の基礎としてのニューラルネット学習につい

て、 ニューロン基本構造とモデル、パーセプトロン学習と誤差逆伝播学習を概

説する。6 章では、深層学習について、その考え方から数学的基礎、アルゴリ

ズム、従来手法との違いについて述べる。7 章では、深層学習の応用として、

画像認識、自然言語処理、自動運転、知能関係、ネット上のサービス、医療関

係の応用を述べる。8 章では、深層学習の実行環境と実行サイトの中で、プロ

グラミングなしで実行できるクラウド実行環境の Azure ML について、概要と

その使用例を述べる。9 章では、深層学習に出てくる専門用語を分野ごとに整

理して分りやすく説明する。

本書は大学等の講義においても使用できるように、各章において例題と練習

問題を用意している。例題の一部は実際に手計算やエクセルソルバーなどで解

くことにより結果を確認することができる。練習問題の解答例はコロナ社の

Web ページからダウンロードすることができ、自分で解いた解と比較し学習す

ることができる。

一見難しく取りつきにくい深層学習であるがモチベーションが下がればさら

に難しいものとなる。本書はモチベーションを保つ試みとして深層学習の本質

を詳しく説明しまた読者が興味をもつ例題と応用例を多く紹介する。是非、本

書を読んで一人でも深層学習が好きな読者が現れることを願ってまえがきとす

る。

最後に、我々をいつも陰からサポートしてくれている妻の大堀真保子、木下

倫子に最大限の感謝の意を表したい。彼女らの支えがなければこのテキストが

完成することはできなかっただろう。そして、本書の企画から完成まで、さま

6

ざまな面でご助力いただいたコロナ社の関係者の皆様に、改めて感謝申し上げ

ます。

著者を代表して

大堀隆文

平成 29 年 10 月 1 日

7

2.深層学習

本章では、深層学習の概要をその開発の歴史を交え述べるとともに、他のニ

ューラルネットとの違いを比較する。

2.1 深層学習とは

深層学習は特定手法を指すのではなくニューラルネットの一種の多層パーセ

プトロンの最新手法全般を指す。深層学習はニューラルネットのルネッサンス

と表現されることもある。

深層学習は、ニューラルネットと呼ばれる人間の脳の仕組みをコンピュータ

で再現するモデルを用いた機械学習の一種である。英語では Deep Learning(デ

ィープラーニング)と呼ばれ、最近の人工知能ブームの中で中心的役割を果たし

ている。

深層学習の登場以前多層ニューラルネットは、局所最適解や勾配消失などの

技術的な問題により充分に学習することができず性能も芳しくない冬の時代が

長く続いた。しかし 2006 年にニューラルネットの代表的研究者であるヒント

ンの研究チームが制限ボルツマンマシンによるオートエンコーダの深層化に成

功し再び注目を集めるようになる。この時に発表した論文から深層学習の用語

が定着した。

この研究成果が現在の深層学習に直接繋がる技術的ブレイクスルーと見られ

ている。ニューラルネットの多層化は学習時間と計算コストに問題があったが

近年のコンピュータの高性能化や CPU よりも単純な演算の並列処理に優れた

GPU による汎用計算により改善されている。GPU を利用することで性能あた

りの価格や消費電力を CPU の 100 分の 1 に抑えることができる。

ヒントンらの開発した深層学習はもともと層が直列のシンプルな構造をして

8

いたが、現在のアルゴリズムは複数の分岐やループのある複雑なグラフ構造を

持つ。そのため基本技術をまとめて複雑なグラフ構造を簡単に実現できるよう

にしたフレームワークも公開されている。また 2012 年からは急速に研究が活

発となり第三次人工知能ブームが到来したとされている。

深層学習ではバックプロパゲーションと呼ばれる計算手法により大量の訓練

データを多層ニューラルネットへ入力した際の出力誤差を計算し誤差が最小と

なるように学習を行う。この際従来は画像や音声などそれぞれのデータの研究

者、技術者が手動で設定していた特徴量が同時に抽出される。このため手作業

での特徴量抽出が不要になった点が深層学習の大きな利点の一つである。特徴

量とは問題の解決に必要な本質的な変数で特定の概念を特徴づける変数である。

2.2 深層学習の歴史

今日の深層学習につながる世界的に最も先駆的研究として、日本の福島邦彦

(NHK 研究所その後大阪大学)により 1979 年に発表されたネオコグニトロンが

挙げられる。ネオコグニトロンには自己組織化機能があり、自ら学習すること

によってパターン認識能力を獲得(概念の形成)していく。応用例として、福島

らは手書き文字データベース(ビッグデータ)から自己学習により手書き文字認

識能力(各文字の概念)が獲得されることを実証した。しかし、当時は「手書き

文字認識方式の一つ」と誤解されその重要性についての認識が世間に広がらな

かった。

ニューラルネットが今日の精度を得るには 50 年以上を要しその歴史の中で

少なくとも 2 つの技術的困難に直面した。「XOR 問題」と「精度問題」である。

脳を模倣した計算アルゴリズムの研究は 1940 年代から始まる。最初の脳の

構造を模した機械学習ブームを起こしたのは 1958 年に米国のローゼンブラッ

トが開発したパーセプトロンである。パーセプトロンは入力層と出力層のみか

らなるシンプルな設計にも関わらず学習や予測ができるので当時注目を集めた。

9

しかし米国のミンスキーとパパートはパーセプトロンの予測性能に関する重大

な欠陥を指摘した。それは排他的論理和(XOR)のような単純な課題でもどんな

に理想的に学習させたとしてもパーセプトロンではその予測ができない。この

XOR 問題がニューラルネットの第 1 の困難であり第 1 次ブームは終わり研究

大きく衰退した。

その後の研究で XOR 問題はパーセプトロンに隠れ層を入れれば理論上は解

決することが分かった。さらに 1986 年に隠れ層を持つニューラルネットを高

速に学習する誤差逆伝播法と呼ぶ訓練方法がアメリカのラメルハートらにより

発見されると第 2 次ブームが巻き起こる。ところが現実には (層の多い)深いニ

ューラルネットは満足な精度を得られなかった。確かに理論上は十分な予測精

度があるが深いニューラルネットを学習するほど十分なデータを当時は得られ

なかった。この学習データ不足による精度の不足がニューラルネットの第 2 の

困難である。

長らく冬の時代が続いてたニューラルネットであるが状況が変わり始めたの

は 2000 年代後半である。この頃になると学習に十分な大量データとそれを処

理するコンピュータが比較的容易に入手できるようになった。これらの要因に

加えて冬の時代にも着々と進められた技術的進歩が相まり深いニューラルネッ

トは既存手法を凌駕する精度を達成できた。すなわち多層にネットワークを積

み重ねても精度を損なわない手法が提唱された。深層学習の言葉が使われたの

もこの頃からである。

今も深層学習で指導的な研究を行うカナダのヒントンは 2006 年の論文で層

が深いニューラルネットを総称して深層ネットと呼び現在は中国のングは

2007 年の論文で「高次元データの階層的な表現の学習」に深層学習の言葉を用

いている。

深層学習の圧倒的な精度を示す 2 つの出来事が 2012 年に起こる。1 つは画

像認識率を競う ILSVRC において、ヒントンのグループが深層学習を用いた

10

Supervision 手法で 1 年前の優勝記録の誤り率 25.7%から 15.3%へと 4 割も削

減し圧勝した。もう 1 つは 2012 年 Google とスタンフォード大学が深層学習に

よる人工知能の成果を発表した。YouTube 動画から 1000 万枚の画像を読み込

み 1000 台のコンピュータで 3 日間学習した結果、猫写真に反応するニューロ

ンが生成した。コンピュータは猫画像の入力時に反応するニューロンを選びそ

のニューロン反応を観察し画像が猫か否か精度よく識別した。人から猫画像を

教えられずにコンピュータが膨大データにアクセスし自ら学習し猫画像を認識

した。これら物体認識タスクにおいて従来手法より飛躍的な進歩を遂げたこと

は、深層学習の威力を強く印象づけ現在も続くブームを引き起こした。

ヒントンらが優勝したコンテストで使われたデータセットを使い今も画像認

識の精度が競われている。特に 2014 年 8 月から半年間でグーグル、バイドゥ、

米マイクロソフトがいずれも深層学習法で次々に記録を更新した。現在の誤り

率の最高記録はグーグルの報告した 4.9%である。諸説あるがこれは人間の認識

精度を甘く評価した誤り率 5.1%を既に超えている。

2016 年 3 月 Google 傘下の人工知能会社 DeepMind の AlphaGo が囲碁で韓

国のトッププロ棋士に勝利した。囲碁で人工知能が人に勝つまで発展するには

まだ 10 年以上かかると言われていたので世界の注目を集めた。2015 年以前の

人工知能はアマチュアの段レベルに達するのがやっとだった。人工知能のこの

急激な発展を支えたのが人工知能に学習させる技術の進化である。そうした技

術を応用することで様々な分野で人工知能は急激に賢くなっていった。

深層学習は IT 企業でも研究開発が進められている。コンピュータの画像音

声認識技術や人の言葉理解の自然言語処理への応用が期待される。パターン認

識技術は Facebook ソーシャルネットに画像投稿するとそれが誰かを認識し料

理写真投稿でどんな料理か材料かがの自動認識が可能になる。

ビッグデータ IoT 時代には人工知能は相性が良い。認識精度はデータ量が増

える程大幅に向上する。SNS の情報発信が増え IoT デバイスで様々な物がイン

11

ターネットに接続され、今まで計測されない領域のデータも取得可能になった。

データ量が膨大なビッグデータ時代では、人工知能の認識技術の精度は益々高

まっている。取得データを解析する人工知能が活躍する場面は益々増えている。

人工知能アルゴリズムの精度が向上したために研究室だけでなく実際のビジネ

スでの利用が可能になった。

2.3 従来のニューラルネットとの違い

ニューラルネットは脳をモデル化しシミュレーションにより再現する数学モ

デルを指し、パターン認識などで用いる多層パーセプトロンを指す。深層学習

ではニューラルネットの構造上「入力層」と「出力層」の間にある「隠れ層」

と呼ぶ中間層の数を増やし多層構造にする。この隠れ層により何段階の認識を

繰り返し、色、形状、質感、全体像など複数の特徴を抽出しより正確な識別を

実現する。

人工知能に学習させるとはどういうことか。最も典型的な答えは例えば写真

を見たときに「犬」なのか「猫」なのか「または違う生物なのか」を区別する

方法を学ぶことである。人が一目見て分かることでも何も学習しない人工知能

は分からず教えなければ適切な回答を導き出せない。人工知能の学習技術には

大きく分けて 2 種類の技術がある。ニューラルネットと深層学習である。シス

テムの効率化やデータ分析の高速化などにも使われるこれらの技術はどのよう

に違うのか。

まずニューラルネットを見る。これは開発者が予めすべての動作をプログラ

ムするのではなくデータをニューラルネット自身が解析し法則性やルールを見

つけ出す特徴を持つ。つまりトレーニングにより特定のタスクを実行できる人

工知能である。例えば画像認識の例を紹介する。1 枚 1 枚に「赤いリンゴ」「青

いリンゴ」というタグをつけた大量のリンゴ画像をニューラルネットに読み込

ませる。その際に「色に着目して区別せよ」とニューラルネットに指示を与え

12

ると、まだ解析していないリンゴ画像に対しニューラルネットはリンゴの色に

着目し、「赤いリンゴ」か「青いリンゴ」かを区別するように自ら学習する。

より具体的な活用例に迷惑メールフィルタがある。実際にメール情報を大量

に学習させ迷惑メールを自動で識別する例が登場している。他にも人の画像を

大量に読み込み画像中の人の顔を認識する用途に使用される。

深層学習はニューラルネットを更に発展させたものである。従来のニューラ

ルネットとの大きな違いは情報やデータを分析する際に使う枠組みが異なるこ

とである。より詳しく知るために先ほどの画像を分析し「青いリンゴ」か「赤

いリンゴ」を見分ける仕組みについて見る。ニューラルネットでは「色」に着

目するように指定しるのに対して、深層学習は区別する目の付けどころ (特徴

量)を人工知能が自分で学習しその性能を向上させる。言い変えれば深層学習は

多くのデータを見ることによりどこに注目すればよいかを自分で学習し人から

の指示を待たずに自動で賢くなる。

ニューラルネットと深層学習については同じく人工知能であるが機能強化の

自動化を推し進める違いがある。特に分析の対象を区別する際に目の付けどこ

ろ(特徴量)を自動的に見つけ出す点で進化していると言える。特に深層学習は

言葉で特徴を定義するのが難しい場合に高い効果を発揮する。例えば米国の

Sentient Technologies 社では商品検索に深層学習を利用する。服や靴の好みな

どは言語表現が難しいが人工知能は消費者が商品をクリックした情報を元に消

費者の好みに合いそうな商品を提案してくれる。

まとめると、ニューラルネットは人がある程度学習の方向性をコントロール

する一方で、深層学習は場合により思わぬ方向に学習が進む可能性がある。何

のデータを読み込ませるかを慎重に選ぶことにより効率的にコンピュータが学

習すると期待できる。

13

演習課題

【課題 2.1】

深層学習は現在大流行であり、新聞に掲載されない日がないといっても過言

ではない。このような状況の中であなたが深層学習に抱いているイメージを述

べなさい。

【課題 2.2】

深層学習はニューラルネットが改良を加え進化を続け生み出されたものであ

る。このニューラルネットの歴史の中で重要なターニングポイントがいくつか

ある。そのポイント 2,3 個を挙げ、その理由とともに示しなさい。

14

3. パターン認識

本章では、深層学習の主な学習対象として最も多く扱われるパターン認識に

ついて、その概要と従来の代表的なパターン認識手法である最近傍法を述べる。

3.1 パターン認識とは

パターン認識は自然情報処理の一つで画像音声などの雑多な情報を含むデー

タの中から一定の規則や意味を持つ対象を選別する処理である。パターン認識

には音声認識、文字認識、全文検索システムの技術などを含む。近年は、パタ

ーン認識研究が人工知能研究と融合し、深層学習などの機械学習により大量デ

ータから識別する手法が主流になった。ここでは、パターン認識とは何かにつ

いてその概要を述べる。

人間が知覚できる実世界の画像・音声などの情報をパターンという.パター

ン認識とはこのパターンを予め定めた複数の概念(クラス)の内の一つに対応さ

せる処理である。例えば人間は目から画像情報を得て見るものが何かがわかる。

また知人であれば誰かがわかる。耳から音を聞き普段使う言語であれば何を言

っているかわかる。このような処理がパターン認識である.

一般に「パターン認識技術」と言うときはこの識別主体はコンピュータであ

る。コンピュータに人間が行うパターン認識を代行させると人間は楽になる。

例えば 1970 年頃は葉書に書いた郵便番号は人が読み取り行き先毎に別々の棚

に振り分けた。現在は手書き数字をパターン認識する機械が郵便番号を読み取

り自動的に振り分ける。

また電話で航空機や電車のチケットを予約できる音声対話システムが実用化

されている。録音された音声案内に従い電話の数字キーで情報を入力するシス

テムは以前からあった.しかし携帯電話では電話器を耳から一旦離して入力し

15

なければならず、またガイダンスが不明確なときは自分がしたいことに対応す

る数字をガイダンス終了まで憶えていなければならない等の問題点があり,あ

まり使い勝手のよいものではなかった。音声認識に対応したシステムは希望の

日時や席種などを声により入力できる。また家電製品の電話サポートでは最初

に製品コードを音声認識し迅速に担当部署に振り分ける。

以下にパターン認識システムがどのように作られているかとそこで用いる基

本的方法を解説する。

3.2 パターン認識システムの構成

パターン認識を行うプログラムは,認識の対象(音声・画像など)によらず一

般に図 3.1 のモジュール構成で実現する。前処理部はコンピュータにつないだ

カメラやマイクから認識対象の信号が入力される。

入力された実世界のアナログ信号は,サウンドボード等によりコンピュータ

で処理可能なディジタル信号に変換される。ここではディジタル化と後の特徴

抽出処理を容易にする処理を前処理と呼ぶ。特徴抽出部は前処理部の出力のデ

ィジタル化データを入力しパターン識別に役立つ情報を取り出す。これは逆に

いうとパターン識別に役に立たない情報を捨てる。文字の場合は文字の色や大

きさ等は識別に無関係な情報である.枠内のどこに書いてもまた大きさも色も

無関係で画像信号の「あ」のパターンは記号である「あ」の文字に変換される。

音声の場合は,話す人や声の大きさなどは話す音声がどの文字に対応するか

図 3.1 パターン認識システムの構成

16

の識別には無関係の情報である。特徴抽出処理ではこのパターン変動に影響さ

れない情報でかつ識別に役立つ情報をベクトルの形式で抽出する。これを特徴

ベクトルと言う。

識別部では特徴ベクトルを識別辞書中の各クラスの手本ベクトルと比較し識

別結果を決める。識別辞書には「あ」の手本ベクトル、「い」の手本ベクトル、

…が格納されている。通常、特徴ベクトルと手本ベクトルともに実数値を要素

とするので完全に一致することはあまりない。何らかの基準で「近い」ものを

選ぶ。この選ばれた手本ベクトルの属するクラスが認識結果として出力される。

以下では少し詳しく各モジュールの役割を説明する。

3.3 パターンの前処理

パターン認識の対象は

実世界の信号である。音

声は空気の疎密波であり

画像は 2 次元に広がる

光の強度分布である。これらの信号は連続的に変化するのでアナログ信号であ

る。一方コンピュータが処理できるのはディジタル信号である。したがってパ

ターン認識の最初の処理はアナログ信号のディジタル信号への変換である (図

3.2)。

アナログ信号はコンピュータに接続された入出力デバイスを通じて取り込む。

音声はマイクロフォンを使い空気の疎密波を電気信号に変換する。画像はカメ

ラを使い画像素子が感知した光の強さを電気信号に変換する。音声は取り込み

のハードウェアであるオーディオデバイスの性能の上限まで細かな情報を取り

込める。また画像はカメラの画素数の上限まで細かい情報を取り込める。当然

アナログ信号はできるだけ忠実にディジタル化した方が望ましい。しかし元の

情報を忠実に再現しようとすれば必要なデータ量は多くなる。データ量が多い

図 3.2 アナログ-ディジタル変換

17

と特徴抽出処理の負担が増し認識スピードが落ちる。したがってディジタル化

信号は認識に必要な情報は落ちない前提でできるだけ短い方が望ましい。

3.4 パターンの特徴抽出

特徴抽出とは入力データからパターン認識に役に立つ情報を取り出す処理で

ある。この処理は入力パターンが何(画像か音声か)であるか、どのようなクラ

ス(顔か文字か単語か)に分類するのかにより異なる。

パターンを識別する特徴はそのパターンの変動に影響されにくい情報でなけ

ればならない。これは何を識別対象クラスにするかに依存する。例えば音声認

識では何を話すかに関係のある特徴を、話す人に関係なく取り出さなければな

らない。しかし話者認識ではその逆である。話す人に関係のある特徴を話す内

容に関係なく取り出さなければならない。同じ音声を対象にしても取り出すべ

き情報が全く違う。また一つの特徴で全クラスの分類がうまくいくのはない。

例えば目だけを切り出した情報からそれが誰であるかを見分けるのは難しい。

人間でも人の顔を見分けるときは髪型・輪郭・肌の色などの複数の特徴を使う。

パターンの認識に使う特徴は一般に以下に示す特徴ベクトルの形式で表現され

る。

x = (x1, x2, . . . , xd)T (1.1)

これは d 個の特徴を表現した d 次元ベクトルで

ある。この d 次元空間を特徴空間、x を特徴ベク

トルと呼ぶ。この特徴ベクトルは特徴空間上の 1

点になり(図 3.3)、特徴抽出部の出力になる。ベク

トル表記の肩にある T は転置(Transpose)を意

味する。特徴ベクトル x は列ベクトルで表現す

るのが一般的だがスペース節約のために行ベクトルで書き転置 T の記号を付け

る。

図 3.3 特徴空間と特徴ベクトル

18

3.5 パターンの識別法

パターン認識システムの最後の識別部はパターン認識処理の結果を出すとこ

ろで責任重大である。

識別部は入力された特徴ベクトルがどのク

ラスに属するかを判別する。そのときに用い

る情報が識別辞書である。識別辞書にどの情

報を格納するかは様々な手法がある。最も簡

単な方法は各クラスの手本ベクトルを格納す

る方法である。この手本ベクトルを以後プロ

トタイプと呼ぶ。識別したいクラスが C 種類

あり、それぞれω1, ω2, . . . ,ωC と表す。プ

ロトタイプは各クラスに対応し一つずつ用意

されそれぞれ p1, p2, . . . , pC となる(図 3.4)。

次に識別したいデータの特徴ベクトルを x とする。これは特徴抽出部の出力

である。この x がどのクラスに識別されるかを判定する際に x と各クラスの

プロトタイプとの距離を測り一番近いプロトタイプ pi の属するクラスωi を

正答とする方法が考えられる(図 3.5)。この方法を最近傍法(Nearest Neighbor

法、略して NN 法)という。

図 3.4 特徴空間上のプロトタイプ

図 3.5 最近傍法

19

プロトタイプの位置はどのように決めればよいか。一般にパターン認識では

多くのサンプルからプロトタイプの位置を決める方法が用いられる。例えば手

書き数字認識の場合は何人かに数字を書いてもらい、その特徴ベクトルとどの

クラスに属するかの情報(通常はクラス番号)を記録しておく。このデータを使

い識別部を賢くするのでこのデータを学習データという。同じクラスに属する

学習データは書く人のクセで多少ばらつきはあっても (特徴抽出部がうまく特

徴を取り出せれば)特徴空間上で一かたまりになる。このかたまりの中からプロ

トタイプとして代表的なものを各クラスから選ぶ。ただし適当にかたまりの真

ん中あたりを選べばよいかというとそうではない。

2 クラスの識別問題を考える。NN 法は入力された特徴ベクトル x と最も近

いプロトタイプが属するクラスに分類するので、特徴ベクトル x がプロトタイ

プから等距離にある線または平面のどちら側かを判定する。したがってプロト

タイプの位置を決めることは各クラス間の境界面を決めることになる。プロト

タイプの位置が不適切であれば図 3.6のように間違った境界面(この場合は境界

線)が引かれてしまう。

すべての学習データを正しくクラス毎に分ける境界面を決めるにはどうすれ

ばよいか。実はパターン認識で最も難しいのはこの境界面の決め方である。境

界面は平面になるのかまたは曲がった非線形曲面になるのか、そもそも境界面

図 3.6 間違った境界面の例

20

が決められるのか(クラスが重なっていないか )など様々な場合を考えなければ

ならない。この境界面を決めるために学習データを利用する。一般に学習デー

タが多ければ多いほど境界面は信用できる。色々な事例を多く教えれば賢くな

るのは当たり前である。しかし識別するクラスがどのように特徴空間に分布し

ているのかの情報を使い、その分布に適した学習方法を選ばなければいくらデ

ータが多くてもうまくいかない。

パターン認識処理は簡単に思われるかもしれない。しかし本節ではうまくい

く場合を単純化して説明する。現実のデータを対象にして実際にパターン認識

プログラムを作成すると様々なうまくいかない場合に遭遇する。その困難を過

去の偉大な研究者たちは乗り越えてきた。

3.6 パターン認識の数値例

ここでは、最近傍法を用いて手計算でも簡単に解を求めることの出来るパタ

ーン認識の数値例を幾つか述べる。

【例題 3.1】

パターンの特徴量を数値化しベクトル化する。未知パターンと幾つかの既知

パターンとのベクトル間距離を計算し、最も近い既知パターンのカテゴリーに

判定する。既知パターンを 2 次元ベクトルで、A=(x1, y1), B=(x2, y2), C=(x3, y3)

とし未知パターンを Z=(x,y)とすると、Z と A,B,C 間の距離(の 2 乗)a,b,c は、

a=(x1- x)2 + (y1 -y)2 , b=(x2 -x)2 + (y2 -y)2, c=(x3 -x)2 + (y3 -y)2

を求め、a, b, c の最小値が求めるカテゴリである。

表 3.1 に風邪を引いた人 A, B, C と平常の人 D, E, F の体温と咳の回数(1 日)

を示す。風邪が不明の人 G(体温 38.5 咳 17 回)と人 H(体温 36.8 咳 10 回)が風

邪を引いているか平常かを NN 法(最近傍法)を用いて推定して下さい。

21

【例題 3.1 の解答例】

【未知の人 G】

G と A の距離の 2 乗:

(38.5-38.5)2+(15-17)2=0+4=4

G と B の距離の 2 乗:

(39.0-38.5)2+(10-17)2=0.25+49=49.25

G と C の距離の 2 乗:

(38.0-38.5)2+(20-17)2=0.25+9=9.25

G と D の距離の 2 乗:(37.5-38.5)2+( 8-17)2=1+81=82

G と E の距離の 2 乗:(36.5-38.5)2+( 7-17)2=4+100=104

G と F の距離の 2 乗:(36.7-38.5)2+( 5-17)2=3.24+144=147.24

したがって G は A との距離(4)が最小なので A と同じ風邪を引いていると判断

する。

H と A の距離の 2 乗:(38.5-36.8)2+(15-10)2=2.89+25=27.89

H と B の距離の 2 乗:(39.0-36.8)2+(10-10)2=4.84+0=4.84

H と C の距離の 2 乗:(38.0-36.8)2+(20-10)2=1.44+100=101.44

H と D の距離の 2 乗:(37.5-36.8)2+( 8-10)2=0.49+4=4.49

H と E の距離の 2 乗:(36.5-36.8)2+( 7-10)2=0.09+9=9.09

H と F の距離の 2 乗:(36.7-36.8)2+( 5-10)2=0.01+25=25.01

したがって H は D との距離(4.49)が最小なので D と同じ平常と判断する。

【例題 3.2】 図 3.7 の左側に示す 25 次元ベクトル(要素が 0(白)、1(黒)からな

る縦 5 マス×横 5 マス=25 マス)をプロトタイプとして、右側に示す入力パター

ンがどのクラスに識別されるかを NN 法(最近傍法)を用いて求めよ。

表 3.1 風邪と平常者の体温と咳回数

22

【例題 3.2 の解答例】

0 から 4 の数字認識を行う場合を考える。本来は左側に並ぶ 0 から 4 のパタ

ーンに対し特徴抽出処理を行いプロトタイプを求めるが、ここではその処理を

省略し前処理部の出力をプロトタイプとする。この例ではプロトタイプ pi(i = 0,

1, 2, 3, 4)は 25 次元のベクトル(各次元の要素は 0 か 1)になる。例えば p0 は次

のようになる。

P0 = (0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0) (1.2)

このとき入力パターン x がどのクラスに識別されるかを NN 法で求める。入力

パターンはどう見ても「1」に見える。これが正しく識別されるだろうか。ベ

クトル x と pi との距離(の 2 乗)は以下の式で計算できる。

D(x, pi) =(x1 − pi1)2 + (x2 − pi2)2 + · · · + (x25 − pi25)2 (1.3)

ここで各次元の要素の差の 2 乗は 0 か 1 になる。したがって距離最小のベクト

ルは入力パターンと異なるマス目の数が最小のプロトタイプになる。入力パタ

ーンと異なるマス目を数えたものを表 3.2 に示す。

したがって,入力パターンは、直感に反する「4」と識別される.□

【例題 3.3】 例題 3.2 の結果が直感と反する場合、なぜそのような結果になっ

表 3.2 入力パターンと異なるマス目の数

図 3.7 数字認識の例

23

たかを考察せよ.

【例題 3.3 の解答例】

これは明らかに直感に反する。なぜこんな結果が出たのか。NN 法は役に立

たないのか。この原因は特徴抽出処理を省略したことにある。この場合は特徴

抽出処理として位置変動や大きさ変動に対して余り変化しない量 (例えば縦横

の直線の本数など)を計算し特徴ベクトルにすべきだった。□

演習課題

【課題 3.1】

表 3.3 にバスケット選手 A, B, C とラグ

ビー選手 D, E, F の身長と体重を示す。種

目不明の選手 G(身長 175cm 体重 103kg)

と選手 H(身長 193cm 体重 90kg)がどちら

のスポーツ選手かを最近傍法を用いて推定

して下さい。

【課題 3.2】図 3.7 のデータから縦・横・斜めの線の数およびループの数を特

徴として抽出せよ。ただし縦・横・斜めの線とはそれぞれの方向に黒のマスが

三つ以上続いた場合を数える。またループは縦・横・斜めで黒のマスが途切れ

ずに輪になるものを数える。

表 3.3 スポーツ選手の身長と体重

図 3.7(再掲) 数字認識の例

24

【課題 3.3】

演習問題 3.2 で抽出した特徴ベクトルをプロトタイプとして図 3.8 の右側の

入力パターンのカテゴリを識別せよ.

4. 人工知能入門

本章では、深層学習と密接に関係する人工知能の手法である、機械学習、ニ

ューラルネット、深層学習について、その概要と歴史さらには手法間の相互関

係について述べる。

4.1 人工知能とは

人工知能が盛んである。なぜ今人工知能なのだろうか。最近世界各国で人工

知能を活用したサービスや研究が話題になることが増えてきた。大企業は人工

知能研究所を立ち上げグローバル規模での人工知能研究を開始している。人工

知能にはどんな技術が用いられそれが普及することでどんなことが可能になる

のか。

2016 年 Google DeepMind が開発したプログラム「アルファ碁」が囲碁の対

局で韓国のプロ棋士を破った際に DeepMind が勝った経緯を説明するため「人

工知能」「機械学習」「深層学習」という言葉がメディアで盛んに取り上げら

れた。この 3 つはどれもアルファ碁が韓国棋士に勝った理由の一部だが同じも

のではない。その関係を考えるとき同心円で表すのが一番簡単である。まず最

初に生まれたのが「人工知能」であり最も包括的な概念である。次に「機械学

習」が発展し最後に「深層学習」が登場した。今日の人工知能の成長を促す深

層学習は人工知能と機械学習に含まれている。

人工知能の歴史を見てみる。人工知能は人間の創造力の産物である。1956

年に開催されたダートマス会議で人工知能の名の下に数名のコンピュータ科学

25

者が集まり人工知能分野を確立して以来様々な研究所で本格的な研究が進めら

れた。その後数十年の間に人工知能は「人類の文明化における極めて明るい未

来への鍵」として歓迎されたり、「テクノロジの流行に弱い科学者の無謀な概

念」として無用の長物として扱われたりした。すなわち 2012 年までは栄枯盛

衰を繰り返してきた。

しかしここ数年(特に 2015 年以降)人工知能は急速な成長を遂げた。その理由

の大半は以前よりも速く、安く、強力な並列処理をするコンピュータの普及に

よる。また「実質的に無限のストレージ」と「イメージ、テキストなどあらゆ

る種類の膨大なデータ(ビッグデータ)」の 2 つの重要な要素が同時に登場した

ことに関係する。ここで 2012 年までの低迷の時代から何億もの人々が日々使

用する様々な応用分野を生み出したブームへの変遷を辿る。

ダートマス会議の 1956 年まで遡ると会議を提案した人工知能の先駆者の夢

は「台頭しつつあるコンピュータにより実現できる人間知能と同じ特徴を持つ

マシンを構築すること」だった。これは汎用人工知能つまり人間の全ての感覚

と判断力を備え人間と同じように考える驚異のマシンである。これは様々な映

画で際限なく描かれてきた。汎用人工知能マシンが映画やサイエンスフィクシ

ョンで今も登場するのは、人類にはまだ実現できていないからである。

これまでに人類が実現したことは「特化型人工知能」の概念に当てはまる。

これは特定のタスクについて人間と同等の処理をこなす技術である。特化型人

工知能の例としては Pinterest のサービスでの画像分類や Facebook での顔認

識が挙げられる。この技術は人間の知能の特定の側面を再現する。ではその知

能はどのように実現されるか。

4.2 機械学習とは

機械学習はその言葉からロボットが勉強する場面を想像するが、学習するの

はロボットではなくコンピュータである。コンピュータに世の中のルールを人

26

が教えて学ばせる。コンピュータは人の設定したルール(プログラム)に沿って

データを分類し細かいルール(特徴量)を学び情報として蓄積する。この流れが

機械が学ぶようなので「機械学習」と呼ぶ。学んだルールを利用し新しい状況

やデータに対してルールに沿うか否かを判断したり、ルールに沿う結果を予測

するようになる。

コンピュータにルールを教える方法に統計の計算式が使われる。統計による

データマイニングの手法を機械学習が利用するため。このため機械学習を学ぶ

には統計分野と同様に多くの計算式が載る。もちろん業務で実装する際はおい

おい理解する必要になる。

かつて研究された人工知能は人がすべてのルールや判断基準をコンピュータ

に記録した。現在の人工知能である機械学習は大量のデータを元に期待される

結果に近づくように内部の計算 (アルゴリズム)をコンピュータが自分で調整す

る。ビックデータ技術の進展やハードウェア性能の向上により大量のデータを

扱うようになったのが近年人工知能が発展した要因となっている。

実際の身近な例を挙げて機械学習を説明する。コンピュータは基本的には決

められた手順やルールに従い動作することしかできない。しかし大量の判断材

料と複雑な判断の場合、手順を逐次記述するのでは大変な労力である。

例えば迷惑メールの設定の場合もそうである。アドレス Aとアドレス Bと・・・、

ドメイン C とドメイン D と・・・と逐次迷惑メールの条件を挙げ設定するとす

る。これではメールが届くたびに迷惑メールアドレスを設定しても迷惑メール

を送る側も知恵を使い次の迷惑メールは違うアドレスから送られてくる。これ

らをその度に手作業で設定するのは大変で不毛な作業になる。1 つ 1 つを登録

してルールを作っても無駄になる。

一方機械学習では、過去の例から迷惑メールの特徴を学習し人間が記述する

のが困難な判断をコンピュータが自ら行う。まずコンピュータにメール A は迷

惑メール、メール B は迷惑メールではないという判断基準を教えて(学習させ

27

て)あげる。この時コンピュータは「迷惑メールらしさ」が何となく分かる。し

たがってその後は、コンピュータは新しく届いたメールを見てこれは「迷惑メ

ールらしい」と判定する。ただし「~らしい」だけなので完璧な精度ではない。

もし完璧を求めるならば膨大かつ複雑なルールを手動で記述しなければならな

い。

機械学習は人工知能を実現する一つのアプローチである。機械学習とは本質

的に世の中の特定事象についてデータを解析しその結果から学習し判断や予測

を行う手法である。つまり機械学習では特定のタスクを完了するための明確な

手順に沿って手作業でプログラムするのではなく、大量データを用いタスクを

実現するアルゴリズムによりコンピュータ訓練(トレーニング)が行われる。

機械学習は初期の人工知能研究者の精神から直接生まれたが、年月とともに

そのアルゴリズムによるアプローチには決定木学習や帰納論理プログラミング、

クラスタリング、強化学習、ベイジアンネットワーク等の手法が取り入れられ

た。しかしどれも汎用人工知能の最終目標を達成するのではなかった。初期の

機械学習では特化型人工知能さえほとんど実現されていなかった。

機械学習のアルゴリズムはいくつか存在するが、ここでは次の 3 手法を述べ

る。1 番目は教師あり学習で 、人が与えた欲しい結果へ近づくようにコンピュ

ータが重み付けやパラメータを調整する学習方法である。2 番目は教師なし学

習で、 主に類似度や傾向によるグループ分け(クラスタリング)に利用される。

データの構造や関係性を調べたり教師あり学習の前処理として使用されること

もある。3 番目は強化学習で、正解は用意せずコンピュータの出した結果に対

して OK か NO を返す。こうして試行錯誤によりより良い手順をコンピュータ

に学習させる。多くの場合これらのアルゴリズムは組み合わされて機械学習を

実現する。

機械学習の最適な応用分野の 1 つは長年にわたりコンピュータビジョンだっ

た。そのジョブの完了には相当の手作業によるプログラムが必要だった。例え

28

ば一時停止の道路標識を識別する場合、プログラムが標識の開始と終了位置を

特定するエッジ検出フィルタや八角形を判断する形状検査、STOP 文字を認識

する分類子などを手作業でプログラムする必要があった。すべての分類子から

画像の意味を理解し学習して一時停止標識か否かを判断するアルゴリズムを人

が開発していた。

この手法は悪くはないがそれほど良いものでもない。特に霧の深い日に標識

がよく見えない場合や木で標識の一部が隠れる場合には問題が生じる。最近ま

でコンピュータビジョンや画像検出が人間に対抗できるほど進化しなかった理

由は極めて不安定でエラーを起こし易かったためである。

4.3 ニューラルネットとは

ニューラルネット(Neural Network : 以下 NN と略す)は人の脳の生物学的

しくみの理解から着想を得たもので、脳の神経細胞(ニューロン)とそのつなが

り(神経回路網)をニューロンの数式モデルで表現したものである。近年注目さ

れている機械学習や深層学習を学習する際に押さえておきたいのがニューラル

ネットという概念である。機械学習には多くの手法があるがその一つがニュー

ラルネットを使う手法である。

ニューラルネットは入力層、出力層、隠れ層から構成され層と層の間にはニ

ューロン同士のつながりの強さを示す重みがある。人間の脳の中のニューロン

は電気信号として情報伝達を行う。その際にシナプスの結合強度(つながりの強

さ)により情報の伝わり易さが変わる。

脳神経細胞のニューロンは他ニューロンとシナプスと呼ぶ結合部で結びつき

結合強度は可変である。無数のニューロンは無数のシナプスを通し複雑な情報

処理を行う。特徴的なのは外からの刺激を学習しシナプス結合強度が最適化さ

れる。例えば「森に行く」という行動を例にとる。まず、ニューロン群は 2 種

類存在し、(1)危険度を判定するニューロン群は森の野生動物に襲われる可能性

29

があり危険と判断する。(2)空腹度を判定するニューロン群は森に行き狩りをす

るか木の実を取らないと確実に餓死すると判断する。この結果空腹の時は森に

行く行動が推奨され、満腹の時はリスクを避け森に行く行動は否定される。つ

まり空腹か否かがこの行動において支配的になり、その結果空腹度を判定する

ニューロン群のシナプスの結びつきが強化される。この最適化の結果満腹なの

にノコノコ森に行き危険を冒す行為を避ける。

このように入力に対して脳神経細胞はある目的の元で「何が判断基準として

適切で、何が重要」かを最適化できる。こ

れと似た働きをコンピュータモデルで再現

するのがニューラルネットである。図 4.1

がニューラルネット(パーセプトロン)の模

式図である。

図 4.1 において、左端が入力で大きな

丸がノードと呼ぶ処理を担当する部分、右端の矢印が出力である。ある入力に

対して複数ノードが反応演算を行いその結果をいくつかのノードに受け渡し並

列的に計算が行われる。多くの従来手法はノードが 1 つの線形計算であるがこ

の手法は非線形問題も解ける。更にその結果の良し悪しをフィードバックし各

ノードの重み付けが最適化される。

ニューラルネットは、初期の機械学習研究者により生み出されたアプローチ

であるが数十年の間に現れてはその大半が消えていった。ニューラルネットは

人間の脳の生物学的しくみ(ニューロン間のすべての相互接続 )の理解から着想

を得たものである。ただしすべてのニューロンが特定の物理的範囲内にある他

のどのニューロンにも接続できる生物学的な脳とは異なりニューラルネットで

はデータの伝達において層、接続、方向が個別に定義される。

例えば画像を抽出しそれを多数の部分(タイル)に分けてニューラルネットの

最初の層に入力する。その層のニューロンから 2 つ目の層にデータが渡される。

図 4.1 ニューラルネットの模式図

30

そのニューロン層で所定のタスクが実行され以降最後の層にデータが渡され最

終的な出力が生成される。ニューロンは各入力に対して重みを割り当て最終出

力がそれらの重み和により決まる。

先の一時停止標識の例を考える。一時停止標識の画像の属性が細かく分けら

れニューロンにより検証される(例えば八角形の形状、赤い色、特有の文字、道

路標識サイズ、動いているかなど)。ニューラルネットのタスクはそれが一時停

止標識かどうかを割り出し重みに基づき確率ベクトルを提示する。例えばこの

例ではシステムは画像が一時停止標識である確率 86%、制限速度標識である確

率7%、木に引っ掛かった凧である確率 5%と提示する。

4.4 深層学習とは

人工知能の草創期から存在したニューラルネットだがこれまでほとんど「知

能」を生み出して来なかった。問題は最も基本的なニューラルネットでさえ計

算処理上の要求が非常に高く、実用的なアプローチはなかったことにある。そ

れでもトロント大学のヒントンが率いる少人数グループは諦めずに研究を続け、

ついにスーパーコンピュータの実行用にアルゴリズムの並列化に成功した。た

だしその目標を実現できたのは GPU を研究に導入してからである。

再び一時停止標識の例に戻ると、ネットワークの最適化つまりトレーニング

を行う間は間違った答えを大量に示す可能性がある。解決にはトレーニングを

続けるのみである。ニューロン入力に対する重みが徹底して最適化され、霧の

有無や、晴れか雨かに関わらずほぼ毎回正しい答えを出すまで何十万枚あるい

は何百万枚もの画像を読み込む必要がある。そうしてニューラルネットは一時

停止標識の見た目を独習できるようになる。これは Facebook の場合なら母親

の顔あるいは 2012 年にウン氏が Google で成功させた猫にも当てはまる。

ウン氏の画期的なアプローチとは、そうしたニューラルネットを利用しそれ

らを大幅に拡大し層とニューロンを増やし膨大なデータをシステムで処理しト

31

レーニングを行う。ウン氏の場合 1000 万本の YouTube ビデオ画像を対象に、

ニューラルネットのすべての層にディープ(深層)を入れ深層学習を行った。

現在幾つかのシナリオでは深層学習によるトレーニングが行われたマシンに

よる画像認識が人間の能力を超えるまでになっている。その範囲は猫から MRI

スキャンでの腫瘍や血液がんの手掛かりの特定まで多岐にわたる。また Google

のアルファ碁は囲碁を学習しアルファ碁自身との対局を何度も繰り返しトレー

ニングを行いそのニューラルネットを最適化した。

深層学習により機械学習や人工知能分野全体の実用的応用が数多く実現した。

深層学習ではコンピュータによるあらゆる種類の支援が可能になる。無人自動

車より予防効果の高い医療またはより的確な映画の提案はすでに実用化されて

いるか見込まれる。人工知能は現在および未来テクノロジである。深層学習の

助けを借り人工知能は人類が長く思い描いてきたサイエンスフィクションの状

態により近づくことができる。

演習課題

【課題 4.1】

人工知能、機械学習、ニューラルネット、深層学習の関係を集合(の包含関係)

を用いて説明しなさい。

【課題 4.2】

人工知能、機械学習、ニューラルネット、深層学習の発展に対し、コンピュ

ータが果たした役割・貢献について述べよ。

【課題 4.3】

人工知能、機械学習、ニューラルネット、深層学習のそれぞれの社会的応用

をそれぞれ 2 ケース以上挙げなさいよ。

以上