データマイニングと機械学習 - kyoto u2015/06/04  · 分類/予測器...

27
2015710データマイニングと機械学習 西田豊明 Copyright © 2015 Toyoaki Nishida All Rights Reserved.

Upload: others

Post on 17-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

2015年7月10日

データマイニングと機械学習

西田豊明

Copyright © 2015 Toyoaki Nishida All Rights Reserved.

Page 2: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

分類/予測器

機械学習とデータマイニング

- 機械学習AIシステムが経験を通して自らの振舞いや知識を改良するための手法

- データマイニング:データの中から法則性を推定する技術.

法則

データ 分類/予測

トレーニング用

学習システム教師有/無

[西田 1999]

Page 3: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

決定木学習

Page 4: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

分類器

決定木

法則

データ 分類

トレーニング用

学習システム教師有

size?

taste?

sweetmild

marginal

L S

good fair

fairgood

[西田 1999]

Page 5: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

決定木

size?

taste?

sweetmild

marginal

L S

good fair

fairgood

[西田 1999]

Page 6: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

決定木の学習 -- 例題

taste size surface decision

sweet L shining good

sweet S shining good

sweet S dull good

mild L shining good

mild S shining fair

marginal L dull fair

marginal S dull fair

marginal S shining fair

[西田 1999]

Page 7: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

決定木の例

size?

taste?

sweetmild

marginal

L S

good fair

fairgood

[西田 1999]

taste size surface decision

sweet L shining good

sweet S shining good

sweet S dull good

mild L shining good

mild S shining fair

marginal L dull fair

marginal S dull fair

marginal S shining fair

Page 8: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

決定木の例

L

shining dull

S

sweet mild, marginal

L S

shining

mild, marginal

dull

sweet

L S

Mild, marginalsweet

surface?

size? size?

taste?good

good fair

fair

surface?

taste? taste?

size? fair

fair

good good

good

[西田 1999]

sweet, mild, marginal

taste?

good fair

taste size surface decision

sweet L shining good

sweet S shining good

sweet S dull good

mild L shining good

mild S shining fair

marginal L dull fair

marginal S dull fair

marginal S shining fair

size?

taste?

sweetmild

marginal

L S

good fair

fairgood

Page 9: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

決定木の良さ

構造の簡単な決定木を優先

オッカムのかみそり(Occum‘s razor):与えられたデータと整合する仮説のなかで最も単純なものを優先する.

データ集合SのエントロピーH(S):

C(S): データ集合 S に対する可能なカテゴリの集合p(c): カテゴリ c に分類されるデータの割合

)(

)(log)()(SCc

cpcpSH

[西田 1999]

Page 10: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

アルゴリズムID3

[西田 1999]

(defun id3 (attributes data)

(let* ((possible-classes (get-possible-classes data)) children)

(cond ((= (length possible-classes) 1) (first possible-classes))

((null attributes) '?)

(t (setq children (select-and-split attributes data))

`(,(first children)

. ,(mapcar #'(lambda (x)

`(,(first x)

,(id3 (delete (first children) attributes)

(second x))))

(second children)))))))

(defun get-possible-classes (data)

(let* ((result nil))

(dolist (d data)

(cond ((not (member (second d) result))

(push (second d) result))))

result))

(defun select-and-split (attributes data)

(select-minimal-entropy (find-all-partitions attributes data)))

(defun find-all-partitions (attributes data)

(let* ((result nil) possible-values entropy-attribute-partition)

(dolist (attribute attributes)

(setq possible-values (get-possible-values attribute data))

(setq entropy-attribute-partition (get-partition data attribute possible-values))

(push entropy-attribute-partition result))

result))

Page 11: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

アルゴリズムID3

[西田 1999]

(defun get-possible-values (attribute data)

(let* ((possible-values nil) x)

(dolist (d data)

(setq x (second (assoc attribute (cdr (first d)))))

(cond ((not (member x possible-values)) (push x possible-values))))

possible-values))

(defun get-partition (data attribute possible-values)

(let* ((entropy 0) (partition nil) (data-count (length data)) subdata)

(dolist (possible-value possible-values)

(setq subdata nil)

(dolist (d data)

(cond ((equal possible-value (second (assoc attribute (cdr (first d)))))

(push d subdata))))

(setq entropy (+ entropy (* (/ (length subdata) data-count)

(calculate-entropy subdata))))

(push `(,possible-value ,subdata) partition))

`(,entropy ,attribute ,partition)))

(defun calculate-entropy (data)

(let* ((size (length data)) (entropy 0) (possible-classes (get-possible-classes data)) c)

(cond ((= (length possible-classes) 1))

((= size 1))

(t (dolist (possible-class possible-classes)

(setq c (count-if #'(lambda (x) (equal possible-class (second x))) data))

(setq entropy (- entropy (* (/ c size) (log (/ c size) 2)))))))

entropy))

(defun select-minimal-entropy (partitions)

(cdr (first (sort partitions #'(lambda (x y) (< (first x) (first y)))))))

Page 12: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

頻出集合発見

Page 13: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

頻出集合データ

頻出集合発見

3つ以上のトランザクションに含まれるアイテム集合

{1} {2} {7} {9}

{1, 7} {1, 9}

{2, 7} {2, 9} {7, 9}

{1, 7, 9} {2, 7, 9}

頻出集合発見

[西田 1999]

トランザクション名(取引) レコード:アイテムの集合

A 1,2,5,6,7,9

B 2,3,4,5

C 1,2,7,8,9

D 1,7,9

E 2,3,7,9

F 2,7,9

トランザクション

アイテム

トランザクションデータベース

Page 14: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

頻出集合発見問題 (frequent itemset mining)

Given:トランザクションデータベース D

Find:頻出度θ以上の頻出集合を全て見つける

[西田 1999]

θ: 閾値(最小サポート)θが大:解となる頻出集合の数は小さいθが小:有用な知識をもらさず見つけ出すため,モデルの立場からは望ましい.

t1: {1, 2, 5, 8, 11, 12, 15, 17, 18, 19, 23, 25, 27}

t2: {2, 4, 5, 8, 11, 17, 19, 23, 27, 29}

t3: {1, 3, 5, 6, 7, 8, 9, 10, 14, 15, 21, 25, 26, 30}

t4: {7, 8, 10, 11, 12, 13, 14, 15, 17, 23, 25, 29}

t5: {2, 5, 6, 8, 11, 13, 15, 17, 18, 20, 23, 25, 30}

t6: {2, 3, 7, 8, 12, 13, 15, 17, 18, 23, 26, 29}

大きさ1: {{8}, {15}, {17}, {23}}

大きさ2: {{17, 23}, {8 ,23}, {8, 17}, {8 ,15}}

大きさ3: {{17, 8, 23}}

例:

例(θ=5の場合):

Page 15: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

アプリオリ法

頻出集合の族の単調性:トランザクション t が頻出集合 X

を含むならば,t は X の任意の部分集合を含む.

⇒ X の部分集合の出現集合は X の出現集合を含み,頻出度は X より同じか大きくなる.

基本アイデア

[西田 1999]

Page 16: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

アルゴリズム

アプリオリ法のアルゴリズム空集合から出発し,幅優先的にアイテムを1つずつ追加していく.

アプリオリD1=大きさ1の頻出集合の集合; k:=1

while Dk≠φ

(1) 大きさがk+1であり,Dkの2つのアイテム集合の和集合となっているものを全てDk+1 に挿入する

(2) frq(S)<θ となるSを全てDk+1から取り除く(3) k := k+1

end while

特長:データベースへのアクセス数の少なさ.計算時間:〈候補の総数〉×〈データベースの大きさ〉に比例〈候補の総数〉は頻出アイテム集合の数のn倍(nはアイテムの数)を超えない.⇒ 頻出集合1つあたり,最悪でも〈データベースの大きさ〉×nに比例

[西田 1999]

Page 17: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

ニューラルネットワーク

― 多層フィードフォーワードネットワーク ―

Page 18: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

分類器

多層フィードフォーワードネットワーク

法則

データ 分類

トレーニング用

学習システム教師有

入力層

中間層

出力層

[西田 1999]

Page 19: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

フィードフォーワード型ニューラルネットワーク

wji

入力層

中間層

出力層

oi netj=Σwjioi+θji

ユニットj

oj

oj(t+1)=fj(netj)

fj :単調非減少,微分可能

θj:バイアス

[西田 1999]

Page 20: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

ニューラルネットワークを構成するユニット(より一般的なもの)

wji

oinetj

=Σwjioi+θji

ユニットj

ojaj(t+1)

= F(aj(t), netj (t))

aj : ユニット j の活性度

oj=fj(aj)

ユニットiから ユニット j の

出力

[西田 1999]

Page 21: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

排他的選言(exclusive OR)を計算するためのフィードフォーワード型ネットワーク

-3.3 -3.9

入力ユニット 中間ユニット 出力ユニット

-6.7

7.7

7.7

-6.7

14

c は,そのユニットへのバイアスが c であることを示す

x y z

0 0 0.0

0 1 1.0

1 0 1.0

1 1 0.0

x

y

z

[西田 1999]

Page 22: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

誤差逆伝播

入力パターン p に対する出力層での誤差

が最小になるように,ユニットmからユニットnへの結合に対応づけられている重みwnm各ユニットnのバイアス θnを調節する.Epjは入力パターンpに対する出力ユニットjにおける誤差(希望出力tpjと実際の出力opjとの差の2乗の半分)である.

pに対するwnmへの修正:

pに対するθ nへの修正:n

p

np

nm

p

nmp

E

w

Ew

2

21 )(

j

pjpj

j

pjp otEE

[西田 1999]

Page 23: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

誤差逆伝播の基本的な考え方

に注意すると

)( pnnpn

m

pnpmnmpn

netfo

ownet

pmpnpm

pn

p

nm

pn

pn

p

nm

p

nmp

oonet

E

w

net

net

E

w

Ew

pn

pn

p

pn

pn

pn

p

pn

p

np

net

Enet

net

E

E

pn

pn

p

net

E

ただし,

wnm

opm

ユニットn

opn

m

pnpmnmpn ownet )( pnnpn netfo

Ep

[西田 1999]

Page 24: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

誤差逆伝播の基本的な考え方

ユニット n が隠れユニットのとき

ユニット n が出力ユニットのとき

wnm

om netn=Σwjioi+θji

ユニット n

on

on=fn(netn)

出力

wnmom netn=Σwjioi+θji

ユニット n

on

on=fn(netn) 出力

ユニットk

)(

2

1

'

2

pnnpnpn

pn

pn

pnpn

j

pjpj

pnpn

p

pn

netfotnet

oot

otnetnet

E

)('

)('

pnn

k

knpk

pnn

k pn

pk

pk

p

pn

pn

pn

p

pn

p

pn

netfw

netfo

net

net

E

net

o

o

E

net

E

[西田 1999]

Page 25: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

実行例

-0.3 0.7

2

3

3

0

2

x

y

z

x y z

0 0 0.74

0 1 0.89

1 0 0.98

1 1 0.99

-0.5 -0.2

1.9

3.0

3.0

-0.0

1.8

x

y

z

x y z

0 0 0.61

0 1 0.81

1 0 0.97

1 1 0.97

10サイクル後

-0.8 -1.4

0.2

3.3

3.1

-0.1

1.8

x

y

z

x y z

0 0 0.29

0 1 0.52

1 0 0.60

1 1 0.61

100サイクル後

-2.3 -2.6

-3.6

5.9

5.9

-3.6

8.2

x

y

z

x y z

0 0 0.13

0 1 0.85

1 0 0.85

1 1 0.17

1000サイクル後

-3.3 -3.9

-6.7

7.7

7.7

-6.7

14

x

y

z

x y z

0 0 0.00

0 1 0.97

1 0 0.97

1 1 0.00

10000サイクル後

[西田 1999]

Page 26: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

まとめ

1.人工知能とは何か2.Common Lispを使った人工知能プログラミング

3.発見的探索a.状態空間探索b.問題分解法

4.機械学習a.決定木学習b.頻出集合発見c. ニューラルネットワーク学習

Page 27: データマイニングと機械学習 - Kyoto U2015/06/04  · 分類/予測器 機械学習とデータマイニング - 機械学習 AIシステムが経験を通して自らの振舞いや知識を改良するた

References

[西田 1999] 西田豊明: 人工知能の基礎, 丸善, 1999.