目次
背景
- semi-supervised learningについて調べていたら
machinelearning.wtfというサイトにあたった - Machine Learning Glossary という機械学習の用語集のサイト
- 少し読んでて色々と面白かったので、全部読みたかったので、AIに簡潔にまとめてもらった
機械学習の設計と学習タイプ (Learning Paradigms)
基本的な学習方法
- 教師あり学習 (Supervised Learning)
- 定義: 入力データ $X$ と、それに対応する正解ラベル(ターゲット) $Y$ のペアを用いてモデルを訓練する手法。
- 目的: 未知の入力に対して、正しい出力(クラスや数値)を予測する関数を学習する。代表例に分類(Classification)と回帰(Regression)がある。
- 教師なし学習 (Unsupervised Learning)
- 定義: 正解ラベルのないデータを受け取り、データ自体に潜む構造、パターン、あるいは関係性を見つけ出す手法。
- 主なタスク: データを似たもの同士に分ける「クラスタリング」、高次元のデータを扱いやすくする「次元削減」、異常を検知する「異常検知」など。
- 半教師あり学習 (Semi-supervised Learning)
- 定義: 大量の「ラベルなしデータ」と、少量の「ラベルありデータ」を組み合わせて学習を行う手法。
- メリット: すべてのデータに手動でラベルを付けるコストを劇的に削減しつつ、教師なし学習よりも高い精度(予測の方向性)を得ることができる。
高度な学習アプローチ
- 自己監督あり学習 (Self-supervised Learning)
- 定義: データ自身から自動的に疑似的な正解ラベル(Pretext task)を生成して学習する手法。
- 応用: 大規模言語モデル(LLM)の「次の単語予測」や、画像表現学習(Contrastive Learning)などで中心的な役割を果たす。
- 弱教師あり学習 (Weak Supervision)
- 定義: 専門家による高品質なラベルの代わりに、クラウドソーシングによるノイズを含むラベル、大雑把なルールベースのラベル(Heuristic labels)、あるいは別の簡易モデルが出力した低品質なラベルを用いて訓練する手法。
- 強化学習 (Reinforcement Learning - RL)
- 定義: エージェント(行動主体)が環境(Environment)の中で行動(Action)を選択し、その結果得られる報酬(Reward)を最大化するように試行錯誤を通じて学習する手法。
データの割り当てと統計的仮定 (Data & Evaluation Setup)
データセットの分割
- 訓練データセット (Training Dataset)
- モデルのパラメータ(重みとバイアス)を直接更新・調整するために使用される最大のデータ。
- 検証データセット (Validation Dataset)
- 訓練中のモデルの性能を評価し、過学習を監視したり、ハイパーパラメータ(学習率や層の数など)を最適化するために使用されるデータ。
- テストデータセット (Test Dataset)
- 訓練およびハイパーパラメータ調整が完全に終了した最終モデルに対して、一度だけ適用される独立したデータ。モデルの「真の汎化性能」を計測する。
評価・検証アルゴリズム
- 交差検証 (Cross Validation)
- データを $K$ 個のグループ(フォールド)に分割し、そのうちの1つを検証用、残りを訓練用として $K$ 回学習と評価を繰り返す手法。限定されたデータセットで過学習を防ぎ、信頼性の高い評価を行う。
- 独立同分布 (i.i.d - Independent and Identically Distributed)
- データセット内の各サンプルが「互いに他のサンプルに影響を与えず(独立)」、かつ「すべて同じ確率分布から発生している(同分布)」という仮定。ほとんどの統計的機械学習アルゴリズムの前提となる。
エラー分析とモデルの課題 (Error Analysis & Constraints)
バイアスとバリアンス
- バイアス・バリアンスのトレードオフ (Bias-Variance Tradeoff)
- モデルの予測誤差を構成する2つの主要因のバランス関係。一方を下げようとすると、もう一方が上がりやすくなる。
- バイアス (Bias): モデルの前提や構造が単純すぎるために発生する一貫した誤差。**アンダーフィッティング(過小適合)**を招く。
- バリアンス (Variance): 訓練データの微細なノイズや個体差に対してモデルが敏感すぎるために発生する誤差。**オーバーフィッティング(過学習)**を招く。
適合の課題
- オーバーフィッティング (Overfitting / 過学習)
- モデルが訓練データのノイズや特殊なパターンまで過剰に学習してしまい、未知のテストデータに対する性能(汎化性能)が著しく低下する現象。
- アンダーフィッティング (Underfitting / 過小適合)
- モデルの表現力が低すぎる(または訓練不足である)ため、データの根底にある本質的な構造やパターンを捉えきれていない状態。訓練データでもテストデータでもエラーが高くなる。
ニューラルネットワークの構成要素 (Neural Network Components)
活性化関数 (Activation Functions)
- 活性化関数 (Activation function)
- 各ニューロンの出力を決定する関数。入力の線形結合に対して適用され、ネットワークに非線形性を導入する。これにより、単純な直線の組み合わせでは表現できない複雑な境界線を学習可能にする。
- ReLU (Rectified Linear Unit)
- 数式: $f(x) = \max(0, x)$
- 特徴: 入力が正であればそのまま出力し、負であれば0を出力する。計算が非常に高速で、勾配消失問題を劇的に緩和するため、最も広く使われている。
- Leaky ReLU
- 数式: $f(x) = \max(\alpha x, x)$ (一般に $\alpha = 0.01$ などの小さな値)
- 特徴: 入力が負の領域でもわずかな傾きを持たせることで、ニューロンが完全に停止する問題を解決する。
- Dying ReLU
- 現象: 訓練中の大きな勾配更新によって、あるニューロンの入力が常に負になってしまい、ReLUの出力と勾配が完全にゼロ(機能停止)になってしまう現象。一度この状態に陥ると、そのニューロンは二度と更新されなくなる。
- Softmax (ソフトマックス関数)
- 役割: 出力層のベクトルを、各要素が0〜1の範囲に収まり、かつ総和が1になるように変換する関数。多クラス分類において、各クラスの「予測確率」を表現するために使用される。
最適化手法 (Optimizers)
- 勾配降下法 (Gradient Descent)
- 損失関数(エラー)の勾配を計算し、その傾きと逆方向にモデルのパラメータ(重み)を繰り返し更新して最小値を目指す基本的なアルゴリズム。
- AdaGrad (Adaptive Gradient Algorithm)
- 過去の勾配の履歴を蓄積し、頻繁に更新されるパラメータの学習率を小さく、あまり更新されないパラメータの学習率を大きく自動調整する手法。稀な特徴量の学習に強い。
- ADAM Optimizer (Adaptive Moment Estimation)
- 勾配の過去の平均(Momentum)と、勾配の二乗の過去の平均(RMSProp)の2つの概念を組み合わせた最適化アルゴリズム。現在のディープラーニングにおいて最も安定し、広く使われている。
- 適応的学習率 (Adaptive learning rate)
- 訓練の進捗やパラメータごとの勾配の振る舞いに応じて、ハイパーパラメータである学習率を動的かつ自動的に変化させる仕組み全般。
- モメンタム (Momentum)
- 物理的な「慣性」の概念を勾配降下法に取り入れた手法。過去の更新方向を一定の割合で維持することで、局所最適解(ローカルミニマム)の脱出を助け、パラメータの振動を抑制する。
- 1-bit Stochastic Gradient Descent (1-bit SGD)
- 複数のマシンで並列して訓練を行う(分散学習)際、データ通信量を削減するため、各ノードが計算した勾配の値を1ビット(正か負か)の符号情報のみに量子化して通信する高速化技術。
正則化・初期化技術 (Regularization & Initialization)
- バッチ正規化 (Batch Normalization)
- ニューラルネットワークの各中間層の出力を、ミニバッチごとに平均0、分散1に正規化(スケーリング)する手法。学習速度の向上、初期値依存の軽減、過学習の抑制(正則化効果)をもたらす。
- 内部共変量シフト (Internal Covariate Shift)
- ネットワークの層が深くなるにつれ、前の層のパラメータ更新によって、後ろの層への入力データの確率分布が訓練中に絶えず変化してしまう現象。バッチ正規化はこれを緩和するために導入された。
- ドロップアウト (Dropout)
- 訓練の各ステップにおいて、ランダムに一定割合(例: 50%)のニューロンを無効化(ゼロに)して学習させる強力な正則化手法。特定のニューロンへの過度な依存(共同適応)を防ぎ、過学習を抑制する。
- 倒置ドロップアウト (Inverted Dropout)
- 訓練時にドロップアウトを適用すると、生存したニューロンの出力の総和が小さくなってしまうため、訓練時にあらかじめ出力を $(1-p)$ で割ることでスケールを補正する手法。これにより、推論(テスト)時に特別なスケーリング処理を行う必要がなくなる。
- ランダム初期化 (Random Initialization)
- ネットワークのパラメータ(重み)を一様な0ではなく、ランダムな小さな値で初期化すること。
- 対称性の打破 (Symmetry Breaking)
- もしすべての重みを同じ値(例:0)で初期化すると、すべてのニューロンが全く同じ勾配を計算し、同じ値に更新されてしまう。これ(対称性)を防ぎ、各ニューロンに異なる役割を持たせるためにランダム初期化が必要となる。
- Heの初期化 (He Initialization)
- 活性化関数にReLU(またはその派生)を使用するディープネットワークに最適化された重みの初期化手法。前層のノード数 $n$ に対して、分散 $2/n$ のガウス分布から重みを抽出する。層が深くても勾配消失・爆発を防ぐ。
ネットワーク特有の現象
- 破滅的忘却 (Catastrophic Forgetting)
- 一般的なニューラルネットワークが新しいタスク(例: 犬の分類)を学習した際、それ以前に完璧に学習していた古いタスク(例: 猫の分類)の知識(パラメータ)を急激に上書きしてしまい、完全に忘れてしまう現象。継続学習(Continual Learning)における大きな課題。
コンピュータビジョン (Computer Vision)
畳み込み演算と空間操作
- フィルター (Filter / 畳み込みカーネル)
- 画像からエッジ、テクスチャ、形状などの特徴を抽出するために、入力画像の上をスライド(畳み込み)させる小さな行列。
- 1x1 Convolution (1x1 畳み込み)
- カーネルサイズが $1 \times 1$ の畳み込み。画像の縦横(空間解像度)サイズはそのままに、チャンネル(特徴量)の次元数を削減・増加させたり、非線形活性化関数を挟んで表現力を高めるために使われる。
- プーリング層 (Pooling layer)
- 特徴マップの空間サイズを縮小し、計算量を削減すると同時に、物体の位置が多少ズレても同じ特徴として捉える「位置不変性」を付与する層。Max Pooling(最大値抽出)やAverage Pooling(平均値抽出)がある。
- パディング (Padding)
- 畳み込み処理を行う前に、入力画像の周囲に特定のデータ(通常は0)を付け足す操作。画像の端にあるピクセル情報が消失するのを防ぎ、出力サイズを制御する。
- Same Convolution: 入力画像と出力特徴マップの空間サイズが全く同じになるように自動でパディングを行う設定。
- Valid Convolution: パディングを一切行わない(No padding)設定。出力サイズは入力より小さくなる。
- Zero Padding: パディングの際、周囲を「0」のピクセルで埋める最も標準的な手法。
- ソーベルフィルター (Sobel Filter)
- 画像の水平方向・垂直方向における輝度の急激な変化(微分)を計算し、エッジ(輪郭)を検出する古典的な画像処理用畳み込みフィルター。
物体検出と認識
- バウンディングボックス (Bounding Box)
- 画像内に存在する対象の物体を囲む四角い枠。一般的に、中心座標 $(x, y)$ と幅・高さ $(w, h)$、または左上と右下の2点の座標で指定される。
- アンカーボックス (Anchor Box)
- 物体検出(YOLOやFaster R-CNNなど)において、画像内の各位置にあらかじめ配置される、様々なアスペクト比(縦横比)やサイズを持つ固定の候補枠。モデルはこの枠を基準に変形(オフセット)を予測する。
- ノンマックスサプレッション (Non-Max Suppression / NMS)
- 物体検出モデルが、同じ1つの物体に対して重複して出力した大量のバウンディングボックスの中から、最も信頼度(確信度)が高いものだけを残し、それと大きく重なっている他の余分なボックスを排除するアルゴリズム。
- 物体位置特定 (Object Localization)
- 画像内に存在する「特定の1つの物体」が何であるかを分類すると同時に、それが画像内のどこにあるかをバウンディングボックスで特定するタスク。
顔に関するタスク区分
- 顔検出 (Face Detection)
- 画像や映像の中に「人間の顔」が映っているかどうかを判定し、存在する場合はその位置(バウンディングボックス)を特定するタスク。誰の顔かは識別しない。
- 顔認識 (Face Recognition)
- 検出された顔が「データベースに登録されている誰のものであるか」を特定(1対多の照合)するタスク。
- 顔検証 (Face Verification)
- 提示された2つの顔画像(または顔とIDカード)を比較し、「これらは同一人物であるか否か」を判定する1対1の認証タスク。
代表的なCNNアーキテクチャ
- LeNet
- 1990年代にYann LeCun氏によって開発された、郵便番号の手書き数字認識(MNIST)用の初期の画期的な畳み込みニューラルネットワーク。
- AlexNet
- 2012年のImageNet画像認識コンペティションで圧倒的な優勝を果たし、現在のディープラーニングブームの決定的な引き金となったモデル。ReLUやGPUの活用、ドロップアウトを導入。
- VGGNet
- 2014年に提案されたモデル。$3 \times 3$ の非常に小さな畳み込みフィルターをシンプルに何層も深く積み重ねるアーキテクチャで、ネットワークの「深さ」の重要性を証明した。
- ResNet (Residual Network)
- 「スキップ接続(残差接続)」という、入力を数層先へ直接バイパスする構造を取り入れた革新的モデル。これにより、100層や1000層を超えるような極めて深いネットワークでも、勾配消失を起こさずに安定して学習可能になった。
自然言語処理 (Natural Language Processing)
テキスト表現と単語分散表現
- ワンホットエンコーディング (One-Hot Encoding)
- 語彙(単語リスト)の数と同じ次元を持つベクトルを作成し、対象の単語に対応するインデックスだけを「1」、他の要素をすべて「0」にする表現手法。単語同士の「意味の近さ」を表現できないデメリットがある。
- 単語埋め込み (Word Embedding / 単語ベクトル)
- 単語を、その意味的な類似性や文脈を反映した、固定長(例: 300次元)の連続的な実数密ベクトルに変換する技術。
- word2vec
- 大量のテキストから、周辺の単語の文脈を利用して単語埋め込みを高速に学習する手法。周辺語から中心語を予測する「CBOW」と、中心語から周辺語を予測する「Skip-gram」の2つのアプローチがある。
- doc2vec / Paragraph Vector
- word2vecの仕組みを拡張し、単語だけでなく文、段落、あるいは文書全体を固定長のベクトルとして表現(分散表現)する手法。
- fastText
- Facebook(現Meta)が開発したword2vecの発展系。単語を文字の集まり(Subword / 部分語。例:「apple」を「app」「ppl」「ple」に分解)として扱う。辞書にない未知語(OOV)に対しても、部分語の組み合わせからベクトルを計算できる強みがある。
- Bag-of-Words (BoW)
- 文章内の単語の出現順序や文法構造を完全に無視し、各単語が文章中に「何回出現したか」という頻度カウント(カウントベクトル)だけでテキストを表現する古典的かつ強力な手法。
- Bag-of-n-grams
- Bag-of-Wordsの拡張。単語1つずつ(Uni-gram)ではなく、連続する $n$ 個の単語の塊(例:2単語ならBi-gram、3単語ならTri-gram)を1つの単位として扱い、その出現頻度を記録する。
言語タスクとアルゴリズム
- ビームサーチ (Beam Search)
- 文章生成(翻訳やテキスト生成など)において、各ステップで最も確率が高い上位 $k$ 個(この $k$ をビーム幅と呼ぶ)の文候補を常にキープしながら探索を進める近似アルゴリズム。すべての組み合わせを探索する貪欲法(Greedy Search)より精度が高く、全探索より圧倒的に軽量。
- Sequence to Sequence Learning (seq2seq)
- ある可変長の系列データ(例:英語の文)を入力として受け取り、別の可変長の系列データ(例:日本語の文)を出力するモデル構造。入力を固定長ベクトルに圧縮する「Encoder(符号化器)」と、そこから目的の系列を出力する「Decoder(復号化器)」のペアで構成される。
- 抽出型文書要約 (Extractive Sentence Summarization)
- 原文に含まれる文やフレーズの中から、重要度が高いと判定された部分をそのまま抜き出し(コピーして)、それらを組み合わせて要約文を作成する手法。
- 抽象型文書要約 (Abstractive Sentence Summarization)
- 原文の言葉をそのまま使うのではなく、モデルが文脈全体の意味を理解した上で、人間のように新しい言葉、文法、表現を使って自発的に要約文を1から生成する高度な手法。
- 固有表現認識 (Named Entity Recognition - NER)
- テキスト中から、人名、地名、組織名、日付、時間、パーセントといった、特定のカテゴリ(固有表現)に該当する単語やフレーズを抽出・分類するタスク。
- 共参照解析 (Coreference Resolution)
- テキスト中に登場する「彼」「彼女」「それ」などの代名詞や指示代名詞が、文内の具体的にどの名詞(指示対象)を指しているかを突き止め、紐付けるタスク(例:「太郎は犬を飼っている。彼はそれが好きだ」→ 彼は「太郎」、それは「犬」)。
生成モデル・回帰モデル・新興技術 (Advanced Architecture)
- Generative Adversarial Network (GAN / 敵対的生成ネットワーク)
- 2つのネットワークを互いに競い合わせて成長させる生成モデルのフレームワーク。
- Generator (生成器): 本物のデータに似せた偽物データを生成し、識別器を騙そうとする。
- Discriminator (識別器): 入力されたデータが本物(実データ)か、Generatorが作った偽物かを見破ろうとする。
- モード崩壊 (Mode Collapse)
- GANの訓練中に発生する代表的な失敗現象。Generatorが多様なデータを生成することを諦め、Discriminatorを最も簡単に騙すことができる特定の数少ないパターン(例:数字の生成で「1」ばかりを生成する)のみを繰り返し出力するようになる現象。
- Autoencoder (自己符号化器)
- ニューラルネットワークに入力 $X$ を与え、出力層で同じ $X$ を復元(再現)するように学習するニューラルネットワーク。中間層(ボトルネック)の次元を小さくすることで、重要な特徴だけを抽出する「次元削減」や「異常検知」に応用される。
- Long Short-Term Memory (LSTM)
- 従来の回帰型ニューラルネットワーク(RNN)が抱えていた長期間の時系列依存関係を学習できない(勾配消失・爆発)という致命的な弱点を、情報を記憶・忘却・出力するための「3つのゲート構造(入力ゲート、忘却ゲート、出力ゲート)」と「セル状態」を導入することで解決したアーキテクチャ。
- ニューラルチューリングマシン (NTM / Neural Turing Machine)
- ニューラルネットワークのアーキテクチャに、外部のデジタルメモリ(記憶装置)を結合した高度なモデル。ネットワークがメモリの特定のアドレスに対してデータの読み書き(アテンション機構の原型)を行い、高度なプログラム的処理やアルゴリズムを学習できる。
- プロンプトエンジニアリング (Prompt Engineering)
- 大規模言語モデル(LLM)に対して、期待する正確な回答、特定のフォーマット、あるいは適切な振る舞いを引き出すために、入力文(プロンプト)の文言や構造を設計・最適化する技術。
数学・統計・評価指標 (Mathematics & Evaluation Metrics)
- F1スコア (F1 Score)
- 分類モデルの評価指標。適合率 (Precision / 陽性と予測したもののうちの本物の割合) と 再現率 (Recall / 本物の陽性のうち予測できた割合) の調和平均。陽性と陰性のデータ数が極端に偏っている「不均衡データ」において、モデルの正確性を測るのに最適。
- ジャカード係数 (Jaccard Index / Intersection over Union - IoU)
- 2つの集合の類似度を評価する指標。数式は「共通部分の面積 $\div$ 集合全体の面積」。物体検出においては、正解のバウンディングボックスとモデルの予測ボックスがどれくらい正確に重なっているかを評価する。
- パープレキシティ (Perplexity)
- 言語モデルの性能を評価する指標で、直訳すると「当惑度」。モデルが次の単語を予測する際、候補を何単語にまで絞り込めているか(選択肢の数)を表す。値が小さいほど予測の迷いがなく、モデルが優秀であることを意味する。
- ヒンジ損失 (Hinge Loss)
- 主にサポートベクターマシン(SVM)や最大マージン分類器で用いられる損失関数。正解クラスの予測値が、決定境界から一定以上のマージン(安全な余白)を持って正しく分類されているかを評価し、マージンを侵したデータに対してペナルティを課す。
- アダマール積 (Hadamard Product)
- 同じサイズ(次元)を持つ2つの行列、またはベクトルにおいて、対応する位置にある要素同士を単純に掛け合わせる演算。記号 $\circ$ や $\odot$ で表現される。行列表現の積(内積など)とは異なる。
- 凸包 (Convex Hull)
- 幾何学の概念。与えられた平面上(または多次元空間上)の点集合をすべて内側に包み込むような、最小の凸多角形(あるいは凸多面体)。点の集まりの一番外側を輪ゴムで囲んだときの形に相当する。
分散学習とスケーリング (Distributed Learning)
- データ並列化 (Data Parallelism)
- 非常に大きなデータセットを用いてモデルを訓練する際、データを複数の計算ノード(複数のGPUなど)に分割して割り当てる並列化手法。各ノードは「全く同じモデルのコピー」を保持し、それぞれに割り当てられたデータで勾配を計算後、全員の勾配を集計(同期)して一斉にパラメータを更新する。
- モデル並列化 (Model Parallelism)
- モデル自体のパラメータ数(サイズ)が巨大すぎて、1つのGPUのメモリに収まりきらない場合に使用される並列化手法。モデルの異なる層や、特定の大きな行列(パラメータ)自体を複数のGPUに分割して配置し、各GPUが協調しながら順伝播・逆伝播をバトンリレーのように計算する。
