Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「PythonとKerasによるディープラーニング輪読会#7」6章LT資料1/2

K-neko
February 21, 2019

 「PythonとKerasによるディープラーニング輪読会#7」6章LT資料1/2

皆様、ご静聴ありがとうございました。
初のLT、とても良い経験になりました。

これは、先日行われた「PythonとKerasによるディープラーニング輪読会#7」のLT資料となります。復習に、そして本を読んでいてもし分からない場所があった時のちょっとした助けとして、用いて頂ければ幸いです。

※スライド冒頭にも書きましたが著作権上の問題がありましたらご指摘願います
※SlideShareでは日本語が表示されなかったのでSpeaker Deckを使用することにしました

K-neko

February 21, 2019
Tweet

Other Decks in Technology

Transcript

  1. ŘŵŠŠ ޚྱͱ஫ҙ 2/69 Έͳ͞·ɺઌ೔͸ࢲͷਓੜॳ-5Λௌ͍͍͖ͯͨͩɺ·ͨ୔ࢁͷΞυόΠεΛ௖͖ɺ͋Γ ͕ͱ͏͍͟͝·ͨ͠ɻ ຊࢿྉ͸-5Ͱࢦఠ͞ΕͨՕॴΛमਖ਼ͭͭ͠ɺ·ͨ਺Χॴʹൃදऀ஫Λ෇͚Ճ͑ͨ΋ͷͰ ͋Γ·͢ɻ ະͩؒҧ͍౳͍͟͝·ͨ͠Βɺमਖ਼͍ͨ͠·͢ͷͰϝʔϧ ຊεϥΠυදࢴʹهࡌ ͳͲͰ

    ͝࿈བྷ͍͚ͨͩΕ͹ͱࢥ͍·͢ɻ ͦΕΒΛ౿·͑ͨ࠷ऴमਖ਼ͷεϥΠυ΋ެ։༧ఆͰ͢ͷͰɺ͓଴͍͚ͪͨͩΕ͹ͱࢥ͍ ·͢ɻ ·ͨɺຊεϥΠυͷ಺༰͸ྠಡࢿྉͰ͋ΔͨΊɺڭՊॻͱ͍ͯ͠Δʮ1ZUIPOͱ,FSBTʹ ΑΔσΟʔϓϥʔχϯάʯ ϚΠφϏग़൛ɺஶ'SBODPJT$IPMMFUɺ຋༁૥᝷ ༔ีɺגࣜ ձࣾΫΠʔϓ ʹج͖ͮ࡞੒͞Ε͓ͯΓ·͢ɻૉఢͳڭՊॻΛ͋Γ͕ͱ͏͍͟͝·͢ɻ ͦͷͨΊɺສҰஶ࡞ݖ্ͷ໰୊౳͍͟͝·ͨ͠Βɺ͝ࢦఠ͍ͩ͘͞·͢Α͏͓ئ͍ਃ͠ ্͛·͢ɻ ʮ1ZUIPOͱ,FSBTʹΑΔσΟʔϓϥʔχϯάʯͱ͍͏ૉ੖Β͍͠ຊΛಡΈͳ͕Βɺ͜ͷ εϥΠυΛۮʹΈ͍ͯͨͩ͘͜ͱͰɺগ͠Ͱ΋ֶशͷࢀߟʹͳΕ͹ͱࢥ͓ͬͯΓ·͢ɻ ,OFLP
  2. ŘŵŠŠ ,OFLPͱ͸ 3/69 ޷͖ͳΤσΟλ 7JTVBM4UVEJP$PEF 7JN ॴଐ ʢࣗশʣ๭େֶത࢜՝ఔ ˞ϥϘͷֶੜ͔Β͸ࡀແ৬ͱݺ͹Ε͍ͯΔ झຯ

    ۂ࡞Γɼͪΐͬͱֆ͔͖ɼͪΐͬͱࣗసं ಉਓԻָαʔΫϧ΍ͬͯ·͢ ػցֶशΛ࢖͏໨త ࡂ֐ରࡦʢಛʹਫ֐ʣ :<48 $& #!>759  3%"'60  * .+  2/(;(= - ,) 1  
  3. ŘŵŠŠ %-ͷର৅ͱ͢Δ΋ͷ 5/69 ςΩετ Degree Celsius Time(hour) CNT CASE1 CASE2

    CASE3 CASE4 CASE5 0 1 2 3 4 6 7 8 9 11 12 10 5 20 19 18 16 21 14 15 17 13 23 22 24 25 31 30 29 28 27 26 34 33 32 36 35 ࣌ܥྻσʔλ γʔέϯεσʔλશൠ Q 5FNQ 3// ϦΧϨϯτχϡʔϥϧωοτϫʔΫ %$// Ұ࣍ݩ৞ΈࠐΈχϡʔϥϧωοτϫʔΫ
  4. ŘŵŠŠ ςΩετσʔλͷૢ࡞ 8/69 Q ςΩετ l5IFDBUTBUPOUIFNBUz τʔΫϯ lUIFz lDBUz lTBUz

    lPOz lUIFz lNBUz lz τʔΫϯͷϕΫτϧԽ lUIFz lDBUz lTBUz lPOz lUIFz lNBUz lz 0.0 0.5 1.0 0.0 1.0 0.2 0.4 0.5 1.0 0.0 0.2 1.0 1.0 0.5 0.0 0.0 0.0 0.0 0.0 0.5 1.0 τʔΫϯԽ POFIPUFODPEJOH XPSEFNCFEEJOH
  5. ŘŵŠŠ ςΩετσʔλͷૢ࡞ 11/69 Q ςΩετ l5IFDBUTBUPOUIFNBUz άϥϜͷόοάʢ/άϥϜʣ \l5IFz l5IFDBUz lDBUz

    lDBUTBUz lTBUz lTBU POz lPOz lPOUIFz lUIFz lUIFNBUz lNBUz^ ϐϦΦυ͸ ೖΒͳ͍Έ͍ͨ #P8 #BHPG8PSET ॱংΛҡ࣋͢ΔτʔΫϯԽख๏Ͱ͸ͳ͍ˠࠓճͷϞσϧͰ͸࢖Θͳ͍ ºγʔέϯε ˓ू߹ ࢀߟ
  6. ŘŵŠŠ Ϧετͷݕ౼ 13/69 Q UPLFO@JOEFY \5IF DBU TBU PO UIF

     NBU EPH BUF NZ IPNF XPSL^ samples = ¥ ["The cat sat on the mat.", "The dog ate my home work."] token_index = {} for sample in samples: for word in sample.split(): if word not in token_index: token_index[word] = len(token_index) + 1   6 words     wordKey   1  ˞ΠϯσοΫε͸Ͳͷ୯ޠʹ΋ׂΓ౰ͯͳ͍ʂ
  7. ŘŵŠŠ Ϧετͷݕ౼ 14/69 Q    np.shape(results) ->(2, 10,

    12)  1  BYJT จষ਺ max_length = 10 results = np.zeros((len(samples), max_length, max(token_index.values()) + 1)) BYJT ߟྀ͢Δ୯ޠ਺ BYJT จষͷ௕͞
  8. ŘŵŠŠ Ϧετͷݕ౼ 15/69 Q for i , sample in enumerate(samples):

    for j, word in list(enumerate(sample.split()))[:max_length]: index = token_index.get(word) results[i, j, index] = 1. ೋͭͷจষʢ྆ऀXPSETʣ Լࢀর XPSE LFZ ͷ஋Λऔಘ J൪໨ͷจষͷ ̹൪໨ͷ୯ޠ͸ JOEFY൪໨ͷ஋ʹqBHΛཱͯ·͢ ˞֬ೝ >>enumerate(sample.split()))[:max_length] <  5IF   EPH   BUF   NZ   IPNF   XPSL >
  9. ŘŵŠŠ ୯ޠͱจࣈͷ POFIPUΤϯίʔσΟϯά 16/69 Q 2Ϧετ—ͰͲ͏͍͏݁Ռ͕ฦͬͯ͘Δ͔ Πϝʔδ͍ͯͩ͘͠͞ɻ J൪໨ͷจষͷ ̹൪໨ͷ୯ޠ͸ JOEFY൪໨ͷ஋ʹqBHΛཱͯ·͢

    UPLFO@JOEFY \5IF DBU TBU PO UIF  NBU EPH BUF NZ IPNF XPSL^ 5IFDBUTBUPOUIFNBU
  10. ŘŵŠŠ ୯ޠͱจࣈͷ POFIPUΤϯίʔσΟϯά 17/69 Q 2Ϧετ—ͰͲ͏͍͏݁Ռ͕ฦͬͯ͘Δ͔ Πϝʔδ͍ͯͩ͘͠͞ɻ J൪໨ͷจষͷ ̹൪໨ͷ୯ޠ͸ JOEFY൪໨ͷ஋ʹqBHΛཱͯ·͢

    UPLFO@JOEFY \5IF DBU TBU PO UIF  NBU EPH BUF NZ IPNF XPSL^ 5IFEPHBUFNZIPNFXPSL
  11. ŘŵŠŠ sample = ["The cat sat on the mat.", "The

    dog ate my home work."] characters = string.printable token_index = dict( zip(characters, range(1, len(characters) + 1))) max_length = 50 results = np.zeros((len(samples), max_length, max(token_index.values()) + 1)) for i, sample in enumerate(samples): for j, character in enumerate(sample[: max_length]): index = token_index.get(character) results[i, j, index] = 1 Ϧετͷݕ౼ 19/69 Q ˞֬ೝ >>print(characters) 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW69YZ! "#$%&'()*+,-./:;<=>?@[¥]^_`{|}~ >>print(token_index) {'0': 1, '1': 2, ... ,'Q': 53, 'R': 54, ... , '¥x0b': 99, '¥x0c': 100}
  12. ŘŵŠŠ Ϧετͷݕ౼ 22/69 Q ˞֬ೝ >>print(sequences) [[1, 2, 3, 4,

    1, 5], [1, 6, 7, 8, 9, 10]] >>print(one_hot_results) [[0. 1. 1. ... 0. 0. 0.][0. 1. 0. ... 0. 0. 0.]] <- (2, 1000) >>print(word_index) {'the': 1, 'cat': 2, 'sat': 3, 'on': 4, 'mat': 5, 'dog': 6, 'ate': 7, 'my': 8, 'home': 9, 'work': 10} from keras.preprocessing.text import Tokenizer samples = ["The cat sat on the mat.", "The dog ate my home work."] tokenizer = Tokenizer(num_words = 1000) tokenizer.fit_on_texts(samples) sequences = tokenizer.texts_to_sequences(samples) one_hot_results = tokenizer.texts_to_matrix(samples, mode='binary') word_index = tokenizer.word_index print('Found %s unique tokens.' % len(word_index)) ݸͷ୯ޠ͕ݟ͔ͭΓ·ͨ͠ɻ ࠷ස୯ޠ্Ґ/ݸ ?
  13. ŘŵŠŠ Ϧετͷݕ౼ 24/69 Q ˞֬ೝ >>print(index) 974 samples = ["The

    cat sat on the mat.", "The dog ate my home work."] dimensionality = 1000 max_length = 10 results = np.zeros((len(samples), max_length, dimensionality)) for i, sample in enumerate(samples): for j, word in list(enumerate(sample.split()))[:max_length]: index = abs(hash(word)) % dimensionality results[i, j, index] = 1.   BYJT จষ਺ BYJT ୯ޠ਺ BYJT ϋογϡ஋
  14. ŘŵŠŠ ΋͏Ұͭͷख๏ 26/69 Q  ࣍ݩ POFIPU ૄ ߴ࣍ݩ ϋʔυίʔσΟϯά

    ,OFLP JT DPPM ,OFLP JT DPPM XPSEFNCFEEJOH ີ ௿࣍ݩ σʔλ͔Βֶश  ࣍ݩ ࠇɿ̌ നɿ̍
  15. ŘŵŠŠ ຒΊࠐΈͷऔಘํ๏ 27/69 Q ,OFLP JT DPPM XPSEFNCFEEJOH ີ ௿࣍ݩ

    σʔλ͔Βֶश ϝΠϯͷλεΫͱಉ࣌ʹ ୯ޠຒΊࠐΈΛֶश ֶशࡁͷ୯ޠͷຒΊࠐΈ PS
  16. ŘŵŠŠ ຒΊࠐΈ૚Λ࢖ͬͨ୯ޠຒΊࠐΈͷֶश 33/69 Q ,FSBTΛ࢖ͬͯຒΊࠐΜͰΈΑ͏ ৽͍͠λεΫ͝ͱʹ৽͍͠ຒΊࠐΈۭؒΛֶश͢Δ͜ͱ͸ཧʹద͍ͬͯΔ ޡࠩٯ఻೻๏ʹΑͬͯ༰қʹͳΔ from keras.layers import

    Embedding embedding_layer = Embedding(1000, 64) keras.layers. Embedding(1000, 64) ༗ޮͳ τʔΫϯ਺ ʢVOJUޠʣ ຒΊࠐΈͷ ࣍ݩ਺ ʢVOJU࣍ݩʣ ୯ޠͷΠϯσοΫε ຒΊࠐΈ૚ ରԠ͢Δ୯ޠϕΫτϧ ܇࿅࣌ ୯ޠϕΫτϧ͕#1Λ௨ͯ͠ௐ੔
  17. ŘŵŠŠ  ෮श 34/69 *.%C *OUFSOFU.PWJF%BUBCBTF  ݅ͷөըϨϏϡʔ ߠఆత PS൱ఆత

     ݅ͷ5SBJOσʔλ ߠఆత PS൱ఆత  ݅ͷ5FTUσʔλ ߠఆత PS൱ఆత Q
  18. ŘŵŠŠ  ෮श 35/69 *.%C *OUFSOFU.PWJF%BUBCBTF  ݅ͷ5SBJOσʔλ ߠఆత PS൱ఆత

    >>print(69_train) [list([1, 14, 22, 16, 43, 530, 973, 1622, 1385, 65, 458, 4468, 66, 3941, 4, 173, 36, 256, 5, .......]), list([1, 194, 1153, .......]), ......] >>print(y_train) [1 0 0 ... 0 1 0]  ݸͷϦετ ʢγʔέϯεʣ ݸͷ ߠఆతɺ൱ఆత Q
  19. ŘŵŠŠ  ࣮ࡍʹ΍ͬͯΈΑ͏ 36/69 *.%CөըϨϏϡʔσʔληοτͷײ৘༧ଌʹ౰ͯ͸ΊͯΈΔ Ϧετɿ σʔλͷಡΈࠐΈ Yͷେ͖͞ʹQBEEJOH ʢ࠷ස୯ޠˠγʔέϯε಺ݸʹʣ Q

    >>print(69_train) [list([1, 14, 22, 16, 43, 530, 973, 1622, 1385, 65, 458, 4468, 66, 3941, 4, 173, 36, 256, 5, .......]), ......] ͜ͷத਎͕ શମͷ࠷ස ୯ޠʹߜΒΕΔ pad_sequences (sequences, maxlen=None, dtype='int32', padding='pre', trunca0ng='pre', value=0.0) ()!$ #%'  &     " *  
  20. ŘŵŠŠ  ࣮ࡍʹ΍ͬͯΈΑ͏ 37/69 ϦετͰ࡞੒͞ΕΔϞσϧ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -BZFS UZQF  0VUQVU4IBQF1BSBN

     FNCFEEJOH@ &NCFEEJOH  /POF    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ qBUUFO@ 'MBUUFO  /POF   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ EFOTF@ %FOTF  /POF    5PUBMQBSBNT  5SBJOBCMFQBSBNT  /POUSBJOBCMFQBSBNT @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Q NPEFMBEE= &NCFEEJOH TBNQMFT NBY@MFO EJN ᶃ ݸͷ୯ޠΛ࣍ݩʹຒΊࠐΉ ᶄ Ͱ'MBUUFO͢Δ ᶅ   
  21. ŘŵŠŠ  ࣮ࡍʹ΍ͬͯΈΑ͏ 38/69 NPEFMpU Ͱͪΐͬͱେ੾ͩͱࢥΘΕΔ৔ॴ IJTUPSZ = NPEFMpU Y@USBJO

    Z@USBJO FQPDIT CBUDI@TJ[F WBMJEBUJPO@TQMJU Q WBMJEBUJPO@TQMJU γʔέϯεͷޙΖ͔ΒˋΛόϦσʔγϣϯσʔλͱͯ͠࢖͏ ˞ֶशʹ͸࢖༻͠ͳ͍
  22. ŘŵŠŠ  ࣮ࡍʹ΍ͬͯΈΑ͏ 39/69 ֶश͸ग़དྷΔ͕໰୊఺΋ Q (JUIVCͰͷղઆʢݪจʁʣΑΓ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -BZFS UZQF

     0VUQVU4IBQF1BSBN  FNCFEEJOH@ &NCFEEJOH  /POF     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GMBUUFO@ 'MBUUFO  /POF    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ EFOTF@ %FOTF  /POF     5PUBMQBSBNT  5SBJOBCMFQBSBNT  /POUSBJOBCMFQBSBNT @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ຒΊࠐΜͰ ฏୱԽͯ͠ σϯε̍૚ ୯ޠΛόϥόϥʹॲཧ͍ͯ͠Δ ˠ3//ͱ͔ඞཁ͡ΌͶʁ lUIJTNPWJFJTTIJUz ͜ͷөը͸͏Μͪ lUIJTNPWJFJTUIFTIJUz ͜ͷөը͸αΠίʔ ˞ͪͳΈʹ(PPHMF຋༁͡Ό۠ผ͕͖ͭ·ͤΜͰͨ͠ɻ
  23. ŘŵŠŠ ͭͷຒΊࠐΈϞσϧ 41/69 Q 8PSEWFD  5PNBT.JLPMPW (PPHMF (MP7F 

    ελϯϑΥʔυେֶ ҙຯతͳಛੑΛิ଍͢Δ FYੑผ ࠷΋੒ޭͨ͠୯ޠຒΊࠐΈख๏ͷͭ (MPCBM7FDUPSTGPS8PSE3FQSFTFOUBUJPO ୯ޠͷڞىؔ܎͔ΒͳΔߦྻͷҼ਺෼ղʹجͮ͘ʢʁʣ DG ෳ਺ͷݴޠݱ৅͕ಉҰͷൃ࿩ɾจɾจ຺ͳͲͷݴޠత؀ڥʹ͓͍ͯੜى͢Δ͜ͱɻ FY ʮ͠ͱ͠ͱӍ͕߱Δʯʢ IUUQTXXXXFCMJPKQDPOUFOUڞى Ӿཡʣ 8JLJQFEJB΍$PNNPO$SBXMͷσʔλ͔Βऔಘͨ͠ ਺ඦສن໛ͷӳޠτʔΫϯΛݩʹ͍ͯ͠Δ ͦ͢͝͏ ͜ΕΛ࢖͍͖͍ͬͯͨͱࢥ͍·͢
  24. ŘŵŠŠ ςΩετͷτʔΫϯԽ͔Β୯ޠͷຒΊࠐΈ·Ͱ 42/69 Q import os imdb_dir = ‘/Users/u-za-name/03_Data/aclImdb' train_dir

    = os.path.join(imdb_dir, 'train') labels = [] texts = [] for label_type in ['neg', 'pos’]: dir_name = os.path.join(train_dir, label_type) for fname in os.listdir(dir_name): if fname[-4:] == '.txt’: f = open(os.path.join(dir_name, fname)) texts.append(f.read()) f.close() if label_type == 'neg’: labels.append(0) else: labels.append(1) MBCFM@UZQF σΟϨΫτϦͷ໊લͷ຤ඌ MTrNEJS@OBNF UYUͷΈநग़ texts   labels nega/ve: 0, posi/ve: 1
  25. ŘŵŠŠ  σʔλͷτʔΫϯԽ 43/69 Q Ϧετ͸ΊΜͲ͍͘͞ͷͰলུ͠·͢ɻ ͍··Ͱͷ·ͱΊٕʹͳΓ·͢ ͜͜Ͱ͸େࣄͳཁ఺͚ͩΛ͔͍ͭ·ΜͰ͓࿩͠͠·͢ Ϧετʹͯ͠ ֶशࡁͷຒΊࠐΈˡར༻Մೳͳ܇࿅σʔλͷྔ͕গͳ͍ͱ͖

    ׶͑ͯ܇࿅σʔλΛ࠷ॳͷαϯϓϧʹߜΔ ݕূσʔλ͸αϯϓϧ QSJOU OQTIBQF @USBJO ʢ ʣ  ϫʔυͰΧοτ͍ͯ͠Δαϯϓϧ ⚠ αϯϓϧ͕ॱ൪ʹฒΜͰ͍Δ ൱ఆతà ߠఆత γϟοϑϧ͠·͠ΐ͏ indices = np.arange(data.shape[0]) np.random. (indices) data = data[indices] labels = labels[indices]
  26. ŘŵŠŠ  (MP7FΛ࢖ͬͯΈΑʔʂ 44/69 Q Ϧετ ࣮ࡍʹσʔλΛ͓ݟͤ͠ͳ͕Β͓࿩͠͠·͢ʢҰߦͣͭͷσʔλͰ͢ʣ ࡞੒͢Δ໨ඪ͸ɺFNCFEEJOHT@JOEFY ࣙॻܕ LFZʹ͸୯ޠ໊ɿWBMʹ͸ϕΫτϧ

    ࣍ݩ Ϧετ ࡞੒͢Δ໨ඪ͸ɺFNCFEEJOHT@NBUSJY ޠ ࣍ݩ ຒΊࠐΈΠϯσοΫεͰݟ͔ͭΒͳ͍୯ޠ͸ຒΊ *.%CͷΠϯσοΫε͔Βࢀরͯ͠(MP7F͔Βநग़ OQTIBQF FNCFEEJOHT@NBUSJY NBY@XPSET FNCFEEJOH@EJNFOTJPO
  27. ŘŵŠŠ  (MP7FΛ࢖ͬͯΈΑʔʂ 45/69 Q Ϧετ ͜ΕͰϨΠϠʔʹॏΈΛຒΊࠐΊ·͢ model.layers[0].set_weights([embedding_matrix]) model.layers[0].trainable =

    False ֶशࡁ͔ͩΒౚ݁ Ҏ߱ɺֶशࡁϞσϧΛ༻͍ͳ͍΋ͷͱͷൺֱ ͜ͷ৔߹ɺֶशࡁϞσϧΛ༻͍ͨํ͕ྑ͍ αϯϓϧ਺ͱখ͍ͨ͞Ίŋŋŋ ඦฉ͸Ұݟʹ͔ͣ͠ʂʂʂʂʂʂʂʂʂʂʂʂ
  28. ŘŵŠŠ 3//Λ໛ࣜతʹཧղ͢Δ 50/69 Q ਤ ೖྗ ग़ྗ ϦΧϨϯτ݁߹ʢ൓෮ॲཧʣ state_t =

    0 for input_t in input_sequence: output_t = f(input_t, state_t) state_t = output_t input_t: (timesteps, input_features) state_t: 時刻tでの状態(初期状態=0)
  29. ŘŵŠŠ 3//Λ໛ࣜతʹཧղ͢Δ 51/69 Q output_t = activation(dot(W, input_t) + dot(U,

    state_t) + b) ͜Ε·Ͱͷܭࢉ 6͚ͩঢ়ଶΛ औΓೖΕΔ ਤ ೖྗ ग़ྗ ϦΧϨϯτ݁߹ʢ൓෮ॲཧʣ Ϧετ͸ΊΜͲ͍͘͞ͷͰলུ͠·͢ɻ ݁ہಉ͜͡ͱ͔͠ॻ͍ͯͳ͘ɺ ্ͷ͕ࣜඇৗʹॏཁͰ͢ɻ
  30. ŘŵŠŠ 4JNQMF3//ͱछྨͷϞʔυ 56/69 Q ೖྗܗঢ় CBUDI@TJ[F UJNFTUFQT JOQVU@GFBUVSFT GFBUVSF GFBUVSF

    GFBUVSF U U U  UO GFBUVSF GFBUVSF GFBUVSF ֤࣌ؒࠁΈͷग़ྗ͕ॱ൪ʹؚ·Εͨ ׬શͳγʔέϯε GFBUVSF GFBUVSF GFBUVSF U U U  UO GFBUVSF GFBUVSF GFBUVSF ֤ೖྗͷ ࠷ޙͷग़ྗ
  31. ŘŵŠŠ 4JNQMF3// 59/69 Q ཁ఺ͷΈ JOQVU@USBJO TIBQF   

    JOQVU@UFTU TIBQF   Ϧετ—dϦετ ྲྀΕ͸ಛʹ$//ͷ࣌ͱมΘΓͳ͠àׂѪ ⾠CBUDI@TJ[F ͸ෆཁ υοτɿ܇࿅σʔλͰͷ݁Ռ ંΕઢɿݕূσʔλͰͷ݁Ռˋ 3//͸ ௕͍γʔέϯεॲཧʹ ద੾Ͱ͸ͳ͍
  32. ŘŵŠŠ ޯ഑ফࣦ໰୊ 61/69 Q 4JHNPJEؔ਺ͷ࠷େͷ܏͖ HSBE 4JNQMF3//͕ۤखͳ͜ͱ ⾠CBUDI@TJ[F ͸ෆཁ ճֻ͚͚ͩΔͳΒ͍͍͚Ͳŋŋŋŋŋŋ

    ͦ͜Ͱొ৔ͨ͠ͷ͕ɺ -45. -POH4IPSU5FSN.FNPSZ (36 (BUFE3FDVSSFOU6OJU ޙͰར༻͢ΔͨΊͷ৘ใΛอଘ ॲཧͷ్தͰࣦΘΕΔ͜ͱΛ๷͙
  33. ŘŵŠŠ -45.Λ໛ࣜతʹཧղ͢Δ 66/69 Q ਤ ೖྗU ग़ྗU ೖྗU ग़ྗU ঢ়ଶU

    ঢ়ଶU $U $U dot(state_t, Uo) dot(input_t, Wo) dot(C_t, Vo) output_t output_t = activation(dot(state_t, Uo)+dot(input_t, Wo)+dot(C_t, Vo)+bo)
  34. ŘŵŠŠ 3//Λ໛ࣜతʹཧղ͢Δ 67/69 Q i_t = activation(dot(state_t, Ui)+dot(input_t, Wi)+bi) f_t

    = activation(dot(state_t, Uf)+dot(input_t, Wf)+bf) k_t = activation(dot(state_t, Uk)+dot(input_t, Wk)+bk) DU  JU ºLU DU º GU 67-2 9'=0 ! !*.%1 9LT(: &)/; <,4=$> 3  '=08"#5?+  8FC  )&--0$:#&3/&5*$4༷ʮࠓߋฉ͚ͳ͍-45.ͷجຊʯ IUUQTXXXIFMMPDZCFSOFUJDTUFDIFOUSZ ຊ  ৄղ σΟʔϓϥʔχϯά 5FOTPS'MPXɾ,FSBTʹΑΔ࣌ܥྻσʔλॲཧ ϚΠφϏग़൛