言語モデル
自然言語処理の講義
言語モデルの定義の一つ: 文の「もっともらしさ」を評価する
- 音声認識とかのいくつかの認識結果候補から一つを選ぶのにも使える
- 「[[文]]」の数学的表現
- 文s =
hello worldは、文頭/文末を表す単語的存在
- 文s =
- ↑を用いて、文らしさを評価
- P(a|b)は、bが来たあとのaの単語出現確率
- P(
) * P(hello |) * P(world |hello) * P(|hello world) 各単語について、それ以前の文章から考えてその単語がどのくらいありうるかを評価P(a|b)をどうするか- 最尤推定
- コーパスの出現頻度で簡単に計算できる
- 低頻度な現象には弱い
- 0を返されるとP(a|b)の総乗が0になってしまう
- n-gramによる近似
- ニューラルネットワーク
ニューラルネットワーク
基本の回帰モデルを表すと↑になる これの層を増やしたり、間のユニットを増やすことで学習 各矢印が、重みwを持っている、全部違う値 学習によって調整される それだけだとただの回帰と同じ、だから、やを使ってフィルターをかける みたいに、して重みを0に近づけることもできる デフォルトはほとんど正則化しない 最初は、乱数で重みを決める 学習した内容の解析が難しい、やる方法の一つは重みのヒートマップをみること パラメーター学習のには、や等が初心者向けにある #Pythonで始める機械学習 モデルが完成したら、実際にする時はこの計算をすればいいだけ、簡単 (xが入力、Wが各層の重み、yが出力、σが) 一つの層のたくさんあるのうち、一つがめっちゃ影響力強くなっちゃうことがある それを避けるために、ランダムにdropoutする ...
- 最尤推定
- 「[[文]]」の数学的表現
言語モデルは、尤もらしさ等を測る上で単語間の繋がりの情報を保持しているつまり、言語モデルは文章等をベクトルにエンコード/デコードする物とも定義できる?
ニューラルネットワークニューラルネットワーク
基本の回帰モデルを表すと↑になる これの層を増やしたり、間のユニットを増やすことで学習 各矢印が、重みwを持っている、全部違う値 学習によって調整される それだけだとただの回帰と同じ、だから、やを使ってフィルターをかける みたいに、して重みを0に近づけることもできる デフォルトはほとんど正則化しない 最初は、乱数で重みを決める 学習した内容の解析が難しい、やる方法の一つは重みのヒートマップをみること パラメーター学習のには、や等が初心者向けにある #Pythonで始める機械学習 モデルが完成したら、実際にする時はこの計算をすればいいだけ、簡単 (xが入力、Wが各層の重み、yが出力、σが) 一つの層のたくさんあるのうち、一つがめっちゃ影響力強くなっちゃうことがある それを避けるために、ランダムにdropoutする ...
RNNRNN
https://www.imagazine.co.jp/再帰型ニューラルネットワークの%E3%80%8C基礎の基礎%E3%80%8D/ ニューラルネットワークが二つの目的を持って最適化される感じかな 出力層は、普通に結果の損失関数を小さくするように訓練されていく ...
- 出力はSoftmaxで0~1に正規化
Attention機構Attention機構
とは 【深層学習】Attention機構とは何のか? | DenDenBlog データのどこに注目するかを推論 入力: contextと、注目度を評価したいデータ群 それぞれの非線形関数に(context + データの一つ)を入力して、重要度が出力される様に訓練する 出力: それぞれのデータの相対的重要さ これを、とかとかと組み合わせる方法が今まで使われていた は、組み合わせる必要すらねぇと言っている? ...
- 長い文になると、各単語が出力ベクトルに与える影響が小さくなってしまう
- 出力ベクトルのサイズは固定
- アテンションの重みを計算して、重要な単語を強く反映させる
- 長い文になると、各単語が出力ベクトルに与える影響が小さくなってしまう
Transformerベクトルへのエンコードと、その別言語によるデコードができれば機械翻訳が出来る
GPT-3, BERTなどはTransformerの応用Pre-trained言語モデル様々なタスクに適応できる言語モデル大規模モデルはメンテナンス等にコストかかり、扱いにくい- 専用の小さいモデルと比べて、この点がデメリット
軽量なモデル(DistillBERTとか)も作られている