見出し画像

機械学習の勉強で必要な単語まとめ

機械学習の勉強で必要な単語の要約を簡単に表現してみました

注意事項
以下に記載されている内容は、私個人の見解に基づくものです。これらの情報を活用する際は、自己の責任で行ってください。また、ご意見やご指摘がある場合は、コメント欄にてお知らせいただければ幸いです。

数学的基礎

概要を表現

  • ベイズ則: 何かが起こる前と後で、どれくらい確率が変わるかを計算する方法。

  • ナイーブベイズ: 物事を単純に分けて、それを使って何かを分類する方法。

  • 平均二乗誤差: 予想と実際の差を二乗して平均を取ることで、どれくらい間違っているかを測る方法。

  • 対数尤度: 予想がどれくらい正しいかを、数学的に表す方法。

  • ダイバージェンス: 二つのものがどれくらい違うかを測る方法。

  • 最尤推定: 一番ありそうな答えを見つける方法。

  • MAP推定: 最もありそうな答えを、前もっての情報も考えながら見つける方法。

  • ベイズ推定: 何かを予想するときに、前もっての情報を使ってより良い予想をする方法。

  • 自己情報量: あることが起こるときに、それがどれくらい珍しいかを数で表すこと。

  • 相互情報量: 二つのものがどれくらい情報を共有しているかを測る方法。

  • エントロピー: 物事がどれくらい予測できないかを数で表すこと。

  • 条件付きエントロピー: 一つのことが分かったときに、もう一つのことがどれくらい予測できるかを測る方法。

  • 結合エントロピー: 二つのことを一緒に考えたとき、どれくらい予測できないかを測る方法。

  • クロスエントロピー: 二つの予想がどれくらい違うかを測る方法。

  • KLダイバージェンス: 二つの予想がどれくらい違うかを、一方向からだけ見て測る方法。

  • JSダイバージェンス: 二つの予想がどれくらい違うかを、両方向から見て測る方法。

少し正確な表現

- ベイズ則: 事前確率と条件付き確率から事後確率を求める規則。
- ナイーブベイズ: 特徴間の独立性を仮定したベイズ則に基づく分類手法。
- 平均二乗誤差: 予測値と実際の値の差の二乗の平均。
- 対数尤度: 尤度(モデルがデータを生成する確率)の対数を取ったもの。

- ダイバージェンス: 二つの確率分布間の差異を測る尺度。
- 最尤推定: 尤度を最大にするパラメータを見つける推定方法。
- MAP推定: 最尤推定に事前確率を加味した推定方法。
- ベイズ推定: ベイズ則に基づいてパラメータの確率分布を推定する方法。
- 自己情報量: 特定の事象が発生する情報の量。
- 相互情報量: 二つの変数間の情報の共有量。
- エントロピー: 確率分布の不確実性や乱雑さを測る尺度。
- 条件付きエントロピー: 一方の変数が与えられたときの他方の変数のエントロピー。
- 結合エントロピー: 二つの変数の結合した確率分布のエントロピー。
- クロスエントロピー: 二つの確率分布間の差異を測る尺度。
- KLダイバージェンス: 二つの確率分布間の非対称な差異を測る尺度。
- JSダイバージェンス: KLダイバージェンスを改良した、対称な差異を測る尺度。

機械学習の基礎

パターン認識・機械学習の分類について ざっくりな概要

  • パターン認識: 物やデータのパターンを見つけて分類する方法。

  • k近傍法: 似ているものをk個見つけて、それらに基づいて分類する方法。

  • 近傍法 kd-tree: データを木の形に整理して、似ているものを早く見つける方法。

  • 近似最近傍: 似ているものを完全には見つけられなくても、近いものを早く見つける方法。

  • コサイン距離: 角度で似ているかどうかを測る方法。

  • ユークリッド距離: 直線での距離を測る方法。

  • マンハッタン距離: 街のブロックのように直角にしか動けないときの距離を測る方法。https://atmarkit.itmedia.co.jp/ait/articles/2111/10/news023.html

  • Lp距離: 距離を測るためのいろいろなルール。https://qiita.com/fridericusgauss/items/f3d8575abfe7f67f1d7d

  • マハラノビス距離: データの散らばりを考慮して距離を測る方法。

  • 機械学習: コンピュータにデータから学習させる技術。

  • 教師あり学習: 正解がわかっているデータでコンピュータを学習させる方法。

  • 教師なし学習: 正解がわからないデータからコンピュータが自分で学習する方法。

  • 半教師あり学習: 正解がわかっているデータとわからないデータを両方使ってコンピュータを学習させる方法。

パターン認識・機械学習の分類について 少し正確な表現

  • パターン認識: データセット内の特徴的なパターンを同定し、分類する計算処理手法。

  • k近傍法: 与えられたデータポイントに最も近いk個のデータポイントを基に分類または回帰を行うアルゴリズム。

  • 近傍法 kd-tree: 高次元データセットにおける近傍探索を効率化するための空間分割データ構造。

  • 近似最近傍: 完全な最近傍探索に比べて計算コストを削減するために近似的な解を求めるアルゴリズム。

  • コサイン距離: ベクトル間の角度に基づいて類似度を測定する指標。

  • ユークリッド距離: 二点間の直線距離を測定するための距離指標。

  • マンハッタン距離: 二点間の距離を格子状の経路に沿って測定する距離指標。

  • Lp距離: 一般化されたミンコフスキー距離で、pノルムに基づく距離指標。

  • マハラノビス距離: データの共分散構造を考慮した距離指標。

  • 機械学習: アルゴリズムと統計モデルを使用して、データからパターンを学習し予測や分類を行う技術。

  • 教師あり学習: ラベル付きデータセットを用いて、特定のタスクに対する予測モデルを構築する学習手法。

  • 教師なし学習: ラベルのないデータセットから構造やパターンを自動的に抽出する学習手法。

  • 半教師あり学習: ラベル付きデータとラベルなしデータの両方を利用して、モデルの学習を行う手法。

機械学習の課題

  1. 過剰適合・過少適合: モデルが訓練データに過度に適合し、新しいデータに対してうまく機能しない状態(過剰適合)と、モデルがデータの特徴を十分に捉えられず、訓練データに対してもうまく機能しない状態(過少適合)。

  2. 汎化誤差・訓練誤差: 新しいデータに対するモデルの誤差(汎化誤差)と、訓練データに対するモデルの誤差(訓練誤差)。

  3. バイアス・バリアンス: モデルが単純すぎるために起こる誤差(バイアス)と、モデルが複雑すぎるために起こる誤差(バリアンス)。

  4. 正則化: モデルの複雑さを制限し、過剰適合を防ぐための手法。

  5. 次元の呪い: 特徴量(次元)が増えると、モデルの学習に必要なデータ量が指数関数的に増加する現象。

検証集合

  1. 訓練データ・検証データ・テストデータ: モデルを訓練するためのデータ(訓練データ)、モデルのパラメータを調整するためのデータ(検証データ)、モデルの最終的な性能を評価するためのデータ(テストデータ)。

  2. 交差検証: データセットを複数の部分に分割し、一部をテストデータとして使用し、残りでモデルを訓練する手法。ホールドアウト法(データを固定の訓練セットとテストセットに分割)とk-分割交差検証法(データをk個の部分に分割し、それぞれをテストセットとして使用)がある。

性能指標

  1. 正解率(Accuracy): 正しく分類されたデータの割合。

  2. 適合率(Precision): 正と予測されたデータのうち、実際に正である割合。

  3. 再現率(Recall): 実際に正であるデータのうち、正と予測された割合。

  4. F値: 適合率と再現率の調和平均。

  5. ROC曲線・AUC: モデルの性能を示す曲線とその下の面積。

  6. Intersection-over-Union (IoU): 物体検出タスクにおける性能指標。

  7. mean Average Precision(mAP): 物体検出の平均精度。

  8. 多クラス分類の評価指標: micro平均(全クラスを合わせた評価)とmacro平均(各クラスごとの評価の平均)。

  9. RMSE/MSE: 予測誤差の平方根(RMSE)と平均二乗誤差(MSE)。

  10. MAE: 平均絶対誤差。

  11. 混同行列: 実際のクラスと予測クラスの関係を表す行列。

深層学習の基礎

順伝播型ネットワーク

ⅰ. 多層パーセプトロン

  • 全結合層: ニューロンが前の層のすべてのニューロンと接続されている層。

  • 重み: 各接続の強度を表すパラメータ。

  • バイアス: ニューロンの出力に加えられる定数項。

ⅱ. 出力層と損失関数

  • 回帰: 連続値を予測するタスク。

    • 平均二乗誤差(MSE): 予測値と実際の値の差の二乗の平均。

    • 平均絶対誤差(MAE): 予測値と実際の値の差の絶対値の平均。

  • 2値分類: 二つのクラスに分類するタスク。

    • クロスエントロピー誤差: 予測確率と実際のラベルの差を表す誤差。

    • バイナリクロスエントロピー: 2値分類に特化したクロスエントロピー誤差。

  • 多クラス分類: 複数のクラスに分類するタスク。

    • ソフトマックス関数: 出力を確率に変換する関数。

    • one-hotベクトル: 正解クラスを1、他を0で表すベクトル。

  • マルチラベル分類: 複数のラベルを予測するタスク。

  • 順序回帰: 順序を持つカテゴリを予測するタスク。

ⅲ. 活性化関数

  • シグモイド関数: 出力を0から1の間に制限する関数。勾配消失の問題がある。

  • ReLU: 正の入力に対してはそのまま出力し、負の入力に対しては0を出力する関数。

  • Leaky ReLU: ReLUの改良版で、負の入力に対しても小さな勾配を持たせる。

  • GELU: より滑らかなReLUの一種。

  • tanh: 出力を-1から1の間に制限する双曲線関数。

深層モデルの最適化

ⅰ. 基本的なアルゴリズム

  • 確率的勾配降下法(SGD): モデルのパラメータを少しずつ更新していく方法。データの一部(ミニバッチ)を使って勾配を計算し、学習率に基づいてパラメータを更新します。

  • モメンタム: 勾配の方向に加えて、前のステップの更新方向も考慮することで、よりスムーズな最適化を実現します。

  • Nesterov Accelerated Gradient: モメンタムの一種で、より効率的な最適化を目指します。

ⅱ. 誤差逆伝播法

  • 誤差逆伝播法: ネットワークの出力と目標値との誤差を、ネットワークを逆方向に伝播させることで、各パラメータの勾配を計算します。

  • 自動微分: 計算グラフを用いて、効率的に勾配を計算する方法。

ⅲ. 適応的な学習率を持つアルゴリズム

  • AdaGrad: 各パラメータに対して個別の学習率を適用することで、効率的な学習を実現します。

  • RMSProp: AdaGradの問題点を改善したアルゴリズムで、最近の勾配の情報を重視します。

  • Adam: RMSPropとモメンタムを組み合わせたアルゴリズムで、広く使われています。

ⅳ. パラメータの初期化戦略

  • Xavier法/Glorot法: 層の入出力のニューロン数に基づいて、重みを初期化する方法。

  • Kaiming法/He法: ReLU活性化関数を使用する場合に適した重みの初期化方法。

深層モデルのための正則化

ⅰ. パラメータノルムペナルティー

  • L1正則化: モデルの重みに対して絶対値ベースのペナルティを適用し、スパースな(多くの要素がゼロの)表現を促進します。

  • L2正則化/weight decay: 重みの二乗に基づくペナルティを適用し、モデルの複雑さを抑制します。

ⅱ. 確率的削除

  • ドロップアウト: 訓練中にランダムにニューロンを無効化(削除)することで、過剰適合を防ぎます。

  • ドロップコネクト: ニューロン間の接続をランダムに削除することで、モデルの汎化性能を向上させます。

ⅲ. 陰的正則化

  • 早期終了: 過剰適合を防ぐために、検証データセットの性能が改善しなくなった時点で訓練を停止します。

  • バッチサイズ: 大きなバッチサイズは、モデルの汎化性能に影響を与える可能性があります。

  • 学習率の調整: 適切な学習率を設定することで、モデルの過剰適合を防ぎ、安定した学習を実現します。


畳み込みニューラルネットワーク(CNN)

ⅰ. 畳み込みニューラルネットワーク

  • 基本的な畳み込み演算: 画像上の小さな領域にフィルタ(カーネル)を適用し、特徴を抽出する操作。

  • 単純型細胞と複雑型細胞: 視覚野の神経細胞に触発された概念。単純型細胞は特定の方向のエッジを検出し、複雑型細胞は位置の変化に対して頑健。

  • 受容野(receptive field): 入力画像において、特定のニューロンが反応する領域。

  • 特徴マップ: 畳み込み演算によって得られる出力データ。

  • フィルタ/カーネル: 畳み込み演算で使用される小さなウィンドウ。画像の特定の特徴を抽出するために用いられる。

  • パディング: 入力画像の周囲に仮想的なピクセルを追加し、出力サイズの調整や情報の損失を防ぐ。

  • ストライド: フィルタを適用する際の移動量。

  • im2col: 画像データを行列に変換し、効率的な畳み込み演算を可能にする手法。

  • チャネル: 画像データの色情報(RGBなど)や畳み込み層の出力における特徴の次元。

特別な畳み込み

  • point-wise畳み込み(1x1畳み込み): チャネル間の情報を組み合わせるために使用される。

  • depth-wise畳み込み: 各チャネルに対して個別に畳み込みを行う。

  • グループ化畳み込み: チャネルを複数のグループに分け、畳み込みを行う。

  • アップサンプリングと逆畳み込み: 画像サイズを拡大するための手法。

プーリング

  • Max pooling: 特定の領域内で最大の値を選択する。

  • Lp pooling: Lpノルムに基づくプーリング手法。

  • Global Average Pooling: 特徴マップ全体の平均値を計算する。


リカレントニューラルネットワーク(RNN)

ⅰ. リカレントニューラルネットワーク

  • 順伝播の計算: 時系列データを処理する際、過去の情報を考慮しながら現在の出力を計算します。

  • 逆伝搬の計算(Back Propagation Through Time; BPTT): 時系列データに対する学習を行う際、過去の時点まで遡って誤差を伝播させる方法。

  • 双方向RNN: 過去の情報だけでなく、未来の情報も考慮に入れるために、順方向と逆方向の両方から情報を処理するRNN。

ⅱ. ゲート機構

  • 勾配消失: RNNの学習中に、誤差勾配が時間を遡るにつれて急速に小さくなる現象。

  • 忘却ゲート、入力ゲート、出力ゲート: LSTM(長短期記憶)ネットワークにおいて、情報の流れを制御するためのゲート。

  • LSTM(長期記憶と短期記憶): 長期的な依存関係を捉える能力を持つRNNの一種。

  • GRU: LSTMに似た構造を持ちながら、より単純な構造で効率的な学習が可能なRNNの一種。

  • リセットゲート: GRUにおいて、過去の情報をどの程度保持するかを決定するゲート。

  • メモリーセル: LSTMにおいて、長期的な情報を保持するための構造。

ⅲ. 系列変換

  • エンコーダ・デコーダ: 入力系列を固定長のベクトルに変換するエンコーダと、そのベクトルから出力系列を生成するデコーダから構成されるモデル。

  • seqence-to-sequence(seq2seq): 入力系列から出力系列を生成するためのモデル。翻訳や要約などに用いられる。

  • アテンション(注意)機構: 入力系列のどの部分に注目するかを動的に決定し、出力の精度を向上させる機構。


Transformer

ⅰ. Transformer

  • Self-Attention: 同じ入力内の異なる位置の関係を捉えるための機構。各位置の表現が他の位置の情報を含むようになります。

  • Scaled Dot-Product Attention: Self-Attentionの一部で、クエリ、キー、バリューの関係をドット積で計算し、スケーリングすることで注意を計算します。

  • Source Target Attention: エンコーダからの出力(ソース)とデコーダの現在の状態(ターゲット)の間の関係を捉えるための機構。

  • Masked Attention: デコーダで未来の情報を参照しないようにするための機構。特に、系列生成タスクで重要です。

  • Multi-Head Attention: Self-Attentionを複数の「ヘッド」で並行に行い、異なる表現のサブスペースを捉えることができます。

  • Positional Encoding: Transformerは順序情報を持たないため、位置情報を入力に加えるためのエンコーディング。

Transformerは、自然言語処理の分野で革命をもたらしたモデルで、従来のRNNやLSTMに代わる新しいアーキテクチャです。Self-AttentionとMulti-Head Attentionにより、文中の各単語が他の単語とどのように関連しているかを効率的に捉えることができ、長い依存関係を扱うことが可能になりました。また、Positional Encodingにより、順序情報をモデルに組み込むことができます。これらの特徴により、Transformerは翻訳、要約、質問応答など多くのタスクで高い性能を発揮しています。

汎化性能向上のためのテクニック

ⅰ. データ集合の拡張

  • 画像のデータ拡張: 画像に対する様々な変換(ノイズ付与、ランダムな反転、消去、切り取り、コントラストや明度の調整、回転など)を行い、データの多様性を高めます。

  • 自然言語のデータ拡張: 文章の単語をランダムに置換、削除、挿入するなどの手法(EDA)や、異なる文章を混ぜ合わせる(MixUp)などの手法を用いて、データの多様性を高めます。

ⅱ. 正規化

  • Batch Normalization: ミニバッチごとに入力を正規化し、学習を安定させ、高速化します。

  • Layer Normalization: 各層の出力を正規化し、学習を安定させます。

  • Instance Normalization: 画像の各インスタンスごとに正規化を行い、スタイル転送などに有効です。

  • Group Normalization: チャネルをグループ化して正規化し、バッチサイズに依存しない正規化を実現します。

ⅲ. アンサンブル手法

  • バギング: 複数のモデルを並列に学習し、その予測の平均を取ることで性能を向上させます。

  • ブースティング: 複数のモデルを逐次的に学習し、前のモデルの誤りを次のモデルが修正することで性能を向上させます。

  • ブートストラップ: データのサンプリングにランダム性を持たせ、複数のモデルを学習します。

  • スタッキング: 複数のモデルの予測を入力として、新たなモデルを学習し、最終的な予測を行います。

ⅳ. ハイパーパラメータの選択

  • 基本的なハイパーパラメータ調整: 学習率、隠れ層の数、ユニット数、ドロップアウトの割合、バッチサイズ、正則化項の係数などを調整します。

  • ハイパーパラメータの最適化: グリッドサーチ(全ての組み合わせを試す)、ランダムサーチ(ランダムに組み合わせを選ぶ)、ベイズ最適化(確率モデルを用いて最適な組み合わせを探索)などの手法を用いて、最適なハイパーパラメータを見つけます。

深層学習の応用

画像認識

ⅰ. ResNet, WideResNet

  • 残差接続(skip-connection): ResNet(Residual Network)は、深いニューラルネットワークにおける勾配消失問題を解決するために、入力を出力に直接加算する「残差接続」を導入しました。これにより、深いネットワークでも効率的に学習が進行します。

  • ボトルネック構造: ネットワークの中間層でチャネル数を減らし、計算量を削減しながらも情報を効率的に伝達する構造です。

  • Residual Block: 残差接続を含むネットワークの基本単位。入力に対して何らかの変換を施した後、入力をその出力に加算する構造を持ちます。

  • WideResNet: ResNetの変種で、ネットワークの幅(チャネル数)を広げることで、深さを減らしつつも性能を向上させるアプローチです。

ⅱ. Vision Transformer

  • CLS token: Vision Transformer(ViT)では、画像をパッチに分割し、それぞれのパッチに対応するトークンを生成します。CLS(Class)トークンは、これらのパッチトークンとともにTransformerに入力され、最終的な画像分類のために使用されます。

  • Position embedding: ViTでは、パッチトークンに位置情報を加えるために位置埋め込み(Position Embedding)を使用します。これにより、Transformerがパッチの相対的な位置関係を理解できるようになります。

物体検出

ⅰ. FasterR-CNN, MaskR-CNN

  • Bounding Box: 物体の位置を示す四角形の枠。

  • mAP (mean Average Precision): 物体検出の性能を測る指標。平均的な精度を示します。

  • ROI (Region of Interest): 画像内の関心領域。

  • end-to-end: 入力から出力までを一連のプロセスで処理すること。

  • 2ステージ検出: 物体候補領域の提案とそれらの領域の分類・位置調整の2段階で行われる検出方法。

  • Selective Search: 物体候補領域を効率的に抽出する手法。

  • Fast R-CNN: 物体検出のための高速化されたCNNモデル。

  • Region Proposal Network (RPN): 物体候補領域を提案するネットワーク。

  • Anchor box: 事前に定義された形状のボックスで、物体の位置を予測する基準となる。

  • ROI Pooling/Align: ROIに基づいて特徴を抽出する手法。

  • インスタンスセグメンテーション: 物体の位置と形状をピクセルレベルで識別する手法。

ⅱ. YOLO, SSD

  • 1ステージ検出: 物体の位置とクラスを一度に予測する手法。

  • デフォルトボックス: 物体の位置を予測するための基準ボックス。

  • Non-Maximum Suppression (NMS): 重複する検出結果を排除する手法。

  • ハードネガティブマイニング: 誤検出を減らすために、誤って検出されたネガティブなサンプルを学習に利用する手法。

ⅲ. FCOS

  • アンカーフリー (Anchor-Free): アンカーボックスを使用しない物体検出手法。

  • Feature Pyramid Network (FPN): 複数のスケールの特徴マップを組み合わせて物体検出の精度を向上させるネットワーク。

  • センターネス (Center-ness): 物体の中心に近い領域に高いスコアを与える指標。

  • アンビギュアスサンプル: 物体のクラスが不明確なサンプル。


セマンティックセグメンテーション

ⅰ. FCN, U-Net

  • スキップコネクション: 畳み込み層の出力を後の層に直接接続することで、細かい情報を保持しながらセグメンテーションを行う。

  • アップサンプリング: 画像の解像度を上げる処理。セグメンテーションでは、低解像度の特徴マップを元の画像サイズに戻すために使用される。

  • インスタンスセグメンテーション: 各オブジェクトを個別に識別し、その形状をピクセルレベルで分割する手法。

  • パノプティックセグメンテーション (Panoptic Segmentation): セマンティックセグメンテーション(物体のクラスを識別)とインスタンスセグメンテーション(個々の物体を識別)を組み合わせた手法。

FCN(Fully Convolutional Network)とU-Netは、セマンティックセグメンテーションのための代表的なニューラルネットワークモデルです。これらのモデルは、画像内の各ピクセルがどのクラスに属するかを識別することに特化しています。スキップコネクションやアップサンプリングを用いることで、画像の詳細な特徴を捉えながら、高精度なセグメンテーションを実現します。パノプティックセグメンテーションは、さらに進んだ手法で、画像内のすべての物体を詳細に分割し、より包括的な理解を目指します。

自然言語処理

ⅰ. WordEmbedding

  • 潜在的意味インデキシング(LSI): 文書や単語の潜在的な意味構造を発見するための手法。

  • Word2vec: 単語を密なベクトルで表現し、単語間の意味的な関係を捉えるモデル。

  • n-gram: 連続するn個のアイテム(単語など)のシーケンス。

  • skip gram: Word2vecの一種で、特定の単語からその周囲の単語を予測する。

  • CBOW (Continuous Bag of Words): 複数の単語から一つの単語を予測するWord2vecのモデル。

  • ネガティブサンプリング: Word2vecの学習を効率化するために、ランダムに選んだ単語を「ネガティブサンプル」として使用する手法。

ⅱ. BERT

  • Masked Language Modeling (MLM): 文中の一部の単語を隠して、その単語を予測させるタスク。

  • Next Sentence Prediction (NSP): 二つの文が連続しているかどうかを予測するタスク。

  • 事前学習: 大量のテキストデータを用いて、モデルに言語の一般的な特徴を学習させる過程。

  • ファインチューニング: 事前学習したモデルを特定のタスクに合わせて微調整する過程。

  • positional embeddings: 文中の単語の位置情報をモデルに組み込むための埋め込み。

  • segment embeddings: 文章のセグメント(部分)を区別するための埋め込み。

ⅲ. GPT-n

  • 基盤モデル: 大規模なデータセットで事前学習された汎用的な言語モデル。

  • Few Shot learning: 限られた数の例を用いて、モデルが新しいタスクを学習する能力。

  • Zero Shot learning: 事前学習のみで、特定のタスクに対して直接適用される能力。

  • Prompt Base Learning: モデルに特定のプロンプト(指示)を与えて、特定のタスクを実行させる手法。


生成モデル

ⅰ. 識別モデルと生成モデル

  • 識別モデル: 与えられたデータからクラスを識別するモデル。

  • 生成モデル: データの分布を学習し、新しいデータを生成するモデル。

  • 拡散モデル: データの分布を段階的に学習し、徐々にデータを生成するモデル。

  • フローベース生成モデル: データの分布を変換することで新しいデータを生成するモデル。

ⅱ. オートエンコーダ

  • オートエンコーダ: 入力データを圧縮し、その後再構築するネットワーク。

  • Denoising autoencoder: ノイズを加えたデータから元のデータを復元するオートエンコーダ。

  • VAE (Variational Autoencoder): 確率的なアプローチを取り入れたオートエンコーダ。

  • Reparameterization Trick: VAEの学習を安定させるための手法。

  • 変分下限: VAEの目的関数の一部で、データの再構築誤差と潜在変数の分布の差異を表す。

ⅲ. GAN (Generative Adversarial Network)

  • 基本的なGAN: 生成器と識別器の二つのネットワークが競争しながら学習するモデル。

  • 生成器ネットワーク: ランダムなノイズからデータを生成するネットワーク。

  • 識別器ネットワーク: 生成されたデータが本物か偽物かを識別するネットワーク。

  • モード崩壊 (mode collapse): GANの学習中に生成器が限られた種類のデータしか生成しなくなる現象。

  • Wasserstein GAN: GANの学習を安定させるための手法。

  • DCGAN (Deep Convolutional GAN): 畳み込み層を用いたGANの一種。

  • 条件付きGAN (Conditional GAN): 特定の条件に基づいてデータを生成するGAN。

  • CycleGAN: 異なるドメイン間でデータを変換するGAN。

深層強化学習

ⅰ. 深層強化学習のモデル

  • DQN (Deep Q-Network): 深層学習を用いて行動価値関数を近似するモデル。TD学習とQ学習の原理に基づき、Experience replayを用いて学習を効率化します。

  • A3C (Asynchronous Advantage Actor-Critic): 複数のエージェントが非同期に学習を進めるモデル。方策勾配法とActor-Critic法を組み合わせており、各エージェントが独立して環境と対話しながら学習します。

様々な学習方法

ⅰ. 転移学習

  • ファインチューニング: 既存のモデルを新しいタスクに適応させるために、一部のパラメータを再学習させる手法。

  • ドメイン適応 (Domain Adaptation): 異なるが関連するドメイン間で知識を転移させる手法。

  • ドメインシフト: 学習データとテストデータの分布が異なる場合に発生する問題。

ⅱ. 半教師あり学習と自己教師あり学習

  • Self-Training: ラベル付きデータとラベルなしデータを組み合わせて学習する手法。

  • Co-Training: 異なるビュー(特徴セット)を持つデータを用いて、互いに学習を助け合う手法。

  • Contrastive Learning: 似ているデータは近く、異なるデータは遠くに配置されるように学習する手法。

距離学習(Metric Learning)

  • 2サンプルによる比較: 似ているか異なるかのペアを用いて、データ間の距離を学習する手法。Siamese networkやcontrastive lossがこれに該当。

  • 3サンプルによる比較: Triplet lossやTriplet networkを用いて、アンカー、ポジティブ、ネガティブの3つのサンプルを比較し、距離を学習する手法。

深層学習の説明性

ⅰ. 判断根拠の可視化

  • XAI (eXplainable AI): 人間が理解しやすい形でAIの判断根拠を説明する取り組み。

  • CAM (Class Activation Map): 畳み込みニューラルネットワークが特定のクラスを識別する際に注目する領域を可視化する技術。

  • Grad-CAM: 勾配情報を利用して、特定のクラスの予測に寄与する領域を可視化する手法。

ⅱ. モデルの近似

  • 局所的な解釈: 個々の予測に対するモデルの振る舞いを解釈する手法。

  • 大域的な解釈: モデル全体の振る舞いを解釈する手法。

  • LIME (Local Interpretable Model-agnostic Explanations): 個々の予測に対して局所的な解釈を提供する手法。

  • SHAP (SHapley Additive exPlanations): ゲーム理論に基づいた特徴の重要度を計算する手法。

  • Shapley Value: 協力ゲーム理論において、プレイヤーの貢献度を公平に分配するための指標。

  • 協力ゲーム理論: 複数のプレイヤーが協力して目標を達成する際の戦略を研究する理論。


開発・運用環境


エッジコンピューティングにおけるモデルの軽量化

ⅰ. モデルの軽量化の概要

  • エッジコンピューティング: データ処理をクラウドではなく、デバイスの近くで行う技術。これにより、レイテンシーの低減や帯域幅の節約が可能。

  • IoTデバイス: インターネットに接続されたスマートデバイス。エッジコンピューティングでは、これらのデバイスでデータ処理を行う。

  • プルーニング(枝刈り): ニューラルネットワークの不要な重みやニューロンを削除し、モデルを軽量化する手法。

  • 蒸留(Distillation): 大きなモデルの知識を小さなモデルに伝達する技術。これにより、小さなモデルでも高い性能を実現可能。

  • 量子化(Quantization): モデルの重みや活性化関数を低ビットで表現することにより、モデルのサイズを削減し、計算効率を向上させる手法。

これらの技術は、エッジコンピューティング環境での深層学習モデルの効率的な運用を可能にします。特に、リソースが限られたIoTデバイス上での高速かつ効率的なデータ処理に貢献します。

分散処理における並列分散処理

ⅰ. 並列分散処理の概要

  • 分散深層学習: 深層学習モデルの学習を複数のコンピュータやプロセッサ間で分散させて行う手法。これにより、大規模なデータセットや複雑なモデルの学習を高速化する。

  • モデル並列化: 深層学習モデルの異なる部分を異なるプロセッサやマシンで同時に処理する手法。特に、大きなネットワークモデルを効率的に学習させるために用いられる。

  • データ並列化: 同じモデルを複数のプロセッサやマシンで並行して学習させるが、それぞれのプロセッサは異なるデータサブセットで学習を行う。これにより、大量のデータを効率的に処理し、学習時間を短縮することが可能。

並列分散処理は、大規模な深層学習タスクを効率的に処理するための重要な手法です。これにより、計算資源を最大限に活用し、学習プロセスを高速化することができます。

アクセラレータにおけるデバイスによる高速化

ⅰ. デバイスによる高速化の概要

  • 単一命令列複数データ (SIMD; Single Instruction Multiple Data): 一つの命令で複数のデータを同時に処理するアーキテクチャ。データ並列処理に適しており、効率的な計算が可能。

  • 単一命令複数スレッド (SIMT; Single Instruction Multiple Thread): 同じ命令を複数のスレッドで並行して実行するアーキテクチャ。GPUなどで一般的に用いられ、高度な並列処理が可能。

  • 複数命令列複数データ (MIMD; Multiple Instruction Multiple Data): 異なる命令を複数のデータで同時に処理するアーキテクチャ。複雑なタスクに対応可能で、柔軟な並列処理が実現できる。

  • GPU (Graphics Processing Unit): グラフィックス処理に特化したプロセッサ。深層学習などの並列計算にも高い性能を発揮し、広く利用されている。

  • TPU (Tensor Processing Unit): Googleによって開発された、深層学習専用のプロセッサ。特にテンソル演算に特化しており、高速な計算が可能。

これらのアクセラレータは、深層学習や大規模な数値計算を高速化するために重要な役割を果たします。特にGPUやTPUは、現代の機械学習アプリケーションにおいて不可欠な存在となっています。


環境構築におけるコンテナ型仮想化

ⅰ. コンテナ型仮想化の基本

  • 仮想化環境: 物理的なハードウェアリソースを仮想的に分割し、複数の独立した環境を作成する技術。

  • ホスト型: 物理的なホストシステム上に仮想マシンを構築する方式。ホストOS上に仮想化ソフトウェアをインストールして利用。

  • ハイパーバイザー型: ハードウェア直上にハイパーバイザーと呼ばれる仮想化層を設置し、その上で複数のOSを動かす方式。物理リソースを直接管理し、高いパフォーマンスを実現。

  • コンテナ型: OSレベルでの仮想化を行い、軽量で効率的な環境分離を実現する方式。アプリケーションとその依存関係をコンテナとしてパッケージ化し、異なる環境間での移植性を高める。

  • Docker: コンテナ型仮想化を実現するためのプラットフォーム。アプリケーションの開発、配布、実行を簡単にするツールとして広く利用されている。

  • Dockerfile: Dockerイメージを構築するためのスクリプトファイル。アプリケーションの実行に必要な環境設定や依存関係を定義する。

コンテナ型仮想化は、開発環境の構築やアプリケーションのデプロイメントを効率化するために重要な技術です。特にDockerは、その使いやすさと柔軟性から、多くの開発者に支持されています。


この記事が気に入ったらサポートをしてみませんか?