1+9=10

どこかの院生

UNSUPERVISED MACHINE TRANSLATION USING MONOLINGUAL CORPORA ONLY (論文メモ)

論文*1についてのメモや翻訳を残しておく。

Abstract

この論文は、教師あり機械翻訳で使う対訳コーパスを用いずにsingle parallel(monolingual)なコーパスを用いて機械翻訳機の学習を行う。

(原文)

We propose a model that takes sentences from monolingual corpora in two different languages and maps them into the same latent space.

(訳)

我々は、単一言語のコーパスから2つの異なる言語で文章を取り出し、それらを同じ潜在空間に写像するモデルを提案する。

monolingualな文章を翻訳し、ターゲット文を元のソース文に再翻訳するという逆翻訳(back-translation)の事かな?

データセットはMulti30kとWMT English-French*2を使用している。

Multi30k*3
  • 画像とその画像についての説明がセットになったもの。
  • 説明が英語しかなかったので、それをドイツ語に翻訳した。
  • Translation(31,014 pairs)とIndependent descriptions(155,070 pairs)に分かれている。

BLEUスコアは32.8(Multi30k)と15.1(WMT)

Introduction&Training

(原文)

The key idea is to build a common latent space between the two languages (or domains) and to learn to translate by reconstructing in both domains according to two principles.

(訳)

重要なアイデアは、2つの言語(またはドメイン)の間に共通の潜在的なスペースを構築し、2つの原則に従って両方のドメインで再構築することによって翻訳することを学ぶことです。

2つの原則

1つ目

(原文)

(i) the model has to be able to reconstruct a sentence in a given language from a noisy version of it, as in standard denoising auto-encoders (Vincent et al., 2008).

(訳)

(i) モデルは、標準的な雑音除去自動エンコーダ(Vincent et al。、2008)のように、雑音の多いバージョンから与えられた言語の文を(雑音のない文に)再構成できる必要があります。

2つ目

(原文)

(ii) The model also learns to reconstruct any source sentence given a noisy translation of the same sentence in the target domain, and vice versa.

(訳)

(ii) モデルはまた、ターゲットドメイン内で同じセンテンスの雑音のある変換を与えられたソース文を再構成することを学習し、逆もまた同様である。

正直読んだだけだと何のことかわらないが、画像が載せられていた。 f:id:onenight1910:20180718134003p:plain 左が1つ目の原則で右は2つ目だと解釈した。 2つの言語を別々に学習し(ノイズあり->ノイズなし)、そこで作られる潜在空間(latent space)を共有させるように学習していく。その学習済みモデルを使い(例: 日 -> 英(疑似ターゲット))、back-translation(逆翻訳)を行う(例: 日 -> 英(疑似ターゲット) -> 日(逆翻訳後のソース文))。逆翻訳後のソース文とソース文の誤差が最小になるように学習していく。 f:id:onenight1910:20180718135406p:plain 上の学習モデルがノイズ除去、下がback-trasnlation(逆翻訳)。 下のモデル(M)はノイズ除去を表している。

CourseraのMachine Learning(機械学習)の講義内容まとめ [Week 2]

Week 1では、線形回帰、目的関数、最急降下法の説明をしていた。Week 2では、さらにこれを深く掘り下げて説明されていました。

Linear Regression with multiple variables

複数の特徴を持つ教師データで線形回帰を行う方法を説明していく。

Multiple Features

Week 1では、仮説関数として h_θ(x) = θ_0 + θ_1xが使われていた。なぜなら、教師データとして与えられていたものにはパラメータ2つ(家の大きさ、値段)しかなかったためだ。では、ここに家の築年数、場所などのパラメータを追加したとき仮説関数は

 h_θ(x) = θ_0 + θ_1x_1 + θ_2x_2 + θ_3x_3 + ... + θ_nx_n

このようになる。

f:id:onenight1910:20180527224944p:plain 画像: Coursera Machine Learning f:id:onenight1910:20180527224945p:plain 画像: Coursera Machine Learning

また、便宜上これから現れる式は行列が用いられる。 f:id:onenight1910:20180527225355p:plain f:id:onenight1910:20180527230944p:plain 画像: Coursera Machine Learning

Gradient descent for multiple variables

Week 1では、2つのパラメータ時の最急降下法を説明した。今回はより多くのパラメータではどのような挙動をするかを説明していく。といってもやることはさほど変わらない。

f:id:onenight1910:20180527231447p:plain 画像: Coursera Machine Learning

画像からもわかるとおり、それぞれの θ_nに対して同時に処理を行うだけだ。

Normal equation (正規方程式)

最急降下法以外で、最適解を求める方法が正規方程式です。

 θ = (X^TX)^{-1}X^Ty

これは、ループをすることなく直接θを求めることが可能です。こちらのほうが良いと思われたかと思いますが欠点があります。

  • Xのサイズが大きい場合にものすごく時間かかる。

サイズが100万以下なら使って問題ないそうです。

CourseraのMachine Learning(機械学習)の講義内容まとめ [Week 1]

自分は今、某大学院で翻訳システムの研究を行っています。しかし、学部4年の12月に機械学習系の研究室に移ったのですが、それまでに機械学習の勉強を全くしておりません。なので、何か良い教材はないかと探していたら友人がCourseraのMachine Learningコースを勧めてきたので、試しに受けてみたらとてもわかりやすく修了するまでやることを決意したので、アウトプットのため講義のまとめを残すことにします。

Introduction

イントロダクションでは機械学習入門としして、機械学習は大きく分けて2つに分かれることとそれぞれの説明がありました。

教師あり学習とは、予め答えが用意されたデータ(例えば、家のサイズと値段)などを用いる学習。Week 1では、家の大きさから値段を予測する問題が例として挙げられていた。 f:id:onenight1910:20180526231600p:plain Coursera Machine Learning

線形回帰 (Linear regression)

線形回帰は教師あり学習の一つである。教師あり学習なので与えられるデータは答えがある。例として家のサイズから値段を予測する問題を考える。この問題に線形回帰を用いる理由は予測する値段が連続する値だからです。これがもし患者のデータから癌であるか否かを予測する問題の場合、予測する値は"である""でない"(1 or 0)となるのでクラスタリングが用いられるでしょう。

では、実際に先に述べた問題を考えてみましょう。 まずこの先必要となっていく用語、各種記号についてまとめまておきます。

  • m: 教師データ(トレーニングデータ)のデータ数を表します。
  • x: 入力データを表します。
  • y: 出力データを表します。
  • θ: 仮説関数の係数を表します。
  •  h_θ(x): 仮説関数を表します。
  •  J(θ): 目的関数を表します。

今回の問題の目的は家の大きさを入力データとして、家の値段を出力してくれる関数を求めることです。その関数を求めるのが目的関数(cost function)です。 f:id:onenight1910:20180527003722p:plain 画像: Coursera Machine Learning

目的関数 (cost function)

目的関数とは h_θ(x)のθを求めてくれる関数です。今回求める関数(仮説関数)は大きさ(x)と値段(y)としたとき

 h_θ(x) = θ_0 + θ_1x

という関数が考えられます。この関数をどれだけトレーニングデータに合わせるかを求める関数が目的関数となります。合わせるというのはトレーニングデータと関数の差が一番小さくなることです。

なので、目的関数は

 J(θ_0,θ_1) = {\frac{1}{2m}} \sum_{i=0}^{m}(h_θ(x^{(i)}) - y^{(i)})^2 となる。 {\frac{1}{2m}}をかける意味は後で微分をするので、計算しやすくするためである。定数倍しても答えには何ら問題ない。 f:id:onenight1910:20180527010559p:plain 画像: Coursera Machine Learning

最急降下法 (Gradient Descent)

目的関数の式の形は決まったが、実際にどのようにθを求めていくかはわからない。その時に最適解を求める一つの手法として最急降下法がある。

f:id:onenight1910:20180527011715p:plain 画像: Coursera Machine Learning

求めるθをどのようにしたら、計算量を少なく最適解に導くかということである。式は単純で目的関数 J(θ_0,θ_1)微分ずつ引いていきそれを更新していくだけだ。

  • α: 学習率(learning rate)を表す。

f:id:onenight1910:20180527012825p:plain 画像: Coursera Machine Learning

αは大きすぎると上記の画像の下のグラフのように永遠に最小値を見つける事ができるなくなるため、小さい値を選ぶようにする。

また、最急降下法には問題点があります。 f:id:onenight1910:20180527013128p:plain 画像: Coursera Machine Learning

目的関数が上記の画像のようになっていた場合に局所的な最小値は求まるが、全体の最小値にたどり着かない場合がある。

まとめ

  • 機械学習には教師ありと教師なしの学習がある。
  • 仮説関数を立て、トレーニングデータとその関数のアウトプットの差である目的関数を最少とするθを求める。
  • 最適解を求めるのに最急降下法ある。