• 検索結果がありません。

フリーソフトではじめる機械学習入門 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 初版 1 刷発行時のものです.

N/A
N/A
Protected

Academic year: 2021

シェア "フリーソフトではじめる機械学習入門 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 初版 1 刷発行時のものです."

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

「フリーソフトではじめる機械学

習入門」

サンプルページ

この本の定価・判型などは,以下の URL からご覧いただけます.

http://www.morikita.co.jp/books/mid/085211

※このサンプルページの内容は,初版 1 刷発行時のものです.

(3)
(4)

i

まえがき

コンピュータは賢い機械です.その賢さの源の大半は,人間が作ったプログラムで す.この賢いプログラムを作るというのは,大変骨の折れる作業ですので,「こういう ときには,こうしてね」という事例を与えるだけで,コンピュータが賢い振る舞いを 自分で身につけることができれば大変助かります.このような技術が,この本の主題 である機械学習です. ただし,賢い子供のように一度教えただけで学んでくれるというわけではありませ ん.一般的には,コンピュータが学習するためにはうんざりするほど多くの事例を与 える必要があります.その代わり,場合によっては事例を与えた人間が気づいていな かったようなことを,その大量の事例の中から発見することもあります.「こんなこと があったよ」という事例をたくさん与えるだけで,類似の事例をまとめてくれたり,事 例に潜んでいる規則性を見出してくれたりもします.機械学習は,データがあまりに も大量で人間の力では分析できないような状況でも,有用な知見を与えてくれること があるということで,近年「ビッグデータの時代」として大きなビジネスチャンスに なると期待されているものです. 本書は,機械学習をはじめて学ぶ人を対象に,その全体像をなるべく平易に解説す ることを試みたものです.機械学習では,対象とするデータの種類と得たい結果の種 類を組み合わせることで,典型的ないくつかの問題が設定できます.そして,それぞ れの問題に対して複数の機械学習手法が考案されています.本書では,様々な機械学 習手法に対して,相互の共通点や相違点を明確にしながら,その基本的な手法をひと とおり学べるように心がけました. 各章では,それぞれの手法の概要を簡単なサンプルデータを用いて紹介した後,機械 学習ツールWekaを使って,小規模なデータでの例題に取り組むという構成をとって います.一部Wekaに実装されていない手法がありますが,その場合は,ほかのツー ルやハンドシミュレーションで手法を紹介します.説明や例題で扱うデータは小規模 なものですが,この手法を現実のあの問題に使ったらどうなるだろうか,などと想像 を膨らませながら機械学習の魅力を楽しんでください. 2014年2月 著者しるす

(5)

目 次

まえがき i 1章 はじめに

1

1.1 ビッグデータの時代 ... 1 1.2 機械学習とは何か ... 3 1.3 機械学習の分類 ... 6 1.3.1 教師あり学習 7 1.3.2 教師なし学習 11 1.3.3 中間的手法 13 1.4 まとめ ... 16 2章 機械学習の基本的な手順

18

2.1 データ収集・整理 ... 19 2.1.1 データの収集 19 2.1.2 データの整理 21 2.2 前処理 ... 23 2.2.1 データの読み込み 24 2.2.2 データの前処理 26 2.3 評価基準の設定 ... 29 2.4 学習 ―k-NN法― ... 31 2.5 結果の可視化 ... 33 2.6 予備的実験のための環境:Explorerインタフェース ... 38 2.7 まとめ ... 41 3章 識別 ―概念学習―

42

3.1 ラベル特徴に対する「教師あり・識別」問題の定義 ... 42 3.2 概念学習とは ... 43 3.3 初歩的な概念学習アルゴリズム ... 45 3.3.1 FIND-Sアルゴリズム 45 3.3.2 候補削除アルゴリズム 48 3.3.3 初歩的な概念学習手法の限界 50

(6)

iii 目 次 3.3.4 概念学習におけるバイアス 51 3.4 決定木の学習 ... 52 3.4.1 決定木とは 52 3.4.2 ID3アルゴリズム 54 3.4.3 過学習を避ける 60 3.4.4 分類基準の再検討 61 3.4.5 数値特徴に対する決定木 62 3.5 規則の学習 ... 64 3.6 まとめ ... 66 4章 識別 ―統計的手法―

68

4.1 統計的識別とは ... 68 4.2 ベイズ識別 ... 72 4.2.1 学習データの対数尤度 72 4.2.2 ナイーブベイズ識別 74 4.3 ベイジアンネットワーク ... 77 4.3.1 ベイジアンネットワークの概念 77 4.3.2 ベイジアンネットワークの構成 79 4.3.3 ベイジアンネットワークを用いた識別 83 4.3.4 ベイジアンネットワークの学習 85 4.4 まとめ ... 87 5章 識別 ―生成モデルと識別モデル―

89

5.1 数値特徴に対する「教師あり・識別」問題の定義 ... 89 5.2 数値特徴に対するベイズ識別 ... 91 5.2.1 数値特徴に対するナイーブベイズ識別 91 5.2.2 生成モデルの考え方 94 5.3 ロジスティック識別 ... 94 5.3.1 識別モデルの考え方 95 5.3.2 ロジスティック識別器の学習 98 5.3.3 確率的最急勾配法 101 5.4 まとめ ... 102

(7)

6章 識別 ―ニューラルネットワーク―

103

6.1 識別関数法 ... 103 6.2 誤り訂正学習 ... 104 6.3 最小二乗法による学習 ... 105 6.4 ニューラルネットワーク ... 109 6.4.1 ニューラルネットワークの構成 109 6.4.2 誤差逆伝播法による学習 110 6.5 まとめ ... 114 7章 識別 ―サポートベクトルマシン―

115

7.1 サポートベクトルマシンとは ... 115 7.1.1 マージン最大化のための定式化 116 7.1.2 マージンを最大とする識別面の計算 117 7.2 ソフトマージンによる誤識別データの吸収 ... 119 7.3 カーネル関数を用いたSVM ... 120 7.4 文書分類問題へのSVMの適用 ... 124 7.5 まとめ ... 127 8章 回 帰

128

8.1 数値特徴に対する「教師あり・回帰」問題の定義 ... 128 8.2 線形回帰 ... 129 8.3 バイアスと分散のトレードオフ ... 134 8.4 回帰木 ... 135 8.4.1 回帰木とは 135 8.4.2 CART 135 8.4.3 モデル木 137 8.5 まとめ ... 139 9章 アンサンブル学習

140

9.1 なぜ性能が向上するのか ... 140 9.2 バギング ... 142 9.3 ランダムフォレスト ... 144 9.4 ブースティング ... 147

(8)

v 目 次 9.5 まとめ ... 151 10章 モデル推定

152

10.1 数値特徴に対する「教師なし・モデル推定」問題の定義 ... 152 10.2 クラスタリング ... 153 10.2.1 階層的クラスタリング 153 10.2.2 分割最適化クラスタリング ―k-meansアルゴリズム― 157 10.2.3 自動分割最適化クラスタリング ―X-meansアルゴリズム― 160 10.3 異常検出 ... 163 10.4 確率密度推定 ... 166 10.5 まとめ ... 170 11章 パターンマイニング

171

11.1 ラベル特徴に対する「教師なし・パターンマイニング」問題の定義 ... 171 11.2 Aprioriアルゴリズムによる頻出項目抽出 ... 172 11.3 連想規則抽出 ... 177 11.4 FP-Growthアルゴリズム ... 181 11.5 まとめ ... 185 12章 系列データの識別

187

12.1 ラベル系列に対する識別 ... 187 12.2 系列ラベリング問題 ―CRF― ... 188 12.3 系列識別問題 ―HMM― ... 192 12.4 まとめ ... 195 13章 半教師あり学習

196

13.1 半教師あり学習とは ... 197 13.1.1 数値特徴の場合 197 13.1.2 ラベル特徴の場合 198 13.1.3 半教師あり学習のアルゴリズム 199 13.2 自己学習 ... 200 13.3 共訓練 ... 201 13.4 YATSIアルゴリズム ... 202 13.5 まとめ ... 204

(9)

14章 強化学習

206

14.1 強化学習とは ... 206 14.2 1状態問題の定式化 ―K-armed bandit問題― ... 207 14.3 マルコフ決定過程による定式化 ... 209 14.4 モデルベースの手法 ... 211 14.5 モデルフリーの手法 ... 212 14.5.1 報酬と遷移が決定的なTD学習 213 14.5.2 報酬と遷移が確率的なTD学習 214 14.6 部分観測マルコフ決定過程による定式化 ... 215 14.7 まとめ ... 216 15章 深層学習

217

15.1 深層学習とは ... 217 15.2 多階層ニューラルネットワークの学習 ... 219 15.3 Autoencoder ... 221 15.4 RBM ... 225 15.4.1 一般的なボルツマンマシン 225 15.4.2 隠れノードをもつボルツマンマシン 227 15.4.3 RBMの構成 228 15.5 深層学習の応用 ... 230 15.6 まとめ ... 232 演習問題の解答 233 付録A Wekaの拡張 241 A.1 Officialパッケージのインストール ... 241 A.2 Unofficialパッケージのインストール ... 242 付録B RapidMiner入門 243 B.1 RapidMinerの起動 ... 243 B.2 RapidMinerによる機械学習プロセスの作成 ... 246 B.2.1 オペレータについて 246 B.2.2 単純な学習 247 B.2.3 自動修正の活用 250

(10)

vii 目 次 B.2.4 階層的なオペレータの利用 251 B.2.5 ブレークポイントの活用 254 B.3 まとめ ... 254 参考文献 255 あとがき 257 索 引 260

(11)

本書の構成

本書では,1章で機械学習の概観を説明します.その中で,その後の説明手順を示す ために,機械学習手法の分類をおこないます.また2章では,データの収集から,結 果の評価に至るまでの一連の機械学習の実装手順を説明します.この1章と2章が, 以後の説明に繋がる基礎になります. その後,1章でおこなった分類に基づいて,順に機械学習の手法を説明してゆきま す.教師あり学習・識別問題の説明に多くのページを使っていますが,ここでその後 の説明にも用いる基本的な概念を紹介しています.したがって,できるだけ前から順 に読んでゆくことをお勧めします. なお12章以降は,やや高度な内容を含んでおり,説明を直観的なものだけにとどめ ている箇所も多くあります.これらの手法の詳細に関して学びたい方は,参考文献を 挙げておきましたので,そちらを参照してください.

(12)

1

はじめに

我々人間は,日々五感を通して得られる情報から,対象を分類する能力や,事象の 背後にある規則性を獲得してゆきます.これらと同じ能力をコンピュータに与えるこ とを目指したものが,機械学習です.本章では,近年機械学習が注目されている背景 を紹介し,本書で扱う機械学習の概要について説明します.

1.1

ビッグデータの時代

近年,ビッグデータ(big data)というキーワードのもとに,様々な技術開発やビジ ネス展開がなされています.2012年3月に米国が巨費を投じると発表した「ビッグ データ研究開発イニシアティブ」1は,ビッグデータの収集・管理・分析のための中核 技術の発展,科学技術分野での発見の加速,国家安全保障の強化,ビッグデータ技術 分野の人材育成を目指すもので,ビジネスを超えた幅広い分野に,ビッグデータの影 響が広がっています. ビッグデータの特徴は,大量・多様・スピードだといわれています.情報機器・セ ンサーネットワークの発達で,全世界のデータ量は,1日あたりエキサバイト2単位 で大量に増加しているとみられています3.そして,その内容は人々がブログやSNS

(social networking service)に投稿する文章・画像・動画,スマートフォンなどに搭載 されているセンサーから収集される情報,オンラインショップやコンビニエンススト アの販売記録,IC乗車券の乗降記録など,多種多様なものです.また,それらのビッ グデータを有効に活用するためには,必要なときに,必要な結果が得られるというス ピードが要求されます.大量・多様なデータをスピードをもって処理することで,購 買記録からお勧め商品を提示するようなおなじみの機能に加えて,不審な行動パター

1 http://www.whitehouse.gov/sites/default/files/microsites/ostp/big data press release.pdf 2 1エキサバイトは1テラバイトの百万倍,1テラバイトは標準的なデスクトップPC 1台のハードディスク

の記憶容量です.

(13)

図1.1 ビッグデータの活用例 ンの検出や,インフルエンザの流行の予想など,これまでになかったサービスや機能 を実現することもできるのです(図1.1). ビッグデータは,インターネットの発展や様々なセンサ・通信機能をもった携帯端 末の普及の結果としてもたらされましたが,その大量・多様なデータの効率のよい利 用に関しては,これからますます技術開発が進められてゆく分野です.ビッグデータ の応用に関して最も注目されている分野として,データマイニング(data mining)が あります.データマイニングは,それ自体は単なる記録の蓄積に過ぎないデータの山 から,貴重な知見を発見(マイニング=発掘)しようとする試みです. データマイニングの有用性を示す古典的な例として,スーパーマーケットの売り上げ データの分析から,「木曜日の夕方,スーパーマーケットで紙おむつを買う人はビール も買うことが多い」(だから,紙おむつの近くにビールを置けば,売り上げが増える可 能性がある)ことがわかったというものがあります(図1.2).この話は,1992年12月 23日の「ウォールストリートジャーナル」に掲載された“Supercomputer Manage Holiday Stock”という記事が発端らしいのですが,その後,不正確な伝聞が広がって, 一種の伝説のようなものになってしまいました1.後付けの理屈として,「紙おむつは 図1.2 データマイニングの事例「紙おむつとビール」 1 ITmedia情報マネジメント用語辞典:おむつとビール http://www.itmedia.co.jp/im/articles/0504/18/news086.html

(14)

3 1.2 機械学習とは何か かさばるので父親が買い出しに行くことが多く,そのついでに週末に飲むビールを買 うことが多い」という説明がなされています.普通の発想では無関係に思える木曜日・ 紙おむつ・ビールの3項目に対して,売り上げデータを通じてその関連性が抽出され たということで,データマイニングについての話の導入として,この「紙おむつとビー ル伝説」が取り上げられることが多いようです. データマイニング以外にも,データを利用して識別・予測の精度を高めることで,省 力化やサービスの向上を図るものは数多くあります.迷惑メールのフィルタや,特定 の製品に関するSNSでの評判情報の自動収集などは,言語データを対象とした機械 学習の成果です.また,数値データを対象としたものには,過去のデータから今後の 数値を予測する手法を用いた新製品需要の予測や,外れ値を検出することによる異常 検出があり,いずれもビッグデータの応用例として期待されているものです. その名のとおりビッグデータは大量であり,その処理にはスピードが要求されます ので,人手による情報抽出は見込めません.また,ビッグデータの情報源は多様なの で,必然的に矛盾・曖昧性・誤差を含みます.これらのデータを処理する規則を人手 で見つけ出すのは非常に難しいことです.そこで,機械が知識や規則を発見し,それ を使って推論・識別・予測をおこなうという,いわゆる機械学習(machine learning) の技術が必要になります.

1.2

機械学習とは何か

「人手で扱えない」ものはすべて「機械学習」を使うべき,というわけではありま せん.大量のデータを特定の順番に並べ替えることは,人手では気の遠くなる作業量 でも,ソーティング(並べ替え)プログラムを使えば可能です.同じく大量のデータ を扱う場合でも,特定の条件を満たすデータの検索・抽出・平均値の計算などの問題 は,その解法であるアルゴリズムがすでにわかっています. これに対して,機械学習で扱うのは,解法が明確にはわかっていない問題です.こ こでは,機械学習で対象とする問題をタスク(task)とよびます. たとえば,人間は文字や音声の認識能力を学習によって身につけますが,どうやっ て認識をおこなっているかを説明することはできません.その人間の認識能力を何ら かの手法でモデル(model)化して,コンピュータでその能力を再現しようとする技術 が,機械学習の一種であるパターン認識(pattern recognition)とよばれる問題です. ここでのアイディアは,明示的にその手順は記述できないけれども,データ(この 場合は入力とその答え)は大量に用意することができるので,そのデータを使って人

(15)

間の知的活動(場合によってはそれを超えるもの)のモデルを作成しようというもの です.これ以降,機械学習のために用いるデータのことを学習データ(training data) とよびます. ここまでをまとめると,機械学習の基本的な定義は, アルゴリズムとして明示的に解法が与えられないタスクに対して,その タスクを遂行するためのモデルを,学習データから構築すること となります. また,文献[1]では,コンピュータプログラムが学習するとは あるタスクにおいて ある学習データによって モデルの性能測定基準の値が向上すること であるとされています.単にモデルを構築するだけではなく,その性能測定基準の値 が向上するということを,機械学習の定義として定めています. 単に知的なモデルを作って「それで終わり」というわけではなく,学習を続けて性 能が向上しつづけることが,定義の中に含まれています.たとえば,迷惑メールフィ ルタを考えます.製品によって相対的に性能の良し悪しはありますが,誰にとっても 最高の性能であるような迷惑メールフィルタはありません.各人の利用環境によって 迷惑メールの基準が異なるので,利用者が「これは迷惑メール」,「これは迷惑メール ではない」と操作した履歴に基づいて再学習をおこない,その利用者の操作の結果が 適切に分類に反映されれば,このプログラムは学習能力が高いといえるでしょう. これらの定義に沿って考えてゆくと,機械学習のタスクとしては,推論・認識・予 測・適応などを伴う,人間の知的活動の様々な分野がその対象となりそうです.これ らは人間の高度な知的活動ですので,実現するのは非常に難しそうですが,これらの 機能が規則や関数などで表現できると仮定すると,それらを性能測定基準に沿って最 適化してゆく作業を機械学習とみなすことで,適切な理論化がおこなえそうです.ま た,学習データも一見多様にみえますが,購入した商品名や天候のような「ラベルの 集合」,あるいは金額やセンサーからの入力のような「数値の集合」,さらにはそれら が入り交じったもの,というように整理して考えることができます(図1.3). 機械学習の役割をこのように位置付けると,図1.3中の「機械学習」としてまとめ られた中身は,タスクの多様性によらず,目的とする規則・関数などのモデルを得る ために,どのような学習データに対して,どのようなアルゴリズムを適用すればよい か,ということを決める学習問題と,その学習の結果得られたモデルを,新たに得ら

(16)

5 1.2 機械学習とは何か 図1.3 機械学習の位置付け 図1.4 機械学習の要素 れる入力に対して適用する実運用段階に分割して考えることができます(図1.4). 本書の対象は,主として図1.4の学習問題と定義された部分ですが,いかに実運用の 際によい性能を出すか,すなわち,学習段階ではみたことのない入力に対して,いか によい結果を出力するか(この能力は,「学習データからいかに一般化されたモデルが 獲得されているか」,ということになるので,汎化(generalization)能力といいます) ということを常に考えることになります.

(17)

1.3

機械学習の分類

ここでは,前節で説明した学習データと学習結果を基準に,機械学習の分類を試みま す.機械学習には様々なアルゴリズムがあり,その分類に関しても様々な視点があり ます.機械学習の入門的な文献では,モデルの種類に基づく分類がおこなわれている ことが多いのですが,そもそもそのモデルがどのようなものかというイメージをもっ ていない初学者には,なかなか納得しにくい分類にみえてしまいます.そこで本書で は,入力である学習データの種類と出力である学習結果の種類の組み合わせで機械学 習のタスクの分類をおこない,それぞれに分類されたタスクを解決する手法として, モデルを紹介します. まず,学習データにおいて,正解(各データに対してこういう結果を出して欲しい という情報)が付いているか,いないかで大きく分類します(図1.5).学習データに 正解が付いている場合の学習を教師あり学習(supervised learning),正解が付いてい ない場合の学習を教師なし学習 (unsupervised learning)とよびます.また,少し曖 昧な定義ですが,それらのいずれにも当てはまらない手法を中間的手法とよぶことに します. 図1.5 機械学習の分類 教師あり/なしの学習については,それぞれの出力の内容に基づいてさらに分類を おこないます.教師あり学習では,入力をあらかじめ定められたカテゴリーに分類し た結果を出力するものを識別とし,入力から予測される数値を出力するものを回帰と

(18)

7 1.3 機械学習の分類 します.一方,教師なし学習では観点を変えて,入力となるデータ集合全体を説明す る情報を出力するものをモデル推定とし,入力となるデータ集合の一部から得られる 特徴的な情報を出力するものをパターンマイニングとします. 中間的手法に関しては,何が「中間」であるのかに着目します.学習データが中間 である場合(すなわち,正解付きの学習データと正解なしの学習データが混在してい る場合)と,学習手法が中間である場合(すなわち,教師あり/なしの両方の手法を 組み合わせる場合)とで分類します. 以下では,それぞれの分類について,その問題設定を説明します. 1.3.1 教師あり学習 教師あり学習では,正解の付いた学習データを用います.このデータを訓練例とよ ぶこともあります.学習データは,入力データに対応するベクトルxiと,正解情報yi のペアからなります.  (xi, yi)  , i= 1, . . . , N ここで,Nは学習データの総数,添字iは学習データ中のi番目の事例であることを 示します. 当面,入力ベクトルxiは次元数dの固定長ベクトルであると考えておきます1 xi= (xi1, . . . , xid)T 図1.3の上部に示したような,(134.1, 34.6, 12.9)や,(女, 68, 165, 44, no)などが, 入力ベクトルxiの例です. 入力ベクトルの各要素xi1, . . . , xidを,特徴(feature)あるいは属性 (attribute)と よびます2.特徴は,数値あるいはラベルのいずれかの値をとります.数値は長さや 温度などの連続値をとる場合もありますし,商品の購入個数や単語の出現回数などの 離散値をとることもあります.ラベルは文字列データで,たとえば性別を表す「男・ 女」や天候を表す「晴・曇・雨」などを値とします. 教師あり学習は,この学習データから,入力xを正解yに写像する関数cを学習す ることを目的とします. 1 ほかの教科書などの記法に従って,入力は列ベクトルとします.ただし,本文中や数式中で要素を示すと きは,スペースを節約するため,転置を表す記号Tを右肩に付けて行ベクトルとして表記します.また, 図中などでとくに差し支えがない場合は,転置の記号を省略します. 2 これ以降での学習手法の説明においては,(深層学習の説明を除いては)問題設定に適した特徴がすでに選 ばれているものとします.観測対象から,問題設定に適した特徴を選んでデータ化する作業は,特徴抽出 とよばれます.

(19)

c: x → y この関数c(x)は理想的な写像を表すので,とても複雑な形をしているかもしれま せん.それを限られた学習データから求めるのは難しいので,通常は関数の形を扱い やすいものに仮定して,その関数のパラメータを推定するという問題に置き換えます. この推定する関数をcˆ(x)と記述します.関数cˆ(x)の実際の形は,入力ベクトルxと 正解yの種類によって異なります. また,正解情報(あるいは関数cˆ(x)の出力)yも,数値(スカラー・ベクトルいずれ の場合もあります)あるいはラベルのいずれかになります.正解yがラベルの場合を 識別(classification)問題,数値の場合を回帰(regression)問題とよびます.識別問題 の正解をクラス(class),回帰問題の正解をターゲット(target)とよぶこととします. 具体的な教師あり学習問題の説明に入る前に,性能測定基準について少し説明しま す.学習結果である関数ˆc(x)は,学習データに含まれていない未知のデータxに対し て,なるべく正しい答えを出力するように一般化されなければなりません.学習デー タに対する正解率ではなく,未知のデータに対する正解率が重要なのです.学習デー タに対しては,その正解をすべて表形式で記録しておけば,間違いなく正解を出力す ることができます.しかし,未知データに対して正解を出力するには,「学習データの 背後にある法則のようなもの」を獲得する必要があるのです.機械学習は,人間が解 き方のわからない問題に対して適用するものであることを,前節で説明しました.「学 習データの背後にある法則のようなもの」をいかにして獲得するかということが,教 師あり学習のテーマになります. 識別 識別は,入力をあらかじめ定められたクラスに分類する問題です.典型的な識別問題 には,音声や文字の認識,レビュー文章のPN判定(positive(ほめている)かnegative (けなしている)か),疾病の有無の判定などがあります. ここで,識別問題として最も単純な,2値分類問題を考えてみましょう.2値分類問 題とは,たとえば,ある病気かそうでないか,迷惑メールかそうでないかなど,入力 を2クラスに分類する問題です.さらに,入力を数値のみを要素とするベクトルと仮 定します.入力ベクトルが2次元の場合,学習データは図1.6 (a)に示すように,平面 上の点集合になります.クラスの値に対応させて,それぞれ丸とバツで表しました. 最も単純に考えると,識別問題はこの平面上で二つのクラスを分ける境界線を決め るという問題になります.未知のデータが入力されたとき,この境界線のどちらにあ るかを調べるだけで,属するクラスを解答できるので,このことによって,識別能力

(20)
(21)

2

機械学習の基本的な手順

本章では,機械学習の基本的な手順を学びましょう.まず,それぞれのステップで 理解しておくべき内容を解説した後で,各ステップの作業を支援してくれるツールを 使いながら,具体的なデータでその内容を説明します.学習ステップの中身に関して は次章以降で学びますので,この章では少し特殊な学習法である「学習しない」機械 学習手法(k-NN法)1を使って,機械学習全体の手順(図2.1)を説明します. 図2.1 機械学習の流れ 使用するツールは,Wekaというデータマイニングソフトウェアです.Wekaはニュー ジーランドのWaikato大学で開発され,オープンソースソフトウェアとしてGNU GPL ライセンス2で公開されています. 本書で用いるのは,2014年1月時点で最新である開発者用バージョン(Developer version) 3.7.10です.Wekaのサイト3からDownloadリンクをたどって,Windows

Mac,Linuxなど,各プラットフォームに応じたファイルをダウンロードしてインス トールします.

インストールが成功して,Weka 3.7を実行すると,図2.2のような起動画面が出てき ます.ここで,最初に使用するインタフェースをExplorer,Experimenter,Knowledge Flow,Simple CLIの中から選びます.それぞれの用途を表2.1に示します.

この章では,まずKnowledge Flowインタフェースを用いて,機械学習全体の流れ 1 すでに識別結果を知っているデータの中から,識別したい入力に最も近いものを探し,そのデータと同じ クラスに識別する方法です.拍子抜けするほど単純なアイディアですが,識別率は意外に高いといわれて います. 2 GPLライセンスとは,大まかには「プログラムの実行・改良・再頒布は自由であるが,再頒布するときに はその頒布物もGPLライセンスでなければならない」というものです. 3 http://www.cs.waikato.ac.nz/ml/weka/

(22)

19 2.1 データ収集・整理 図2.2 Wekaの起動画面 表2.1 Wekaのインタフェース インタフェース 内容 Explorer データの前処理手法,適用する学習アルゴリズム,そのパラメータ などを試行錯誤するのに適する. Experimenter 学習アルゴリズムの比較など,評価実験に適する. Knowledge Flow 前処理から結果の可視化までの一連の流れを作成するのに適する.

Simple CLI Javaのクラスを直接呼び出すコマンドラインインタフェース. を視覚的に構成する手順を説明します.その後,手軽に使えるExplorerインタフェー スについて,その使い方の概要を説明します.次章以降の例題・演習問題では,この 二つのインタフェースを必要に応じて使い分けて用います.

2.1

データ収集・整理

2.1.1 データの収集 機械学習の第一段階はデータ収集です.購買記録からのパターンマイニングなどの ように,使用するデータがあらかじめ存在する場合と,自分でタスクと問題を設定し て,そのために必要なデータを集める場合とがあります.教師あり学習をおこなう場 合には,さらに正解の付与作業が必要になります. ただし,機械学習の勉強という目的では,先人が苦労して作成してくれたデータを 利用することができます.本書の例題では,主としてWeka 3.7に付属のデータを使 用します.Wekaをインストールしたフォルダに,dataというフォルダがあります. そこに,後で説明するARFFという形式1でデータが納められています.Weka付属 1 テキスト形式の一種ですので,エディタでその内容を確認することができます.

(23)

表2.2 Weka付属のデータ データ名 内容 特徴 正解情報 breast-canser 乳癌の再発 ラベル クラス(2値) contact-lenses コンタクトレンズの推薦 ラベル クラス(3値) cpu CPUの性能評価 数値 数値 credit-g 融資の審査 混合 クラス(2値) diabetes 糖尿病の検査 数値 クラス(2値) iris アヤメの分類 数値 クラス(3値) Reuters-Corn 記事分類 テキスト クラス(2値) supermarket スーパーの購買記録 ラベル なし weather.nominal ゴルフをする条件 ラベル クラス(2値) weather.numeric ゴルフをする条件 混合 クラス(2値) のデータには,過去の機械学習論文で取り上げられてきたデータがいくつもあり,い くつかの機械学習アルゴリズムの本質を理解するのに適しています.表2.2に,本書 で取り上げるデータの内容を示します. これらのデータは,これまでほかの本で何度も目にしたものかもしれません.例題 の内容をみて,「アヤメの分類なんか興味ないんだけど…」とか,「曇っていて風が弱 ければゴルフをするっていう規則なんて何の役に立つんだ…」などという感想をもつ かもしれません.しかし,機械学習アルゴリズム自体は,まったく意味をもたない特 徴A,特徴B,…などを設定して,乱数で人工的に生成したデータを使って説明するだ けでは,それで結果が出てもあまり達成感がありません.アルゴリズムを理解するだ けでなく,実際にツールを動かしてみると,「近視で涙量が正常の人には,ソフトコン タクトレンズを勧める」というような,実世界と対応付けてみて何となく正しそうに みえる結果が出ているだけで,ちょっとうれしくなることもあります. また,いくつかの練習問題では,比較的大規模なデータが揃っているUCI Machine Learning Repository1を使用します. これらのデータは,特徴と正解情報の組み合わせにとくに注目して使用してくださ い.特徴(次元数,データの散らばり具合,スパース性2,欠損値の有無などの情報も 含めて)と正解情報の組み合わせをみただけで,適用するべきアルゴリズムが浮かぶ ようになれば,機械学習初心者卒業といえるでしょう.

1 Bache, K. & Lichman, M. (2013). UCI Machine Learning Repository

[http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.

(24)

21 2.1 データ収集・整理 ただし,このようなサンプルとして入手可能なデータは,勉強のためと割り切って 使うべきです.これらを使って研究を進めることに関しては,問題が提起されていま す(このことは「あとがき」でも触れます)[5]. 2.1.2 データの整理 学習に用いるデータの収集が終わったら,それを機械学習プログラムが読み込んで 処理しやすい形式に整理します. 1章で説明したように,機械学習のデータは多次元のベクトルですので,ベクトル の各要素をカンマで区切り,1行に1事例ずつデータを並べてゆくというのが,最も 単純な形式になります.この形式はCSV (comma separated values)形式とよばれ, 表計算ソフトやテキストエディタで読み込み・編集ができます.ただし,CSV形式で は,何番目の要素がどのような特徴を表しているのかは,データだけからはわかりま せん1.最初に見出し行を付けるという方法も考えられますが,データの型など,も う少し情報を付けておきたいこともあります.それぞれの要素は数値なのかラベルな のか,ラベルの場合はどのような値が可能なのかという情報も,自分が作成したもの ではないデータを扱う際には役に立ちます.CSV形式にこれらの情報をヘッダ情報と して加えたものが,ARFF (attribute-relation file format)形式です.

ARFF形式のデータの例として,Wekaに付属のiris.arffを図2.3に示します.こ れはアヤメ(iris)の種類(iris-setosa, iris-versicolor, iris-virginica)を,その

がく

萼の長さ

(sepal length)・幅(sepal width),花びらの長さ(petal length)・幅(petal width)の, 計四つの特徴を用いて識別するための学習データです. ARFF形式のファイルには,データセット名,特徴の情報,実際のデータを,この 順で記述します.それぞれの記述方法について表2.3にまとめます. %で始まる行はコメントです.Weka付属のいくつかのデータには,コメントとして 表2.3 ARFF形式の仕様 セクション名 形式 内容 データセット名 @relationデータセット名 データの名前を記述 特徴の情報 @attribute特徴名 1行に1特徴の情報を記述.データの各 次元の意味は特徴の出現順に対応する. データ @data @dataの行以降,1行に1事例のデータ をCSV形式で記述.欠損している要素 は? で表す. 1 教師あり学習に用いるデータの場合は,最後の要素を正解とすることが習慣になっています.しかし,す べてのデータがその習慣に従っているという保証はありません.

(25)

図2.3 ARFF形式のデータの例(iris.arff)

そのデータの作成元の情報,関係論文,特徴の詳細説明などが書かれています.

@relation1で指定されるデータセット名は,ほかのデータ集合と区別する目的で, 英数字と記号を用いて記述します.空白・カンマ・波括弧などを含めたい場合は,デー タセット名を引用符(’または”)で囲みます.

@attributeで指定される特徴の型は,numeric(数値),ラベル,date(日付),string

(文字列)のいずれかです2,数値型を表すのに,integer やrealと書かれている場合 もありますが,いずれもnumericとみなされます.ラベルの場合は,型指定の代わり に,ラベルとして可能な値を{yes, no}のようにカンマ区切りで並べて波括弧で囲み ます.識別問題の正解情報は,このラベル型を用いて,特徴名としてclassと指定する ことが多いのですが,Weka は自動的にその特徴を正解情報とみなすわけではありま せん.どの特徴を正解情報とするかは,Wekaにデータを読み込んでから決定します. @dataと書いた次の行から,学習に用いるデータを1行に1事例のCSV形式で記 述します. 1 セクション名に用いる大文字・小文字は区別されません. 2 特徴名・型とも大文字・小文字は区別されません.

(26)

5

識別 ―生成モデルと識別モデル―

この章では,前章で学んだ統計モデルによる識別法で,数値を要素とする特徴ベク トルを識別する問題に取り組みます.数値を要素とする特徴ベクトルに対する識別問 題は,一般にはパターン認識とよばれます.

5.1

数値特徴に対する「教師あり・識別」問題の定義

3章と4章では,ラベル特徴に対する識別問題を扱いました.続いて5章から7章 では,数値を要素とする特徴ベクトルxに対する識別問題を扱います(図5.1). 識別問題は教師あり学習ですので,学習データは特徴ベクトルxiと正解情報である クラスyiのペアからなります.  (xi, yi), i= 1, . . . , N ラベル特徴との違いは,特徴ベクトルの要素が数値ですので,各要素を軸とする空 間を考えることができる点です.この空間を,特徴空間とよびます.そうすると,学 図5.1 数値特徴に対する「教師あり・識別」問題

(27)

5.2 d次元の特徴空間 習データの中の各事例は,特徴空間上の点として表すことができます(図5.2). もし,特徴抽出段階で適切な特徴が選ばれているならば,図5.3のように,学習デー タは特徴空間上で,各クラスごとにある程度まとまりを構成していることが期待でき ます.そうでなければ,人間や動物が日常的に識別問題を解決できるはずがありませ ん.このように考えると,数値特徴に対する識別問題は,特徴空間上でクラスを分離 する境界面を探す問題として定義することができます. 境界面が平面や2次曲面程度で,よく知られた統計モデルがデータの分布にうまく 当てはまりそうな場合は,本章で説明する統計モデルによるアプローチが有効です. 一方,学習データがまとまっているはずだといっても,それが比較的単純な識別面 で区別できるほど,きれいに分かれていない場合もあります.その境界は,曲がりく ねった非線形曲面になっているかもしれません.また,異なるクラスのデータが一部 重なる部分がある可能性があります.そのような,非線形性をもち,完全には分離で 図5.3 特徴空間上の学習データと識別面

(28)

91 5.2 数値特徴に対するベイズ識別 きないかもしれないデータに対して識別を試みるには,次章以降で説明する二つのア プローチがあります. 一つは,非線形の複雑なモデルで表した境界のパラメータを,学習データとの誤差 がなるべく少なくなるように調整する方法です.この代表的な手法が,6章で説明す るニューラルネットワークです.もう一つは,学習データを高次元の空間に移すこと で,きれいに分離される可能性を高めておいて,線形のモデルを使ってなるべく学習 データに特化しすぎないような識別面を求めるという方法です.この代表的な手法が, 7章で説明するSVM(サポートベクトルマシン)です.

5.2

数値特徴に対するベイズ識別

4章では,ラベル特徴に対する統計的識別手法を説明してきました.その基本的な 考え方は,数値特徴に対しても適用することができます. 5.2.1 数値特徴に対するナイーブベイズ識別 数値特徴の場合のナイーブベイズ識別の結果を求める式は,式(5.1)のようになり ます.ラベル特徴の場合の式(4.12)とほとんど同じですが,尤度が離散事象に対する 確率分布P(xj|ωi)ではなく,数値に対する確率密度関数p(xj|ωi)になっています. CNB= arg max i P(ωi) d j=1 p(xj|ωi) (5.1) 事前確率P(ωi)に関しては,ラベル特徴のときと同様に,学習データ中のクラスωi に属するデータを数える最尤推定で求めればよいので,とくに問題はありません. しかし,尤度p(xj|ωi)に関しては,「クラスωiのデータの属性ajが値xjとなる確 率」なので,頻度を数えるという方法を用いることはできません. そこで,数値特徴に関しては,適切な統計モデルを当てはめ,そのモデルのパラメー タを学習データから推定するという方法を取ります.数値データに対する統計的モデ ル化は,それだけで一冊の本になるぐらい奥が深い問題です.本書では,教師なし学 習におけるモデル推定のところで少し詳しく説明しますので,ここでは,最も単純な 方法で考えます. 様々な数値データに対して多く用いられる統計モデルが正規分布です.正規分布は, 図5.4に示すような釣り鐘型をした分布で,身長・体重の分布や,多人数が受けるテ ストの点数の分布などがよく当てはまります.

(29)

図5.4 正規分布の形 1次元データの正規分布は,式(5.2)のようになります. p(x) = 1 2π σexp  −(x− µ)2 2  (5.2) ここで,µは正規分布の平均値,σは標準偏差です.この二つを正規分布のパラメー タとよび,パラメータの値が決まると,p(x)の関数形が決まります. このような仮定をおいたときの学習は,正規分布の平均値と標準偏差を学習データ から推定するという問題になります.これは,ラベルデータの頻度による推定と同様 の考え方で,学習データの平均をモデルの平均,学習データの標準偏差をモデルの標 準偏差とすることで,最尤推定になります. 例題5.1

WekaのNaiveBayesアルゴリズムを用いて,diabetes.arffのデータを識別する ナイーブベイズ識別器を作成せよ. 解 ここで用いるdiabetes.arff(図5.5)は,ピマ・インディアンの女性の種々の検査 結果と糖尿病検査結果の関係を示すデータです.血圧・年齢・BMIなどの値から,糖 尿病であるかどうかを判定する識別器を作成するのが目標です.diabetesデータの 特徴とその値の意味を表5.1に示します.分類するクラスは,正(tested positive), 負(tested negative)の2クラスで,用いる特徴は8次元の数値特徴です.

ここでは,WekaのExplorerインタフェースを用います.Preprocessタブで di-abetes.arffデータを読み込んだ後,Classifyタブでの設定はclassifier領域でbayes

→ NaiveBayesを選び,Test options領域で選ぶ評価方法は,Use training setと します.

学習結果は以下のようになります.学習結果が,各特徴の平均値(mean)や標 準偏差(std. dev.)(すなわち,各次元の正規分布のパラメータ)になっていると

(30)

93 5.2 数値特徴に対するベイズ識別 図5.5 diabetesデータ(一部) 表5.1 diabetesデータの特徴 attribute detail preg 妊娠回数 plas 糖負荷試験2時間後の血糖値 pres 最低血圧[mmHg] skin 上腕の皮膚の厚さ[mm] insu 血中インスリン濃度[µU/ml] mass BMI =体重[kg]/(身長[m]× 身長[m]) pedi 糖尿病家計の度合 age 年齢

class {tested positive, tested negative}(正例,負例)

ころに注目してください.なお,weight sumは,パラメータ推定に用いた事例数,

precisionはその次元における隣接事例距離の平均です.いずれも推定されたパラ メータの妥当性を検証するための補助的な情報で,これらの数値は識別の際には用 いられません.

Class

Attribute tested_negative tested_positive (0.65) (0.35) =============================================== preg

(31)

std. dev. 3.0166 3.6827 weight sum 500 268 precision 1.0625 1.0625 plas mean 109.9541 141.2581 std. dev. 26.1114 31.8728 weight sum 500 268 precision 1.4741 1.4741 ...

正解率は,Use training set,10-fold CVともに76%程度になります.

5.2.2 生成モデルの考え方

ここで,式(4.2)に基づいて得られた事後確率の計算式を,記号を変えてもう一度 見直してみます.

P(ωi|x) =p(x|ωi)P (ωi)

p(x) (5.3) = p(ωi,x) p(x) (5.4) 式(5.3)の分子は,生成モデルとよばれる考え方で解釈することができます.まず, あるクラスωiが確率P(ωi)で選ばれ,そのクラスから特徴ベクトルxが確率p(x|ωi) に基づいて生成されたという考え方です.これは,式(5.4)の分子である特徴ベクト ルとクラスの同時確率p(ωi,x)を求めていることになります. この生成モデルアプローチは,事前確率がわかっていて,それを識別に取り入れた い場合には有効です.しかし,推定するべきパラメータは,P(ωi|x)を直接推定する よりも増えてしまいます. 次節では,P(ωi|x)を直接推定する方法について説明します.

5.3

ロジスティック識別

P(ωi|x)をデータから直接推定するアプローチは,識別モデルとよばれます.4章 で説明したように,データから直接頻度を数えて事後確率P(ωi|x)を求めることはで きません.そこで,識別モデルでは,この事後確率を特徴値の組み合わせから求める

(32)

著 者 略 歴 荒木 雅弘(あらき・まさひろ) 1993年 京都大学大学院工学研究科情報工学専攻 博士後期課程研究指導認定退学 同 年 京都大学工学部助手 1997年 京都大学総合情報メディアセンター講師 1998年 博士号(工学)取得(京都大学) 1999年 京都工芸繊維大学工芸学部助教授 2007年 京都工芸繊維大学大学院工芸科学研究科准教授(職名変更) 現在に至る 編集担当 太田陽喬(森北出版)  編集責任 富井 晃(森北出版)  組 版 プレイン  印 刷 ワコープラネット  製 本 ブックアート フリーソフトではじめる機械学習入門 c 荒木雅弘 2014 2014年3月28日 第1版第1刷発行 【本書の無断転載を禁ず】 著 者 荒木雅弘 発 行 者 森北博巳 発 行 所 森北出版株式会社 東京都千代田区富士見1-4-11(〒102-0071) 電話03-3265-8341/FAX 03-3264-8709 http://www.morikita.co.jp/ 日本書籍出版協会・自然科学書協会 会員 <(社)出版者著作権管理機構 委託出版物> 落丁・乱丁本はお取替えいたします.

図 1.1 ビッグデータの活用例 ンの検出や,インフルエンザの流行の予想など,これまでになかったサービスや機能 を実現することもできるのです(図 1.1 ). ビッグデータは,インターネットの発展や様々なセンサ・通信機能をもった携帯端 末の普及の結果としてもたらされましたが,その大量・多様なデータの効率のよい利 用に関しては,これからますます技術開発が進められてゆく分野です.ビッグデータ の応用に関して最も注目されている分野として,データマイニング (data mining) が あります.データマイニング
表 2.2 Weka 付属のデータ データ名 内容 特徴 正解情報 breast-canser 乳癌の再発 ラベル クラス( 2 値) contact-lenses コンタクトレンズの推薦 ラベル クラス( 3 値) cpu CPU の性能評価 数値 数値 credit-g 融資の審査 混合 クラス( 2 値) diabetes 糖尿病の検査 数値 クラス( 2 値) iris アヤメの分類 数値 クラス( 3 値) Reuters-Corn 記事分類 テキスト クラス( 2 値) supermarket
図 2.3 ARFF 形式のデータの例 (iris.arff)
図 5.2 d 次元の特徴空間 習データの中の各事例は,特徴空間上の点として表すことができます(図 5.2 ). もし,特徴抽出段階で適切な特徴が選ばれているならば,図 5.3 のように,学習デー タは特徴空間上で,各クラスごとにある程度まとまりを構成していることが期待でき ます.そうでなければ,人間や動物が日常的に識別問題を解決できるはずがありませ ん.このように考えると,数値特徴に対する識別問題は,特徴空間上でクラスを分離 する境界面を探す問題として定義することができます. 境界面が平面や 2 次曲面程
+2

参照

関連したドキュメント

世の中のすべての親の一番の願いは、子 どもが健やかに成長することだと思いま

理系の人の発想はなかなかするどいです。「建築

ライセンス管理画面とは、ご契約いただいている内容の確認や変更などの手続きがオンラインでできるシステムです。利用者の

本時は、「どのクラスが一番、テスト前の学習を頑張ったか」という課題を解決する際、その判断の根

J-STAGE は、日本の学協会が発行する論文集やジャー ナルなどの国内外への情報発信のサポートを目的とした 事業で、平成

それでは資料 2 ご覧いただきまして、1 の要旨でございます。前回皆様にお集まりいただ きました、昨年 11

エッジワースの単純化は次のよう な仮定だった。すなわち「すべて の人間は快楽機械である」という

前回ご報告した際、これは昨年度の下半期ですけれども、このときは第1計画期間の