Day 4 - Seq2Seq のまとめ


この記事は個人的なお勉強用のメモです。

講義

BERT を理解するまでの流れ

  1. Encoder-Decoder Model
  2. Transformer (Encoder-Decoder x Attention)
  3. BERT

Seq2seq の概要

名前のとおり、
系列(Sequence)を入力として、系列(Sequence)を出力するもの


翻訳(英語→日本語)
音声認識(波形→テキスト)
チャットボット(テキスト→テキスト)

Seq2seq の理解に必要なもの

RNN:再帰的
LSTM:RNNの問題点を解決

どちらもすでに学習済みのため、ここでは詳細は省略。

言語モデル

単語の並びに対して尤度(どれだけ起こり得るか)、
文章として自然か、を確率で評価

argmax_{w\in V} P(I, have, a, w) 

I have a の後に続く単語は?
=出力確率の最も高い単語は?

時刻 t-1 までの情報で、時刻 t の事後確率を求める

Seq2seq

RNN が 2 つ連結したもの(Encoder RNN と Decoder RNN)
Encoder から Decoder に隠れ状態 h を引き継ぐ。

Decoder の output 側に正解を当てると、
教師あり学習できる。

Teacher Forcing

正解ラベルを Decoder の入力にする方法。
Teacher Forcing を適用すると、連鎖的に誤差が大きくなるのを
防ぐことができる。

BLEU

翻訳でよく用いられる指標(読み方は、ぶりゅう?)
前提は、「プロの翻訳者の訳と近ければ近いほどその機械翻訳の精度は高い」というもの。

実装演習

lecture_chap1_exercise_public.ipynb

はじめに

いきなりエラー発生。

上のように、wheel の 0.34.2 をインストールした後にランタイムを再起動したら
エラーは解消された。
ただし、以下のエラーが出るが、とりあえず気にせず無視する。

訓練セル

「# 訓練」と書かれているセルの実行に時間がかかる。

余談
講師が訓練セルを開始した数分後に自身で訓練セルを実行したが
自身の訓練セルの方が実行終了が早かった。
Google Colaboratory の処理性能は年々向上しているのだろう。

英語から日本語に翻訳された文章

講師の実行結果は「商売 の 世話 を し い 。」という意味不明な出力だが
こちらの出力は意味の通じる出力になっている。
しかし他の翻訳結果はひどい内容だった。

BLEU

この値がいい値なのかよくない値なのかはよくわかっていない。