E資格で出る内容として”確率や情報理論の計算”、”機械学習”、”深層学習”、”開発運用環境”があります。こちらからシラバスをダウンロードして確認できます。LaTeXを導入してないので数式がかなり見にくいですが、よくわからなければ調べてみてください。
まずは確率・統計の式です。
- ベルヌーイ分布:P(X=x) = p^x(1−p)^(1−x)、xは結果の値(成功=1、失敗=0)、P は成功確率を表す。例としてスパムメールフィルタリングやクリック予測で使用される
- ガウス分布(正規分布):P(x) = 1 / √(2πσ^2) exp(-(x-μ)^2/2σ^2)、ここでμは平均、σ^2 は分散を表す。例として異常検出や回帰分析で使用される
- 多項分布:P(X1=x1,…,Xk=xk) = n! / x1!…xk! p1^x1…pk^xk、期待値E[X] = xp、分散V[X] = E[X^2] – E[X]^2 = xp(1 – p)、共分散Cov(X,Y) = Σxy – μxμy、相関係数 r = σxy / σxσy(-1~1の範囲)ここでμは平均、σは標準偏差を表す。例としてテキストデータやカテゴリデータのモデリングで使用される。
- ベイズ則(条件付き確率):P(A∣B) = P(B∣A)P(A) / P(B)、例として機械学習モデルのパラメータ推定などで使用される。
次は情報理論の式です。
- 自己情報量:I(x) = – logP(x)、底は2でP(x)はあることが起こる確率→確率が小さくなるほど、情報量は大きくなる
- 平均情報量(エントロピー):H(X) = -ΣP(x)logP(x)、底は2でP(x)はあることが起こる確率、エントロピーが高いほどランダムで予測が難しくなり、データの圧縮や決定木などの機械学習モデルでの特徴選択に使用される。
- 結合エントロピー:H(X,Y) = -ΣP(X,Y)logP(X,Y) → XとYがお互いに独立であればH(X, Y) = H(X) + H(Y)が成り立つ。XとYは事象
- 条件付きエントロピー:H(X | Y) = – ΣxΣyP(X = x | Y = y)P(Y = y)log(P(X = x | Y = y))
- 相互情報量:I(X:Y) = H(X) + H(Y) – H(X, Y) = H(X) – H(X | Y)、二つの変数間の相互依存の度合いを測定、特徴選択やクラスタリングのアルゴリズムで変数間の関係を評価に使用する。
- クロスエントロピー:H(P, Q) = -ΣP(X)logQ(Y)、PとQは確率変数分布、例として多クラス分類問題において、損失関数として使用され損失の最小化を目指す。
- KLダイバージェンス:Dkl(P||Q) = ΣP(X)log(P(X) / Q(X))、確率モデルが生成した分布とシンのデータの分布間の差異の評価に使用される。
- JSダイバージェンス:JS(P||Q) = 1 / 2Dkl(P | 1 / 2(P + Q)) + 1 / 2Dkl(Q | 1 / 2(P + Q))、GANの生成モデルが差異を測定するのに使用する。クラスタ間の距離を測定するのにも使用する。
数学は数式を覚え、計算ができる必要があると思います。ほんとは証明までできれば完璧でしょうが資格を取るだけなら計算ができれば十分だと思います。使用されている例も覚える必要はありません。私はイメージしやすくするため書いてみました。
次は機械学習です。
- 教師あり学習:入力データとそれに対応する正解ラベルを使用してモデルを訓練する学習手法、未知のデータに対して正確な予測や分類を行うこと。以下は代表例
- 線形回帰 (Linear Regression):連続値の予測に使用される。
- ロジスティック回帰 (Logistic Regression):二値分類問題に使用される。
- 決定木 (Decision Trees):分類および回帰タスクに使用される。
- 教師なし学習:正解ラベルなしに入力データのみを使用してモデルを訓練し、データ内のパターンや構造を見つけること。以下は代表例
- K-平均法 (K-Means Clustering):データをK個のクラスタに分割する。
- 階層的クラスタリング (Hierarchical Clustering):データの階層的なクラスタ構造を形成する。
- 主成分分析 (PCA):多次元データの次元削減に使用される。
- 半教師あり学習:大量の未ラベルデータと少量のラベル付きデータを同時に使用してモデルを訓練し、正解ラベルを予測する。ラベル付きデータの取得が困難または高コストな場合は有効だが、精度が低くなったり、ラベル無しデータが少ないと活用しにくい。以下は代表例
- 自己学習 (Self-Training):ラベル付きデータでモデルを訓練し、それを使用して未ラベルデータをラベル付けする。
- 半教師ありサポートベクターマシン (Semi-Supervised SVM):SVMの拡張で、未ラベルデータも境界決定に利用する。
- グラフベース手法 (Graph-Based Methods):データのグラフ表現を使用し、ラベルの伝播を通じて未ラベルデータをラベル付けする。
- 転移学習:あるタスクで学習した知識を別の関連するタスクに適用する。以下代表例
- ファインチューニング (Fine-Tuning):事前に大量のデータで訓練されたモデルを、新しいタスクのデータで再訓練する。
- ドメイン適応 (Domain Adaptation):異なるが関連するドメイン間でモデルを適用する。ここで言われている”ドメイン”とはデータの”場面”や”状況”を指す。例えば室内だけで撮った大量の猫の写真を学習し判別できるようにした状態で、室外でも判別できるように調整すること。
- 特徴抽出 (Feature Extraction):事前訓練されたモデルを特徴抽出器として使用し、その特徴を新しいタスクのモデル訓練に利用する。
次に機械学習の課題についてです。
- 過剰適合 (Overfitting):訓練データに対して高い精度を示す一方で、未知のデータに対しては性能が落ちる現象。以下は解決方法の一例
- データの増強:データセットを増やすことで、モデルの汎用性を高めます。
- ドロップアウト:ニューラルネットワークの訓練中に一部のノードを無効にすることで、過剰適合を減らします。
- 正則化:モデルの複雑さを抑えることで、過剰適合を防ぎます。以下の種類があります。
- L1正則化(Lasso正則化):損失関数にパラメータの絶対値の和に比例する項を加え、パラメータを完全にゼロにする。スパースなモデルを作成し、特徴選択のような効果をもたらす。式:L=L0+λ∑|w|
- L2正則化(Ridge正則化):損失関数にパラメータの二乗の和に比例する項を加え、パラメータの値を抑える。すべてのパラメータが小さくなり、モデルの複雑さが制限される。パラメータの値を小さく保つことで、過剰適合を防ぐが0にはしない。式:L=L0+λ∑w^2
- Elastic Net正則化:L1正則化とL2正則化の両方の特徴を組み合わせた手法。複数の相関する特徴がある場合にも効果的に対処でき、L1の特徴選択の利点とL2のパラメータ値を小さく保つ利点をもつ。
- 過少適合 (Underfitting):訓練データにさえ十分に適合できていない状態。以下は解決方法の一例
- モデルの複雑化:より複雑なモデルを使用することで、データの特徴を捉える能力を高めます。
- 特徴工学:効果的な特徴を選択または生成することで、モデルの学習を助けます。
- ハイパーパラメータの調整:モデルの訓練におけるパラメータを最適化することで、性能を向上させます。
- 次元の呪い (Curse of Dimensionality):データの次元が増加するにつれて、データポイント間の距離が均等に増加し、多くの機械学習アルゴリズムの性能が低下する現象。以下は解決方法の一例
- 特徴選択: 重要な特徴を選択して不要な特徴を削除することで、次元を削減します。
- 次元削減: PCA(主成分分析)、t-SNE、オートエンコーダーなどの技術を使用して、データの次元を減らします。
- PCA:データの分散を最大化する方向を見つけ出し、その方向にデータを射影することで次元を削減する線形の手法。データから平均を引いて中心化、共分散行列を計算し、固有値と固有ベクトルを計算、固有値が大きい順に固有ベクトルを並べ新しい特徴空間に射影する。
- オートエンコーダー:入力データを内部表現にエンコードし、その表現から元のデータを再構成(デコード)するように訓練されたニューラルネットワーク。式:L(x,g(f(x))) = ||x − g(f(x))||^2、入力xと再構成されたデータg(f(x))との間のを最小化する。
- PCAは線形変換に限定されるのに対し、オートエンコーダーは非線形変換も可能で、より複雑なデータの構造を捉えることができる。
次は検証についてです。
- ホールドアウト法:データセットをランダムに二つのグループに分割します。一つは訓練データとして、もう一つは検証データとして使用する。訓練、検証、テストの3分割されることもある。
- メリット
- 実装が簡単で、計算コストが低い。
- 大きなデータセットでは素早く結果を得ることができる。
- デメリット
- データの分割方法によってモデルの性能評価が大きく変わることがある。
- 訓練データとテストデータの分割に偏りが生じると、モデルの一般化能力を正確に評価できない。
- メリット
- k-分割交差検証法(k-fold Cross-Validation):データセットをk個にランダムに分割し、1つをテストデータとして使い、残りのk-1個でモデルを訓練する。このプロセスをk回繰り返し、k回のテスト結果の平均を取ってモデルの性能を評価します。
- メリット
- すべてのデータが訓練データとテストデータの両方に使われるため、データの使用効率が良い。
- データの分割方法による偏りが少なく、より信頼性の高い性能評価が可能。
- デメリット
- ホールドアウト法に比べて計算コストが高く、特にkの値が大きい場合やデータセットが大きい場合、訓練に時間がかかる。
- モデルの訓練と評価に時間がかかるため、非常に大規模なデータセットや計算資源が限られている場合には実用的でないことがある。
- メリット
次は最尤推定についてです。
- 最尤推定 (Maximum Likelihood Estimation, MLE):、観測されたデータに最も適合するようなパラメータの値を見つけること。与えられたデータセットが得られる確率(尤度)を最大化するパラメータを求める。尤度関数:L(θ|x) = P(X = x|θ)でXは観測データ、θはパラメータ、xはデータの値で一般的には対数尤度関数( θ = arg max logL(θ|x) )を最大化する。
- 条件付き対数尤度 (Conditional Log-Likelihood):条件付きモデルや分類問題において、特定の入力Xに対する出力Yの尤度を考える場合に使用する。モデルが与えられた入力に対して正しい出力を生成する確率を最大化するパラメータを推定するのに使用する。条件付き確率:P(Y = y| X = x; θ)で尤度関数:L(θ|x, y) = P(Y = y|X = x; θ)、分類では全データセットに対する条件付き対数尤度の合計を最大化する。θ = arg max logL(θ|x, y)
- 平均二乗誤差 (Mean Squared Error, MSE):回帰モデルの性能を評価するための指標。予測値と実際の値との差の二乗の平均を取ることで、誤差を量化する。外れ値に対して敏感である。式:MSE = 1 / nΣ(μy – y)^2、μは平均
次はハイパーパラメータの選択方法です。手動以外を考えます。
- ランダムサーチ (Random Search):ハイパーパラメータの候補空間から無作為に組み合わせを選択して評価する方法。最も性能の良い組み合わせを選択する。
- メリット
- 広い範囲のハイパーパラメータ空間を探索できる。
- 計算コストが高いグリッドサーチに比べて、より少ない試行で良好な結果を見つけることができる場合がある。
- デメリット
- 最適なハイパーパラメータを見つけ逃す可能性がある。
- 探索空間が大きい場合、良好な結果を得るのに十分なサンプリングが保証されない。
- メリット
- グリッドサーチ (Grid Search):ハイパーパラメータの全ての組み合わせを系統的に試す方法。最も良い性能を示す組み合わせを選択する。
- メリット
- 網羅的にハイパーパラメータ空間を探索し、最適な組み合わせを見逃すリスクが低い。
- 実装が簡単で、理解しやすい。
- デメリット
- 計算コストが非常に高い。ハイパーパラメータの数や候補の数が増えると、指数関数的に試行回数が増加する。
- 網羅的探索のため、効率が悪く、時間がかかる。
- メリット
- モデルに基づくハイパーパラメータの最適化:ハイパーパラメータの性能を予測する代理モデルを用いて、効率的に最適なハイパーパラメータを見つけ出す手法。過去の試行結果を基に、次に試すべきハイパーパラメータを決定する。例えばベイジアン最適化がある。
- メリット
- 高い効率性。モデルの性能を予測することで、無駄な試行を減らし、計算資源を節約できる。
- グリッドサーチやランダムサーチに比べて、少ない試行回数で良好なハイパーパラメータを見つけることが可能。
- デメリット
- サロゲートモデルの選択や設定が結果に影響を与える。
- 実装が複雑で、ベイジアン最適化の理解と適用には専門知識が必要な場合がある。
- 式についてベイジアン最適化においては、獲得関数(Acquisition Function)を最大化するハイパーパラメータを選択する。獲得関数には、予測される性能の期待値を最大化するExpected Improvement (EI) などがある。
- メリット
次は強化学習についてです
- 方策勾配法:方策(エージェントがどのような行動を取るべきかを定義する確率分布)を直接最適化するアプローチ。エージェントの行動ポリシーをパラメータ化し、得られる報酬を最大化するようにパラメータを調整する。
- 問題点
- 局所最適解: 方策勾配法は局所最適解に収束する可能性がある。
- 分散が高い: 勾配推定の分散が高く、学習が不安定になりやすい。
- サンプル効率が低い: 多くのサンプルを必要とすることが多く、特に複雑な環境では学習に時間がかかる。
- 解決法
- 分散の低減: ベースラインの導入やアドバンテージ関数の使用で分散を低減する。
- アクタークリティック法: 方策勾配法と価値関数推定を組み合わせたアクタークリティックアプローチで学習の安定性と効率を向上させる。
- 代表例
- REINFORCE: 方策勾配定理に基づいて方策のパラメータを更新する。式:θt+1 = θt + α▽log π(a | s)R、θは方策パラメータ、αは学習率、π(a | s)は時刻tで状態sにおいて行動aを取る確率、Rは報酬
- Actor-Critic: 方策(Actor)と価値関数(Critic)を組み合わせた手法。Criticが価値関数を評価し、Actorが方策の改善を行う。
- 問題点
- 価値反復法:各状態の価値を推定し、その価値に基づいて最適なポリシーを求めるアプローチ。状態-行動ペアの価値(Q値)を更新していき、最適な行動選択基準を学習する。代表例としてはQ学習やSARSAがある。
- 問題点
- 大規模な状態空間: 多くの状態や行動を持つ問題では、価値関数の表現や更新が困難。
- 計算コスト: 全ての状態-行動ペアの価値を計算し更新する必要があり、計算コストが高くなる。
- 解決法
- 関数近似: ニューラルネットワークなどの関数近似器を用いて価値関数をパラメータ化し、大規模な状態空間に対処する。
- 経験リプレイ: 過去の経験をメモリに保存し、ランダムにサンプリングして学習に利用することで、サンプル効率を改善する。
- 代表例
- Q-Learning:最適な行動価値関数(Q関数)を学習するオフポリシー(行動方策と評価方策が異なる)アルゴリズム、式:Q(st, at)←Q(st, at) + α[rt+1 + γ max Q(st+1, a) – Q(st, at)] ここで、αは学習率、γは割引率、rt+1は報酬
- SARSA (State-Action-Reward-State-Action):Q-Learningと同様に行動価値関数を学習しますが、オンポリシー(行動方策と評価方策が同じ)アルゴリズム、式:Q(st, at)←Q(st, at) + α[rt+1 + γQ(st+1, at+1) – Q(st, at)]
- 問題点
今回はいったんここまでにします。知識だけをまとめましたが、プログラムで実装できるようになっておきたいですね。次回は深層学習ですが長くなりそうなので前半、後半に分けようと思います。もしかしたら間違ってる個所もあるかもしれないのでもう少し調査しつつ、E資格に向けて頑張っていきましょう!ではでは