【スポンサーリンク】

「Perplexity」の意味は「困惑度」(言語モデルの予測精度)

「Perplexity」の意味は「困惑度」(言語モデルの予測精度)
  • Perplexityは言語モデルが次の単語を予測する際の確信度を示す指標です。
  • Perplexity値が小さいほど予測精度が高く、大きいほどモデルがデータセットに対して困惑している状態を表します。
  • 訓練データと検証データのPerplexity値を比較することで、モデルの学習状態や過学習の有無を確認できます。
\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. ラテン語の「per-plexus」

もともと「Perplexity」は「困惑」という意味の言葉です1
語源はラテン語の「perplexus」、「編み込まれた」「込み入った」に由来します。

  • “per-“
    (「完全に」「徹底的に」を意味する接頭辞)
  • “plexus”
    (「編む」「織る」「絡ませる」を意味する動詞 plectere の過去分詞形)
ラテン語の「per-plexus」

二つが結合して「完全に編み込まれた」「複雑に絡み合った」という意味を形成しています。

AI研究の分野では、「Perplexity」は、言語モデルが次の単語を予測する際の確信度の逆指標2として使われています。

1-1. Perplexity値を計算する

Perplexity値(PP)は、次の単語を予測する際の確率分布のエントロピーの指数として計算します。

Perplexity = 2 1 N log 2 P ( w i )
Perplexity値を計算する

言語モデルにデータセットを与えて、それぞれ次の単語を予測させます。
実際の単語を予測した確率を元に Perplexity を計算し、データセット全体で平均化します。

  • 各予測の確率を対数化
  • それらの平均を取る
  • 指数化してPerplexity値を得る
Perplexity値を計算する

この値が小さければ、その言語モデルの予測精度が高いことになります。

例えば、ある言語モデルAが、mat 0.6, floor 0.3, table 0.1の確率だと予測しました。
実際に3個の検証データで答え合わせをすると、

  • The cat sits on the mat.
  • The cat sits on the floor.
  • The cat sits on the floor.

という結果だったとします。

この場合のPerplexity値は、
Perplexity = 2^(- 1/3 (log2 0.6 + log2 0.3 + log2 0.3))
≒ 2^(1.41)
≒ 2.65

2. 言語モデルでのPerplexityの使われ方

Perplexityはトランスフォーマーベースの言語モデルの評価において、客観的で数値化された指標として重要な役割を果たしています。
つまり、異なる言語モデル間で性能を比較する際の指標としても使用できます。

言語モデルでのPerplexityの使われ方

別の言語モデルBが、mat 0.2, floor 0.6, table 0.2で予測するとすると、
Perplexity = 2^(- 1/3 (log2 0.2 + log2 0.6 + log2 0.6))
≒ 2^(1.27)
≒ 2.40

この例では、モデルB(2.40)< モデルA(2.65)
つまり、モデルBの方が良い予測ができていることを示しています。
実際のデータで”floor”が2回出現しているのに対し、モデルBがより高い確率(0.6)を割り当てていることに対応しています。

例えば

入力:「今日は良い」
モデル予測:「天気」の確率が0.7, 「日」の確率が0.2, その他0.1
データセットの実際の次の単語が「天気」だった場合、正解の単語の予測確率のみ(この場合「天気」の0.7)を使用します。

2-1. 言語モデルのトレーニング

Perplexityは、言語モデルのトレーニングの中でも利用されます。

モデルが訓練データセット全体を1周処理することを1エポックと呼びます。
例えば、10万文のデータセットを用意していたら、全て学習し終わると予測確率を集計します。

「学習」では、この予測精度を上げていくことが目標になります。

言語モデルのトレーニング

PP値が下がっていけば、モデルの学習が順調に進んでいることを示します。

また、訓練データと検証データで別々に Perplexityを計算することで、適切に学習できているか検証することもできます。
もし、訓練データでのPerplexityが低いのに、検証データでのPerplexityが高いなら、その差分は訓練時だけ有効な精度です。
つまり、「過学習」ということになります。

言語モデルのトレーニング

ただし、これは技術的な評価指標の一つであり、実際のアプリケーションにおける有用性は他の要因も考慮する必要があります。

3. 【補足】クロスエントロピーとPerplexity

【補足】クロスエントロピーとPerplexity

Perplexityスコアで言語モデルの性能を比較できることはわかったけど、結局 これは何を計算しているの?

Perplexityは、クロスエントロピーHの指数関数として定義されています。

H = 1 N i log 2 P ( w i )

クロスエントロピーも、モデルの予測がどれだけ不確かさを含んでいるかを表します。
この値が小さいほど、モデルの予測は確実です。

Perplexityは、クロスエントロピーを2の指数にした値。
クロスエントロピーが「情報理論的な不確実さ」を表すのに対し、Perplexityは「平均的な分岐数」または「平均的な選択肢の数」として解釈できます。

3-1. 予測確率の逆数の幾何平均


Perplexityの式では、つまり、2の対数をいったん平均してから 2の指数にしています。
つまり、「各予測確率の逆数の幾何平均」として書き変えられます。

Perplexity = ( i 1 P ( w i ) ) 1 N

(∏は数学記号でpiと読み、掛け算の総和)

各予測確率の逆数とは、確率16.7% なら 6。
つまり、単純化すれば「各予測での選択肢の数」のことです。

もしモデルが常に正解の単語に確率1.0(100%)を割り当てられれば、Perplexity = 1。
これは「選択の余地がない=完璧な予測」を意味します

他方、Perplexity = 10 なら、これは「モデルが各予測ポイントで、平均して10個の選択肢の中から選んでいるような状態」を表します。

予測確率の逆数の幾何平均

先ほどのモデルAの場合は、だいたい 2.65 個の選択肢から選んでいる(迷っている)状態だと言えます。
つまり、まさに「困惑度」なわけです。

こちらもどうぞ。
「Perplexity」とは?(AI検索)
「Perplexity」とは?(AI検索)
「Perplexity」は、インターネット検索をまとめてくれるAI検索サービスです。基本的なAI検索は、アカウント登録なしでも無料で使えます。登録すると履歴確認などの便利な機能が使え、より精度の高い回答を得るにはサブスクリプションに加入することも選べます。YouTube動画でも話していますPerplexityはAI検索サービス「Perplexityパープレキシティ」は、AIを活用した検索・質問応答サービスです。リアルタイムの情報を収集し、情報源へのリンクを付けて回答するのが特...

Transformerモデルと「自然言語」(GPTが「スマホの次」だった)
Transformerモデルと「自然言語」(GPTが「スマホの次」だった)
Transformerがもっと強力になったら、個々のアプリもいらなくなるかも。たとえば、時間を聞いて、その場で時計盤の画像を生成して見せくれるなら、極端な話 時計も時計アプリもいらなくなっちゃう。すでに、そういう次元じゃないかもしれないけど。あとは、電気代の問題ですね。Transformerモデルがすごいのは、「自己注意機構」でテキスト内の単語間関係を分析できるようになったこと。旧来のモデルと比べ、効率的に文脈全体を把握できるようになったのが成長の背景です。翻訳や要約といった...

「エントロピー」とは?(予測不可能性とパスワードの強さ)
「エントロピー」とは?(予測不可能性とパスワードの強さ)
パスワードの「強さ」を示す指標として「エントロピー」が使われ、パスワードの取りうるパターン数の2を底とする対数で計算されます。パスワードに含まれる文字の種類を増やしたり、文字数を増やしたりするとエントロピーが高くなります。一般に「英数記号12文字以上のパスワード」が推奨されるのは、エントロピーを高くするためです。ただし、総当たり攻撃への耐性を高めるには、「完全にランダム」なパスワードにする必要はありません。独自のルールなら、ある程度規則性があっても大丈夫です。情報理論における...

【解説】入力しやすいパスワードを考えてくれるツールを作った(パスワードエントロピーと入力)
【解説】入力しやすいパスワードを考えてくれるツールを作った(パスワードエントロピーと入力)
ツール本体へ(広告なし・軽量版)パスワードは毎回 ランダムに生成されます。気に入ったパスワードをタップするとコピーできます。ほかのパスワード候補に変える function generatePasswords() { const symbols = "!@#$%^&*()_+"; const letters = "abcdefghijkmnopqrstuvwxyz"; const numbers = "23456789"; let passwordsList = ""; for...

ベイジアンフィルタとは?(ベイズの定理とスパム判定)
ベイジアンフィルタとは?(ベイズの定理とスパム判定)
「ベイジアンフィルタ」は、条件付き確率の考え方(ベイズの定理)をもとに迷惑メールである確率を計算する、古典的な手法です。過去のスパムメールと非スパムメールから単語の出現頻度の違いを学習して、新しく受信メール内の単語の組み合わせからスパム確率を計算するのが特徴です。ただし、判断材料が単語の出現頻度に依存しているため、正しいメールに似せた文章だとスパムと見分けられないことがあります。たとえば、「高額なプレゼントに当選しました!」などのような、独特のスパムメールには有効です。ベイジ...

(補足)

  1. perplexity – Google 翻訳
  2. inverse metric
QRコードを読み込むと、関連記事を確認できます。

「Perplexity」の意味は「困惑度」(言語モデルの予測精度)
【スポンサーリンク】
タイトルとURLをコピーしました