見出し画像

【最新版】G検定のチートシート|DeepLearning/数理統計/機械学習を重点的に

割引あり

こんにちは、青の統計学です。

青の統計学では、日々データサイエンスの専門性を磨けるコンテンツを配信しています。色々見てやってください。

WEB版https://statisticsschool.com/
特徴:毎日更新、専門的な内容、

LINE版https://lin.ee/jY1k9aj
特徴:限定特典、新着通知、アンケートや先行配信

note版https://note.com/bluestatistics
特徴:チートシート、長めで専門的なコンテンツ、

X(旧Twitter版)https://x.com/blue_statistics
特徴:毎日更新、データサイエンス系の優良教材を紹介、スタッフアカウントもよろしくお願いします。

noteでは、チートシート完全版を投稿しています

今回は、G検定のチートシートを書きました。

G検定とは、一般社団法人日本ディープラーニング協会(JDLA)が実施するAIに関する資格試験です。ディープラーニングの基礎知識から、機械学習、深層学習の応用事例まで幅広い知識を問われます。

2024年#6から試験範囲が変わるのですが、こちらの最新版に対応しております。

統計検定に興味がある方は、以下のコンテンツをご覧ください。



この記事は、以下の方々におすすめです!

▪️G検定に合格したい
▪️データサイエンティストを目指す学生や社会人
▪️技術の数学的背景や課題、裏側のアルゴリズムに興味がある方
▪️生成AIに興味がある方

この教材の特徴と使い方

まず、この教材のレベル感について補足しますが、以下のような市販の書籍よりもやや難しいです。

チートシート箇所を見るだけであれば、難易度は普通です。ただ、その後の説明に魂を込めているので少し長く、難しくなってしまいました。説明は丁寧にしているので、じっくり読み込んでいただけると理解できるかと思います。


使い方①

各項目についての応用的な補足や証明については、別サイト「青の統計学-Data Science School-」の参考コンテンツを豊富に貼り付けておりますので、並行して学習に役立てていただければと思います。

使い方②

項目の最初に押さえるべき「チートシートポイント」を箇条書きで記載しています。本質的な理解のために説明や補足、背景となる知識を下部に詳細に記載しています。試験までお時間がある場合は、説明まで目を通していただけると幸いです。

使い方③

難易度の低い順にセクションを並べており、以下のような基準で選定しています。
難易度⭐️→わかっていないと困る。
難易度⭐️⭐️→最低限理解していないと合格は難しい。
難易度⭐️⭐️⭐️→合格を確かなものにするために必要、やや込み入った知識。
補足:該当セクションで補足しておく事項を説明しています。極めていきたい方は要チェックです。


さて、説明は以上になります。
今回は、いつもよりも大ボリュームになってしまったので、チートシートポイントのみをまとめたセクションを最後にまとめています。

チートシートだけを確認したい方は、サッとそちらをご覧いただければと思います。



機械学習手法|教師あり学習


ここでは、教師データをもとにモデルを作成し、未知データの値を予測する教師あり学習の手法について確認していきます。


難易度⭐️|線形回帰とOLS推定(最小二乗推定)

  • 目的変数と説明変数の線形関係をモデル化

  • $${y = \beta_0 + \beta_1x_1 + ... + \beta_nx_n + \epsilon}$$

  • 最小二乗法で係数を推定

  • データは正規分布からのサンプリングとして仮定される


ここは、統計学と機械学習の基礎となるような事項です。
というのも、このセクションでは単純なモデルが扱われることが多いですが、その基本的な概念は、より複雑なモデル(例えば、ニューラルネットワーク)の基礎となっています。ここはしっかり抑えたいですね!


線形回帰は、独立変数(説明変数)と従属変数(目的変数)の間の線形関係をモデル化する手法です。

最も基本的な形式では、単一の独立変数 $${x}$$ と従属変数 $${y}$$ の関係を次のように表現します。

$${y = \beta_0 + \beta_1x + \epsilon}$$

  • $${\beta_0}$$ は切片

  • $${\beta_1}$$ は傾き

  • $${\epsilon}$$ は誤差項

さて、多くの場合は上のような単回帰ではなく、複数の説明変数を使った重回帰モデルが構築されます。多変量線形回帰とも言いますね。


複数の独立変数を扱う場合は、面倒なのでベクトルで書くことが多いです。
記法にも慣れたいですね〜

$${\mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\epsilon}}$$

  • $${\mathbf{y}}$$ は $${n \times 1}$$ の従属変数ベクトル

  • $${\mathbf{X}}$$ は $${n \times (p+1)}$$ の設計行列(各行は観測値、各列は変数、最初の列は1)

  • $${\boldsymbol{\beta}}$$ は $${(p+1) \times 1}$$ のパラメータベクトル

  • $${\boldsymbol{\epsilon}}$$ は $${n \times 1}$$ の誤差ベクトル


で、最小二乗法(OLS)はなんなのかと言いますと、線形回帰モデルのパラメータを推定する最も一般的な方法のことです。

目的は、残差平方和(RSS: Residual Sum of Squares)を最小化することです。

$${\text{RSS} = \sum_{i=1}^n (y_i - \hat{y}_i)^2 = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^T(\mathbf{y} - \mathbf{X}\boldsymbol{\beta})}$$

RSSを最小化する $${\boldsymbol{\beta}}$$ の解は、以下の正規方程式を解くことで得られます:

$${\mathbf{X}^T\mathbf{X}\boldsymbol{\beta} = \mathbf{X}^T\mathbf{y}}$$

これにより、OLS推定量 $${\hat{\boldsymbol{\beta}}}$$ が得られます

$${\hat{\boldsymbol{\beta}} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}}$$


OLS推定量は、ガウス・マルコフの定理の下で最良線形不偏推定量(BLUE: Best Linear Unbiased Estimator)となります。


普段何気なく回帰をしているかもしれませんが、統計的な観点でいうとOLSには、成り立つための大事な仮定があります。

  1. 線形性:モデルは変数とパラメータに関して線形である。

  2. 外生性:$${\mathbb{E}[\boldsymbol{\epsilon}|\mathbf{X}] = \mathbf{0}}$$

  3. 均一分散性:$${\text{Var}(\epsilon_i|\mathbf{X}) = \sigma^2}$$

  4. 独立性:誤差項は互いに独立している

  5. 多重共線性がない:$${\mathbf{X}}$$ の列は線形独立である。

これらの仮定が満たされない場合、OLS推定量は望ましい性質を失う可能性があります。

特に5番目は重要で、マルチコと呼ばれる問題です。
特徴量の選定に関わる大事なトピックなので、範囲外ですが是非確認していただけると幸いです。




補足|代表的な評価指標と、パラメータの有用性

モデルを作ると評価指標とは必ずセットで考えたいですね。

モデルの適合度を評価するために、決定係数 $${R^2}$$ が使用されます。

$${R^2 = 1 - \frac{\sum_{i=1}^n (y_i - \hat{y}i)^2}{\sum{i=1}^n (y_i - \bar{y})^2}}$$

$${R^2}$$ は0から1の値をとり、1に近いほどモデルの当てはまりが良いことを示します。


ここからは統計チックな話になるのですが、OLSで推定したパラメータの統計的有意性を検定するために、t検定が使用されます

各パラメータ $${\beta_j}$$ に対する t統計量は以下のように計算されます:

$${t_j = \frac{\hat{\beta}_j}{\text{SE}(\hat{\beta}_j)}}$$

ここで、$${\text{SE}(\hat{\beta}_j)}$$ は $${\hat{\beta}_j}$$ の標準誤差です。

パラメータに関する検定はt値を見れば良いのですが、モデル全体だとどうでしょう?何度もt検定するのは大変だし、多重検定の問題もあります。

モデル全体の有意性を検定するために、F検定が使用されます。F統計量は以下のように計算されます:

$${F = \frac{(\text{TSS} - \text{RSS})/p}{\text{RSS}/(n-p-1)}}$$

ここで、TSS(Total Sum of Squares)は総平方和です。

F検定まで深掘りすると、流石にG検定とは関係ない教材になってしまうので、以下の記事や統計検定のnote記事をご覧いただけると幸いです。

線形回帰とOLSは、その単純さと解釈のしやすさから、多くの応用分野で広く使用されています。しかし、非線形性や複雑な相互作用を扱うことができないという限界があります。そのため、より複雑なモデル(多項式回帰、スプライン回帰、一般化加法モデルなど)が開発されています。




難易度⭐️|平均二乗誤差とクロスエントロピー

  • 平均二乗誤差:$${E(y,\hat{y})=\frac{1}{N}\sum_{n=1}^{N}(\hat{y_n}-y_n)^2)}$$

  • 回帰問題 (連続値の予測) に主に使用し、外れ値の影響を受けやすい。

  • クロスエントロピー:$${E(y,\hat{y})=-\sum_{n=1}^N\sum_{k=1}^Klog\hat{y_{nk}}}$$

  • 分類問題 (離散値の予測) に主に使用。確率分布間の差異を測る。


さて、当たり前の話ですが、教師あり学習では機械学習モデルがデータセット$${D}$$に含まれる$${(x,y)}$$の関係$${y=f(x)}$$を学習することで、未知の入力$${x}$$に対する予測値を推論することができます。

よく$${y=f(x)}$$はモデル、と呼ばれますが探索対象とする関数の空間を表しており、パラメータ$${\theta}$$を用いて記述されます。
このようなモデルをパラメトリックモデルと呼びます。

$${f(x;\theta)}$$

パラメータを明示的に記述しないモデルをノンパラメトリックモデルと呼びます。

さて、目先でやりたいことがビジネス課題の解決→モデルの構築→パラメータ$${\theta\in(w,b)}$$の推定と落とし込むことができました。$${w,b}$$はそれぞれ重みやバイアスです。


では、どういったパラメータが最適でしょうか?

例えば、訓練データ$${D}$$に適合するようなモデル$${f}$$のパラメータは、モデルの予測と正解の誤差が小さくなるように調整を行うはずです。ここを目的関数と呼びます。


ここでは二つの目的関数をご紹介します。

平均二乗誤差(mean squared error)

正解値$${y}$$と予測値$${\hat{y}=f(x)}$$の差の平方の平均のことです。
当然これは小さくなったほうが良いですね。

出力$${y}$$が連続値を取る時、つまり回帰問題などで使われる目的関数です。

$${E(y,\hat{y})=\frac{1}{N}\sum_{n=1}^{N}(\hat{y_n}-y_n)^2)}$$

こちらでも取り上げております。


クロスエントロピー誤差

各クラス$${k}$$における予測確率$${\hat{y_k}}$$と正解ラベル$${y_k}$$の近さの総和です。出力値$${y_{k}}$$が離散値を取るときに使われます。

$${E(y,\hat{y})=-\sum_{n=1}^N\sum_{k=1}^Klog\hat{y_{nk}}}$$

正解クラス$${k}$$に対する予測確率$${\hat{y_k}}$$を1に近づけたいと言うのがモチベーションです。分類問題において最も広く使われる損失関数の一つで、特に、二値分類問題に適用されます。この損失関数は、予測された確率が実際のラベルに近いほど小さくなります





難易度⭐️|ロジスティック回帰

  • 二値分類問題に用いられる手法

  • シグモイド関数を用いて確率を推定

  • $${P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + ... + \beta_nX_n)}}}$$

ロジスティック回帰は、分類問題における代表的な線形モデルの一つです。

主に二値分類(二項分類)問題で使用されますが、多クラス分類(多項分類)問題にもソフトマックス関数を使えば拡張可能です。

順に見ていきましょう。

ロジスティック回帰は、データポイントがあるクラスに属する確率をモデル化します。具体的には、確率を0から1の範囲に収めるために以下のようなシグモイド関数(ロジスティック関数)を使用します。

$${\sigma(z) = \frac{1}{1 + \exp(-z)}}$$

$${z}$$は入力ベクトルの線型結合ですね。

$${z = \mathbf{w}^\top \mathbf{x} + b}$$


シグモイド関数


ロジスティック回帰では、クラス1に属する確率 $${P(y=1∣\mathbf{x})}$$ を次のようにモデル化します

$${P(y=1|\mathbf{x}) = \sigma(\mathbf{w}^\top \mathbf{x} + b) = \frac{1}{1 + \exp(-(\mathbf{w}^\top \mathbf{x} + b))}}$$

クラス0に属する確率$${P(y=0∣\mathbf{x})}$$ は次のように表されます

$${P(y=0|\mathbf{x}) = 1 - P(y=1|\mathbf{x})}$$

さて、ロジスティック回帰のモデルパラメータ $${\mathbf{w}}$$ と $${\mathbf{b}}$$ を学習するために、対数尤度を最大化します。

二項分類問題の対数尤度は次のように定義されます

$${\ell(\mathbf{w}, b) = \sum_{i=1}^N \left[ y_i \log \sigma(\mathbf{w}^\top \mathbf{x}_i + b) + (1 - y_i) \log (1 - \sigma(\mathbf{w}^\top \mathbf{x}_i + b)) \right]}$$

対数尤度を最大化することは、負の対数尤度を最小化することと等価です。

$${L(\mathbf{w}, b) = -\ell(\mathbf{w}, b) = -\sum_{i=1}^N \left[ y_i \log \sigma(\mathbf{w}^\top \mathbf{x}_i + b) + (1 - y_i) \log (1 - \sigma(\mathbf{w}^\top \mathbf{x}_i + b)) \right]}$$





難易度⭐️⭐️|勾配降下法

  • 最適化問題を解くための反復的アルゴリズム

  • 損失関数の勾配方向に沿ってパラメータを更新

  • $${\theta_{t+1} = \theta_t - \alpha \nabla J(\theta_t)}$$ ($${\alpha}$$は学習率)


さて、上のセクションで対数尤度関数をパラメータについて微分してイコール0を解く、と言う話をしましたが、それは基本的な確率分布だからできる話であり、実データを使った尤度関数だとなかなか解析的に最尤推定量を求めるのは難しいのです。

探索的にパラメータを求めたい場合に使われるのが勾配降下法です。

この辺りの考え方は、MCMC(ベイズ推定で使われるパラメータ探索手法)などの直感的理解にもつながるので、しっかりと学習してほしいです。


上の図のように、目的関数が小さくなるようなパラメータを少しずつ探っていく方法です。


パラメータ$${\mathbf{w}}$$の勾配更新

$${\frac{\partial L}{\partial \mathbf{w}} = \sum_{i=1}^N (\sigma(\mathbf{w}^\top \mathbf{x}_i + b) - y_i) \mathbf{x}_i}$$

$${\mathbf{w} \leftarrow \mathbf{w} - \eta \frac{\partial L}{\partial \mathbf{w}}}$$

ここの$${\eta}$$は学習率といい、これを大きくすればするほど、空間内の一回の探索幅が大きくなり、学習が収束に近づきますが、安定しません。逆に小さいと、学習が終わらないし、局所解に陥ることがあります。学習率は初期設定に依存し、適切な値を選定するためには経験的なアプローチが必要です。

イメージとしては、ちょっと凹んだ部分が目的関数の最小値だと思いこみ、そこからぐるぐる抜け出せない状態です(伝わってほしい)


少し上の図だと分かりにくいのですが、最も損失関数が低い部分ではなくその横あたりで探索が終了していることがわかります。これなんかは、二次関数にsin関数を追加することで、複数の局所最小値を持つ関数を簡単に作成できます。


つまり、適切なパラメータ(目的関数を最小値にする、は無理でもそれに極めて近い値)を求めるには学習率、更新の速度をうまく調整する必要があります。


バイアス$${\mathbf{b}}$$についても同じですね。

$${\frac{\partial L}{\partial b} = \sum_{i=1}^N (\sigma(\mathbf{w}^\top \mathbf{x}_i + b) - y_i)}$$

$${b \leftarrow b - \eta \frac{\partial L}{\partial b}}$$


さて、ロジスティック回帰の理解は進みましたでしょうか。実務でも多く使われているので、しっかり身につけてほしいです。

$${k=2}$$を超えるカテゴリの場合はシグモイド関数ではなく、ソフトマックス関数を使うので、ご注意ください。




難易度⭐️⭐️⭐️|ミニバッチ勾配降下法とエポック

  • データの一部(ミニバッチ)を使用して勾配を計算し、パラメータを更新

  • エポックは、訓練データセット全体を1回学習するサイクルのこと

  • 複数のエポックを繰り返すことで、モデルの性能を向上させるが、エポック数は過学習とのトレードオフを考慮して決定する


さて、局所解から抜け出す方法の一つとして、ミニバッチ勾配降下法があります。

ミニバッチ勾配降下法は、トレーニングデータを小さなバッチ(ミニバッチ)に分割し、各バッチに対して勾配を計算してパラメータを更新します。以下は手順です。

  1. トレーニングデータをシャッフル

  2. トレーニングデータをバッチサイズ $${m}$$ に分割

  3. 各バッチに対して以下の操作を行う

    • 勾配を計算

    • パラメータを更新

手順1の部分、サンプリングの過程でランダムネスが入るため、局所解から抜け出しやすいです。

バッチサイズを $${m}$$ とすると、ミニバッチ $${\mathcal{B}}$$ における損失関数は次のように定義されます

$${L_{\mathcal{B}}(\mathbf{w}, b) = -\frac{1}{m} \sum_{i \in \mathcal{B}} \left[ y_i \log \sigma(\mathbf{w}^\top \mathbf{x}_i + b) + (1 - y_i) \log (1 - \sigma(\mathbf{w}^\top \mathbf{x}_i + b)) \right]}$$

これに基づく勾配更新は次のように計算されます。
順に重み$${w}$$バイアス$${b}$$です。

$${\frac{\partial L_{\mathcal{B}}}{\partial \mathbf{w}} = \frac{1}{m} \sum_{i \in \mathcal{B}} (\sigma(\mathbf{w}^\top \mathbf{x}_i + b) - y_i) \mathbf{x}_i}$$

$${\mathbf{w} \leftarrow \mathbf{w} - \eta \frac{\partial L_{\mathcal{B}}}{\partial \mathbf{w}}}$$

$${\frac{\partial L_{\mathcal{B}}}{\partial b} = \frac{1}{m} \sum_{i \in \mathcal{B}} (\sigma(\mathbf{w}^\top \mathbf{x}_i + b) - y_i)}$$

$${b \leftarrow b - \eta \frac{\partial L_{\mathcal{B}}}{\partial b}}$$


パラメータの更新後に検証データでモデルの性能を評価します。そして、ハイパーパラメータであるエポック数に応じて、上の手順を繰り返します。

*エポック(epoch)は、全てのトレーニングデータが一度モデルを通過することを指します。エポックが完了するごとに、モデルはデータ全体を一度見て学習することになります。深層学習だと通常、複数のエポックを通してモデルをトレーニングし、収束を目指します

ちなみに、当然エポック数が増えれば増えるほど過学習の懸念が増すので、言語モデルの事前学習のエポック数は基本1回です。




難易度⭐️|決定木

ここから先は

87,201字 / 16画像

期間限定 PayPay支払いすると抽選でお得に!

この記事が参加している募集

頂いた活動費は、全て「青の統計学」活動費用に使います!note限らずサービス展開していくのでお楽しみに!