jiku log

JTCのデータサイエンス中間管理職の学び

「大規模言語モデル入門」を読む〜第3章〜

はじめに

製造業においても,自然言語処理は重要な技術テーマのひとつである。週報などのメール,社内規定などのルール,安全記録や検査記録など,日々多くの文章が業務上で現れる。これらのテキストデータに対して自然言語処理技術を適用して業務効率化を実現していくために,近年発展が目覚ましい大規模言語モデルについて学ぶことにした。

このたび,大規模言語モデルの入門書として,山田 育矢 著「大規模言語モデル入門」を読むこととした。

gihyo.jp

第3章 大規模言語モデルの基礎

第2章ではTransformer(エンコーダ,エンコーダ・デコーダデコーダ)について説明された。本章では,Transformerから発展し,かつ大規模言語モデルの基礎となっている各種モデル(GPT・BERTなど)について説明されている。

3.1 単語の予測から学習できること

大規模言語モデルにおける学習は,単語を予測するという学習である。これにより,文脈を捉えられるようになると考えられる。
自然言語処理において,「文脈を捉える」タスクとして,以下のようなものが挙げられる。

  • 感情分析 : 感情に関する単語を予測する。
  • 共参照解析 : 指示語を予測する。
  • 一般常識を用いた推論 : 「両親=父と母」といった文外の情報を用いて予測する。

そのため「文脈を捉える」ということは単語の予測問題に帰着されるので,機械学習でも扱えるようになるのである。

3.2 GPT (デコーダ)

GPT(Generative Pre-trained Transformer)は,2018年にOpenAIが提案した,デコーダ構成のTransformerモデルである。

事前学習

文脈を捉えた単語の表現を得るために, i番目の単語を,その前にある K個の単語で予測するという事前学習を行なう。


 \begin{align}
L_{pt}(\theta) = - \sum _{i} \log P (w_i | w_{i-K}, ..., w_{i-1}, \theta)
\end{align}

並列処理によって次のトークンを予測する処理を行なう。

※感想 : 並列処理できるというのがポイントで,こうすることによって大規模な計算機リソースさえあれば効率よく学習が進むと言える。

ファインチューニング

ファインチューニング(Fine Tuning)は事前学習の後段のタスクのことで,事前学習によって得られた単語の表現を用いて,文書分類など本来解きたかったことを行なうタスクのことである。

ファインチューニングの際には,文のはじめ・文の区切り・文のおわりを示す特殊トークを加える。また事前学習の層とファインチューニング用の層の間に,ヘッドと呼ばれる層を加えて学習を行なう。

ファインチューニングの際には,損失関数として,本来解きたいタスク(文書分類など)のタスクに関する損失関数と,事前学習の損失関数の重みづけをした損失関数を用いる。


 \begin{align}
L_{ft+pt}(\theta) = L_{ft}(\theta) + \lambda L_{pt}(\theta)
\end{align}

3.3 BERT・RoBERTa (エンコーダ)

前節で紹介されたGPTは,デコーダのマスク機構により,位置 iより後ろ(位置 (i + 1)以降)のトークンを無視しているため,後段の文脈を捉えられない。

BERT(Bidirectional Encoder Representation from Transformer)は2018年にGoogleが提案したモデルで,エンコーダ構成のTransformerにより後続するトークンの情報を含められるようにしたものである。RoBERTaも同様の構成で,2019年にFacebook AI Researchが発表したものである。

入力表現

BERTでは,入力開始を示す[CLS]トークンや,文の句切れを示す[SEP]トークンを加えた入力表現を用いて,事前学習を行なう。GPTでは,これらのトークンはファインチューニングの際に初めて加えられるが,BERTでは事前学習のときからこれらのトークンを加えることで,ファインチューニングとの齟齬を減らしている。

また,事前学習の際には2つの文を組合わせて学習させるが,セグメント埋め込みを用いることで文を区別する。

事前学習

事前学習では,マスク言語モデリング(Mask Language Modeling : MLM)次文予測が用いられる。

MLMでは,文書全体のうち15%をテスト用に用いる。このテスト用データは,

  • 80%をマスクする([MASK]トークンで置き換える)。
  • 10%をランダムに置き換える。
  • 10%をそのままにする。

という処理を行なう。

次文予測

MLMを施した文に対して,次文予測によって学習を行なう。

次文予測とは,2つの文が連続した文であるかどうかを2値分類するタスクである。この際,50%は2つの文が連続したもの,残りの50%は後段の文をランダムに置き換えたものを用いる。

3.4 T5 (エンコーダ・デコーダ)

T5(Text-to-Text Transfer Transformer)は,エンコーダ・デコーダモデルで,エンコーダによって双方向学習を,デコーダによって文書生成を実現する。

3.5 多言語モデル

はじめの方のモデルは主に英語によって学習させていたが,ほかの言語にも対応する言語モデルがいくつも提案されている。

言語モデルの特徴として挙げられるのは,言語横断転移学習である。これは,大量の英語の学習データで学習を行なっておけば,他の言語についても予測などが行えるようになるという特徴である。この特徴より,大規模言語モデル言語に依存しない表現を内部に獲得していると考えられる。

3.6 トークナイゼーション

大規模言語モデルを学習させる際に,入力の単位であるトークをうまく選ぶ必要がある。
トークンとして単語を選ぶと,ほとんど使われない単語も存在するので,単語の集合である語彙が大きくなりすぎてしまうおそれがある。
一方で,トークンとして文字を選ぶと,今度はトークンが細かくなりすぎてしまう。
そのため大規模言語モデルは,単語と文字の中間であるサブワードを用いている。

まとめと感想

本章では,Transformerの派生形であり,大規模言語モデルの基礎となるGPTやBERTなどのモデルについて解説がなされていた。

感想 : 並列計算ができることは強い

近年の大規模言語モデルの成功の理由として,並列処理に向いているモデルを作ったことが考えられる。
繰り返し計算のように,処理が並列にしづらい場合であれば,データ量や計算機リソースが増えても,そのメリットを享受することができない。大量のデータ・大量の計算機リソースを効率よく扱うためのアルゴリズムを作れたのがポイントだろう。

感想 : エンコーダ・デコーダよりもデコーダのみのモデルが流行っているのは面白い

GPTの後にBERTが出てきたころは,「後ろの文脈が考慮できるのはすごい」と言われていたことを記憶している。
一方で,2024年現在はGPTモデルの方がいろいろともてはやされているので,デコーダモデルよりもたくさんの情報を扱えるエンコーダ・デコーダもでるよりも,GPTのようなデコーダモデルが流行っているというのは興味深かった。
ただこれは,文脈の考慮といったモデルの工夫というより,ChatGPTのように一般の人にもなじみが深いアプリケーションが出てきたためかもしれない。

本記事を最後まで読んでくださり,どうもありがとうございました。

ガンマ分布の正規近似とスターリングの公式 #統計検定

はじめに

先日作成した記事であるガンマ分布における変数変換 #統計検定 - jiku logにおいて,ガンマ分布を正規分布で近似する,という説明を行なった。
その後,X(旧Twitter)上で,以下の指摘を頂いた。

ガンマ分布の正規分布で近似するだけでなく,スターリングの公式も導出してしまう,というエレガントな導出であった。
それと同時に,久保川達也 著「現代数理統計学の基礎」のP50にあった「スターリングの公式」の説明についても理解できた。私が理解できた,スターリングの公式に関する内容について紹介する。

スターリングの公式の導出

スターリングの公式

スターリングの公式は,階乗を近似するための式である。


 \displaystyle
\Gamma(\alpha + a)  \approx \sqrt{2 \pi} \alpha ^{\alpha + a - 1/2} e^{- \alpha}

特に a = 1のとき,


 \displaystyle
\Gamma(\alpha + 1) = \alpha ! \approx \sqrt{2 \pi} \alpha ^{\alpha + 1/2} e^{- \alpha}

となる。

なかなか覚えづらい式であるが,これを導出するための方針を説明していく。

方針

標準化の応用と置換積分

ガンマ分布 Ga(\alpha, \beta)は, \alpha \rightarrow \inftyの極限において,正規分布に近似できる。

言い換えると,ガンマ分布にしたがう確率変数 Xについて,


 \begin{align}
Z = \frac{X - E[X ]}{\sqrt{V[X ]}  }
\end{align}

のように標準化すると,確率変数は Zは標準正規分布に近似できる,といえる。

確率変数 Xはガンマ分布にしたがい, E[X] = \alpha \beta, V[X ]=\alpha \beta^2 となるので,


 \begin{align}
Z = \frac{X - E[X ]}{\sqrt{V[X ]}  } = \frac{X - \alpha \beta }{\sqrt{\alpha \beta^2 }  }
\end{align}

となる。よって,


 \begin{align}
X = \alpha \beta + \sqrt{\alpha \beta^2 } Z = \beta(\alpha + \sqrt{\alpha}Z)
\end{align}

となる。

この変数変換は,久保川達也 著「現代数理統計学の基礎」のP50にあった変数変換に近い式である。初見の際には,なぜこのような変数変換をするのか納得できなかったが,ガンマ分布を正規分布で近似することを考えると,ごく自然な変数変換であるということが分かる。

最後に,置換積分に向けた準備をしておく。
 x =  \beta(\alpha + \sqrt{\alpha} z)より, dx =  \beta \sqrt{\alpha} dz である。
また, 0 \leq x \lt \inftyより, -\sqrt{\alpha} \leq z \lt \inftyである。

少しずらす

スターリングの公式は, \alphaが大きい値の場合における階乗の近似式である。そのため \alphaも,それに小さな値 aを加えた \alpha + aも, \alphaが大きい値の場合には大差がない。
その後の計算のことを考え, Ga(\alpha, \beta)ではなく, Ga(\alpha + a, \beta)の正規近似を考える。

導出

置換積分

確率密度関数 Ga(\alpha + a, \beta)積分すると1になるので,


 \begin{align}
1 = \frac{1}{\Gamma(\alpha+a) \beta^{\alpha + a}} \int_{0}^{\infty} x^{\alpha + a - 1} e^{-\frac{x}{\beta}} dx
\end{align}

となる。 x =  \beta(\alpha + \sqrt{\alpha} z)として置換積分すると,


 \begin{align}
1 
&= \frac{1}{\Gamma(\alpha+a) \beta^{\alpha + a}}   \int_{- \sqrt{\alpha}}^{\infty}  \beta^{\alpha + a - 1}  (\alpha + \sqrt{\alpha} z)^{\alpha + a - 1} e^{-(\alpha + \sqrt{\alpha} z)} \cdot \beta \sqrt{\alpha}dz \\

&= \frac{1}{\Gamma(\alpha+a)} \int_{- \sqrt{\alpha}}^{\infty}  \alpha^{\alpha + a - 1/2}  e^{-\alpha}  \left( 1 + \frac{z}{\sqrt{\alpha}}  \right)^{\alpha + a - 1}   e^{-\sqrt{\alpha} z}  dz

\end{align}

よって,


 \begin{align}
\frac{\Gamma(\alpha+a)} { \alpha^{\alpha + a - 1/2}  e^{-\alpha}   } = \int_{- \sqrt{\alpha}}^{\infty}  \left( 1 + \frac{z}{\sqrt{\alpha}}  \right)^{\alpha + a - 1}   e^{-\sqrt{\alpha} z}  dz
\end{align}

となる。

標準正規分布積分への近似

上式の右辺を,標準正規分布積分を目指して変形していく。


 \begin{align}
&  \left( 1 + \frac{z}{\sqrt{\alpha}}  \right)^{\alpha + a - 1}   e^{-\sqrt{\alpha} z}  = \exp{  \left(  (\alpha + a - 1) \log{ \left( 1 + \frac{z}{\sqrt{\alpha}} \right) } -\sqrt{\alpha} z \right) } \\

&= \exp{  \left(  (\alpha + a - 1) \left( \frac{z}{\sqrt{\alpha}} - \frac{z^2}{2 \alpha} +o(\alpha ^{-1}) \right) -\sqrt{\alpha} z \right) } \\
&= \exp{  \left( - \frac{z^2}{2} + o(1)  \right) }

\end{align}

よって,


 \begin{align}
 \int_{- \sqrt{\alpha}}^{\infty}  \left( 1 + \frac{z}{\sqrt{\alpha}}  \right)^{\alpha + a - 1}   e^{-\sqrt{\alpha} z}  dz

&=  \int_{- \sqrt{\alpha}}^{\infty} \exp{  \left( - \frac{z^2}{2} +  o(1) \right) } dz \\

& \rightarrow \sqrt{2 \pi} \quad (\alpha \rightarrow \infty)
\end{align}

以上より,


 \begin{align}
\frac{\Gamma(\alpha+a)} { \alpha^{\alpha + a - 1/2}  e^{-\alpha}  } \approx  \sqrt{2 \pi} 
\end{align}

となり,スターリングの公式


 \begin{align}
\Gamma(\alpha+a) \approx \sqrt{2 \pi} \alpha^{\alpha + a - 1/2}  e^{-\alpha}
\end{align}

が得られた。

まとめ

ガンマ分布の正規近似から,スターリングの公式 を導出した。ポイントは,ガンマ分布の正規近似を考慮した変数変換 x =  \beta(\alpha + \sqrt{\alpha} z)であった。

本記事を最後まで読んでくださり,どうもありがとうございました。

ガンマ分布における変数変換 #統計検定

はじめに

統計検定1級の統計数理・理工学において,ガンマ分布は頻出分野である。この記事ではガンマ分布と他の分布の変換について説明する。

ガンマ分布

統計検定1級での出題

統計検定1級の統計数理・理工学において,2012年~2022年の10年の間で,関連する問題が7題(6年)出題されている。

ガンマ分布と他の確率分布との関係

ガンマ分布と他の分布の関係は以下の通りである。

ガンマ分布→正規分布の変換

確率変数 Xが,ガンマ分布 Ga(\alpha, \beta)にしたがうとする。


 \begin{align}
\mu &= \alpha \beta \\ 
\sigma ^2 &= \alpha \beta ^2 \\ 
Z &= \frac{X - \mu}{\sigma} = \frac{X - \alpha \beta}{ \sqrt{\alpha \beta ^2} } \\
\alpha & \rightarrow \infty 
\end{align}
という変換を行なうと,確率変数 Zは標準正規分布にしたがう。

方針

確率変数 Xが,ガンマ分布 Ga(\alpha, \beta)にしたがうので, E[X] = \alpha \beta, V[X] = \alpha \beta^2である。
つまり上式は \alpha \rightarrow \inftyの極限で,ガンマ分布は正規分布に変換される,ということを示している。
極限が出てくるので,極限計算に出てくる項の数を出来るだけ減らすために,導出にはモーメント母関数を用いる。

導出

ガンマ分布 Ga(\alpha, \beta)にしたがう確率変数 Xのモーメント母関数 M_X(t)は,


 \displaystyle
M_X(t) = E [ e^{tX}  ]  = \left(  1 - \beta t \right) ^{- \alpha}

である。よって,確率変数 Zのモーメント母関数 M_Z(t)は,


 \begin{align}
M_Z(t)  
= E [ e^{tZ}  ]  
&= E \left [ \exp{ \left( t   \frac{X - \alpha \beta}{ \sqrt{\alpha \beta ^2} } \right) } \right ] \\
&= \exp { \left( - t  \sqrt{\alpha} \right) }  \times E \left [ \exp{ \left( \frac{t }{ \sqrt{\alpha}  \beta } X  \right) } \right ] \\
\end{align}

となる。ここで, M_X(t) = E [ e^{tX}  ]  = \left(  1 - \beta t \right) ^{- \alpha}を用いると,


 \begin{align}
M_Z(t)  
&= e^ { - t  \sqrt{\alpha}  }  \times E \left [ \exp{ \left( \frac{t }{ \sqrt{\alpha}  \beta } X \right) } \right ] \\
&= e^ { - t  \sqrt{\alpha}  }  \times  \left(  1 - \beta \frac{t}{ \sqrt{\alpha}  \beta } \right) ^{- \alpha} \\
&= e^ { - t  \sqrt{\alpha}  }  \times  \left(  1 - \frac{t}{ \sqrt{\alpha} } \right) ^{- \alpha} \\
&= \left(e^ { \frac{t } {\sqrt{\alpha} } }  \times  \left(  1 - \frac{t}{ \sqrt{\alpha} } \right) \right)^{- \alpha} \\
&= \left(e^ { \frac{t } {\sqrt{\alpha} } }  - \frac{t}{ \sqrt{\alpha} } e^ { \frac{t } {\sqrt{\alpha} } }  \right)^{- \alpha} \\
\end{align}

となる。 \alphaが大きいとき,


 \displaystyle
e^ { \frac{t } {\sqrt{\alpha} } }  = 1 + \frac{t}{\sqrt{\alpha}} + \frac{t^2}{2 \alpha} + o(\alpha ^{-1})

と近似できるので,


 \begin{align}
e^ { \frac{t } {\sqrt{\alpha} } }  - \frac{t}{ \sqrt{\alpha} } e^ { \frac{t } {\sqrt{\alpha} } }   
&= 1 + \frac{t}{\sqrt{\alpha}} + \frac{t^2}{2 \alpha} -   \frac{t}{ \sqrt{\alpha} }    \left( 1 + \frac{t}{\sqrt{\alpha}} + \frac{t^2}{2 \alpha}  \right) + o(\alpha ^{-1})\\
&= 1 + \frac{t}{\sqrt{\alpha}} + \frac{t^2}{2 \alpha} -   \frac{t}{ \sqrt{\alpha} }  - \frac{t^2}{\alpha}  + o(\alpha ^{-1}) \\
&= 1 - \frac{t^2}{2 \alpha} + o(\alpha ^{-1})\\
\end{align}

となる。よって,


 \begin{align}
M_Z(t)  
&= \left(e^ { \frac{t } {\sqrt{\alpha} } }  - \frac{t}{ \sqrt{\alpha} } e^ { \frac{t } {\sqrt{\alpha} } }  \right)^{- \alpha} \\
&= \left( 1 - \frac{1}{\alpha }\frac{t^2}{2 } + o(\alpha ^{-1})  \right)^{- \alpha} \\
&\rightarrow \exp{ \left(  {\frac{t^2}{2}}  \right) }  \quad (\alpha \rightarrow \infty)
\end{align}

となり,これは標準正規分布のモーメント母関数なので,確率変数 Zは標準正規分布にしたがう。

指数分布←→ガンマ分布の変換

ガンマ分布→指数分布の変換は,ガンマ分布 Ga(\alpha, \beta )において \alpha = 1としたものが指数分布になることを用いる。
この変換については,以下の記事において説明した。
stern-bow.hatenablog.com

また,指数分布→ガンマ分布の変換は,ガンマ分布の再生性を用いる。
この変換については,以下の記事において説明した。
stern-bow.hatenablog.com

まとめ

統計検定1級の頻出分野であるガンマ分布について,ガンマ分布から正規分布へ変換する方法についてまとめた。
本記事を最後まで読んでくださり,どうもありがとうございました。

指数分布からの変換 #統計検定

はじめに

統計検定1級の統計数理・理工学において,指数分布は頻出分野である。この記事では,指数分布に関する話題のうち,指数分布から他の分布へ変換する,具体的には

  • 指数分布→ガンマ分布・カイ2乗分布
  • 指数分布→幾何分布

という変換について説明する。

指数分布

統計検定1級での出題

統計検定1級の統計数理・理工学において,2012年~2022年の10年の間で,関連する問題が8題出題されている。

指数分布と他の確率分布との関係

統計検定では,確率分布の性質,特に他の確率分布との関係を問われることが多い。指数分布と他の分布の関係は以下の通りである。

以下の説明では,確率変数 X, Y確率密度関数 f_X(x), f_Y(y)とする。なお表記を簡単にするために,確率密度関数における定義域は略記する。

指数分布→ガンマ分布の変換

確率変数 Xが,指数分布 Ex(\lambda)にしたがうとする。


 \displaystyle
Y = \sum_{i=1}^{n} X_i
という変換を行なうと,確率変数 Yはガンマ分布にしたがう。

方針

導出にはモーメント母関数を用いる。
確率変数 Yは確率変数 X_iの和で表されているが,変数 iにかかわらず確率変数 X_iのモーメント母関数は同じ形になるうえに,モーメント母関数を用いると確率変数の和が積の形に変換できるので,モーメント母関数 M_X(t) n乗の形になり計算がしやすくなるためである

なお,指数分布→ガンマ分布の変数変換は,ほかにも畳み込みを用いる方法などがある。

導出

指数分布 Ex(\lambda)にしたがう確率変数 Xのモーメント母関数 M_X(t)は,


 \displaystyle
M_X(t) = E [ e^{tX}  ]  = \left(  1 - \frac{t}{\lambda} \right) ^{-1}
である。また,確率変数 Yのモーメント母関数 M_Y(t)は,


 \displaystyle
M_Y(t) = E [ \exp{( t \sum_{i=1}^{n} X_i )}  ]  =  \prod_{i=1}^{n} E [ \exp{( t X_i )}  ] =  \left(  1 - \frac{t}{\lambda} \right) ^{-n}
である。

ここで,ガンマ分布 Ga(\alpha, \beta)にしたがう確率変数のモーメント母関数は (1 - \beta t)^{- \alpha}なので, M_Y(t)と比較すると,Yはガンマ分布 Ga(n, 1/\lambda)にしたがうことが分かる。

参考

指数分布 Ex(\lambda)は,ガンマ分布 Ga(1, 1/\lambda)と表される。上記より,指数分布にしたがう確率変数 X n回足し合わせると,ガンマ分布 Ga(1, 1/\lambda)となることが分かる。このような性質をガンマ分布の再生性と呼ぶ。

ガンマ分布の再生性 :
確率変数 S, Tがそれぞれガンマ分布 Ga(\alpha_1, \beta), Ga(\alpha_2, \beta)にしたがうとすると,確率変数 S+Tはガンマ分布 Ga(\alpha_1 + \alpha_2, \beta)にしたがう。

指数分布→カイ2乗分布の変換

確率変数 Xが,指数分布 Ex(\lambda)にしたがうとする。


 \displaystyle
Y = 2 \lambda \sum_{i=1}^{m} X_i
という変換を行なうと,確率変数 Yはカイ2乗分布にしたがう。

方針

カイ2乗分布 \chi ^2(n)はガンマ分布 Ga(n/2, 2)に等しいので,ガンマ分布のときと同様にモーメント母関数を用いる。

導出

確率変数 Yのモーメント母関数 M_Y(t)は,


 \displaystyle
M_Y(t) = E [ \exp{( 2 \lambda t \sum_{i=1}^{m} X_i )}  ]  =  \prod_{i=1}^{m} E [ \exp{( 2 \lambda t X_i )}  ]

先に計算した,ガンマ分布のモーメント母関数の式と比べてみると, tのかわりに 2 \lambda tを入れればよいことがわかる。よって,


 \displaystyle
M_Y(t)  =  \prod_{i=1}^{m} E [ \exp{( 2 \lambda t X_i )}  ] =  \left(  1 - \frac{2 \lambda t}{\lambda} \right) ^{-m} =  \left(  1 - 2 t \right) ^{-m}
これは,ガンマ分布 Ga(2m/2, 2)のモーメント母関数,すなわちカイ2乗分布 \chi ^2(2m)のモーメント母関数であるので, Yはカイ2乗分布 \chi ^2(2m)にしたがう。

指数分布→幾何分布の変換

確率変数 Xが,指数分布 Ex(\lambda)にしたがうとする。ガウス記号を用いて,


 \displaystyle
Y = [ X]
という変換を行なうと,確率変数 Yは幾何分布にしたがう。

方針

はじめに気付くべき重要なこととして,確率変数 Xは連続分布にしたがうが,確率変数 Yは離散分布にしたがうということである。

そのため,ヤコビアンを用いた変数変換のアプローチが取れない。したがって,連続分布と離散分布をつなぐものとして,累積分布関数と確率関数の関係に着目する。

導出


 \displaystyle
Y = [ X] \Rightarrow Y \leq X \lt Y+1
であるので,


 \begin{align}
P(Y = k)
&= P([X] = k) = P(k \leq X \lt k+1) \\
&= P(X \lt k+1) - P(X \lt k)
\end{align}

となる。
ここで,変数 Xは指数分布にしたがうので,その累積分布関数 F_X(x) = P(X \lt x)は,


 \displaystyle
F_X(x) = P(X \lt x) = 1 - e^{- \lambda x}
となる。よって,


 \begin{align}
P(Y = k)
&= P(X \lt k+1) - P(X \lt k) \\
&= (1 - e^{- \lambda (k+1)} ) - (1 - e^{- \lambda k} ) \\
&= (e^{- \lambda})^k (1 - e^{- \lambda})
\end{align}
となる。

さらに,


 \displaystyle
p = 1 - e^{- \lambda}
とおくと,


 \begin{align}
P(Y = k)
&= (e^{- \lambda})^k (1 - e^{- \lambda}) \\
&= p (1 - p)^k 
\end{align}

となり,これは幾何分布 Geo(p)である。

以上より,確率変数 Yは幾何分布 Geo(1 - e^{- \lambda})にしたがう。

まとめ

統計検定1級の頻出分野である指数分布について,指数分布からガンマ分布・カイ2乗分布・幾何分布へ変換する方法についてまとめた。
本記事を最後まで読んでくださり,どうもありがとうございました。

指数分布への変換 #統計検定

はじめに

統計検定1級の統計数理・理工学において,指数分布は頻出分野である。この記事では,指数分布に関する話題のうち,他の分布を指数分布へ変換する,具体的には

  • 連続一様分布→指数分布
  • ガンマ分布→指数分布
  • ワイブル分布→指数分布
  • パレート分布→指数分布

という変換について説明する。

指数分布

統計検定1級での出題

統計検定1級の統計数理・理工学において,2012年~2022年の10年の間で,関連する問題が8題出題されている。

指数分布と他の確率分布との関係

統計検定では,確率分布の性質,特に他の確率分布との関係を問われることが多い。指数分布と他の分布の関係は以下の通りである。

以下の説明では,確率変数 X, Y確率密度関数 f_X(x), f_Y(y)とする。なお表記を簡単にするために,確率密度関数における定義域は略記する。

連続一様分布→指数分布の変換

確率変数 Yが,連続一様分布 U(0, 1)にしたがうとする。


 \displaystyle 
X = - \frac{1}{\lambda} \log Y \equiv g(Y)
という変換を行なうと,確率変数 Xは指数分布にしたがう。

方針

連続一様分布には,変数が明示的に出てこないので,変数変換をして変数を出すためには,ヤコビアンに頼ることになる。

導出

 Y = - \frac{1}{\lambda} \log Y \Leftrightarrow Y = e^{- \lambda X}なので,ヤコビアン J


 \displaystyle 
J = \left| \frac{dy}{dx} \right| = \left| - \lambda e^{- \lambda x} \right| = \lambda e^{- \lambda x}
となる。
よって


 \displaystyle 
f_X(x) = f_Y(g^{-1}(x)) \left| \frac{dy}{dx} \right|  = \lambda e^{- \lambda x}
となり,指数分布が得られた。

ガンマ分布→指数分布の変換

確率変数 Yが,ガンマ分布 Ga(\alpha, \beta)にしたがうとする。

 \alpha = 1, \beta = 1/\lambdaとすると,変換後の確率変数は指数分布にしたがう。

方針

ガンマ分布から指数分布への変換は,変数変換を用いない。すなわちガンマ分布の特殊ケースが指数分布である。

導出


 \displaystyle 
f_Y(y) = \frac{1}{\Gamma(\alpha) \beta ^ \alpha } y^{\alpha -1} e^{- \frac{y}{\beta}}  \quad (x \gt 0)

において, \alpha = 1, \beta = 1/\lambdaとする。 \Gamma(1) = 0! = 1なので,


 \displaystyle 
f_Y(y) = \frac{1}{ 1/\lambda } e^{- \frac{y}{1/\lambda}} =  \lambda e^{- \lambda y}
となり,指数分布が得られた。

ワイブル分布→指数分布の変換

確率変数 Yが,ワイブル分布 Weibull(a, b) \quad (a \gt 0, b \gt 0)にしたがうとする。


 \displaystyle 
f_Y(y) = ab y^{b-1} \exp {(-a y^b)} \quad (x \gt 0)

 X = Y^b, a = \lambdaという変換を行なうと,確率変数 Xは指数分布にしたがう。

方針

変数変換の公式を淡々と当てはめていけば求められる。

導出

 X = Y^b \Leftrightarrow Y = X^{1/b}なので,ヤコビアン J


 \displaystyle 
J = \left| \frac{dy}{dx} \right| =  \frac{1}{b} x^{\frac{1}{b} - 1}
となる。
よって


 \begin{align}
f_X(x) 
&= f_Y(g^{-1}(x)) \left| \frac{dy}{dx} \right|  = \lambda b (x^{\frac{1}{b}})^{b-1} \exp{(- \lambda x)} \times  \frac{1}{b} x^{\frac{1}{b} - 1} \\
&= \lambda b x^{1 - \frac{1}{b}} \exp{(- \lambda x)} \times  \frac{1}{b} x^{\frac{1}{b} - 1} \\
&= \lambda  e^{- \lambda x}
\end{align}

となり,指数分布が得られた。

パレート分布→指数分布の変換

確率変数 Yが,パレート分布 Pareto(\alpha, \beta) \quad (\alpha \gt 0, \beta \gt 0)にしたがっているとする。


 \displaystyle 
f_Y(y) = \beta \alpha ^ \beta y^{-(\beta + 1)} \quad (x \gt 0)

 X = \log{Y}, \alpha = 1, \beta=\lambdaという変換を行なうと,確率変数 Xは指数分布にしたがう。

方針

変数変換の公式を淡々と当てはめていけば求められる。

導出

 X = \log{Y} \Leftrightarrow Y = e^Xなので,ヤコビアン J


 \displaystyle 
J = \left| \frac{dy}{dx} \right| =  e^x
となる。
よって


 \begin{align}
f_X(x) 
&= f_Y(g^{-1}(x)) \left| \frac{dy}{dx} \right|  = \lambda \exp{( -x(\lambda + 1) )} \times e^x \\
&= \lambda  e^{- \lambda x}
\end{align}

となり,指数分布が得られた。

余談

なおこのパレート分布は,統計検定1級出題範囲表には登場しない。にもかかわらず,2022年の統計数理 問4に登場した。
このときは, \alpha=1, \beta = 1/\gammaとしたパレート分布


 \displaystyle 
f_Y(y) = \frac{1}{\gamma}  y^{-(\frac{1}{\gamma} + 1)}
に関する問題が出題された。

まとめ

統計検定1級の頻出分野である指数分布について,連続一様分布・ガンマ分布・ワイブル分布・パレート分布から指数分布へ変換する方法についてまとめた。

「大規模言語モデル入門」を読む〜第2章〜

はじめに

製造業においても,自然言語処理は重要な技術テーマのひとつである。週報などのメール,社内規定などのルール,安全記録や検査記録など,日々多くの文章が業務上で現れる。これらのテキストデータに対して自然言語処理技術を適用して業務効率化を実現していくために,近年発展が目覚ましい大規模言語モデルについて学ぶことにした。

このたび,大規模言語モデルの入門書として,山田 育矢 著「大規模言語モデル入門」を読むこととした。

gihyo.jp

第2章 Transformer

本章では,自然言語処理において標準的に用いられるニューラルネットワークモデルであるTransformerについて説明されている。Transformerは,大規模言語モデルを含む幅広いタスクに応用されている。

2.1 概要

Transformerには,エンコーダ・デコーダ,エンコーダのみ,デコーダのみの3種類が存在する。



図 : Transformerのモデル構造
出所 : Vaswani et. al. "Attention Is All You Need" https://arxiv.org/pdf/1706.03762

2.2 エンコーダ

本節では3種類のTransformerのうち,エンコーダについて,エンコーダを構成する各要素の役割が説明されている。
各要素の入出力や役割について説明する。なお,語彙 Vの次元数は |V|,入力トークンの埋め込みの次元数を Dとする。

入力トークン埋め込み
  • 役割 : 後段の処理ができるよう,入力トークン列を入力トークンの埋め込みに変換する。
  • 入力 : トーク w
  • 処理 : トークンを埋め込みに変換する。
  • 出力 : 入力トークンに対応する埋め込み e_w \in R^D

※註 : この処理を行なうためには,トークンの埋め込み表現を事前に準備しておく必要がある。

位置符号
  • 役割 : 入力トークン埋め込みには,トークンの順序や位置の情報がないので,これらを与える。
  • 入力 : 入力トークン埋め込み e_{w_i}
  • 処理 :

以下の式で定義される D次元の位置符号(position encoding)を計算する。


 \begin{align}
p_{i, 2k+1} &= \sin \left( \frac{i}{10000^{2k/D}} \right) \\
p_{i, 2k+2} &= \cos \left( \frac{i}{10000^{2k/D}} \right) \\
k & \in \{ 0, 1, ..., \frac{D}{2}-1 \}
\end{align}

その後,以下の式を用いて,モデルの入力埋め込み x_iを算出する。


 \displaystyle
x_i = \sqrt{D} e_{w_i} + p_i

  • 出力 : モデルの入力埋め込み x_i
自己注意機構 (self-attention)
  • 役割 : 文脈の情報,すなわちある文章におけるある単語において,関係性が深い別の単語の情報を付与する。
  • 入力 : モデルの入力埋め込み h_i
  • 処理 :

入力された埋め込みに対して,キー(key),クエリ(query),バリュー(value)の3つの異なる埋め込みを計算する。
クエリ埋め込み・キー埋め込み・バリュー埋め込みのそれぞれを q_i, k_i, v_iとすると,これらの3つの埋め込みは D \times D次元の重み行列を用いて,


 \begin{align}
q_i = W_q h_i \\
k_i = W_k h_i \\
v_i = W_v h_i \\
\end{align}
で計算される。
 i番目のトークンから見た j番目のトークンの関連性スコア s_{ij}は,

 \displaystyle
s_{ij} = \frac{q_i ^T k_j}{\sqrt{D}}

そして,出力埋め込み o_iは,関連性スコアをソフトマックス関数を用いて正規化した重み \alpha_{ij}によるバリュー埋め込みの重み付き和になる。


 \begin{align}
\alpha_{ij} & = \frac{\exp(s_{ij})} { \sum_{j'=1}^{N} \exp(s_{ij'})} \\
o_i &= \sum_{j=1}^{N} \alpha_{ij} v_j
\end{align}

  • 出力 : 出力埋め込み o_i
マルチヘッド注意機構
  • 役割 : キー・クエリ・バリュー注意機構の表現力をさらに高めるために,この注意機構を同時に複数適用する。
フィードフォワード
  • 役割 : 活性化関数により,ニューラルネットワークの表現力を高める。
    • 提案当初のTransformerではReLUが用いられていたが,大規模言語モデルではより良い収束性能を発揮するガウス誤差線形ユニット(gaussian error linear unit; GELU)が用いられる。
残差結合
  • 役割 : 勾配消失・勾配爆発問題を回避する。
層正規化
  • 役割 : 値が大きい値になり過ぎないようにして,訓練を安定化させる。
ドロップアウト
  • 役割 : 過適合を防ぐ。

2.3 エンコーダ・デコーダ

上図の構成が,エンコーダ・デコーダ構成であるが,本節ではエンコーダ・デコーダ構成のTransoformerについて説明がされている。

交差注意機構
  • 役割 : 機械翻訳のタスクにおいて,原言語側にをエンコーダ,目的言語側をデコーダとするが,原言語と目的言語をつなげる役割を持つ。
    • バリュー・キーには原言語の出力埋め込みを,クエリには目的言語の「自己注意機構・マスク付」の出力埋め込みを用いる。
トークン出力分布の計算
  • 役割 : 目的言語におけるトークンを予測する。
注意機構のマスク処理
  • 役割 : 目的言語のトークンを予測する際には,初めに出てきたトークンを用いて,目的位置のトークンを予測することになるが,自己注意機構では後ろ側のトークン情報も使ってしまうので,これを避けるために後ろ側のトークンの情報をマスクする(関連度スコアを -\inftyにする)。

まとめと感想

本章では,近年の自然言語処理技術の中核にあるTransformerの解説がなされていた。
Transformer以前の系列データ用のモデルであるRNNやLSTMとはかなり構造が異なっており,なかなか興味深かった。

「大規模言語モデル入門」を読む〜第1章〜

はじめに

製造業においても,自然言語処理は重要な技術テーマのひとつである。週報などのメール,社内規定などのルール,安全記録や検査記録など,日々多くの文章が業務上で現れる。これらのテキストデータに対して自然言語処理技術を適用して業務効率化を実現していくために,近年発展が目覚ましい大規模言語モデルについて学ぶことにした。

なお私の勤務先では,既に大規模言語モデルの業務適用が進んでいる状況だが,新しい技術検証も並行して進めている。これらの技術に関する評価を適切に行なうためにも,大規模言語モデルの理解は重要である。

このたび,大規模言語モデルの入門書として,山田 育矢 著「大規模言語モデル入門」を読むこととした。

gihyo.jp

第1章 はじめに

本章では,細かい説明に入る前に,LLMの成功の要因となっている深層学習モデルであるTransformerについて,サンプルコードを交えて説明している。

1.1 Transformerを使って自然言語処理を解いてみよう

この節では,Transformerのサンプルコードを用いながら,代表的な自然言語処理のタスクを説明している。
サンプルコードでは,Hugging Faceのtransformerのモデルを用いている。

この節で紹介されている代表的なタスクを説明する。

1) 文書分類 (Document Classification)

文書文類は,入力された文章が肯定的(positive)か否定的(negative)であるかどうかを判定するタスクである。また判定結果とともに,所属確率(スコア)を出力する。

2) 自然言語推論 (Natural Language Inference)

自然言語推論は,2つの文章の関係性を,以下の3種類のクラスに分けるタスクである。

  1. 含意 (entailment)
  2. 矛盾 (contradiction)
  3. 中立 (neutral)
3) 意味的類似度計算 (Semantic Textual Similarity)

意味的類似度計算は,2つの文章の類似度を計算するタスクである。この類似度は0〜5の値で表される。
また,文章間の類似度を表す代表的な指標であるコサイン類似度(-1〜1)を出力することも出来る。

4) 固有表現認識 (Named Entity Recognition)

固有表現認識は,文章中に含まれる人名や地名などの固有表現を抽出するタスクである。

5) 要約生成 (Summarization Generation)

要約生成は,その名前の通り文章の要約を生成するタスクである。

その他のタスク

その他の自然言語処理タスクとして代表的なものには,以下のようなものがある。

  • 形態素解析 : 文章を単語列に分解する。
  • 構文解析 : 係り受けなどの文の構造を解析する。
  • 共参照解析 : 異なる名詞が同じものを指しているのか判定する。

1.3 単語埋め込みとニューラルネットワークの基礎

本節では,コンピュータに自然言語を理解させるためのニューラルネットワークモデルである,単語埋め込み (Word Embedding) について説明している。

単語埋め込みに関しては,以下の2つの重要な話題がある。

  • 分布仮説
    • 「ある単語は,その周辺にある単語によって説明される」という仮説である。単語埋め込みは,この仮説にもとづきモデル化がなされる。
    • 具体的なモデルとしてskip-gramがあるが,これはある単語を入力,その周りにある単語を出力とするようなニューラルネットワークモデルである。
    • 文脈化単語埋め込み
    • 単語の意味は,前後の文脈によって変わることがある。文脈も考慮した単語埋め込みの手法を文脈化単語埋め込みと呼ぶ。
    • 代表的なモデルとして,Transformer(2017年)やELMO(2018年)が挙げられる。

まとめ

本章では,Transformerを実際に動かした結果を説明しながら,自然言語処理における重要なタスクについて説明がなされていた。
また自然言語処理におけるニューラルネットワークの代表的な成果である単語埋め込みについても説明がなされていた。