Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

最近の自然言語処理

5,733 views

Published on

素人なりにまとめてみました

Published in: Technology

最近の自然言語処理

  1. 1. 深層学習による自然言語処理 の基本概念と最近のトピックス 森山 直人 個人的に気に なった
  2. 2. 自己紹介 • 森山 直人(もりやま なおと) • もともと中国国籍 ⇒ 帰化(国籍変更)して日本人に • 人材会社でデータ分析しています • 仕事では勾配Boosting、プライベートで遊びで深層学習 • 自然言語処理が好き
  3. 3. おことわり • すべて個人の見解による内容であり、所属会社、団体の公式見解 ではありません • 概念理解を優先しているため、一部厳密の定義は割愛しています • 素人の自由研究なので、温かい目で見ていただければ幸いです
  4. 4. 本日の話  2017年5月に出版されたこの本が素晴らしく、 各方面から注目されました  著者の一人のブロク(※)によると、本書はお およそ2015年くらいまでの内容を包括  そこで2015年以降で(個人的に思う)面白 いトピックスを数個まとめたいと思います (※) http://blog.unnono.net/2017/05/nlp-dl-book.html
  5. 5. 本日の話 なるべく前提知識を最小限にとどめてお話致します 。。。が、必要となる前提知識が多いので、結果的に 自然言語処理の基礎が大半を占めます。 物足りない方はぜひ個別でご連絡ください!
  6. 6. アジェンダ イントロダクション  自然言語処理について  主なタスク  言語モデルについて ∟パープレキシティ ---------------------- テキストの処理  単語の表現  単語埋め込み ---------------------- 深層学習  ニューラルネットの基礎  PyTorchについて  RNNの基礎  LSTMの拡張  CNNとの関係 ---------------------- 最近のトピックス  ドロップアウト  深層化  SRU  ソフトマックス
  7. 7. 今回は深層学習との接続を念頭に 進めますので、TF-IDFや トピックモデル等の話はしません
  8. 8. イントロダクション
  9. 9. 自然言語処理について 「自然言語処理とは、人間による自然言語をコンピュータに・・・」 ここでは難しい定義はしません。自然言語処理はこれまで様々なタス クに対して様々な手法が提案されて来ました 長い歴史の中でその範囲は広がりを見せ、過去別領域とされていた テキストマイニングも現在では自然言語に区分される場面が多く。。。 以降はテキストに対する機械的処理全般を自然言語処理と指します
  10. 10. 主要なタスク 自然言語処理のタスクは多種だが、最近研究が盛んなタスクとして 以下が挙げられます • 文章分類 • 機械翻訳 • 対話 • 文章要約 • 言語モデル • その他多数
  11. 11. 主要なタスク 自然言語処理のタスクは多種だが、最近研究が盛んなタスクとして 以下が挙げられます • 文章分類 • 機械翻訳 • 対話 • 文章要約 • 言語モデル • その他多数 すべてお話するには時間が足りないので、 本日は言語モデルをテーマにお話致します 自然言語処理において深層学習が最も 機能する領域と(個人的に)思っています
  12. 12. 言語モデルについて • 言語モデルとは(機械的に)生成された文が人間から見た 尤もらしさを確率としたモデル 例)「人工知能が質問に応える」→尤もらしい 「質問で人工知能答えるが」→尤もらしくない • 直感的に、文を自動生成するタスクと考えていいです • N-gram言語モデルやニューラル言語モデルが主流であり、 今回はニューラル言語モデルを対象に説明します ※最近N-gram言語モデルの限界を研究した論文が面白い http://science.sciencemag.org/content/356/6334/183
  13. 13. 言語モデルについて P Y = (𝑦0, 𝑦1 𝑦2, … , 𝑦𝑛) 尤もらしい文の生成確率を数式化する 文を構成する単語群文の生成確率 基本的にこれが計算できれば問題ないが、単語の集合で構成され る文の生成確率を計算する場合、無数の単語同士の組み合わせを 計算する必要があるため、現実的とは言えない そこで、いきなり文ではなく、単語の出現確率から探るとします
  14. 14. 言語モデルについて P 𝑌 = 𝑡=1 𝑇 𝑃(𝑤𝑡|𝑤1 𝑡−1 ) 過去生成された単語をもとに、次に生成される単語の生成確率を 求める。各単語の同時確率が文の生成確率になります ①t-1番までの単語が 与えられたとき 文の生成確率 ②t番目の単語が生成 される確率 ③すべての単語 の同時確率
  15. 15. 言語モデルについて • 解き方は後半に説明します。まずは評価指標を定めます • 言語モデルの評価指標は通常「パープレキシティ」を使います • クロスエントロピーと性質が似ていますが、直感的な理解が 難しい(計算内容はほぼ同じだが、思想が少し違う) • 自然言語処理分野において、言語モデル以外の分野でも多く 使われるため、理解したほうがいいです!
  16. 16. パープレキシティについて • 言語モデルでは、文における単語の出現確率を定義しました • 良い言語モデルは尤もらしい文を構成するための単語に対して、 高い確率を出力する必要があります • 言い換えると、適切な単語とそうでない単語の確率のばらつきが 小さい分布がほしい • 直感的な理解として、選択肢の最小化と捉えることができます (確率の逆数を選択肢の数と考える。例えば0.1を10通りから1つ選 ぶと考える)
  17. 17. パープレキシティについて PPL Y = 𝑡−1 𝑇 1 𝑝(𝑤𝑡|𝑤1 𝑡−1 ) 1 𝑇 = 𝑒𝑥𝑝 𝑙𝑜𝑔 𝑡=1 𝑇 1 𝑝(𝑤𝑡|𝑤1 𝑡−1 ) 1 𝑇 = 𝑒𝑥𝑝 1 𝑇 𝑡=1 𝑇 − log 𝑝(𝑤𝑡|𝑤1 𝑡−1 ) 確率の逆数を選択 肢の数と考える P 𝑌 = 𝑡=1 𝑇 𝑃(𝑤𝑡|𝑤1 𝑡−1 )
  18. 18. パープレキシティについて • パープレキシティから算出されるスコアは言わば選択肢の数 選択肢は少ないほどモデルが優秀と言える • 例えば「CPUの演算能力は年々・・・」このあとに続く単語 で「ケーキ」「テレビ」「疲れた」などの単語は不要で、 尤もらしい単語(「上昇」や「向上」など)に絞りたい • そのため、言語モデルはこのパープレキシティを最小化させる ことを指標に研究されています
  19. 19. テキストの処理
  20. 20. 単語の表現 • コンピュータ視点で、単語から構成される文は離散的な記号の 集合に過ぎず、意味理解はできない • 単に異なる記号として統計処理することも可能だが、深層学習 の計算に対応させるために、連続的な数値へ変換が必要 • 一方、数値に変換する場合は注意が必要
  21. 21. 単語の表現 • 単にIDなどに基づいた数値化では、単語間の関係を表現しにくい • 以下のように、近い意味を持つ単語同士は数値が近くあるべき パソコン インターネット プログラミング アメリカ ホワイトハウス ワシントン ID 近い意味を持 つ単語群 IDが近い ID 単語 1999 プログラミング … … 2342 インターネット … … 2652 パソコン 単語同士で は一定の 関連性はあ る 数字(ID) は近い
  22. 22. 単語の表現 • しかし、日本語の単語は約25万語(広辞苑より)あり、 単語同士の関連性を1次元で表現するのはほぼ不可能 • そこで以降一般的な数値化手法として2つ紹介します ①Bag-Of-Words(BOW) ②分散表現
  23. 23. Bag-Of-Words(BOW) ① 予め、処理する単語の語彙数を算出 ② 語彙数を次元としたゼロベクトル配列を用意 ③ 各単語の出現順に、その単語が位置が1となる ベクトルを付与 パソコン インターネット プログラミング エンジニア UNIX CPU ②6次元のゼロベクトル[0, 0, 0, 0, 0, 0]をベースとして ①6次元 ⇒ [1, 0, 0, 0, 0, 0] ⇒ [0, 1, 0, 0, 0, 0] ⇒ [0, 0, 1, 0, 0, 0] ⇒ [0, 0, 0, 1, 0, 0] ⇒ [0, 0, 0, 0, 1, 0] ⇒ [0, 0, 0, 0, 0, 1] • 語彙数分の次元を持ち各単語が1箇所に1とし、それ以外は0 • 各ベクトルの値が違うにもかかわらず、互いの距離が等しい ③
  24. 24. 分散表現 • BOWで生成されるベクトルでは、個々の単語が1つの次元に違 いがあり、それ以外は同一(局所表現) • 分散表現は1つの情報を1次元ではなく、複数の次元で表現 (BOW→[0,1,…,0]、分散表現→[0.01, 0.3, 2.1,…,0.4]) • 単語間の関係性が表現できないBOWと異なり、一定の関係性 を表現できる ※ただし、分散表現の学習方法によって異なってくる
  25. 25. BOWから分散表現 • BOWに埋め込み行列をかけ合わせると分散表現ができる ①サンプルとして 適当な埋め込み 行列を用意 ②BOWを用意 ③行列掛け算で 分散表現ができる ※サンプルとして埋め 込み行列を適当に決め ましたが、実際の学習 ではより正確な分散表 現のためには埋め込み 行列も学習されていき ます
  26. 26. word2vecによる分散表現 • 何故か異常に認知率が高いgoogle謹製の手法 • 単語の意味は周囲の単語によって定まるという分布仮説に則り、 文脈の影響を分散表現に反映 • word2vecはどちらかと言えば概念で、アルゴリズムではない。 アルゴリズムは ①skip-gram ②Continuous Bag–of–Words(CBoW) • 個人感として、よくskip-gramが使われている気がします
  27. 27. word2vecによる分散表現 a1 a2 a3 a4 a5 Continuous Bag–of–Words 周囲の単語ℋから中心の単語𝑦𝑖を予測する 𝑃 𝑦𝑖 ℋ = exp(ℋ, 𝑦 𝑖′ ) 𝑦 𝑗′∈Υ exp(𝜙 ℋ, 𝑦 𝑖′ ) Skip-Gram 中心の単語𝑥𝑖から周囲の単語𝑦𝑖を予測する 𝑃 𝑦𝑖 𝑥𝑖 = exp(𝑥𝑖, 𝑦 𝑖′ ) 𝑦 𝑗′∈Υ exp(𝜙 𝑥𝑖, 𝑦 𝑖′ ) ・・・ ・・・
  28. 28. word2vecによる分散表現 • CBoWもskip-gramも基本的にはソフトマックスベースで計算 • しかし、膨大な語彙数に対してすべての確率計算は困難 (分母が計算困難) • そこで、計算をしやすくする2つの手法を導入されています ①ネガティブサンプリング ②階層的ソフトマックス • 2つとも少しややこしいので、今日は割愛します
  29. 29. 一旦まとめ • ここまで、今回考察する言語モデルの性質とテキストの表現 方法を紹介しました • 大雑把な理解として、「文の生成をしたいので、まずは単語を ベクトルに直した」くらいでもいいです! • 次に言語モデルの計算に入る前に、少し深層学習について整理 し、ライブラリ周りの話を少しします
  30. 30. 深層学習
  31. 31. 深層学習 • お馴染みのやつですね! • 層ごとに固有の表現抽出を行うこと で表現学習と考えることができる • 分散表現に変換された単語ベクトル を入力に用いて、層を重ねるごとに 特徴量の複雑な表現が期待できる • 学習の過程で、正確な分散表現が獲 得できる 入力層 隠れ層 出力層
  32. 32. 深層学習ライブラリについて • 以降言語モデルの仕組みと実装例を紹介します。 • 今回は動的ネットワークが簡単に書けるPyTorchを使います • その前にまずネットワークの実装を少し話します • そもそも動的と静的の違いってなんでしょう?
  33. 33. 静的なネットワーク • ①計算グラフを作る、②データを流すのフローで計算 • 複雑なネットワークを作る場合は極めて難しい ● ● ● ● ● ● ● ● ● ● ① ②
  34. 34. 動的なネットワーク • 事前に計算グラフを作る必要がなく、データを計算するだけ! • データの計算過程を追尾することで計算グラフを構築 (感覚的に計算グラフよりもリンクに近い) ● ● ● ● ● ● ● ● ● ● ● それぞれのノードがオブジェク トであり、データを保持 • どのノードから入力を得たか、 • どんなパラメータを保持するか • 自身へ加えられた変更 これらの情報をもとに順伝搬と 逆伝搬を行う
  35. 35. 動的ネットワークPyTorch • 設計はchainerとほぼ一緒だが、歴史が長いTorchの資産を 活かすためにコアの処理はC++で書かれている (chainerはすべてPyhon) • ドキュメントがすごく丁寧(市販の書籍より網羅的で簡潔!) • 世界的にユーザーが多く、開発・論文実装が早い • 動的ネットワークなので、RNNがとても書きやすい (ここがtensorflowやkerasとの一番の差別ポイント)
  36. 36. 動的ネットワークPyTorch • 静的ネットワークでは実行前に完全な計算グラフをすべて定義 しなければ行けず、複雑な計算グラフの場合は負担が大きい • 自然言語処理では後述のRNN等、計算グラフが複雑なものが多い • 動的ネットワークでは前述のリンク機能が働くことにより計算す るだけでその過程を追尾し、自動でグラフを形成します • (個人的にtensorflowをやめた理由がこれです)
  37. 37. RNN(リカレントニューラルネットワーク) • 直前の情報と現在の情報から直後の情報を計算するネットワーク 出力層𝑦𝑡 中間層ℎ 𝑡 入力層𝑥𝑡 出力層𝑦𝑡−1 中間層ℎ 𝑡−1 入力層𝑥𝑡−1 出力層𝑦𝑡 中間層ℎ 𝑡 入力層𝑥𝑡 出力層𝑦𝑡+1 中間層ℎ 𝑡+1 入力層𝑥𝑡+1 時系列に展開t時点の計算 𝑦𝑡 = 𝑓(ℎ 𝑡) ℎ 𝑡 = ℎ 𝑡−1 + 𝑥𝑡 ℎ 𝑡−1 𝑥 𝑡
  38. 38. RNN(リカレントニューラルネットワーク) • RNNの概念は過去の状態と現在の状態から直後の状態を予測する • ある時点の計算には過去全ての情報が必要となるため、計算量が 多くなりがち • 一度に1時刻しか計算できず、並列への拡張ができない • それでも順伝搬時は足し算の計算なので可能だが、パラメータ学 習で逆伝搬時は掛け算の計算となるので爆発or消失が発生する • そこで、中間層のパラメータを制御する仕組みを取り入れる
  39. 39. LSTM 中間層ではなく誤差を保持するをセルを設け、セルのデータ処理を細かく 制御するために3種のゲート処理を取り入れる ①入力ゲート、②忘却ゲート、③出力ゲート 引用:わかるLSTM~最新の動向と共に https://qiita.com/t_Signull/items/21b82be280b46f467d1b • 忘却ゲート 直前のセルのいらない情報を忘れる • 入力ゲート 新規の入力に対して、セルにどれだけ情報を 書き込むかを決定 • 出力ゲート セルの情報をどれだけ次の時刻へ伝搬させるか を切ってい
  40. 40. GRU LSTMの3層ゲートと異なり、2層ゲートのみを持ち計算リソースを削減 ①更新ゲート、②リセットゲートのみで制御 (LSTMの入力ゲートと忘却ゲート) 引用:わかるLSTM~最新の動向と共に https://qiita.com/t_Signull/items/21b82be280b46f467d1b LSTM GRU
  41. 41. PyTrochで書く • 複雑な処理を持つLSTMとGRUだが、PyTorchでは組み込みで 用意されています LSTM GRU
  42. 42. RNNによる言語モデル • (LSTMやGRUを含めた)RNNの学習概念は直前の状態から次 の状態を予測する • この概念は言語モデルと同様であり、現状言語モデルの実装は RNNが主流です • 今回は割愛しましたが、RNNの拡張機能としてアテンションや オートーエンコーダーの概念も重要です
  43. 43. RNNによる言語モデル シェイクスピアの文章を学習させ、言語モデルによる出力例 モデルのトレーニング後、「wh」から始ま る文字を100文字出力させるタスク。 序盤は単語すら正しく生成されないが後半 では単語のみならず、文法も一定学習でき ている 参考:https://github.com/spro/practical-pytorch/blob/master/char-rnn-generation/char-rnn-generation.ipynb
  44. 44. CNNとの関係 • 一般的に深層学習で自然言語処理を扱う場合はRNNが有効と されてきました • 近年ではCNNを用いた言語モデルも開発されています • 2016年にセールスフォースリサーチより提唱されたQRNN と呼ばれる手法を機に多種のモデルが開発されています
  45. 45. QRNN • 画像で使われる幅×幅の2次元チャネルを用いてプーリングを行う 仕組みを文に適応 • 分散表現の次元数をチャネルとして、時系列へ畳み込みを行う • CNNの強みである並列学習が可能に(RNNでは基本できない) https://einstein.ai/research/new-neural-network-building-block-allows-faster-and-more-accurate-text-understanding
  46. 46. CNNとRNNはどちらが優れるか? • 2016年末時点では、QRNNは(LSTMベースの)RNNと同等な 性能得ながら、早い学習速度を実現 • 一方、直近RNNにおいて多くのモデルや学習方法が開発され、 言語モデル分野ではRNNのが精度高い(パープレキシティ) • ただし、実行速度の観点でCNNが優れる点は変わらず、今後も 両モデルの競争が続くと思われる(あるいは融合)
  47. 47. 一旦まとめ • ここまで、言語モデルを実装するために深層学習の基本概念と ネットワークの紹介をしました • 基本的にLSTMをベースとしたRNNが主流だが、最近ではCNN の導入も見え始めています • ここから、以下に精度の高い言語モデルを実現させるために、 近年なされている研究を紹介します (どれだけパープレキシティを縮めるかの戦いです)
  48. 48. 最近のトピックス
  49. 49. 最近のトピックス 以降最近界隈でバズっている話と、私の個人的に注目する話を紹介します • 変分ドロップアウト A Theoretically Grounded Application of Dropout in Recurrent Neural Networks https://arxiv.org/abs/1512.05287 • ネットワークの深層化 Recurrent Highway Networks https://arxiv.org/abs/1607.03474 • SRU Training RNNs as Fast as CNNs https://arxiv.org/abs/1709.02755 • 混合ソフトマックス Breaking the Softmax Bottleneck: A High-Rank RNN Language Model https://arxiv.org/abs/1711.03953
  50. 50. 最近のトピックス 以降最近界隈でバズっている話と、私の個人的に注目する話を紹介します • 変分ドロップアウト A Theoretically Grounded Application of Dropout in Recurrent Neural Networks https://arxiv.org/abs/1512.05287 • ネットワークの深層化 Recurrent Highway Networks https://arxiv.org/abs/1607.03474 • SRU Training RNNs as Fast as CNNs https://arxiv.org/abs/1709.02755 • 混合ソフトマックス Breaking the Softmax Bottleneck: A High-Rank RNN Language Model https://arxiv.org/abs/1711.03953 技術詳細は時間の観点で割愛 させていただき、概要と先進性 のみを紹介致します
  51. 51. • ドロップアウトはニューラルネットの汎用性を向上させる重要な仕組み • 一方、RNNの中間層の再帰でドロップアウトを取り入れると大きくスコア が悪化する(ノイズが増える) • そのため、RNNでは異なる層でドロップアウトを利用することが一般的だ が、再帰層は利用しない 変分ドロップアウト 出力層𝑦𝑡−1 中間層ℎ 𝑡−1 入力層𝑥𝑡−1 出力層𝑦𝑡 中間層ℎ 𝑡 入力層𝑥𝑡 出力層𝑦𝑡+1 中間層ℎ 𝑡+1 入力層𝑥𝑡+1 ここではドロップア ウトを導入できる ここドロップアウト を導入できない
  52. 52. • 変分ドロップアウトでは、各層のドロップアウトマスクをすべて統一させ ることで、ノイズの悪影響を減らし汎用性を向上させます • 裏側の理論は極めて複雑だが事実これによる性能向上が確認済み 変分ドロップアウト 出力層𝑦𝑡−1 中間層ℎ 𝑡−1 入力層𝑥𝑡−1 出力層𝑦𝑡 中間層ℎ 𝑡 入力層𝑥𝑡 出力層𝑦𝑡+1 中間層ℎ 𝑡+1 入力層𝑥𝑡+1 出力 ドロップアウト ①このようなドロップアウト マスクを用意 ③各層ごとにそ れぞれユニーク なマスクを設け る
  53. 53. • 背景の理論でベイジアンネットワークを用いて考察されており、 ドロップアウトはベイズ推定と同質であると言及されています • 全時刻に同一のマスクを適応させることで、特定の単語に対す る依存をなくしているとも考えられます • 現在最新のRNN研究ではほぼこの変分ドロップアウトが適応 • 個人的に近年最も感心した研究です! 変分ドロップアウト
  54. 54. • 近年画像領域における深層学習の性能向上の1因としてネットワークの 深層化が挙げられる(ResNet-152など) • 自然言語処理でも同様な動きがあります。ネットワークの構造上resnet ではなくhighwayと呼ばれる処理を用います • RNNでは深層化の対象は中間層(セル)の再帰回数です ネットワークの深層化 出力層𝑦𝑡−1 中間層ℎ 𝑡−1 入力層𝑥 𝑡−1 出力層𝑦𝑡 中間層ℎ 𝑡 入力層𝑥𝑡 出力層𝑦𝑡+1 中間層ℎ 𝑡+1 入力層𝑥𝑡+1 出力層𝑦𝑡+𝑛 中間層ℎ 𝑡+𝑛 入力層𝑥𝑡+𝑛 ここをどれだけ長く 持たせるか
  55. 55. • 単純に層を増やすと学習のコストが増加し(特に逆伝搬)、過学習や勾配 消失のリスクが増えます • そこで逆伝搬時に各層にでどれだけ学習させるかを判断するhighwayと呼 ばれる仕組みを導入します Recurrent Highway Network 出力層𝑦𝑡−1 中間層ℎ 𝑡−1 入力層𝑥 𝑡−1 出力層𝑦𝑡 中間層ℎ 𝑡 入力層𝑥𝑡 出力層𝑦𝑡+1 中間層ℎ 𝑡+1 入力層𝑥𝑡+1 出力層𝑦𝑡+𝑛 中間層ℎ 𝑡+𝑛 入力層𝑥𝑡+𝑛 𝑓 𝑾 𝒉 𝒙 + 𝒃 𝒉 ・σ 𝑾 𝒕 𝒙 + 𝒃 𝒕 + 𝒙・{𝟏 − σ 𝑾 𝒕 𝒙 + 𝒃 𝒕 } 線形変換された入力をどれだけ通すか もとの入力をどれだけ通すか たくさん学習 あまり学習しない
  56. 56. • Highwayの仕組みを導入することで多層をまたぐ場合に、不要 な層を無視することで長期的な依存関係を実現 • 多層でも実際学習する層がそこまで多くないため、計算コスト はさほど多くならない • 変分ドロップアウトと組み合わせて、2016年12月段階で言語 モデルのState-Of-The-Artを記録 Recurrent Highway Network
  57. 57. • LSTMをベースとするRNNのでは、各制御ゲートの計算には直 前の情報が必要→直前の情報が計算されるまで待つ必要がある • そこで、直前の情報が無いとできない計算①と、なくてもでき る計算②を切り分ける ①:それぞれ並列で計算 ②:まとめて一度に計算 • これらの対応を行うことにより、通常のLSTMと同水準かつ最 大で10倍の高速化が実現 SRU
  58. 58. • ネットワークの表現力はソフトマックスにより制限されることを指摘 • 次の単語を予測する言語モデルでは、入力値と隠れ層の計算(行列の 掛け算)結果として解釈できる • 入力値は通常分散表現により一定数の次元に圧縮されるが、現実世界 の無数の単語を一定数の次元に圧縮させるのは表現力を落とす • かと言って、分散表現の次元を増やすと計算負荷が高まる。また、通常の分 散表現の次元数を向上させることで精度が向上することは観測されていない • そこで、出力層のソフトマックスを工夫することで全体の向上を図る 混合ソフトマックス
  59. 59. • アンサンブルの概念を取り入れ、Kこのモデルを構築し、それぞれのソフト マックスの平均を取る(混合分布のイメージ) • 計算高速化のために、ソフトマックス計算後に混合分布を計算するのではな く、ソフトマックス計算前に混合分布を計算(これにより大幅に計算速度が 改善) • 混合分布により、通常の分散表現よりも表現力が向上 • 最新の言語モデルでState-Of-The-Art 混合ソフトマックス
  60. 60. • 坪井 祐太, 海野 裕也, 鈴木 潤『深層学習による自然言語処理』 • わかるLSTM~最新の動向と共に https://qiita.com/t_Signull/items/21b82be280b46f467d1b • 松本研究室 Doctor Lecture 2004 言語モデル http://chasen.org/~daiti-m/paper/naist-dlec2004-lmodel.pdf • Training RNNs as Fast as CNNs - ご注文は機械学習ですか? http://musyoku.github.io/2017/09/23/simple-recurrent-unit/ • Understanding the Mixture of Softmaxes (MoS) http://smerity.com/articles/2017/mixture_of_softmaxes.html 参考資料

×