Share
Embed
Transcript
62 slides
-
࣍ • લճͷ͓͞Β͍ • ଟύʔηϓτϩϯͱKeras • word2vecͱ • Continuous Bag
of Words • Skip Gram • word2vecͷ͍ํ • gensim ͱ͍͏ϥΠϒϥϦΛ͍·͢ • αϒϫʔυΛߟྀ͍ͨ͠ͱ͖ fasttext -
લճͬͨ͜ͱ • 1͔Β୯७ύʔηϓτϩϯΛ࣮͠·ͨ͠ • ఱؾ༧ใ • ೖྗ: 4࣍ݩϕΫτϧ x •
ग़ྗ: ΕͰ͋Δ֬ z • Iris data • ೖྗ: 4࣍ݩϕΫτϧ • ग़ྗ: छͷ֬ x0 +|f x1 x3 z x2 b w0 w1 w2 w3 z = f( w T x + b) = 1 1 + e ( 0.2) = 0.45 -
Kerasͱ୯७ύʔηϓτϩϯ x0 +|f x1 x3 z x2 b w0 w1
w2 w3 ۭͬΆͷ χϡʔϥϧωοτϫʔΫΛఆٛ -
Kerasͱ୯७ύʔηϓτϩϯ x0 +|f x1 x3 z x2 b w0 w1
w2 w3 ೖྗ࣍ݩͷϕΫτϧ -
Kerasͱ୯७ύʔηϓτϩϯ x0 +|f x1 x3 z x2 b w0 w1
w2 w3 தؒɼશ݁߹ Dense தؒ࣍ݩ -
Kerasͱ୯७ύʔηϓτϩϯ x0 +|f x1 x3 z x2 b w0 w1
w2 w3 தؒͷ׆ੑԽؔ γάϞΠυؔ -
Kerasͱ୯७ύʔηϓτϩϯͱMNIST • MNISTΛ୯७ύʔηϓτϩϯͰྨ • ࣈ͕0͔1͔ͷ2ྨ • લճॻ͍ͨKeras͔Βͷมߋ: • લॲཧ෦ •
ೖྗͷ࣍ݩ: 4 → 784 (28x28) x0 +|f x1 x3 z x2 b w0 w1 w2 w3 -
ଟྨ • ग़ྗ: ֤Ϋϥεͷ֬ • MNISTͳΒ0~9·Ͱͷ֬ • શ෦͢ͱ1.0 • ༧ଌΫϥε:
֬࠷େͷΫϥε x13 z7 z9 z3 x2 z2 z5 0.14 x12 x7 x8 z6 z8 0.15 x0 x3 0.07 x9 x14 z0 x5 x4 0.12 x10 0.17 x1 0.05 0.04 0.06 x11 x6 0.17 z1 0.01 z4 -
ଟྨ: MNISTͷ߹ x13 z7 z9 z3 x2 z2 z5 0.14
x12 x7 x8 z6 z8 0.15 x0 x3 0.07 x9 x14 z0 x5 x4 0.12 x10 0.17 x1 0.05 0.04 0.06 x11 x6 0.17 z1 0.01 z4 Ͱ͋Δ֬ Ͱ͋Δ֬ -
ଟྨͷͨΊͷ׆ੑԽؔ • Softmaxؔ • ग़ྗͷෳϢχοτʹରͯ͠ಉ࣌ʹఆٛ x13 z7 z9 z3 x2
z2 z5 0.14 x12 x7 x8 z6 z8 0.15 x0 x3 0.07 x9 x14 z0 x5 x4 0.12 x10 0.17 x1 0.05 0.04 0.06 x11 x6 0.17 z1 0.01 z4 softmax (z) = e zk P9 l=0 e zl ӈͷ߹ͷఆٛࣜ -
ύʔηϓτϩϯʹΑΔMNISTͷଟྨ • ͖ͬ͞ίʔυͱ΄΅ಉ͡ • ্࣮ͷҙ • ׆ੑԽؔΛ softmax • ग़ྗͷ࣍ݩΛ10࣍ݩʹ
• lossΛcategorical_crossentropyʹ • લॲཧ෦ͰYΛto_categoricalʹ -
Just do deep, Just stack more layers! • தؒΛ૿͢͜ͱͰॏΈʢύϥϝʔλʣ͕૿͑Δ •
ࡉ͔͍ύλʔϯʹରԠͰ͖ΔΑ͏ʹͳΔ • CNNதؒͷ1ͭ -
Just do deep, Just stack more layers! • த͍ؒ͘Β૿͍͍ͯ͠ •
ೖྗ • தؒʢӅΕʣ • ग़ྗ x3 x5 0.07 x1 h15 u3 x7 h4 h3 u7 h17 0.07 h19 u5 h11 0.20 x11 u2 h0 x13 0.05 0.02 h8 0.11 0.06 h6 h7 h18 u0 h13 h14 u1 0.20 u9 x14 u6 x2 0.12 h5 0.10 x10 x9 x8 x4 x12 h12 u4 h1 h2 h10 h9 u8 x0 x6 h16 -
Ϟσϧͷఆٛ: MNIST_MLP.py • Dense ʹ׆ੑԽؔΛจࣈྻͰͤΔ • ωοτϫʔΫͷߏ • ೖྗ784࣍ݩ •
தؒ100࣍ݩɼ׆ੑԽؔ relu, tanh, sigmoidͳͲ • ग़ྗ10࣍ݩɼ׆ੑԽؔsoftmax -
Just do deep, Just stack more layers!Just do deep, Just
stack more layers! Just do deep, Just stack more layers!Just do deep, Just stack more layers! ྨͷੑೳΛ্͍͛ͨͰ͢ -
Just do deep, Just stack more layers!Just do deep, Just
stack more layers! Just do deep, Just stack more layers!Just do deep, Just stack more layers! ྨͷੑೳΛ্͍͛ͨͰ͢ ΛੵΊʂʂʂ ͦͨ͠Β͏·͍͘͘Α -
Just do deep, Just stack more layers!Just do deep, Just
stack more layers! Just do deep, Just stack more layers!Just do deep, Just stack more layers! ྨͷੑೳΛ্͍͛ͨͰ͢ ΛੵΊʂʂʂ ͦͨ͠Β͏·͍͘͘Α ͜͏Ͱ͔͢ʁ -
Just do deep, Just stack more layers!Just do deep, Just
stack more layers! Just do deep, Just stack more layers!Just do deep, Just stack more layers! ྨͷੑೳΛ্͍͛ͨͰ͢ ΛੵΊʂʂʂ ͦͨ͠Β͏·͍͘͘Α ͜͏Ͱ͔͢ʁ -
Just do deep, Just stack more layers! Just do deep,
Just stack more layers! Just do deep, Just stack more layers! Just do deep, Just stack more layers! Just do deep, Just stack more layers! Just do deep, Just stack more layers! Just do deep, Just stack more layers! Just do deep, Just stack more layers! Just do deep, Just stack more layers! ྨͷੑೳΛ্͍͛ͨͰ͢ ΛੵΊʂʂʂ ͦͨ͠Β͏·͍͘͘Α ͜͏Ͱ͔͢ʁ ͨͩ͠ɼ ޯ͕ফ͑ͳ͍Α͏ʹͶ -
ޯফࣦ • લճɼޯ߱Լ๏ͷͨΊʹॏΈͷඍΛٻΊͨ • ೖྗʹ͍ۙ΄Ͳɼޯ͕ൃࢄ ͋Δ͍ 0 ʹ • ॏΈߋ৽͞Εͳ͍ʢֶशʹࣦഊ͍͢͠ʣ
• ग़ྗʹ͍ۙޯใೖྗʹ͍ۙߋ৽ࣜʹؔ༩ • ͜Ε͕ى͜Γʹ͘͘ͳͬͨͷ͕ਂֶश -
word2vecͱ • [Tomas Mikolov+, 2013] ͰఏҊ͞Εͨख๏ͷ໊࣮ • ΞϧΰϦζϜ໊Ͱͳ͍ͷͰҙ • ΞϧΰϦζϜࣗମ2ͭ͋Δ
• ࣗવݴޠॲཧػցֶशͷͰྲྀߦͬͯΔ • 1ͭͷ୯ޠΛ࣍ݩͳີϕΫτϧͷ1Ͱද͢ํ๏ -
Bag-of-Wordsදݱ (BoW) • ෳ୯ޠΛ·ͱΊͨදݱ • ୯ޠͷॱ൪ແࢹ • ཁૉͷॏෳΛڐͨ͠ू߹ʢଟॏू߹ʣ BoW: {|情報,
学群, 知識, 情報, ・, 図書館, 学類|} ू߹: {情報, 学群, 知識, ・, 図書館, 学類} ຊࢿྉͰू߹Λ {elem}ɼBoWΛ {|elem|} ͱ͢Δ -
จ຺ޠ • จ຺ޠ: ͋ΔจதͰ͢Δ1୯ޠͷपғn୯ޠͷ͜ͱ • จ຺૭෯: n Q. “I drink
coffee everyday” Ͱcoffeeͷจ຺૭෯1ͷจ຺ޠʁ -
จ຺ޠ • จ຺ޠ: ͋ΔจதͰ͢Δ1୯ޠͷपғn୯ޠͷ͜ͱ • จ຺૭෯: n Q. “I drink
coffee everyday” Ͱcoffeeͷจ຺૭෯1ͷจ຺ޠʁ A. {|drink, everyday|} -
one-hot දݱ (one-of-K දݱ) • 1୯ޠΛޠኮ࣍ݩVͷϕΫτϧͰදݱ • ରԠ͢Δ࣍ݩ͚ͩ1ɼΓ0 ྫɿ͠ޠኮ4 (={I,
drink, coffee, everyday}) ͳΒ I = [1, 0, 0, 0] drink = [0, 1, 0, 0] coffee = [0, 0, 1, 0] everyday = [0, 0, 0, 1] -
୯ޠΛχϡʔϥϧωοτʹೖΕΔ߹ʁ • ྫ: จதͰ࣍ʹग़ͯ͘Δ୯ޠΛલͷ୯ޠ͔Β༧ଌ • ޠኮ: {I, drink, coffee, everyday}
I 0.19 drink coffee h1 drink everyday 0.32 coffee h0 I everyday 0.45 0.05 ೖྗ࣍ݩ ӅΕ࣍ݩ ग़ྗ࣍ݩ ͷχϡʔϥϧωοτ -
drink ͕ೖྗͷ߹ • ୯ޠ “drink” ͷ࣍ʹݱΕΔ୯ޠΛ༧ଌ͍ͨ͠ • ೖྗ: “drink” ͷone-hotදݱ
I 0.19 drink coffee h1 drink everyday 0.32 coffee h0 I everyday 0.45 0.05 drink = [0, 1, 0, 0] 0 0 0 1 -
drink ͕ೖྗͷ߹ • one-hotදݱͰɼ1ͭͷϢχοτҎ֎0ʹͳΔ • ͏ͷઢͷॏΈ͚ͩ I 0.19 drink coffee
h1 drink everyday 0.32 coffee h0 I everyday 0.45 0.05 0 0 0 1 -
Continuous Bag of Words • 3ͷχϡʔϥϧωοτ • ೖྗɿ2n ݸͷจ຺ޠͷ one-hotදݱ
• ग़ྗɿ୯ޠͷ֬ (V࣍ݩ) • ϥϕϧ: 1୯ޠͷone-hotදݱ -
Continuous Bag of Wordsɿೖྗ ଟύʔηϓτϩϯͷೖྗ͕ਤͷೖྗͷശ1ͭʹ૬ ͦΕ͕2nݸ͋Δ I 0.19 drink coffee
h1 drink everyday 0.32 coffee h0 I everyday 0.45 0.05 -
Continuous Bag of Wordsɿೖྗ • ശ1ͭone-hotදݱΛड͚औΔ • I drink coffee
everyday Ͱ w(t)=coffee drink= [0, 1, 0, 0] ͕͍෦ͷͱΔ coffee -
Continuous Bag of Wordsɿೖྗ I = [0, 1, 0, 0]
drink= [0, 1, 0, 0] everyday = [0, 0, 0, 1] coffee -
Continuous Bag of Wordsɿೖྗ-ӅΕͷॏΈ • ҹ1ͭʹରͯ͠ɼॏΈߦྻ • ͜ͷॏΈߦྻڞ༗ WN⇥V 2
4 1 2 3 0 1 2 1 2 1 1 1 1 3 5 2 6 6 4 0 1 0 0 3 7 7 5 = 2 4 2 2 1 3 5 Wx = ut 1 ޠኮ ୯ޠϕΫτϧͷ࣍ݩ -
Continuous Bag of Wordsɿೖྗ-ӅΕͷॏΈ • ҹ1ͭʹରͯ͠ɼॏΈߦྻ • ͜ͷॏΈߦྻڞ༗ • ೖྗone–hotͳͷͰɼ୯ޠϕΫτϧ͕ӅΕʹ
WN⇥V 2 4 1 2 3 0 1 2 1 2 1 1 1 1 3 5 2 6 6 4 0 1 0 0 3 7 7 5 = 2 4 2 2 1 3 5 Wx = ut 1 drinkͷ୯ޠϕΫτϧ -
Continuous Bag of WordsɿӅΕ • ୯ޠϕΫτϧͷฏۉ͕ӅΕͷೖྗʢN࣍ݩϕΫτϧʣ • ׆ੑԽؔͳ͠ ut 2
+ ut 1 + ut+1 3 = h 1 3 0 @ 2 4 1 1 1 3 5 + 2 4 2 2 1 3 5 + 2 4 0 2 1 3 5 1 A = 2 4 1 1.67 0.33 3 5 -
Continuous Bag of WordsɿӅΕ-ग़ྗ ॏΈߦྻ ͱӅΕͷग़ྗʢฏۉϕΫτϧʣͷੵ W0V ⇥N 2 6
6 4 1 2 1 1 2 1 1 2 2 0 2 0 3 7 7 5 2 4 1.00 1.67 0.33 3 5 = 2 6 6 4 4.01 2.01 5.00 3.34 3 7 7 5 W0h = u o -
Continuous Bag of Wordsɿग़ྗ 1୯ޠͷ༧ଌ • ग़ྗͷϢχοτ = ޠኮ =
V • ׆ੑԽؔɿsoftmaxؔ softmax (u o ) = y softmax 0 B B @ 2 6 6 4 4 . 01 2 . 01 5 . 00 3 . 34 3 7 7 5 1 C C A = 2 6 6 4 0 . 23 0 . 03 0 . 62 0 . 12 3 7 7 5 -
Continuous Bag of Wordsɿग़ྗ I, drink, everydayΛೖΕͯಘΒΕͨ୯ޠͷ֬ 2 6 6
4 0.23 0.03 0.62 0.12 3 7 7 5 coffeeͷ֬ Iͷ֬ -
Skip gram • 3ͷχϡʔϥϧωοτ • ೖྗɿ1୯ޠͷone-hotදݱ • ग़ྗɿ୯ޠͷ֬ (V࣍ݩ)͕2n ݸ
• ϥϕϧ: 1୯ޠͷone-hotදݱ͕2nݸ • ײ֮: CBoWΛதؒͰରশʹͻͬ͘Γฦͨ͠ײ͡ -
Skip gramɿೖྗ ଟύʔηϓτϩϯͷೖྗ͕ਤͷೖྗͷശ1ͭʹ૬ I 0.19 drink coffee h1 drink everyday
0.32 coffee h0 I everyday 0.45 0.05 -
Skip gramɿग़ྗ ଟύʔηϓτϩϯͷग़ྗ͕ਤͷग़ྗͷശ1ͭʹ૬ softmax͕ 2n ݸ I 0.19 drink coffee
h1 drink everyday 0.32 coffee h0 I everyday 0.45 0.05 -
ࣗͰσʔλΛूΊΑ͏ • 1จॻΛ1ߦɼ୯ޠΛۭന۠Γͱͨ͠σʔλΛ࡞Δ • ӳޠ: ΄΅ͦͷ··͑Δ • ຊޠ: ܗଶૉղੳ͕ඞཁ •
શֹܭࢉػͳΒ mecab • ࣗવݴޠͰͳ͍͍͔ͯ͘ • λάͷܥྻ -
հͯ͠ͳ͍͚ͲɼͰ͖Δ͜ͱ • จॻؒͷྨࣅܭࢉ (wmdistance ϝιου) • ଞͷࢄදݱΛֶशͨ͠ϞσϧΛgensimͰಡΈࠐΉ • Kerasͷॳظ •
https://blog.keras.io/using-pre-trained-word-embeddings- in-a-keras-model.html -
ࢀߟจݙͳͲ • gensim : https://radimrehurek.com/gensim/ • python࣮ • word2vec :
https://code.google.com/archive/p/word2vec/ • CɼΦϦδφϧ࣮ • word2vec Parameter Learning Explained : http://arxiv.org/pdf/1411.2738v3.pdf • ӳޠɼΘ͔Γ͍͢ղઆ • Efficient Estimation of Word Representations in Vector Spaceɿhttp://arxiv.org/pdf/ 1301.3781.pdf • ӳޠɼCBoWͷͱจɽεϥΠυͷਤͪ͜Β͔ΒҾ༻ • ਂֶश Deep Learning. ਓೳֶձ. • ຊޠɼॻ੶ • Σϒσʔλͷػցֶश. ߨஊࣾ. • ຊޠ, ॻ੶