機械学習用語集: ML の基礎

このページには、ML の基礎の用語集の用語が記載されています。用語集のすべての用語については、こちらをクリックしてください。

accuracy

#fundamentals
#Metric

正しい分類予測数を予測の合計数で割った値。具体的には、次のことが求められます。

Accuracy=correct predictionscorrect predictions + incorrect predictions 

たとえば、40 件の予測を正しく行い、10 件の予測を誤ったモデルの精度は次のようになります。

Accuracy=4040 + 10=80%

バイナリ分類では、正しい予測誤った予測のさまざまなカテゴリに固有の名前が付けられます。したがって、バイナリ分類の精度の式は次のとおりです。

Accuracy=TP+TNTP+TN+FP+FN

ここで

  • TP は、真陽性(正しい予測)の数です。
  • TN は、真陰性(正しい予測)の数です。
  • FP は、偽陽性(誤った予測)の数です。
  • FN は、偽陰性(誤った予測)の数です。

精度を 適合率再現率と比較します。

状況によっては有用な指標ですが、他の状況では誤解を招く可能性があります。特に、精度は通常、クラスのバランスが取れていないデータセットを処理する分類モデルを評価するための指標として適していません。

たとえば、ある亜熱帯都市で雪が降るのは 100 年に 25 日間だけであるとします。雪が降らない日(負のクラス)が雪が降る日(正のクラス)よりもはるかに多いため、この都市の雪データセットはクラスのバランスが崩れています。1 日に雪が降るか降らないかを予測するはずのバイナリ分類モデルが、毎日「雪なし」と予測するとします。このモデルは非常に正確ですが、予測力はありません。次の表に、100 年間の予測の結果をまとめます。

カテゴリ 数値
TP 0
TN 36499
FP 0
FN 25

したがって、このモデルの精度は次のようになります。

accuracy = (TP + TN) / (TP + TN + FP + FN)
accuracy = (0 + 36499) / (0 + 36499 + 0 + 25) = 0.9993 = 99.93%

精度が 99.93% は非常に優秀な数値に見えますが、実際にはモデルに予測力はありません。

クラスのバランスが取れていないデータセットでトレーニングされたモデルを評価する場合、通常、精度再現率精度よりも有用な指標です。


詳細については、ML 集中講座の分類: 精度、再現率、適合率、関連指標をご覧ください。

活性化関数

#fundamentals

ニューラル ネットワークが特徴とラベルの間の非線形(複雑)な関係を学習できるようにする関数。

一般的な活性化関数には次のようなものがあります。

活性化関数のグラフは単一の直線ではありません。たとえば、ReLU 活性化関数のグラフは 2 本の直線で構成されています。

2 本の線の直交座標プロット。最初の線は、x 軸に沿って -∞,0 から 0,-0 まで走り、y 値が常に 0 です。2 行目は 0,0 から始まります。この線の傾きは +1 であるため、0,0 から +∞,+∞ まで延びています。

シグモイド活性化関数のグラフは次のようになります。

2 次元の曲線プロット。X 値は -∞ から +∞ の範囲にまたがり、Y 値はほぼ 0 からほぼ 1 の範囲にまたがっています。x が 0 の場合、y は 0.5 です。曲線の傾斜は常に正で、0,0.5 で最大になり、x の絶対値が増加するにつれて徐々に減少します。

ニューラル ネットワークでは、活性化関数はニューロンへのすべての入力の加重合計を操作します。ニューロンは、重み付きの合計を計算するために、関連する値と重みの積を合計します。たとえば、ニューロンに関連する入力が次のように構成されているとします。

入力値 入力重み
2 -1.3
-1 0.6
3 0.4
したがって、加重和は次のようになります。
weighted sum = (2)(-1.3) + (-1)(0.6) + (3)(0.4) = -2.0
このニューラル ネットワークの設計者が、シグモイド関数を活性化関数として選択したとします。この場合、ニューロンは -2.0 のシグモイド(約 0.12)を計算します。したがって、ニューロンはニューラル ネットワークの次のレイヤに -2.0 ではなく 0.12 を渡します。次の図は、プロセスの関連部分を示しています。

3 つの特徴を持つ入力層。3 つの特徴値と 3 つの重みを隠れ層のニューロンに渡します。隠れ層は元の値(-2.0)を計算し、元の値を活性化関数に渡します。アクティベーション関数は、元の値の sigmoid を計算し、結果(0.12)をニューラル ネットワークの次のレイヤに渡します。


詳細については、ML 集中講座のニューラル ネットワーク: 活性化関数をご覧ください。

人工知能

#fundamentals

複雑なタスクを解決できる人間以外のプログラムまたはモデル。たとえば、テキストを翻訳するプログラムやモデル、放射線画像から疾患を特定するプログラムやモデルはどちらも人工知能を備えています。

正式には、機械学習は人工知能のサブフィールドです。しかし、近年、一部の組織では「人工知能」と「機械学習」という用語を同義に使用し始めています。

AUC(ROC 曲線の下の面積)

#fundamentals
#Metric

0.0 ~ 1.0 の数値。バイナリ分類モデルが正クラス負クラスを分離する能力を表します。AUC が 1.0 に近いほど、モデルがクラスを区別する能力が高くなります。

たとえば、次の図は、正クラス(緑色の楕円)と負クラス(紫色の長方形)を完全に分離する分類モデルを示しています。この現実離れした完璧なモデルの AUC は 1.0 です。

一方に 8 つのポジティブ サンプル、もう一方に 9 つのネガティブ サンプルがある数直線。

一方、次の図は、ランダムな結果を生成する分類モデルの結果を示しています。このモデルの AUC は 0.5 です。

6 つのポジティブ サンプルと 6 つのネガティブ サンプルを含む数直線。サンプルの順序は、正、負、正、負、正、負、正、負、正、負、正、負です。

はい。前述のモデルの AUC は 0.0 ではなく 0.5 です。

ほとんどのモデルは、両極端の中間にあります。たとえば、次のモデルは正と負をある程度分離しているため、AUC は 0.5 ~ 1.0 の範囲にあります。

6 つのポジティブ サンプルと 6 つのネガティブ サンプルを含む数直線。サンプルの順序は、負、負、負、負、正、負、正、正、負、正、正、正です。

AUC では、分類しきい値に設定した値は無視されます。代わりに、AUC は可能な分類しきい値をすべて考慮します。

AUC は、ROC 曲線の下の面積を表します。たとえば、正例と負例を完全に分離するモデルの ROC 曲線は次のようになります。

直交グラフ。X 軸は偽陽性率、Y 軸は真陽性率です。グラフは 0,0 から始まり、まっすぐ上に 0,1 まで上がり、まっすぐ右に進んで 1,1 で終わります。

AUC は、上の図のグレーの領域の面積です。この異例なケースでは、面積はグレー領域の長さ(1.0)にグレー領域の幅(1.0)を掛けたものです。したがって、1.0 と 1.0 の積は正確に 1.0 の AUC になります。これは、可能な限り高い AUC スコアです。

逆に、クラスをまったく分離できない分類器の ROC 曲線は次のとおりです。このグレーの領域の面積は 0.5 です。

直交グラフ。X 軸は偽陽性率、Y 軸は真陽性率です。グラフは 0,0 から始まり、斜めに 1,1 まで伸びています。

一般的な ROC 曲線は次のようになります。

直交グラフ。X 軸は偽陽性率、Y 軸は真陽性率です。グラフは 0,0 から始まり、不規則な円弧を描いて 1,0 に至ります。

この曲線の下の面積を手動で計算するのは大変な作業です。そのため、通常はプログラムで AUC 値のほとんどを計算します。


AUC は、無作為に選択した陽性のサンプルが陽性に分類される確率が、無作為に選択した陰性のサンプルが陽性に分類される確率よりも高い可能性を表します。


詳細については、機械学習集中講座の分類: ROC と AUC をご覧ください。

B

誤差逆伝播法

#fundamentals

ニューラル ネットワーク勾配降下を実装するアルゴリズム。

ニューラル ネットワークのトレーニングでは、次の 2 パス サイクルを何度もiterationsします。

  1. 順伝播中、システムはサンプルバッチを処理して予測を生成します。システムは、各予測を各ラベル値と比較します。予測値とラベル値の差が、その例の損失です。システムは、すべてのサンプルの損失を集計して、現在のバッチの合計損失を計算します。
  2. バックワード パス(バックプロパゲーション)では、システムはすべての隠れ層のすべてのニューロンの重みを調整することで損失を低減します。

ニューラル ネットワークには、多くの隠れ層に多くのニューロンが含まれていることがよくあります。これらのニューロンはそれぞれ、全体的な損失に異なる方法で貢献します。バックプロパゲーションでは、特定のニューロンに適用される重みを増やすか減らすかを決定します。

学習率は、各バックワード パスで各重みを増減する程度を制御する乗数です。学習率が大きいほど、各重みが増減する量は小さい学習率の場合よりも多くなります。

微分学の言葉で言えば、バックプロパゲーションでは微分学からチェーンルールを実装します。つまり、バックプロパゲーションでは、各パラメータに対するエラーの偏導関数が計算されます。

数年前、ML 担当者はバックプロパゲーションを実装するためのコードを記述する必要がありました。Keras などの最新の ML API では、バックプロパゲーションを実装できます。さて、

詳細については、ML 集中講座のニューラル ネットワークをご覧ください。

Batch

#fundamentals

1 回のトレーニングの反復で使用されるサンプルのセット。バッチサイズによって、バッチ内のサンプル数が決まります。

バッチとエポックの関連については、エポックをご覧ください。

詳細については、機械学習集中講座の線形回帰: ハイパーパラメータをご覧ください。

バッチサイズ

#fundamentals

バッチ内のサンプルの数。たとえば、バッチサイズが 100 の場合、モデルは 1 回の反復処理で 100 個のサンプルを処理します。

一般的なバッチサイズ戦略は次のとおりです。

  • 確率的勾配降下法(SGD): バッチサイズが 1 です。
  • フルバッチ。バッチサイズは、トレーニング セット全体のサンプル数です。たとえば、トレーニング セットに 100 万のサンプルが含まれている場合、バッチサイズは 100 万のサンプルになります。通常、フルバッチは非効率的な戦略です。
  • ミニバッチ: バッチサイズは通常 10 ~ 1,000 です。通常、ミニバッチが最も効率的な戦略です。

詳しくは以下をご覧ください。

バイアス(倫理/公平性)

#fairness
#fundamentals

1. 特定のこと、人、グループに対する固定観念、偏見、またはえこひいき。こうしたバイアスは、データの収集と解釈、システムの設計、ユーザーがシステムを操作する方法に影響する可能性があります。このタイプのバイアスには次のようなものがあります。

2. サンプリングや報告の手順で体系的に生じたエラー。このタイプのバイアスには次のようなものがあります。

機械学習モデルのバイアス項予測バイアスと混同しないでください。

詳細については、ML 集中講座の公平性: バイアスの種類をご覧ください。

バイアス(数学)またはバイアス項

#fundamentals

原点からの切片またはオフセット。バイアスは機械学習モデルのパラメータで、次のいずれかで表されます。

  • b
  • w0

たとえば、バイアスは次の式の b です。

y=b+w1x1+w2x2+wnxn

単純な 2 次元線の場合、バイアスは「y 切片」を意味します。たとえば、次の図の線のバイアス値は 2 です。

傾き 0.5、バイアス(y 切片)2 の線のグラフ。

バイアスが存在するのは、すべてのモデルが原点(0,0)から始まるわけではないためです。たとえば、遊園地の入場料が 2 ユーロで、滞在時間 1 時間ごとに 0.5 ユーロの追加料金が発生するとします。したがって、合計費用をマッピングするモデルには 2 ユーロの最小費用があるため、バイアスが 2 になります。

バイアスは、倫理と公平性に関するバイアス予測バイアスとは異なります。

詳細については、機械学習集中講座の線形回帰をご覧ください。

バイナリ分類

#fundamentals

相互に排他的な 2 つのクラスのうちの 1 つを予測する分類タスクの一種。

たとえば、次の 2 つの ML モデルはそれぞれバイナリ分類を行います。

  • メール メッセージがスパム(正クラス)かスパム以外(負クラス)かを判断するモデル。
  • 医学的な症状を評価して、特定の病気(陽性クラス)にかかっているか、かかっていないか(陰性クラス)を判断するモデル。

マルチクラス分類とは対照的です。

ロジスティック回帰分類しきい値もご覧ください。

詳細については、ML 集中講座の分類をご覧ください。

バケット化、

#fundamentals

1 つの特徴量を複数のバイナリ特徴量(バケットまたはビン)に変換します。通常は値の範囲に基づいて行います。切り捨てられた特徴量は通常、連続特徴量です。

たとえば、温度を単一の連続浮動小数点型の特徴量として表すのではなく、温度の範囲を個別のバケットに分割できます。次に例を示します。

  • 摂氏 10 度以下は「コールド」バケットになります。
  • 11 ~ 24 度が「温暖」バケットになります。
  • 25 度以上は「暖かい」バケットになります。

モデルは、同じバケット内のすべての値を同じ方法で処理します。たとえば、値 1322 はどちらも温帯バケットに含まれているため、モデルは 2 つの値を同じ方法で処理します。

温度を連続的な特徴として表すと、モデルは温度を単一の特徴として扱います。温度を 3 つのバケットとして表すと、モデルは各バケットを個別の特徴として扱います。つまり、モデルは各バケットとラベルの個別の関係を学習できます。たとえば、線形回帰モデルは、バケットごとに個別の重みを学習できます。

バケット数を増やすと、モデルが学習する関係の数が増えるため、モデルの複雑さが増します。たとえば、寒冷、温暖、暖かいバケットは、基本的にモデルがトレーニングする 3 つの個別の特徴です。フリーズとホットなど、さらに 2 つのバケットを追加する場合、モデルは 5 つの個別の特徴量でトレーニングする必要があります。

作成するバケットの数や、各バケットの範囲を把握するにはどうすればよいですか?通常、回答を得るにはかなりのテストが必要です。


詳細については、機械学習集中講座の数値データ: ビニングをご覧ください。

C

カテゴリデータ

#fundamentals

特定の値のセットを持つ特徴。たとえば、traffic-light-state という名前のカテゴリ特徴について考えてみましょう。この特徴には、次の 3 つの値のいずれかしか設定できません。

  • red
  • yellow
  • green

traffic-light-state をカテゴリ特徴量として表現することで、モデルは redgreenyellow が運転行動に与える影響の違いを学習できます。

カテゴリ特徴は、離散特徴とも呼ばれます。

数値データとは対照的です。

詳細については、機械学習集中講座のカテゴリデータの操作をご覧ください。

クラス

#fundamentals

ラベルが属するカテゴリ。次に例を示します。

  • スパムを検出するバイナリ分類モデルでは、2 つのクラスは「スパム」と「スパム以外」になります。
  • 犬の品種を識別するマルチクラス分類モデルでは、クラスはプードル、ビーグル、パグなどです。

分類モデルはクラスを予測します。一方、回帰モデルはクラスではなく数値を予測します。

詳細については、ML 集中講座の分類をご覧ください。

分類モデル

#fundamentals

予測がクラスであるモデル。たとえば、次のすべてが分類モデルです。

  • 入力文の言語(フランス語?スペイン語?イタリア語)
  • 樹種を予測するモデル(メープル?オークですか?Baobab か?)
  • 特定の医学的状態の陽性または陰性のクラスを予測するモデル。

一方、回帰モデルはクラスではなく数値を予測します。

一般的な分類モデルには次の 2 種類があります。

分類しきい値

#fundamentals

バイナリ分類では、0 ~ 1 の値で、ロジスティック回帰モデルの元の出力を正クラスまたは負クラスの予測に変換します。分類しきい値は、モデル トレーニングによって選択される値ではなく、人間が選択する値です。

ロジスティック回帰モデルは、0 ~ 1 の元の値を出力します。以下の手順を行います。

  • この元の値が分類しきい値より大きい場合、正クラスが予測されます。
  • この元の値が分類しきい値より小さい場合、負のクラスが予測されます。

たとえば、分類しきい値が 0.8 であるとします。元の値が 0.9 の場合、モデルは正のクラスを予測します。元の値が 0.7 の場合、モデルは負のクラスを予測します。

分類しきい値の選択は、偽陽性偽陰性の数に大きく影響します。

モデルやデータセットが進化するにつれて、エンジニアは分類しきい値を変更することもあります。分類しきい値が変更されると、正のクラスの予測が突然負のクラスになることがあります。その逆も同様です。

たとえば、バイナリ分類の疾患予測モデルについて考えてみましょう。1 年目にシステムが実行された場合、次のようにします。

  • 特定の患者の元の値は 0.95 です。
  • 分類しきい値は 0.94 です。

したがって、システムは陽性のクラスを診断します。(患者は息をのんで「気分が悪い」)

1 年後、値は次のようになります。

  • 同じ患者の元の値は 0.95 のままです。
  • 分類しきい値が 0.97 に変更されます。

したがって、システムは、その患者を陰性クラスに再分類します。(「Happy day! 病気ではありません」)同じ患者。別の診断。


詳細については、機械学習集中講座のしきい値と混同行列をご覧ください。

クラスの不均衡なデータセット

#fundamentals

各クラスのラベルの合計数が大きく異なる分類問題のデータセット。たとえば、2 つのラベルが次のように分割されているバイナリ分類データセットについて考えてみましょう。

  • 1,000,000 個の否定ラベル
  • 10 個の正のラベル

ネガティブ ラベルとポジティブ ラベルの比率は 100,000:1 であるため、これはクラスのバランスが取れていないデータセットです。

一方、次のデータセットは、負のラベルと正のラベルの比率が比較的 1 に近いため、クラスの不均衡ではありません

  • 517 件の否定ラベル
  • 483 個の正のラベル

マルチクラスのデータセットは、クラスの不均衡になることもあります。たとえば、次のマルチクラス分類データセットも、1 つのラベルに他の 2 つよりもはるかに多くの例があるため、クラスの不均衡があります。

  • クラスが「green」の 1,000,000 個のラベル
  • クラスが「purple」の 200 個のラベル
  • クラス「orange」の 350 個のラベル

エントロピー多数クラス少数クラスもご覧ください。

クリッピング

#fundamentals

次のいずれか、または両方を行うことで外れ値を処理する手法。

  • 最大しきい値を超える特徴量の値を最大しきい値まで減らす。
  • 最小しきい値未満の特徴値を最小しきい値まで増やす。

たとえば、特定の特徴の値の 0.5% 未満が 40 ~ 60 の範囲外にあるとします。この場合は、次のように対応できます。

  • 60(最大しきい値)を超えるすべての値を 60 にクリップします。
  • 40(最小しきい値)未満の値はすべて、40 に切り捨てられます。

外れ値はモデルに損傷を与え、トレーニング中に重みのオーバーフローを引き起こすことがあります。一部の外れ値は、精度などの指標を大幅に損なうこともあります。クリッピングは、損傷を制限する一般的な手法です。

勾配クリッピングは、トレーニング中に勾配値を指定された範囲内に強制します。

詳細については、機械学習集中講座の数値データ: 正規化をご覧ください。

混同行列

#fundamentals

分類モデルが行った正しい予測と誤った予測の数をまとめた NxN 表。たとえば、二値分類モデルの次の混同行列について考えてみましょう。

腫瘍(予測) 腫瘍以外(予測)
腫瘍(グラウンド トゥルース) 18(TP) 1(FN)
腫瘍以外(グラウンド トゥルース) 6(FP) 452(TN)

上の混同行列は、次のことを示しています。

  • 正解ラベルが「腫瘍」の 19 件の予測のうち、モデルは 18 件を正しく分類し、1 件を誤って分類しました。
  • グラウンドトゥルースが「腫瘍なし」の 458 件の予測のうち、モデルは 452 件を正しく分類し、6 件を誤って分類しました。

マルチクラス分類問題の混同行列は、間違いのパターンを特定するのに役立ちます。たとえば、3 種類のアヤメ(Virginica、Versicolor、Setosa)を分類する 3 クラスのマルチクラス分類モデルの混同行列について考えてみましょう。正解が Virginica の場合、混同行列は、モデルが Setosa よりも Versicolor を誤って予測する可能性の方がはるかに高いことを示しています。

  Setosa(予測) Versicolor(予測) Virginica(予測)
Setosa(グラウンド トゥルース) 88 12 0
Versicolor(グラウンド トゥルース) 6 141 7
Virginica(グラウンド トゥルース) 2 27 109

別の例として、混同行列から、手書きの数字を認識するようにトレーニングされたモデルが、4 ではなく 9 を誤って予測する傾向があること、または 7 ではなく 1 を誤って予測する傾向があることが明らかになります。

混同行列には、適合率再現率など、さまざまなパフォーマンス指標を計算するのに十分な情報が含まれています。

連続特徴

#fundamentals

温度や重量など、無限の値の範囲を持つ浮動小数点特徴量

離散特徴とは対照的です。

収束

#fundamentals

損失値が反復処理ごとにほとんど変化しない場合、またはまったく変化しない場合に到達する状態。たとえば、次の損失曲線は、700 回目の反復処理で収束することを示しています。

デカルトグラフ。X 軸は損失です。Y 軸はトレーニング イテレーションの数です。最初の数回の反復では損失が非常に高くなりますが、急激に低下します。約 100 回のイテレーション後、損失は引き続き減少していますが、はるかに緩やかになっています。約 700 回のイテレーション後、損失は横ばいになります。

追加のトレーニングでモデルが改善されなくなると、モデルは収束します。

ディープラーニングでは、損失値が多くの反復処理で一定またはほぼ一定のままになり、最終的に減少することがあります。損失値が長期間一定の場合、一時的に収束したように見えることがあります。

早期停止もご覧ください。

詳細については、ML 集中講座のモデルの収束と損失曲線をご覧ください。

D

DataFrame

#fundamentals

メモリ内のデータセットを表す一般的な pandas データ型。

DataFrame は、テーブルやスプレッドシートに似ています。DataFrame の各列には名前(ヘッダー)があり、各行は一意の数値で識別されます。

DataFrame の各列は 2 次元配列のように構造化されていますが、各列に独自のデータ型を割り当てることができます。

公式の pandas.DataFrame リファレンス ページもご覧ください。

データセット

#fundamentals

元データのコレクション。通常は(必ずしもそうであるとは限りません)次のいずれかの形式で編成されます。

  • スプレッドシート
  • CSV(カンマ区切り)形式のファイル

ディープモデル

#fundamentals

複数の隠れ層を含むニューラル ネットワーク

ディープモデルは、ディープ ニューラル ネットワークとも呼ばれます。

ワイドモデルとの比較

高密度特徴

#fundamentals

ほとんどまたはすべての値がゼロ以外の特徴量。通常は浮動小数点値のテンソルです。たとえば、次の 10 要素のテンソルは、9 つの値がゼロ以外であるため、密です。

8 3 7 5 2 4 0 4 9 6

スパースな特徴とは対照的です。

深さ

#fundamentals

ニューラル ネットワークにおける次の合計:

たとえば、隠れ層が 5 つ、出力層が 1 つのニューラル ネットワークの深さは 6 です。

入力レイヤは深さに影響しません。

離散的な特徴

#fundamentals

有効な値が有限な特徴。たとえば、値が「動物」、「野菜」、「鉱物」のいずれかである特徴は、離散(カテゴリ)特徴です。

連続特徴とは対照的です。

動的

#fundamentals

頻繁にまたは継続的に行う作業。機械学習では、動的とオンラインという用語は同義です。機械学習における動的とオンラインの一般的な用途は次のとおりです。

  • 動的モデル(またはオンライン モデル)は、頻繁または継続的に再トレーニングされるモデルです。
  • 動的トレーニング(またはオンライン トレーニング)は、頻繁または継続的にトレーニングを行うプロセスです。
  • 動的推論(またはオンライン推論)は、オンデマンドで予測を生成するプロセスです。

動的モデル

#fundamentals

頻繁に(場合によっては継続的に)再トレーニングされるモデル。動的モデルは、変化するデータに常に適応する「生涯学習者」です。動的モデルは、オンライン モデルとも呼ばれます。

静的モデルとは対照的です。

E

早期停止

#fundamentals

トレーニング損失の減少が完了する前にトレーニングを終了する正規化の方法。早期停止では、検証データセットの損失が上昇し始め、汎化のパフォーマンスが低下したときに、モデルのトレーニングを意図的に停止します。

早期停止は直感に反するように思えますが、結局のところ、損失がまだ減少しているときにトレーニングを停止するようモデルに指示することは、デザートが完全に焼き上がっていないうちに調理を停止するようシェフに指示するようなものです。ただし、モデルのトレーニングを長時間行うと、過学習につながる可能性があります。つまり、モデルを長時間トレーニングすると、モデルがトレーニング データに過度に適合し、新しいサンプルに対して適切な予測を行えなくなる可能性があります。


エンベディング レイヤ

#language
#fundamentals

高次元のカテゴリ特徴でトレーニングし、低次元のエンベディング ベクトルを徐々に学習する特別な隠れ層。エンベディング層を使用すると、高次元のカテゴリ特徴のみをトレーニングする場合よりも、ニューラル ネットワークをはるかに効率的にトレーニングできます。

たとえば、現在 Google Earth では約 73,000 種類の樹木をサポートしています。木の種類がモデルの特徴であるとします。モデルの入力レイヤには、73,000 要素の長さのワンホット ベクトルが含まれています。たとえば、baobab は次のように表されます。

73,000 個の要素の配列。最初の 6,232 要素は値 0 を保持します。次の要素には値 1 が格納されます。最後の 66,767 個の要素はゼロの値を保持します。

73,000 要素の配列は非常に長いです。モデルにエンベディング レイヤを追加しないと、72,999 個のゼロを乗算するため、トレーニングに非常に時間がかかります。エンベディング レイヤを 12 つのディメンションで構成するとします。エンベディング レイヤは、木の種類ごとに新しいエンベディング ベクトルを徐々に学習します。

状況によっては、エンベディング レイヤの代替としてハッシュ化が適切な場合があります。

詳細については、機械学習集中講座のエンベディングをご覧ください。

エポック

#fundamentals

トレーニング セット全体に対する完全なトレーニング パス。各サンプルが 1 回処理されます。

エポックは、N/バッチサイズ のトレーニング イテレーションを表します。ここで、N はサンプルの合計数です。

たとえば、次のようにします。

  • このデータセットは 1,000 個のサンプルで構成されています。
  • バッチサイズは 50 サンプルです。

したがって、1 つのエポックには 20 回の反復処理が必要です。

1 epoch = (N/batch size) = (1,000 / 50) = 20 iterations

詳細については、機械学習集中講座の線形回帰: ハイパーパラメータをご覧ください。

#fundamentals

特徴の 1 行の値と、ラベル教師あり学習の例は、次の 2 つの一般的なカテゴリに分類されます。

  • ラベル付きの例は、1 つ以上の特徴とラベルで構成されます。ラベル付きのサンプルはトレーニング中に使用されます。
  • ラベルなしの例は、1 つ以上の特徴で構成されますが、ラベルはありません。ラベルなしの例は推論時に使用されます。

たとえば、天候が生徒のテスト成績に与える影響を特定するモデルをトレーニングしているとします。ラベル付きの例を 3 つ示します。

機能 ラベル
温度 湿度 気圧 テストの点数
15 47 998 良い
19 34 1020 非常に良い
18 92 1012 悪い

ラベルのない例を 3 つ示します。

温度 湿度 気圧  
12 62 1014  
21 47 1017  
19 41 1021  

データセットの行は、通常、サンプルの元のソースです。つまり、サンプルは通常、データセット内の列のサブセットで構成されます。さらに、例の特徴には、特徴の交差などの合成特徴も含めることができます。

詳細については、ML 入門コースの教師あり学習をご覧ください。

F

偽陰性(FN)

#fundamentals
#Metric

モデルが陰性クラスを誤って予測している例。たとえば、モデルは特定のメール メッセージがスパムではない(負のクラス)と予測しますが、そのメール メッセージは実際にはスパムです。

偽陽性(FP)

#fundamentals
#Metric

モデルが陽性のクラスを誤って予測している例。たとえば、モデルは特定のメール メッセージがスパム(正クラス)であると予測しますが、そのメール メッセージは実際にはスパムではありません

詳細については、機械学習集中講座のしきい値と混同行列をご覧ください。

偽陽性率(FPR)

#fundamentals
#Metric

モデルが陽性のクラスを誤って予測した実際の負のサンプルの割合。次の式は、誤検出率を計算します。

false positive rate=false positivesfalse positives+true negatives

偽陽性率は、ROC 曲線の X 軸です。

詳細については、機械学習集中講座の分類: ROC と AUC をご覧ください。

特徴;特徴表現

#fundamentals

ML モデルへの入力変数。は 1 つ以上の特徴で構成されます。たとえば、天候が生徒のテスト成績に与える影響を判断するモデルをトレーニングしているとします。次の表に、それぞれ 3 つの特徴と 1 つのラベルを含む 3 つの例を示します。

機能 ラベル
温度 湿度 気圧 テストのスコア
15 47 998 92
19 34 1020 84
18 92 1012 87

ラベルと対比してください。

詳細については、機械学習の概要コースの教師あり学習をご覧ください。

特徴クロス

#fundamentals

カテゴリまたはバケット化された特徴量を「クロス」することで形成される合成特徴量

たとえば、次の 4 つのバケットのいずれかで気温を表す「気分予測」モデルについて考えてみましょう。

  • freezing
  • chilly
  • temperate
  • warm

風速は次の 3 つのバケットのいずれかで表されます。

  • still
  • light
  • windy

特徴量クロスなしの場合、線形モデルは上記の 7 つのバケットごとに個別にトレーニングされます。そのため、モデルは windy でのトレーニングとは独立して、freezing でトレーニングされます。

または、温度と風速の特徴クロスを作成することもできます。この合成特徴には、次の 12 個の値が考えられます。

  • freezing-still
  • freezing-light
  • freezing-windy
  • chilly-still
  • chilly-light
  • chilly-windy
  • temperate-still
  • temperate-light
  • temperate-windy
  • warm-still
  • warm-light
  • warm-windy

特徴クロスにより、モデルは freezing-windy 日と freezing-still 日の気分の違いを学習できます。

それぞれに多くの異なるバケットがある 2 つの特徴量から合成特徴量を作成すると、結果として得られる特徴量クロスには膨大な数の組み合わせが存在します。たとえば、一方の特徴に 1,000 個のバケットがあり、もう一方の特徴に 2,000 個のバケットがある場合、結果として得られる特徴の交差には 2,000,000 個のバケットがあります。

正式には、クロスはデカルト積です。

特徴量の交差は主に線形モデルで使用され、ニューラル ネットワークではあまり使用されません。

詳細については、機械学習集中講座のカテゴリデータ: 特徴量の交差をご覧ください。

2つのステップが含まれます

#fundamentals
#TensorFlow

次の手順を含むプロセス:

  1. モデルのトレーニングに役立つ可能性がある特徴を特定する。
  2. データセットの元データを、それらの特徴量の効率的なバージョンに変換します。

たとえば、temperature が便利な機能であると判断できます。次に、バケット化を試して、モデルがさまざまな temperature 範囲から学習できる内容を最適化できます。

特徴量エンジニアリングは、特徴量抽出または特徴量化とも呼ばれます。

TensorFlow では、特徴量エンジニアリングは、未加工のログファイル エントリを tf.Example プロトコル バッファに変換することを意味します。tf.Transform もご覧ください。


詳細については、ML 集中講座の数値データ: モデルが特徴ベクトルを使用してデータを取り込む方法をご覧ください。

機能セット

#fundamentals

機械学習モデルがトレーニングする特徴量のグループ。たとえば、住宅価格を予測するモデルの単純な特徴セットは、郵便番号、物件の広さ、物件の状態で構成できます。

特徴ベクトル

#fundamentals

を構成する特徴値の配列。特徴ベクトルは、トレーニング推論時に入力されます。たとえば、2 つの離散特徴を持つモデルの特徴ベクトルは次のようになります。

[0.92, 0.56]

4 つの層: 入力層、2 つの隠れ層、1 つの出力層。入力レイヤには、値 0.92 を含むノードと値 0.56 を含むノードの 2 つのノードがあります。

各サンプルは特徴ベクトルに異なる値を指定するため、次のサンプルの特徴ベクトルは次のようになります。

[0.73, 0.49]

特徴量エンジニアリングでは、特徴ベクトルで特徴を表現する方法を決定します。たとえば、5 つの可能な値を持つバイナリ カテゴリ特徴は、ワンホット エンコーディングで表すことができます。この場合、特定の例の特徴ベクトルの部分は、4 つのゼロと 3 番目の位置にある 1.0 で構成されます。

[0.0, 0.0, 1.0, 0.0, 0.0]

別の例として、モデルが次の 3 つの特徴で構成されているとします。

  • ワンホット エンコーディングで表される、5 つの可能な値を持つバイナリのカテゴリ特徴(例: [0.0, 1.0, 0.0, 0.0, 0.0]
  • ワンホット エンコーディングで表される3 つの可能な値を持つ別のバイナリ カテゴリ特徴(例: [0.0, 0.0, 1.0]
  • 浮動小数点特徴(例: 8.3)。

この場合、各サンプルの特徴ベクトルは 9 個の値で表されます。上記のリストに示されている例の値の場合、特徴ベクトルは次のようになります。

0.0
1.0
0.0
0.0
0.0
0.0
0.0
1.0
8.3

詳細については、ML 集中講座の数値データ: モデルが特徴ベクトルを使用してデータを取り込む方法をご覧ください。

フィードバック ループ

#fundamentals

機械学習では、モデルの予測が同じモデルまたは別のモデルのトレーニング データに影響を与える状況です。たとえば、映画をおすすめするモデルは、ユーザーが視聴する映画に影響し、その後の映画のレコメンデーション モデルに影響します。

詳細については、ML 集中講座の本番環境の ML システム: 確認すべき質問をご覧ください。

G

一般化

#fundamentals

これまでにない新しいデータに対して正しい予測を行うモデルの能力。一般化できるモデルは、過学習しているモデルとは対照的です。

トレーニング セットのサンプルでモデルをトレーニングします。その結果、モデルはトレーニング セット内のデータの特殊性を学習します。一般化とは、基本的に、トレーニング セットにない例に対してモデルが適切な予測を行うことができるかどうかを問うものです。

一般化を促進するために、正則化により、モデルがトレーニング セット内のデータの特殊性に厳密に従ってトレーニングされないようにします。


詳細については、機械学習集中講座の一般化をご覧ください。

一般化曲線

#fundamentals

反復処理回数の関数として、トレーニング損失検証損失の両方をプロットします。

一般化曲線は、過剰適合の可能性を検出するのに役立ちます。たとえば、次の一般化曲線は、最終的に検証損失がトレーニング損失よりも大幅に高くなるため、過剰適合を示唆しています。

Y 軸に損失、x 軸にイテレーションとラベルが付けられた座標型グラフ。2 つのグラフが表示されます。1 つのプロットはトレーニング損失を示し、もう 1 つは検証損失を示します。2 つのプロットは最初は同じように始まりますが、最終的にはトレーニング損失が検証損失よりもはるかに低くなります。

詳細については、機械学習集中講座の一般化をご覧ください。

勾配降下法

#fundamentals

損失を最小限に抑える数学的な手法。勾配降下法は、重みバイアスを反復的に調整し、損失を最小限に抑える最適な組み合わせを徐々に見つけます。

勾配降下法は、機械学習よりもはるかに古い手法です。

詳細については、機械学習集中講座の線形回帰: 勾配降下法をご覧ください。

グラウンド トゥルース

#fundamentals

現実。

実際に発生した事象。

たとえば、大学 1 年生の学生が 6 年以内に卒業するかどうかを予測するバイナリ分類モデルについて考えてみましょう。このモデルのグラウンド トゥルースは、その生徒が実際に 6 年以内に卒業したかどうかです。

モデルの品質はグラウンド トゥルースと比較して評価されます。ただし、グラウンド トゥルースは必ずしも完全に真実であるとは限りません。たとえば、次の例は、グラウンド トゥルースにある可能性のある不完全性を示しています。

  • 卒業例では、各生徒の卒業記録が常に正しいことは確実ですか?大学の記録管理は完璧ですか?
  • ラベルが、計測機器(気圧計など)によって測定された浮動小数点値であるとします。各計測機器が同じ基準で調整されていること、または各測定が同じ状況で行われたことをどのように確認すればよいですか?
  • ラベルが人間の意見に依存するものである場合、各人間のレーティング担当者がイベントを同じ方法で評価していることをどのように確認できるでしょうか。一貫性を高めるために、専門家の人間のレーティング担当者が介入することがあります。

H

隠れ層

#fundamentals

ニューラル ネットワークの層。入力層(特徴)と出力層(予測)の間にあります。各隠れ層は、1 つ以上のニューロンで構成されます。たとえば、次のニューラル ネットワークには 2 つの隠れレイヤがあります。最初のレイヤには 3 つのニューロンがあり、2 番目のレイヤには 2 つのニューロンがあります。

4 つのレイヤ。最初のレイヤは、2 つの特徴量を含む入力レイヤです。2 番目のレイヤは、3 つのニューロンを含む隠れ層です。3 つ目のレイヤは、2 つのニューロンを含む隠れ層です。4 番目の層は出力層です。各特徴には 3 つのエッジがあり、それぞれが 2 番目のレイヤ内の異なるニューロンを参照しています。第 2 層の各ニューロンには 2 つのエッジがあり、それぞれが第 3 層の異なるニューロンを参照しています。3 番目のレイヤの各ニューロンには、出力レイヤを指すエッジが 1 つあります。

ディープ ニューラル ネットワークには、複数の隠れ層が含まれています。たとえば、上の図は、モデルに 2 つの隠しレイヤが含まれているため、ディープニューラル ネットワークです。

詳細については、ML 集中講座のニューラル ネットワーク: ノードと隠れ層をご覧ください。

ハイパーパラメータ

#fundamentals

ユーザーまたはハイパーパラメータ チューニング サービスが、モデルのトレーニングを連続して実行する際に調整する変数。たとえば、学習率はハイパーパラメータです。1 回のトレーニング セッションの前に学習率を 0.01 に設定できます。0.01 が大きすぎると判断した場合は、次のトレーニング セッションで学習率を 0.003 に設定できます。

一方、パラメータは、トレーニング中にモデルが学習するさまざまな重みバイアスです。

詳細については、機械学習集中講座の線形回帰: ハイパーパラメータをご覧ください。

I

独立同分布(i.i.d)

#fundamentals

変化しない分布から抽出されたデータで、抽出される各値が以前に抽出された値に依存しないデータ。i.i.d. は機械学習の理想気体です。これは有用な数学的な構成ですが、現実世界ではほとんど正確に見つかりません。たとえば、ウェブページへの訪問者の分布は、短い期間では独立分散である可能性があります。つまり、その短い期間では分布は変化せず、1 人の訪問は通常別の人の訪問とは独立しています。ただし、期間を広げると、ウェブページの訪問者数に季節的な違いが現れる可能性があります。

非定常性もご覧ください。

推論

#fundamentals

ML における、トレーニング済みモデルをラベルなしの例に適用して予測を行うプロセス。

統計学では、推論には少し異なる意味があります。詳細については、 統計的推論に関する Wikipedia の記事をご覧ください。

教師あり学習システムにおける推論の役割については、ML 入門コースの教師あり学習をご覧ください。

入力レイヤ

#fundamentals

特徴ベクトルを保持するニューラル ネットワークレイヤ。つまり、入力レイヤはトレーニングまたは推論用のサンプルを提供します。たとえば、次のニューラル ネットワークの入力レイヤは 2 つの特徴で構成されています。

4 つのレイヤ(入力レイヤ、2 つの隠れ層、出力レイヤ)

解釈可能性

#fundamentals

ML モデルの推論を人間にわかりやすい言葉で説明または提示する能力。

たとえば、ほとんどの線形回帰モデルは、解釈性に優れています。(確認するだけでよいのは、各特徴のトレーニング済み重みです)。デシジョン フォレストは解釈性も高く、ただし、一部のモデルでは、解釈可能にするために高度な可視化が必要になります。

Learning Interpretability Tool(LIT)を使用して ML モデルを解釈できます。

繰り返し

#fundamentals

トレーニング中にモデルのパラメータ(モデルの重みバイアス)を 1 回更新します。バッチサイズは、モデルが 1 回の反復で処理するサンプルの数を決定します。たとえば、バッチサイズが 20 の場合、モデルはパラメータを調整する前に 20 個のサンプルを処理します。

ニューラル ネットワークをトレーニングする場合、1 回の反復処理には次の 2 つのパスが含まれます。

  1. 1 つのバッチで損失を評価する順伝播。
  2. バックワード パス(バックプロパゲーション): 損失と学習率に基づいてモデルのパラメータを調整します。

詳細については、機械学習集中講座の勾配降下をご覧ください。

L

L0 正規化

#fundamentals

モデル内のゼロ以外の重み合計数にペナルティを適用する正則化の一種。たとえば、11 個のゼロ以外の重みを持つモデルは、10 個のゼロ以外の重みを持つ同様のモデルよりも大きなペナルティが適用されます。

L0 正則化は、L0 ノルム正則化とも呼ばれます。

L0 正則化は、トレーニングを最適化問題に変えるため、大規模なモデルでは一般的に実用的ではありません。


L1 損失

#fundamentals
#Metric

実際のラベル値とモデルが予測する値の差の絶対値を計算する損失関数。たとえば、5 つのサンプルバッチに対する L1 損失の計算は次のとおりです。

例の実際の値 モデルの予測値 デルタの絶対値
7 6 1
5 4 1
8 11 3
4 6 2
9 8 1
  8 = L1 の損失

L1 損失は、L2 損失よりも外れ値に敏感ではありません。

平均絶対誤差は、サンプルあたりの平均 L1 損失です。

L1loss=i=0n|yiy^i|

ここで
  • n はサンプル数です。
  • y はラベルの実際の値です。
  • y^ は、モデルが y に対して予測する値です。

詳細については、機械学習集中講座の線形回帰: 損失関数をご覧ください。

L1 正則化

#fundamentals

重みの絶対値の合計に比例して重みにペナルティを適用する正則化の一種。L1 正則化は、無関係またはほとんど関連性のない特徴量の重みを正確に 0 に近づけるのに役立ちます。重みが 0 の特徴量は、モデルから実質的に削除されます。

L2 正則化とは対照的です。

L2 損失

#fundamentals
#Metric

実際のラベル値とモデルが予測する値の差の二乗を計算する損失関数。たとえば、5 つのサンプルを含むバッチの L2 損失の計算は次のようになります。

例の実際の値 モデルの予測値 デルタの二乗
7 6 1
5 4 1
8 11 9
4 6 4
9 8 1
  16 = L2 損失

二乗するため、L2 損失は外れ値の影響を増幅します。つまり、L2 損失は、L1 損失よりも不適切な予測に強く反応します。たとえば、前のバッチの L1 損失は 16 ではなく 8 になります。1 つの外れ値が 16 件中 9 件を占めていることに注目してください。

回帰モデルは通常、損失関数として L2 損失を使用します。

平均二乗誤差は、サンプルあたりの平均 L2 損失です。二乗損失は、L2 損失の別名です。

L2loss=i=0n(yiy^i)2

ここで
  • n はサンプル数です。
  • y はラベルの実際の値です。
  • y^ は、モデルが y に対して予測する値です。

詳細については、機械学習集中講座のロジスティック回帰: 損失と正則化をご覧ください。

L2 正規化

#fundamentals

正則化の一種で、重みの平方の合計に比例して重みにペナルティーを科します。L2 正則化は、外れ値の重み(正の値が大きい値または負の値が小さい値)を 0 に近づけますが、0 にはなりません。値が 0 に非常に近い特徴はモデルに残りますが、モデルの予測にはあまり影響しません。

L2 正則化は、線形モデルの一般化を常に改善します。

L1 正則化とは対照的です。

詳細については、機械学習集中講座の過剰適合: L2 正規化をご覧ください。

ラベル

#fundamentals

教師あり機械学習では、の「回答」または「結果」の部分。

ラベル付きの例は、1 つ以上の特徴量とラベルで構成されます。たとえば、スパム検出データセットでは、ラベルは「スパム」または「スパムではない」のいずれかになります。降雨データセットでは、ラベルは特定の期間に降った雨の量です。

詳細については、ML の概要の教師あり学習をご覧ください。

ラベル付きサンプル

#fundamentals

1 つ以上の特徴ラベルを含む例。たとえば、次の表は、住宅査定モデルの 3 つのラベル付きサンプルを示しています。それぞれに 3 つの特徴と 1 つのラベルがあります。

寝室の数 浴室の数 家の築年数 住宅価格(ラベル)
3 2 15 $345,000
2 1 72 $179,000
4 2 34 $392,000

教師あり機械学習では、モデルはラベル付きの例でトレーニングし、ラベルなしの例で予測を行います。

ラベル付きサンプルとラベルなしサンプルを比較します。

詳細については、ML の概要の教師あり学習をご覧ください。

lambda

#fundamentals

正則化率と同義。

ラムダはオーバーロードされた用語です。ここでは、正則化におけるこの用語の定義に焦点を当てます。

レイヤ

#fundamentals

ニューラル ネットワーク内のニューロンのセット。一般的なレイヤの種類は次の 3 つです。

たとえば、次の図は、1 つの入力レイヤ、2 つの隠れ層、1 つの出力レイヤを持つニューラル ネットワークを示しています。

入力層が 1 つ、隠れ層が 2 つ、出力層が 1 つのニューラル ネットワーク。入力レイヤは 2 つの特徴で構成されています。最初の隠れ層は 3 つのニューロンで構成され、2 番目の隠れ層は 2 つのニューロンで構成されています。出力レイヤは単一のノードで構成されます。

TensorFlow では、レイヤも Python 関数であり、テンソルと構成オプションを入力として受け取り、他のテンソルを出力します。

学習率

#fundamentals

反復処理で重みとバイアスをどの程度調整するかを勾配降下法アルゴリズムに指示する浮動小数点数。たとえば、学習率が 0.3 の場合、重みとバイアスの調整は学習率が 0.1 の場合の 3 倍強くなります。

学習率は重要なハイパーパラメータです。学習率を低く設定しすぎると、トレーニングに時間がかかりすぎます。学習率を高く設定しすぎると、勾配降下法が収束に達しないことがよくあります。

各反復処理で、勾配降下法アルゴリズムは学習率に勾配を掛けます。得られた積は勾配ステップと呼ばれます。


詳細については、機械学習集中講座の線形回帰: ハイパーパラメータをご覧ください。

リニア

#fundamentals

2 つ以上の変数間の関係で、加算と乗算のみで表すことができます。

直線関係のプロットは線になります。

nonlinearとは対照的です。

線形モデル

#fundamentals

特徴ごとに 1 つの重みを割り当てて予測を行うモデル。(線形モデルにもバイアスが組み込まれています)。一方、ディープラーニング モデルでは、特徴と予測の関係は通常非線形です。

通常、線形モデルはトレーニングが容易で、ディープラーニング モデルよりも解釈可能です。ただし、ディープモデルは特徴間の複雑な関係を学習できます。

線形回帰ロジスティック回帰は、2 種類の線形モデルです。

線形モデルは次の式で表されます。

y=b+w1x1+w2x2+wnxn
各要素の意味は次のとおりです。
  • y' は未加工の予測です。(特定の種類の線形モデルでは、この元の予測がさらに変更されます。たとえば、ロジスティック回帰をご覧ください)。
  • b はバイアスです。
  • w は重みです。w1 は最初の特徴の重み、w2 は 2 番目の特徴の重み、というようにします。
  • x は特徴量であるため、x1 は最初の特徴量の値、x2 は 2 番目の特徴量の値になります。
たとえば、3 つの特徴の線形モデルが次のバイアスと重みを学習したとします。
  • b = 7
  • w1 = -2.5
  • w2 = -1.2
  • w3 = 1.4
したがって、3 つの特徴量(x1、x2、x3)が与えられた場合、線形モデルは次の式を使用して各予測を生成します。
y' = 7 + (-2.5)(x1) + (-1.2)(x2) + (1.4)(x3)

特定の例に次の値が含まれているとします。

  • x1 = 4
  • x2 = -10
  • x3 = 5
これらの値を式に代入すると、この例の予測は次のようになります。
y' = 7 + (-2.5)(4) + (-1.2)(-10) + (1.4)(5)
y' = 16

線形モデルには、線形方程式のみを使用して予測を行うモデルだけでなく、線形方程式を予測を行う式の 1 つのコンポーネントとして使用する、より広範なモデルも含まれます。たとえば、ロジスティック回帰では、元の予測(y')をポストプロセッシングして、0 ~ 1 の範囲の最終予測値を生成します。


線形回帰

#fundamentals

次の両方が当てはまる ML モデルのタイプ。

  • モデルは線形モデルです。
  • 予測は浮動小数点値です。(これは線形回帰回帰部分です)。

線形回帰とロジスティック回帰を比較します。また、回帰と分類を比較してください。

詳細については、機械学習集中講座の線形回帰をご覧ください。

ロジスティック回帰

#fundamentals

確率を予測する回帰モデルの一種。ロジスティック回帰モデルには次の特徴があります。

  • ラベルはカテゴリです。ロジスティック回帰という用語は通常、バイナリ ロジスティック回帰を指します。つまり、2 つの値が可能なラベルの確率を計算するモデルを指します。あまり一般的ではないバリエーションである多項式ロジスティック回帰は、2 つ以上の候補値を持つラベルの確率を計算します。
  • トレーニング中の損失関数は ログ損失です。(2 つを超える値が可能なラベルの場合は、複数のログロス ユニットを並列に配置できます)。
  • このモデルは、ディープ ニューラル ネットワークではなく、線形アーキテクチャです。ただし、この定義の残りの部分は、カテゴリラベルの確率を予測するディープラーニング モデルにも適用されます。

たとえば、入力メールがスパムであるか、スパムでないかの確率を計算するロジスティック回帰モデルについて考えてみましょう。推論中に、モデルが 0.72 を予測したとします。したがって、モデルは次のことを推定しています。

  • メールが迷惑メールである確率は 72% です。
  • メールが迷惑メールではない確率は 28% です。

ロジスティック回帰モデルは、次の 2 段階のアーキテクチャを使用します。

  1. モデルは、入力特徴の線形関数を適用して、元の予測(y')を生成します。
  2. モデルは、その元の予測を シグモイド関数の入力として使用します。この関数は、元の予測を 0 ~ 1 の範囲の値に変換します。

他の回帰モデルと同様に、ロジスティック回帰モデルは数値を予測します。ただし、通常、この数値は次のようにバイナリ分類モデルの一部になります。

  • 予測された数が分類しきい値より大きい場合、バイナリ分類モデルは陽性のクラスを予測します。
  • 予測された数が分類しきい値より小さい場合、バイナリ分類モデルは負のクラスを予測します。

詳細については、機械学習集中講座のロジスティック回帰をご覧ください。

ログ損失

#fundamentals

バイナリロジスティック回帰で使用される損失関数

次の式は、ログロスを計算します。

Log Loss=(x,y)Dylog(y)(1y)log(1y)
ここで
  • (x,y)D は、ラベル付きの多くの例( (x,y) ペア)を含むデータセットです。
  • y は、ラベル付きサンプルのラベルです。これはロジスティック回帰であるため、 y のすべての値は 0 または 1 にする必要があります。
  • y は、 xの特徴セットに基づく予測値(0 ~ 1 の範囲)です。

詳細については、機械学習集中講座のロジスティック回帰: 損失と正則化をご覧ください。

ログオッズ

#fundamentals

あるイベントのオッズの対数。

イベントがバイナリ確率の場合、オッズは成功確率(p)と失敗確率(1-p)の比率を指します。たとえば、特定のイベントの成功確率が 90%、失敗確率が 10% であるとします。この場合、オッズは次のように計算されます。

odds=p(1-p)=.9.1=9

対数オッズは、オッズの単なる対数です。慣例では、「対数」は自然対数を指しますが、実際には 1 より大きい任意の基数の対数に使用できます。慣例に従い、この例のログオッズは次のようになります。

log-odds=ln(9) =2.2

対数オッズ関数は、シグモイド関数の逆関数です。


損失

#fundamentals
#Metric

教師ありモデルトレーニング中に、モデルの予測ラベルからどのくらい離れているかを表す指標。

損失関数は損失を計算します。

詳細については、機械学習集中講座の線形回帰: 損失関数をご覧ください。

損失曲線

#fundamentals

トレーニングの反復処理回数の関数として損失をプロットしたグラフ。次のグラフは、一般的な損失曲線を示しています。

損失とトレーニングの反復処理の関係を示す直交グラフ。最初の反復処理では損失が急激に低下し、その後は徐々に低下し、最後の反復処理では緩やかな傾斜を示しています。

損失曲線は、モデルが収束または過学習しているタイミングを特定するのに役立ちます。

損失曲線には、次のタイプの損失をすべてプロットできます。

一般化曲線もご覧ください。

詳細については、機械学習集中講座の過剰適合: 損失曲線の解釈をご覧ください。

損失関数

#fundamentals
#Metric

トレーニングまたはテスト中に、サンプルのバッチの損失を計算する数学関数。損失関数は、正しい予測を行うモデルに対して、誤った予測を行うモデルよりも低い損失を返します。

通常、トレーニングの目標は、損失関数が返す損失を最小限に抑えることです。

損失関数にはさまざまな種類があります。構築するモデルの種類に適した損失関数を選択します。次に例を示します。

M

機械学習

#fundamentals

入力データからモデルトレーニングするプログラムまたはシステム。トレーニングされたモデルは、モデルのトレーニングに使用されたものと同じ分布から抽出された新しい(これまでにない)データから有用な予測を行うことができます。

機械学習は、これらのプログラムやシステムに関連する研究分野も指します。

詳細については、機械学習の概要コースをご覧ください。

多数クラス

#fundamentals

クラスの不均衡なデータセットでより一般的なラベル。たとえば、99% が負のラベルで 1% が正のラベルを含むデータセットの場合、負のラベルが多数クラスになります。

少数クラスとは対照的です。

詳細については、ML 集中講座のデータセット: 不均衡なデータセットをご覧ください。

ミニバッチ

#fundamentals

1 回の反復処理で処理されるバッチの小さなランダム サブセット。ミニバッチのバッチサイズは通常、10 ~ 1,000 サンプルです。

たとえば、トレーニング セット全体(完全なバッチ)が 1,000 個のサンプルで構成されているとします。さらに、各ミニバッチのバッチサイズを 20 に設定したとします。したがって、各反復処理で 1,000 個のサンプルからランダムに 20 個のサンプルを選択し、その損失を決定してから、それに応じて重みバイアスを調整します。

完全なバッチ内のすべてのサンプルの損失よりも、ミニバッチの損失を計算する方がはるかに効率的です。

詳細については、機械学習集中講座の線形回帰: ハイパーパラメータをご覧ください。

少数クラス

#fundamentals

クラスの不均衡なデータセットではあまり一般的ではないラベル。たとえば、99% がネガティブ ラベルで 1% がポジティブ ラベルのデータセットの場合、ポジティブ ラベルは少数クラスです。

多数クラスとは対照的です。

100 万個のサンプルを含むトレーニング セットは、非常に魅力的に思えます。ただし、少数派のクラスが十分に表現されていない場合、非常に大きなトレーニング セットでも不十分な場合があります。データセットのサンプルの合計数ではなく、少数派クラスのサンプル数に重点を置きます。

データセットに少数派クラスのサンプルが十分に含まれていない場合は、downsampling(2 つ目の箇条書きの定義)を使用して少数派クラスを補完することを検討してください。


詳細については、ML 集中講座のデータセット: 不均衡なデータセットをご覧ください。

モデル

#fundamentals

一般に、入力データを処理して出力を返す数学的な構造。別の言い方をすると、モデルとは、システムが予測を行うために必要なパラメータと構造のセットです。教師あり機械学習では、モデルはを入力として受け取り、予測を出力として推論します。教師あり機械学習では、モデルは若干異なります。次に例を示します。

モデルの保存、復元、コピーを行うことができます。

教師なし機械学習でもモデルが生成されます。通常は、入力例を最も適切なクラスタにマッピングできる関数です。

次のような代数関数はモデルです。

  f(x, y) = 3x -5xy + y2 + 17

上記の関数は、入力値(xy)を出力にマッピングします。

同様に、次のようなプログラミング関数もモデルです。

def half_of_greater(x, y):
  if (x > y):
    return(x / 2)
  else
    return(y / 2)

呼び出し元が前の Python 関数に引数を渡し、Python 関数は(return ステートメントを介して)出力を生成します。

ディープ ニューラル ネットワークは、代数関数やプログラミング関数とは数学的な構造が大きく異なりますが、入力(例)を受け取って出力(予測)を返します。

人間のプログラマーがプログラミング関数を手動でコーディングします。一方、機械学習モデルは、自動トレーニング中に最適なパラメータを徐々に学習します。


マルチクラス分類

#fundamentals

教師あり学習における分類問題。データセットに2 つを超える クラスのラベルが含まれています。たとえば、Iris データセットのラベルは、次の 3 つのクラスのいずれかである必要があります。

  • アイリス セトサ
  • アイリス バージニアナ
  • Iris versicolor

新しい例でアヤメの種類を予測する Iris データセットでトレーニングされたモデルは、マルチクラス分類を実行しています。

一方、正確に 2 つのクラスを区別する分類問題は、バイナリ分類モデルです。たとえば、メールが「スパム」か「スパムではない」かを予測するメールモデルは、バイナリ分類モデルです。

クラスタリング問題では、マルチクラス分類は 2 つを超えるクラスタを指します。

詳細については、ML 集中講座のニューラル ネットワーク: マルチクラス分類をご覧ください。

N

陰性クラス

#fundamentals
#Metric

バイナリ分類では、一方のクラスは「陽性」と呼ばれ、もう一方のクラスは「陰性」と呼ばれます。陽性のクラスは、モデルがテスト対象とする物体またはイベントであり、陰性のクラスは他の可能性です。次に例を示します。

  • 医療検査の負のクラスは「腫瘍ではない」などです。
  • メール分類システムの負クラスは「スパムではない」かもしれません。

正クラスとは対照的です。

ニューラル ネットワークの

#fundamentals

隠れ層を 1 つ以上含むモデルディープ ニューラル ネットワークは、複数の隠れ層を含むニューラル ネットワークの一種です。たとえば、次の図は、2 つの隠れ層を含むディープ ニューラル ネットワークを示しています。

入力層、2 つの隠れ層、出力層を持つニューラル ネットワーク。

ニューラル ネットワーク内の各ニューロンは、次のレイヤ内のすべてのノードに接続します。たとえば、上の図では、最初の隠れ層の 3 つのニューロンが、2 番目の隠れ層の 2 つのニューロンの両方に個別に接続されています。

コンピュータに実装されたニューラル ネットワークは、脳やその他の神経系にあるニューラル ネットワークと区別するために、人工ニューラル ネットワークと呼ばれることがあります。

一部のニューラル ネットワークは、さまざまな特徴とラベル間の非常に複雑な非線形関係を模倣できます。

畳み込みニューラル ネットワーク再帰ニューラル ネットワークもご覧ください。

詳細については、ML 集中講座のニューラル ネットワークをご覧ください。

ニューロン

#fundamentals

機械学習では、ニューラル ネットワーク隠れ層内の個別のユニットです。各ニューロンは、次の 2 段階のアクションを実行します。

  1. 入力値に対応する重みを掛けた重み付き合計を計算します。
  2. 加重合計を活性化関数に入力として渡します。

最初の隠れ層のニューロンは、入力層の特徴値からの入力を受け入れます。最初の隠れ層以外の隠れ層のニューロンは、前の隠れ層のニューロンからの入力を受け入れます。たとえば、2 番目の隠れ層のニューロンは、1 番目の隠れ層のニューロンからの入力を受け付けます。

次の図は、2 つのニューロンとその入力を示しています。

入力層、2 つの隠れ層、出力層を持つニューラル ネットワーク。2 つのニューロンがハイライト表示されています。1 つは最初の隠れ層にあり、もう 1 つは 2 番目の隠れ層にあります。最初の隠れ層でハイライト表示されているニューロンは、入力レイヤの両方の特徴から入力を受けます。2 番目の隠れ層でハイライト表示されているニューロンは、最初の隠れ層の 3 つのニューロンから入力を受け取ります。

ニューラル ネットワーク内のニューロンは、脳や神経系の他の部分のニューロンの動作を模倣します。

ノード(ニューラル ネットワーク)

#fundamentals

隠れ層ニューロン

詳細については、ML 集中講座のニューラル ネットワークをご覧ください。

非線形

#fundamentals

2 つ以上の変数間の関係で、加算と乗算のみで表すことができないもの。線形の関係は線で表すことができますが、非線形の関係は線で表すことはできません。たとえば、1 つの特徴量を 1 つのラベルに関連付ける 2 つのモデルについて考えてみましょう。左側のモデルは線形で、右側のモデルは非線形です。

2 つのプロット。1 つのプロットは線であるため、これは直線的な関係です。
          一方のグラフは曲線であるため、非線形の関係です。

さまざまな種類の非線形関数を試すには、ML 集中講座のニューラル ネットワーク: ノードと隠れ層をご覧ください。

非定常性

#fundamentals

1 つ以上のディメンション(通常は時間)で値が変化する特徴。たとえば、非定常性の次の例について考えてみましょう。

  • 特定の店舗で販売される水着の数は季節によって異なります。
  • 特定の地域で収穫される特定の果物の量は、ほとんどの期間はゼロですが、短い期間は大量です。
  • 気候変動により、年間平均気温が変化しています。

定常性とは対照的です。

正規化

#fundamentals

変数の実際の値の範囲を標準の値の範囲に変換するプロセス。たとえば、次のような変換です。

  • -1 ~+1
  • 0 to 1
  • Z スコア(おおよそ -3 ~+3)

たとえば、特定の特徴の実際の値の範囲が 800 ~ 2,400 であるとします。特徴量エンジニアリングの一環として、実際の値を標準範囲(-1 ~+1 など)に正規化できます。

正規化は、特徴量エンジニアリングの一般的なタスクです。通常、特徴ベクトル内のすべての数値特徴の範囲がほぼ同じ場合、モデルのトレーニングはより速く(より正確な予測が生成されます)。

Z スコア正規化もご覧ください。

詳細については、機械学習集中講座の数値データ: 正規化をご覧ください。

数値データ

#fundamentals

整数または実数として表される特徴。たとえば、住宅査定モデルでは、住宅の広さ(平方フィートまたは平方メートル)を数値データとして表す可能性があります。特徴を数値データとして表すことは、特徴の値がラベルと数学的な関係にあることを示します。つまり、家の面積は家の価値と数学的な関係があると考えられます。

すべての整数データを数値データとして表す必要はありません。たとえば、一部の国では郵便番号が整数ですが、整数の郵便番号をモデルで数値データとして表す必要はありません。これは、郵便番号 20000 が郵便番号 10000 の 2 倍(または半分)の有効性を持つわけではないためです。さらに、郵便番号が異なると不動産価格も異なるものの、郵便番号 20000 の不動産価格が郵便番号 10000 の不動産価格の 2 倍になるとは限りません。郵便番号は、代わりにカテゴリデータとして表す必要があります。

数値特徴は、連続特徴とも呼ばれます。

詳細については、ML 集中講座の数値データの操作をご覧ください。

O

オフライン

#fundamentals

static と同義。

オフライン推論

#fundamentals

モデルが予測のバッチを生成し、それらの予測をキャッシュに保存するプロセス。アプリは、モデルを再実行するのではなく、キャッシュから推論された予測にアクセスできます。

たとえば、地域の天気予報(予測)を 4 時間ごとに生成するモデルについて考えてみましょう。モデルの実行ごとに、システムはすべてのローカルの天気予報をキャッシュに保存します。天気アプリはキャッシュから予報を取得します。

オフライン推論は、静的推論とも呼ばれます。

オンライン推論とは対照的です。

詳細については、ML 集中講座の本番環境の ML システム: 静的推論と動的推論をご覧ください。

ワンホット エンコード

#fundamentals

カテゴリデータをベクトルとして表す場合:

  • 1 つの要素が 1 に設定されています。
  • 他の要素はすべて 0 に設定されます。

ワンホット エンコーディングは、有効な値が有限の文字列または識別子を表すためによく使用されます。たとえば、Scandinavia という特定のカテゴリ特徴に 5 つの値があるとします。

  • 「デンマーク」
  • 「Sweden」
  • 「Norway」
  • 「フィンランド」
  • 「アイスランド」

5 つの値は、1 ホット エンコードで次のように表すことができます。

country ベクトル
「デンマーク」 1 0 0 0 0
「Sweden」 0 1 0 0 0
「Norway」 0 0 1 0 0
「フィンランド」 0 0 0 1 0
「アイスランド」 0 0 0 0 1

ワンホット エンコードにより、モデルは 5 つの国ごとに異なる接続を学習できます。

特徴を数値データとして表現することは、ワンホット エンコードの代替手段です。残念ながら、北欧諸国を数値で表すことは適切ではありません。たとえば、次の数値表現について考えてみましょう。

  • 「デンマーク」は 0
  • 「スウェーデン」は 1
  • 「ノルウェー」は 2
  • 「フィンランド」は 3
  • 「アイスランド」は 4

数値エンコーディングでは、モデルは元の数値を数学的に解釈し、それらの数値に基づいてトレーニングを試みます。しかし、実際にはアイスランドの人口はノルウェーの 2 倍(または半分)ではないため、モデルは奇妙な結論に至ります。

詳細については、機械学習集中講座のカテゴリデータ: 語彙とワンホット エンコードをご覧ください。

1 対すべて

#fundamentals

N クラスの分類問題の場合、N 個の個別のバイナリ分類子(考えられる結果ごとに 1 つのバイナリ分類子)で構成されるソリューション。たとえば、サンプルを動物、植物、鉱物に分類するモデルの場合、1 対すべてのソリューションでは、次の 3 つの個別のバイナリ分類器が提供されます。

  • 動物と動物以外
  • 野菜と野菜以外の区別
  • 鉱物と非鉱物

オンライン

#fundamentals

動的と同義。

オンライン推論

#fundamentals

予測をオンデマンドで生成する。たとえば、アプリが入力をモデルに渡し、予測のリクエストを発行するとします。オンライン推論を使用するシステムは、モデルを実行して(予測をアプリに返して)リクエストに応答します。

オフライン推論とは対照的です。

詳細については、ML 集中講座の本番環境の ML システム: 静的推論と動的推論をご覧ください。

出力層

#fundamentals

ニューラル ネットワークの「最終」レイヤ。出力層には予測が含まれます。

次の図は、入力レイヤ、2 つの隠れ層、出力レイヤを持つ小さなディープラーニング ネットワークを示しています。

入力層が 1 つ、隠れ層が 2 つ、出力層が 1 つのニューラル ネットワーク。入力レイヤは 2 つの特徴で構成されています。最初の隠れ層は 3 つのニューロンで構成され、2 番目の隠れ層は 2 つのニューロンで構成されています。出力レイヤは単一のノードで構成されます。

過学習

#fundamentals

トレーニング データと非常によく一致するモデルを作成すると、モデルは新しいデータに対して正しい予測を行うことができません。

正則化により、過剰適合を軽減できます。大規模で多様なトレーニング セットでトレーニングを行うと、過学習を軽減することもできます。

オーバーフィッティングは、お気に入りの教師からのアドバイスに厳密に従うようなものです。その教師のクラスでは成功する可能性はありますが、その教師のアイデアに「過剰適合」し、他のクラスでは成功しない可能性があります。さまざまな教師からのアドバイスに従うことで、新しい状況に適応しやすくなります。


詳細については、機械学習集中講座の過剰適合をご覧ください。

P

pandas

#fundamentals

numpy 上に構築された列指向のデータ分析 API。TensorFlow を含む多くの ML フレームワークは、Pandas データ構造を入力としてサポートしています。詳細については、pandas のドキュメントをご覧ください。

パラメータ

#fundamentals

モデルがトレーニング中に学習する重みバイアス。たとえば、線形回帰モデルでは、パラメータはバイアス(b)とすべての重み(w1w2 など)で構成されます。式は次のとおりです。

y=b+w1x1+w2x2+wnxn

一方、ハイパーパラメータは、ユーザー(またはハイパーパラメータ チューニング サービス)がモデルに提供する値です。たとえば、学習率はハイパーパラメータです。

陽性クラス

#fundamentals
#Metric

テスト対象のクラス。

たとえば、がんモデルの陽性のクラスは「腫瘍」です。メール分類システムの正クラスは「スパム」などです。

負のクラスとは対照的です。

多くのテストの「陽性」結果は望ましくない結果であることが多いため、陽性クラスという用語は混乱を招く可能性があります。たとえば、多くの医療検査における陽性クラスは、腫瘍や疾患に対応しています。通常、医師から「おめでとうございます。検査結果は陰性でした。」 いずれにしても、ポジティブ クラスは、テストで検出しようとしているイベントです。

確かに、ポジティブ クラスとネガティブ クラスの両方を同時にテストしています。


後処理

#fairness
#fundamentals

モデルの実行にモデルの出力を調整する。後処理を使用すると、モデル自体を変更せずに公平性制約を適用できます。

たとえば、バイナリ分類子にポスト処理を適用するには、分類しきい値を設定して、一部の属性について機会の平等を維持します。これは、その属性のすべての値で真陽性率が同じであることを確認することで行います。

予測

#fundamentals

モデルの出力。次に例を示します。

  • バイナリ分類モデルの予測は、陽性のクラスまたは陰性のクラスのいずれかです。
  • マルチクラス分類モデルの予測は 1 つのクラスです。
  • 線形回帰モデルの予測は数値です。

プロキシラベル

#fundamentals

データセットで直接利用できないラベルを近似するために使用されるデータ。

たとえば、従業員のストレスレベルを予測するモデルをトレーニングする必要がある場合を考えてみましょう。データセットには多くの予測特徴が含まれていますが、ストレスレベルというラベルは含まれていません。ストレス レベルのプロキシラベルとして「職場での事故」を選択します。ストレスの多い従業員は、落ち着いた従業員よりも事故に遭遇する可能性が高くなります。本当にそうでしょうか?職場での事故は、実際にはさまざまな理由で増減している可能性があります。

2 つ目の例として、雨が降っているか?をデータセットのブール値ラベルにしたいものの、データセットに雨データが含まれていないとします。写真が利用可能な場合は、傘を持った人の写真を「雨が降っていますか?」の代替ラベルとして設定できます。これは良いプロキシラベルですか?可能性がありますが、地域によっては、雨よりも日差しを避けるために傘を持っている人が多いかもしれません。

プロキシラベルは不完全な場合が多く、可能であれば、プロキシラベルではなく実際のラベルを選択してください。ただし、実際のラベルがない場合は、プロキシラベルを非常に慎重に選択し、最もひどくないプロキシラベルの候補を選択してください。

詳細については、機械学習集中講座のデータセット: ラベルをご覧ください。

R

RAG

#fundamentals

検索拡張生成の略語。

評価者

#fundamentals

ラベルを提供する人間。「アノテーター」はレーター(評価者)の別名です。

詳細については、機械学習集中講座のカテゴリデータ: 一般的な問題をご覧ください。

正規化線形ユニット(ReLU)

#fundamentals

次の動作を持つ活性化関数

  • 入力が負またはゼロの場合、出力は 0 になります。
  • 入力が正の場合、出力は入力と同じになります。

次に例を示します。

  • 入力が -3 の場合、出力は 0 です。
  • 入力が +3 の場合、出力は 3.0 です。

ReLU のグラフを次に示します。

2 本の線の直交座標プロット。最初の線は、x 軸に沿って -∞,0 から 0,-0 まで走り、y 値が常に 0 です。2 行目は 0,0 から始まります。この線の傾きは +1 であるため、0,0 から +∞,+∞ まで延びています。

ReLU は非常に一般的な活性化関数です。動作はシンプルですが、ReLU を使用すると、ニューラル ネットワークは特徴量ラベルの間の非線形な関係を学習できます。

回帰モデル

#fundamentals

非公式には、数値予測を生成するモデルです。(これに対し、分類モデルはクラス予測を生成します)。たとえば、次のすべてが回帰モデルです。

  • 特定の住宅の価値をユーロ(423,000 など)で予測するモデル。
  • 特定の木の寿命(23.2 年など)を予測するモデル。
  • 特定の都市で今後 6 時間に降る雨量(0.18 インチなど)を予測するモデル。

一般的な回帰モデルには次の 2 種類があります。

  • 線形回帰: ラベル値を特徴に最も適合する線を見つけます。
  • ロジスティック回帰: システムが通常クラス予測にマッピングする 0.0 ~ 1.0 の確率を生成します。

数値予測を出力するすべてのモデルが回帰モデルであるとは限りません。数値予測は、数値のクラス名を持つ分類モデルに過ぎないこともあります。たとえば、郵便番号を予測するモデルは、回帰モデルではなく分類モデルです。

正則化

#fundamentals

過剰適合を軽減するメカニズム。一般的な正則化のタイプには次のようなものがあります。

正則化は、モデルの複雑さに対するペナルティとして定義することもできます。

正則化は直感に反するものです。通常、正規化を増やすとトレーニング損失が増加します。これは、トレーニング損失を最小化することが目標であるため、混乱を招く可能性があります。

実は、そうではありません。目標はトレーニング損失を最小限に抑えることではありません。目標は、実際の例に対して優れた予測を行うことです。驚くべきことに、正則化を増やすとトレーニング損失は増加しますが、通常はモデルが実際の例でより良い予測を行うのに役立ちます。


詳細については、機械学習集中講座の過剰適合: モデルの複雑さをご覧ください。

正則化率

#fundamentals

トレーニング中の正規化の相対的な重要性を指定する数値。正則化率を上げると過剰適合は減少しますが、モデルの予測能力が低下する可能性があります。逆に、正則化率を減らすか省略すると、過剰適合が増加します。

正則化率は通常、ギリシャ文字のラムダで表されます。次の簡素化された損失式は、ラムダの影響を示しています。

minimize(loss function + λ(regularization))

ここで、正則化は、次のような正則化メカニズムです。


詳細については、機械学習集中講座の過剰適合: L2 正規化をご覧ください。

ReLU

#fundamentals

正規化線形ユニットの略。

検索拡張生成(RAG)

#fundamentals

モデルのトレーニング後に取得された知識ソースに基盤を置くことで、大規模言語モデル(LLM)の出力の品質を向上させる手法。RAG は、トレーニング済みの LLM に信頼できるナレッジベースやドキュメントから取得した情報へのアクセス権を付与することで、LLM のレスポンスの精度を向上させます。

検索拡張生成を使用する一般的な理由は次のとおりです。

  • モデルが生成した回答の事実に基づく精度を高める。
  • モデルがトレーニングされていない知識にモデルがアクセスできるようにする。
  • モデルが使用する知識を変更する。
  • モデルがソースを引用できるようにする。

たとえば、化学アプリが PaLM API を使用して、ユーザーのクエリに関連する要約を生成するとします。アプリのバックエンドがクエリを受信すると、バックエンドは次の処理を行います。

  1. ユーザーのクエリに関連するデータを検索(「取得」)します。
  2. 関連する化学データをユーザーのクエリに追加(「拡張」)します。
  3. 追加されたデータに基づいて概要を作成するよう LLM に指示します。

ROC(受信者操作特性)曲線

#fundamentals
#Metric

バイナリ分類で、さまざまな分類しきい値に対する真陽性率偽陽性率のグラフ。

ROC 曲線の形状は、バイナリ分類モデルがポジティブ クラスとネガティブ クラスを分離する能力を示しています。たとえば、バイナリ分類モデルがすべての負のクラスをすべての正のクラスから完全に分離しているとします。

右側に 8 つの正例、左側に 7 つの負例がある数直線。

上記のモデルの ROC 曲線は次のようになります。

ROC 曲線。X 軸は偽陽性率、Y 軸は真陽性率です。曲線は逆 L 字型です。曲線は(0.0、0.0)から始まり、(0.0、1.0)まで真上に伸びています。曲線は(0.0、1.0)から(1.0、1.0)に移動します。

一方、次の図は、負のクラスと正のクラスをまったく区別できないひどいモデルの未加工のロジスティック回帰値を示しています。

正の例と負のクラスが完全に混在している数直線。

このモデルの ROC 曲線は次のようになります。

ROC 曲線(実際には(0.0,0.0)から(1.0,1.0)までの直線)。

一方、現実世界では、ほとんどのバイナリ分類モデルは正クラスと負クラスをある程度分離しますが、通常は完全には分離しません。したがって、一般的な ROC 曲線は、次の 2 つの極端な曲線の中間に位置します。

ROC 曲線。X 軸は偽陽性率、Y 軸は真陽性率です。ROC 曲線は、コンパスの針が西から北に移動する不安定な弧を近似しています。

理論的には、ROC 曲線上で(0.0、1.0)に最も近い点が理想的な分類しきい値になります。ただし、理想的な分類しきい値の選択には、他のいくつかの現実的な問題が影響します。たとえば、偽陰性が偽陽性よりもはるかに大きな問題を引き起こす場合などです。

AUC という数値指標は、ROC 曲線を単一の浮動小数点値に要約します。

二乗平均平方根誤差(RMSE)

#fundamentals
#Metric

平均二乗誤差の平方根。

S

シグモイド関数

#fundamentals

入力値を制限付きの範囲(通常は 0 ~ 1 または -1 ~+1)に「圧縮」する数学関数。つまり、任意の数値(2、100 万、-10 億など)をシグモイドに渡しても、出力は制約付きの範囲内に収まります。シグモイド活性化関数のグラフは次のようになります。

2 次元の曲線プロット。X 値は -∞ から +∞ の範囲にまたがり、Y 値はほぼ 0 からほぼ 1 の範囲にまたがっています。x が 0 の場合、y は 0.5 です。曲線の傾斜は常に正で、0,0.5 で最大になり、x の絶対値が増加するにつれて徐々に減少します。

シグモイド関数は、次のような機械学習で使用されます。

入力数 x に対するシグモイド関数の式は次のとおりです。

sigmoid(x)=11+ex

ML では、x は通常、重み付き和です。


Softmax

#fundamentals

マルチクラス分類モデルで、考えられる各クラスの確率を決定する関数。確率の合計は正確に 1.0 になります。たとえば、次の表は、ソフトマックスがさまざまな確率をどのように分散させるかを示しています。

画像は... 確率
.85
.13
.02

ソフトマックスは、フル ソフトマックスとも呼ばれます。

候補サンプリングとは対照的です。

ソフトマックスの式は次のとおりです。

σi=ezij=1j=Kezj
次のようにします。
  • σi は出力ベクトルです。出力ベクトルの各要素は、この要素の確率を指定します。出力ベクトルのすべての要素の合計は 1.0 です。出力ベクトルには、入力ベクトル z と同じ数の要素が含まれます。
  • z は入力ベクトルです。入力ベクトルの各要素には浮動小数点値が含まれています。
  • K は入力ベクトル(および出力ベクトル)の要素数です。

たとえば、入力ベクトルが次のようになっているとします。

[1.2, 2.5, 1.8]

したがって、ソフトマックスは次のように分母を計算します。

denominator=e1.2+e2.5+e1.8=21.552

したがって、各要素のソフトマックス確率は次のようになります。

σ1=e1.221.552=0.154
σ2=e2.521.552=0.565
σ1=e1.821.552=0.281

したがって、出力ベクトルは次のようになります。

σ=[0.154,0.565,0.281]

σ の 3 つの要素の合計は 1.0 です。さて、


詳細については、ML 集中講座のニューラル ネットワーク: マルチクラス分類をご覧ください。

スパースな特徴

#language
#fundamentals

値の大部分がゼロまたは空の特徴量。たとえば、1 つの値が 1 で、100 万個の値が 0 である特徴はスパースです。一方、密な特徴量の値は、ゼロまたは空ではないものがほとんどです。

機械学習では、驚くほど多くの特徴量がスパースな特徴量です。カテゴリ特徴は通常、スパースな特徴です。たとえば、森林に生息する 300 種類の樹木のうち、1 つのサンプルでカエデのみを特定できる場合があります。または、動画ライブラリ内の数百万もの動画のうち、1 つの例で「カサブランカ」と識別されることもあります。

モデルでは、通常、スパース特徴をワンホット エンコーディングで表します。ワンホット エンコーディングが大きい場合は、ワンホット エンコーディングの上にエンベディング レイヤを配置して効率を高めることができます。

スパース表現

#language
#fundamentals

ゼロ以外の要素の位置のみをスパース特徴に保存する。

たとえば、species という名前のカテゴリ特徴が、特定の森林内の 36 種類の樹木を識別するとします。さらに、各が 1 つの種のみを識別するとします。

1 ホット ベクトルを使用して、各例の樹木の種類を表すことができます。ワンホット ベクトルには、1 つの 1(その例の特定の樹木種を表す)と 35 個の 0(その例にない 35 個の樹木種を表す)が含まれます。したがって、maple の 1 ホット表現は次のようになります。

位置 0 ~ 23 が値 0、位置 24 が値 1、位置 25 ~ 35 が値 0 のベクトル。

または、スパース表現では、特定の種の位置のみを特定します。maple が 24 番目の位置にある場合、maple のスパース表現は次のようになります。

24

スパース表現は、1 ホット表現よりもはるかにコンパクトです。

モデル内の各例で、英語の文の単語(単語の順序は含まない)を表す必要があるとします。英語は約 17 万語で構成されているため、英語は約 17 万個の要素を持つカテゴリ型特徴量です。ほとんどの英語の文では、17 万語のうちごく一部の単語しか使用されないため、1 つの例の単語セットは、ほとんど確実にスパース データになります。

次の文について考えてみましょう。

My dog is a great dog

この文の単語を表すには、ワンホット ベクトルのバリエーションを使用できます。このバリアントでは、ベクトルの複数のセルにゼロ以外の値を含めることができます。さらに、このバリエーションでは、セルに 1 以外の整数を含めることができます。「my」、「is」、「a」、「great」という単語は文中に 1 回しか表示されませんが、「dog」という単語は 2 回表示されています。このワンホット ベクトルのバリエーションを使用してこの文の単語を表すと、次の 170,000 要素のベクトルが得られます。

170,000 個の整数のベクトル。数値 1 はベクトル位置 0、45770、58906、91520 にあります。2 は 26,100 番目の位置にあります。
          残りの 169,996 個の位置はゼロです。

同じ文のスパース表現は次のようになります。

0: 1
26100: 2
45770: 1
58906: 1
91520: 1

スパース表現自体はスパース ベクトルではないため、「スパース表現」という用語は多くの人を混乱させます。むしろ、スパース表現は実際にはスパース ベクトルの密な表現です。同義語の「インデックス表現」は、「スパース表現」よりも明確です。


詳細については、機械学習集中講座のカテゴリデータの操作をご覧ください。

スパース ベクトル

#fundamentals

値のほとんどがゼロのベクトル。スパース特徴量スパース性もご覧ください。

二乗損失

#fundamentals
#Metric

L2 損失の類義語。

static

#fundamentals

継続的ではなく、1 回だけ行う作業。静的とオフラインという用語は同義語です。機械学習で静的オフラインの一般的な用途は次のとおりです。

  • 静的モデル(またはオフライン モデル)は、一度トレーニングしてからしばらく使用するモデルです。
  • 静的トレーニング(またはオフライン トレーニング)は、静的モデルをトレーニングするプロセスです。
  • 静的推論(またはオフライン推論)は、モデルが一度にバッチの予測を生成するプロセスです。

動的とは対照的です。

静的推論

#fundamentals

オフライン推論と同義。

定常性

#fundamentals

1 つ以上のディメンション(通常は時間)で値が変化しない特徴。たとえば、2021 年と 2023 年の値がほぼ同じ特徴は、定常性を示しています。

現実世界では、ほとんどの特徴量が定常性を示すことはありません。安定性と同義の特徴(海面など)であっても、時間とともに変化します。

非定常性とは対照的です。

確率的勾配降下法(SGD)

#fundamentals

バッチサイズが 1 の勾配降下法アルゴリズム。つまり、Stochastic Gradient Descent は、トレーニング セットから均一にランダムに選択された単一のサンプルでトレーニングします。

詳細については、機械学習集中講座の線形回帰: ハイパーパラメータをご覧ください。

教師あり ML

#fundamentals

特徴とそれに対応するラベルからモデルをトレーニングします。教師あり機械学習は、一連の質問とそれに対応する回答を学習して、ある分野を学習することに似ています。質問と回答のマッピングを習得した生徒は、同じトピックに関する新しい(これまでにない)質問に回答できるようになります。

教師なし機械学習と比較する。

詳細については、ML の概要コースの教師あり学習をご覧ください。

合成特徴

#fundamentals

入力特徴には存在しないが、1 つ以上の入力特徴から組み立てられた特徴。合成特徴を作成する方法は次のとおりです。

  • 連続特徴を範囲ビンにバケット化します。
  • 特徴クロスの作成。
  • 1 つの特徴値を他の特徴値またはそれ自体で乗算(または除算)する。たとえば、ab が入力特徴の場合、合成特徴の例を次に示します。
    • ab
    • a2
  • 超越関数を特徴値に適用する。たとえば、c が入力特徴の場合、合成特徴の例を次に示します。
    • sin(c)
    • ln(c)

正規化またはスケーリングのみによって作成された特徴量は、合成特徴量とは見なされません。

T

テスト損失

#fundamentals
#Metric

テストセットに対するモデルの損失を表す指標。通常、モデルを構築する際は、テスト損失を最小限に抑えようとします。これは、低いテスト損失は、低いトレーニング損失や低い検証損失よりも強い品質シグナルであるためです。

テスト損失とトレーニング損失または検証損失の差が大きい場合は、正則化率を増やす必要があることを示唆している場合があります。

トレーニング

#fundamentals

モデルを構成する理想的なパラメータ(重みとバイアス)を決定するプロセス。トレーニング中、システムはを読み取り、パラメータを徐々に調整します。トレーニングでは、各サンプルを数回から数十億回使用します。

詳細については、ML の概要コースの教師あり学習をご覧ください。

トレーニングの損失

#fundamentals
#Metric

特定のトレーニング イテレーション中のモデルの損失を表す指標。たとえば、損失関数が平均二乗誤差であるとします。たとえば、10 回目の反復処理のトレーニング損失(平均二乗誤差)が 2.2 で、100 回目の反復処理のトレーニング損失が 1.9 である場合。

損失曲線は、トレーニングの損失と反復回数をプロットします。損失曲線は、トレーニングに関する次のヒントを提供します。

  • 下り坂は、モデルが改善されていることを示します。
  • 上向きの傾斜は、モデルの性能が低下していることを示します。
  • 傾斜が緩い場合、モデルは収束に達しています。

たとえば、次のやや理想化された損失曲線は、次のことを示しています。

  • 初期反復時の急な下り坂。これは、モデルの急速な改善を示します。
  • トレーニングの終了近くまで徐々にフラットになる(ただし下向き)傾斜。これは、最初の反復処理よりもやや遅いペースでモデルが継続的に改善されることを意味します。
  • トレーニングの終盤にかけて勾配が緩やかになり、収束が示唆されている。

トレーニングの損失と反復回数のグラフ。この損失曲線は急な下り坂で始まります。傾斜はゼロになるまで徐々に平坦になります。

トレーニング損失は重要ですが、一般化もご覧ください。

トレーニング サービング スキュー

#fundamentals

トレーニング時のモデルのパフォーマンスと、同じモデルのサービング時のパフォーマンスの差。

トレーニング セット

#fundamentals

モデルのトレーニングに使用されるデータセットのサブセット。

従来、データセット内の例は次の 3 つの異なるサブセットに分割されています。

理想的には、データセット内の各例は、上記のサブセットの 1 つにのみ属している必要があります。たとえば、1 つのサンプルがトレーニング セットと検証セットの両方に属している場合、

詳細については、ML 集中講座のデータセット: 元のデータセットを分割するをご覧ください。

真陰性(TN)

#fundamentals
#Metric

モデルが陰性のクラス正しく予測している例。たとえば、モデルは特定のメール メッセージがスパムではないと推測し、そのメール メッセージが実際にスパムではないと推測します。

真陽性(TP)

#fundamentals
#Metric

モデルが陽性クラス正しく予測している例。たとえば、モデルは特定のメール メッセージがスパムであると推測し、そのメール メッセージが実際にスパムである場合です。

真陽性率(TPR)

#fundamentals
#Metric

想起と同義です。具体的には、次のことが求められます。

true positive rate=true positivestrue positives+false negatives

真陽性率は、ROC 曲線の Y 軸です。

U

アンダーフィット

#fundamentals

モデルがトレーニング データの複雑さを完全に把握していないため、予測能力が低いモデルを生成します。次のような多くの問題が原因で、過学習が発生する可能性があります。

  • 間違った特徴セットでトレーニングしている。
  • エポック数が少すぎたり、学習率が低すぎたりする。
  • 正則化率が高すぎるトレーニング。
  • ディープ ニューラル ネットワークで隠れ層が少なすぎる。

詳細については、機械学習集中講座の過剰適合をご覧ください。

ラベルのない例

#fundamentals

特徴は含まれるが、ラベルは含まれない例。たとえば、次の表は、住宅査定モデルの 3 つのラベルなしの例を示しています。それぞれに 3 つの特徴がありますが、住宅価格はありません。

寝室の数 浴室の数 家の築年数
3 2 15
2 1 72
4 2 34

教師あり機械学習では、モデルはラベル付きの例でトレーニングし、ラベルなしの例で予測を行います。

セミスーパービジョン学習と教師なし学習では、トレーニング中にラベルなしの例が使用されます。

ラベルなしのサンプルとラベル付きサンプルを比較します。

教師なし機械学習

#clustering
#fundamentals

データセット(通常はラベルなしのデータセット)内のパターンを見つけるようにモデルをトレーニングします。

教師なし ML の最も一般的な用途は、データを類似した例のグループにクラスタリングすることです。たとえば、教師なし ML アルゴリズムでは、音楽のさまざまなプロパティに基づいて曲をクラスタリングできます。生成されたクラスタは、他の ML アルゴリズム(音楽レコメンデーション サービスなど)への入力として使用できます。クラスタリングは、有用なラベルが少ない、または存在しない場合に役立ちます。たとえば、不正行為や不正行為防止などのドメインでは、クラスタを使用して人間がデータをよりよく理解できます。

教師あり機械学習とは対照的です。

教師なし機械学習のもう 1 つの例は、主成分分析(PCA)です。たとえば、数百万のショッピング カートの内容を含むデータセットに PCA を適用すると、レモンを含むショッピング カートに胃薬も頻繁に含まれていることがわかります。


詳細については、ML 入門コースの機械学習とはをご覧ください。

V

検証

#fundamentals

モデルの品質の初期評価。検証では、検証セットと比較してモデルの予測の品質を確認します。

検証セットはトレーニング セットとは異なるため、検証は過学習を防ぐのに役立ちます。

検証セットに対するモデルの評価を第 1 ラウンドのテストの評価、テストセットに対するモデルの評価を第 2 ラウンドのテストの評価と考えることができます。

検証損失

#fundamentals
#Metric

トレーニングの特定の反復処理中に、検証セットに対するモデルの損失を表す指標

一般化曲線もご覧ください。

検証セット

#fundamentals

トレーニング済みのモデルに対して初期評価を行うデータセットのサブセット。通常、トレーニング済みモデルを検証セットで複数回評価してから、テストセットでモデルを評価します。

従来、データセット内の例は次の 3 つのサブセットに分割します。

理想的には、データセット内の各例は、上記のサブセットの 1 つにのみ属している必要があります。たとえば、1 つのサンプルがトレーニング セットと検証セットの両方に属している場合、

詳細については、ML 集中講座のデータセット: 元のデータセットを分割するをご覧ください。

W

weight

#fundamentals

モデルが別の値に掛ける値。トレーニングは、モデルの最適な重みを決定するプロセスです。推論は、学習した重みを使用して予測を行うプロセスです。

2 つの特徴を持つ線形モデルがあるとします。トレーニングで次の重み(およびバイアス)が決定されたとします。

  • バイアス b の値は 2.2 です。
  • 1 つの特徴に関連付けられた重み w1 は 1.5 です。
  • 他の特徴に関連付けられた重み w2 は 0.4 です。

次のような特徴値を持つについて考えてみましょう。

  • 1 つの特徴量 x1 の値は 6 です。
  • 他の特徴量 x2 の値は 10 です。

この線形モデルは、次の式を使用して予測値 y' を生成します。

y=b+w1x1+w2x2

したがって、予測は次のようになります。

y=2.2+(1.5)(6)+(0.4)(10)=15.2

重みが 0 の場合、対応する特徴はモデルに寄与しません。たとえば、w1 が 0 の場合、x1 の値は無関係です。


詳細については、機械学習集中講座の線形回帰をご覧ください。

加重合計

#fundamentals

関連するすべての入力値の合計に、対応する重みを掛けた値。たとえば、関連する入力が次のように構成されているとします。

入力値 入力重み
2 -1.3
-1 0.6
3 0.4

したがって、加重和は次のようになります。

weighted sum = (2)(-1.3) + (-1)(0.6) + (3)(0.4) = -2.0

加重合計は、活性化関数への入力引数です。

Z

Z スコアの正規化

#fundamentals

元の特徴量値を、その特徴量の平均からの標準偏差の数を表す浮動小数点値に置き換えるスケーリング手法。たとえば、平均が 800 で標準偏差が 100 の特徴について考えてみましょう。次の表に、Z スコア正規化で元の値が Z スコアにマッピングされる仕組みを示します。

Raw 値 Z スコア
800 0
950 +1.5
575 -2.25

機械学習モデルは、元の値ではなく、その特徴の Z スコアに基づいてトレーニングします。

詳細については、機械学習集中講座の数値データ: 正規化をご覧ください。