機械学習するな機会学習しろ - データサイエンスlt祭り 2夜目

85
機械学習するな 機会学習しろ データサイエンスLT祭り 2夜目@Y@wonder_zone

Upload: cancolle

Post on 08-Jan-2017

1.056 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

機械学習するな機会学習しろデータサイエンスLT祭り 2夜目@Y社

@wonder_zone

Page 2: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

機械学習するな機会学習しろデータサイエンスLT祭り 2夜目@Y社

@wonder_zone

Page 3: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

あんた誰なん?

Page 4: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

私です

•かんこれ(缶これ)• @wonder_zone•研究室にて磔の刑にされたM2•学部:統計屋さん修士:アルゴリズム屋さん

•趣味:ビリヤード、音楽鑑賞、アニメ•推し:三森すずこ

Page 5: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

ところで

Page 6: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

僕の友人達が 近、こんなことを口にします

Page 7: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

彼女欲しい…

Page 8: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

俺ってなんで彼女いない歴=年齢なんだろ…

Page 9: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

こじらせてますね

Page 10: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

しかし、ちゃっかりしてる彼らはこんなお誘いをし

てくれます

Page 11: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

「○○日空いてる?合コン行こうぜ」

Page 12: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

それに対する僕の反応

Page 13: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

いやあ忙しいからパスだわー(やべえ研究の進捗出さねえと)

Page 14: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

【以前の彼ら】

Page 15: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

「これからの時代は機械学習だよっ!」

Page 16: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

だが彼らも現実を見るようになった・・・

Page 17: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

仮に行くとして

Page 18: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

そりゃ成果を出したい

Page 19: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

でも、僕は聖徳太子ではないのでn人の話など

きけん

Page 20: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

もっと言うと1人くらいしか話がわからん!

Page 21: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

ってことで、 適化された環境がほしい

Page 22: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

ていうか自分にあった相手をその場で機械的に判断してほしい

Page 23: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

あるよ

Page 24: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

マッチングアルゴリズム

Page 25: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

イメージ

1. 参加する2. 相性占いと称してデータを入力する3. アルゴリズムで良いマッチングを算出4. その通りに席替え5. たぶん仲良くなれる

Page 26: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目
Page 27: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

イメージ

1. 参加する2. 相性占いと称してデータを入力する3. アルゴリズムで良いマッチングを算出4. その通りに席替え5. たぶん仲良くなれる

Page 28: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

マッチングアルゴリズム

• 2つの集合の要素の全てが「幸せ」となるマッチングとなるような組み合わせ(=安定マッチング)を発見するアルゴリズム

• よく聞く応用先• 研修医配属における研修医と病院の組み合わせ• 研究室配属における学生と研究室の組み合わせ

• ただし、研究室配属は謎の面接によって決めるパターンもあるので全ての機関が行っているとは断言できません

Page 29: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

もう少しドヤ顔で語りたいなら

• 大マッチング問題の定義• 入力:二部グラフ• 出力:サイズが 大のマッチング※サイズ=マッチングの個数

•安定マッチング問題の定義• 入力:二部グラフ+各点の相手に対する好みの順• 出力:安定的なマッチング※安定ではない=互いに現在の相手より好ましい組が

存在(ブロッキングペアが存在)

二部グラフ

Page 30: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

言われてもわからんと思うので良いマッチングが一撃でわかる図

Page 31: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

どちらが良いマッチングですか?

Page 32: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

どちらが良いマッチングですか?

↑こっち

Page 33: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

これは良いマッチングですか?

1

2

3

a

b

c

1太郎くん「僕はb子のほうが好きなんだ!」b子さん「私は2助くんより1太郎くんの方が好き」

Page 34: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

これは良いマッチングですか?

1

2

3

a

b

c

1太郎くん「僕はb子のほうが好きなんだ!」b子さん「私は2助くんより1太郎くんの方が好き」

ブロッキングペア(1,b)

Page 35: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

これは良いマッチングですか?

1

2

3

a

b

c

ブロッキングペアを含まないマッチング

Page 36: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

この業界で超有名なやつ

Page 37: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

Gale-ShapleyAlgorithm

Page 38: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

Gale-Shapley Algorithm

• Gale氏とShapley氏が提案したのでその名前から• Gale,David,andLloydS.Shapley."Collegeadmissionsandthestabilityofmarriage."TheAmericanMathematicalMonthly 69.1(1962):9-15.•日本でも研修医配属の時に使われているらしい(公益財団法人医療研修推進財団のHPより)

Page 39: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

この功績を讃えてShapley氏は89歳にしてノーベル経済学賞受賞(2012)

※Gale氏は2008年に死去

Page 40: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

ちなみにShapley氏は今年3月に死去…

Page 41: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

悲しい

Page 42: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 43: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 44: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 45: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 46: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 47: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 48: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 49: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 50: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際のアルゴリズムの流れ

1. 初期値は男性・女性ともに独身2. 独身の男性𝑚がいる限り、以下の操作を繰り返す

3. 現在のペアの集合を安定マッチングとする(おわり)

男性𝑚はまだ告白していない女性の中で も好きな女性𝑤に告白1. 女性𝑤が独身なら男性𝑚をキープ2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合

•𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚をキープとする

•𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を断る

Page 51: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

補足

•先ほどの説明は男性の希望を優先したもの•女性の希望を優先した場合、結果が変わることも(非対称性)

• 𝑂(𝑛')※ 𝑛は男性 or女性の数•非対称性の問題については提案手法もいくつかあるが今回は省略

現実はそんなに甘くない!

Page 52: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 53: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 54: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 55: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 56: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 57: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

振られたー

バイバーイ

Page 58: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 59: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 60: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

☓ >

Page 61: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

Page 62: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

☓ >

Page 63: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

☓☓

Page 64: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

☓☓

Page 65: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際の流れ

1 2 3C A B XC B A YA C B Z

1 2 3A X Y ZB Z X YC Z Y X

男性 女性

☓☓

Page 66: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

シミュレーションしよう

•以下の擬似データを用いてマッチング•男性陣僕の周りで彼女欲しがってそうな人々を想定したデータ

•女性陣以前知り合った彼氏欲しがってる人々を想定したデータ

Page 67: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

こんなんパッケージとかないやろ

フルスクラッチやなあ

Page 68: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

と思ったらあったよRに

Page 69: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

matchingR

Page 70: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

Install.packages(“matchingR”)

Page 71: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

Rはいいぞ

Page 72: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目
Page 73: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目
Page 74: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

実際に行う操作

•男女のプロフィールのデータセットとそれぞれ互いのプロフィールに対し求める条件を作り、1項目につき、条件を満たしてたらスコアに+1点•満たす数が多ければ多いほどスコアは上がる•現実はどの方がいいか迷う状態もあるので同一のスコアがおるのもありとする

Page 75: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

プロフィールのデータ内容

• 男性は• 身長(cm)• 趣味の平凡度(0– 5)• 交際経験人数• 稼ぐ意欲があるか(あり =1,なし =0)• 眼鏡をかけているか(あり =1,なし =0)

• 女性は• 身長(cm)• 趣味の平凡度(0– 5)• 交際経験人数• おしゃべりが得意か(得意 =1,そうでもない =0)• 眼鏡をかけているか(あり =1,なし =0)

Page 76: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

ß0-(平凡度)-5à有無言わさず0

Page 77: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

データセット(男性編)

•男性1(Gさん)• 173cm,趣味:1,交際経験人数:1,稼ぎ:1,眼鏡:1

•男性2(Cさん)• 171cm,趣味:2,交際経験人数:1,稼ぎ:1,眼鏡:1

•男性3(Tさん)• 175cm,趣味:0,交際経験人数:0,稼ぎ:1,眼鏡:1

•男性4(Hさん)• 180cm,趣味:1,交際経験人数:1,稼ぎ:0,眼鏡:0

•男性5(Sさん)• 164cm,趣味:0,交際経験人数:0,稼ぎ:0,眼鏡:0

Page 78: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

データセット(女性編)

•女性1(A子さん)• 160cm,趣味: 5,交際経験人数:5,話:1,眼鏡:0

•女性2(B美さん)• 152cm,趣味:4,交際経験人数:2,話:1,眼鏡:0

•女性3(C里さん)• 155cm,趣味:0,交際経験人数:0,話:0,眼鏡:1

•女性4(D央さん)• 146cm,趣味:1,交際経験人数:1,話:0,眼鏡:1

•女性5(E華さん)• 158cm,趣味:4,交際経験人数:3,話:0,眼鏡:0

Page 79: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

相手に求める条件(男性編)

• ↑ =以上,↓ =以下• 男性1(Gさん)

• 157cm↑,趣味:2↑,交際経験人数: 0,話:1,眼鏡:0

• 男性2(Cさん)• 158cm↓,趣味:0↑,交際経験人数: 3↓,話:0,眼鏡:0↑

• 男性3(Tさん)• 160cm↑,趣味:1↑,交際経験人数:0,話:1,眼鏡:0↑

• 男性4(Hさん)• 150cm↑,趣味:1↓,交際経験人数:1↓,話:0,眼鏡:0↑

• 男性5(Sさん)• 164cm,趣味:0,交際経験人数:0,話:0,眼鏡:1

Page 80: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

相手に求める条件(女性編)

• ↑ =以上,↓ =以下• 女性1(A子さん)

• 170cm↑,趣味: 2↑,交際経験人数:1↑,稼ぎ:1,眼鏡:0↑

• 女性2(B美さん)• 170cm↑,趣味:1,交際経験人数:1↑,稼ぎ:1,眼鏡:1

• 女性3(C里さん)• 160cm↑,趣味:2↑,交際経験人数:0↑,稼ぎ:1,眼鏡:0↑

• 女性4(D央さん)• 165cm↑,趣味:1↑,交際経験人数:3↓,稼ぎ:0,眼鏡:0↑

• 女性5(E華さん)• 160cm↓,趣味:1↑,交際経験人数:2↓,稼ぎ:1,眼鏡:0↑

Page 81: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

結果

Page 82: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

結果

matching$proposals[,1]

[1,]2[2,]4[3,]1[4,]5[5,]3

(Gさん,B美さん)(Cさん,D央さん)(Tさん,A子さん)(Hさん,E華さん)(Sさん,C里さん)

Page 83: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

今後の課題

•合コンに参加する•実行する

• 1人勝ちするタイプのやつは消し去る

Page 84: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

こんなんもどうです?

Page 85: 機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

\おしまい/