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

このページでは、ML の基礎に関する用語集について説明します。用語集のすべての用語については、こちらをクリックしてください。

A

accuracy

#fundamentals

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

$$\text{Accuracy} = \frac{\text{correct predictions}} {\text{correct predictions + incorrect predictions }}$$

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

$$\text{Accuracy} = \frac{\text{40}} {\text{40 + 10}} = \text{80%}$$

バイナリ分類は、正しい予測と誤った予測のさまざまなカテゴリに特定の名前を提供します。バイナリ分類の精度式は次のようになります

$$\text{Accuracy} = \frac{\text{TP} + \text{TN}} {\text{TP} + \text{TN} + \text{FP} + \text{FN}}$$

ここで

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

精度を適合率および再現率と比較対照する。

活性化関数

#fundamentals

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

よく使用される活性化関数は次のとおりです。

活性化関数のプロットは一直線ではありません。たとえば、ReLU 活性化関数のプロットは 2 つの直線で構成されています。

2 本の直線のデカルト プロット。最初の線の y 値は 0 で、x 軸に沿って -infinity,0 から 0,-0 まで続きます。2 行目は 0,0 から始まります。この直線の傾きは +1 で、0,0 から +infinity,+infinity になります。

シグモイド活性化関数のプロットは次のようになります。

x 値が領域 -infinity から + 正の値を取り、y 値がほぼ 0 からほぼ 1 の範囲にまたがる 2 次元曲線プロット。x が 0 の場合、y は 0.5 である。曲線の傾きは常に正で、最大の傾きは 0.0.5 で、x の絶対値が増加するにつれて傾きは徐々に減少します。

意思決定の

#fundamentals

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

形式的には、機械学習は AI のサブフィールドです。しかし、近年では、「人工知能」と「機械学習」という用語を同じ意味で使用し始めている組織もあります。

AUC(ROC 曲線の下の面積)

#fundamentals

陽性クラス陰性クラスから分離するバイナリ分類モデルの能力を表す 0.0 ~ 1.0 の数値。AUC が 1.0 に近いほど、モデルがクラスを互いに分離する能力が高くなります。

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

片側に 8 つの正例、反対側に 9 つの負の例がある数直線。

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

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

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

ほとんどのモデルは、この 2 つの極端の中間にあります。たとえば、次のモデルでは陽性と陰性が多少区別されるため、AUC は 0.5 ~ 1.0 になります。

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

AUC は、分類しきい値に設定した値を無視します。代わりに、AUC は可能性のあるすべての分類しきい値を考慮します。

B

誤差逆伝播法

#fundamentals

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

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

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

ニューラル ネットワークには、多くの場合、多くの隠れ層にまたがって多くのニューロンが含まれています。これらのニューロンはそれぞれ、さまざまな形で全体的な損失に寄与します。誤差逆伝播法により、特定のニューロンに適用される重みを増減するかどうかが決まります。

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

微積分の用語では、バックプロパゲーションは微積分から連鎖ルールを実装します。つまり、バックプロパゲーションでは、各パラメータに関して誤差の偏導関数を計算します。

数年前には、ML の実務担当者は誤差逆伝播法を実装するためにコードを記述する必要がありました。TensorFlow などの最新の ML API では、誤差逆伝播法が実装されています。さて、

batch

#fundamentals

1 回のトレーニングのイテレーションで使用される一連のバッチサイズにより、バッチのサンプル数が決まります。

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

バッチサイズ

#fundamentals

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

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

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

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

#fairness
#fundamentals

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

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

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

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

#fundamentals

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

  • b
  • w0

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

$$y' = b + w_1x_1 + w_2x_2 + … w_nx_n$$

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

傾きが 0.5、バイアス(y 切片)が 2 の直線のプロット。

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

バイアスは、倫理と公平性におけるバイアスまたは予測バイアスと混同しないでください。

バイナリ分類

#fundamentals

相互に排他的な 2 つのクラスのいずれかを予測する分類タスクのタイプ。

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

  • メール メッセージが迷惑メール(陽性クラス)か迷惑メールでない(陰性クラス)かを判断するモデル。
  • 医学的症状を評価して、患者が特定の病気(陽性クラス)であるか、その病気にかかっていない(陰性クラス)かを判定するモデル。

マルチクラス分類と対比してください。

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

バケット化

#fundamentals

通常は値の範囲に基づいて、1 つの特徴をバケットまたはビンという複数のバイナリ特徴に変換します。通常、チョップされた特徴は連続的な特徴です。

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

  • 摂氏 10 度以下は「コールド」バケットです。
  • 摂氏 11 ~ 24 度が「温帯」です。
  • 摂氏 25 度以上であれば「ウォーム」バケットです。

このモデルでは、同じバケット内のすべての値が同じように処理されます。たとえば、値 1322 はどちらも一時バケット内にあるため、モデルは 2 つの値を同じように扱います。

C

カテゴリデータ

#fundamentals

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

  • red
  • yellow
  • green

traffic-light-state をカテゴリ特徴として表すことで、モデルはドライバーの行動に対する redgreenyellow のさまざまな影響を学習できます。

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

数値データと対比します。

クラス

#fundamentals

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

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

分類モデルはクラスを予測します。これに対して、回帰モデルはクラスではなく数値を予測します。

分類モデル

#fundamentals

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

  • 入力文の言語を予測するモデル(フランス語はスペイン語ですか? イタリア語?)。
  • 樹種を予測するモデル(カエデ、オーク?バオバブ?)。
  • 特定の病状の陽性クラスまたは陰性クラスを予測するモデル。

これに対して、回帰モデルはクラスではなく数値を予測します。

分類モデルの一般的なタイプは次の 2 つです。

分類しきい値

#fundamentals

バイナリ分類では、ロジスティック回帰モデルの生の出力を陽性クラスまたは陰性クラスの予測に変換する 0 ~ 1 の数値を指定します。分類しきい値は、モデルのトレーニングで選択された値ではなく、人間が選択する値であるので注意してください。

ロジスティック回帰モデルは、0 ~ 1 の未加工の値を出力します。この場合、次のようになります。

  • この未加工の値が分類しきい値より大きい場合、陽性のクラスが予測されます。
  • この未加工の値が分類しきい値より小さい場合、陰性クラスが予測されます。

たとえば、分類しきい値が 0.8 であるとします。未加工の値が 0.9 の場合、モデルは陽性クラスを予測します。未加工の値が 0.7 の場合、モデルは陰性クラスを予測します。

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

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

#fundamentals

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

  • 1,000,000 個の除外ラベル
  • 10 個の肯定的なラベル

負のラベルと正のラベルの比率は 100,000 対 1 であるため、これはクラス不均衡なデータセットとなります。

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

  • 517 個の除外ラベル
  • 483 個の肯定的なラベル

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

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

エントロピーマジョリティ クラスマイノリティ クラスもご覧ください。

クリッピング

#fundamentals

外れ値を処理する方法。次のいずれかまたは両方を行います。

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

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

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

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

勾配クリップにより、トレーニング中に勾配値が指定された範囲内に強制されます。

混同行列

#fundamentals

分類モデルによる正しい予測と誤った予測の数を要約する NxN テーブル。たとえば、2 項分類モデルについて、次の混同行列について考えてみます。

腫瘍(予測) 非腫瘍(予測)
腫瘍(正解) 18(TP) 1(FN)
腫瘍以外(正解) 6(FP) 452(TN)

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

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

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

  Setosa(予測) Versicolor(予測) バージニカ(予測)
Setosa(グラウンド トゥルース) 88 12 0
Versicolor(正解) 6 141 7
バージニカ(グラウンド トゥルース) 2 27 109

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

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

連続的な特徴

#fundamentals

温度や重量など、有効な値の範囲が無限にある浮動小数点特徴

離散特徴と対比します。

収束

#fundamentals

損失値がそれぞれの反復処理でほとんど変化しない、またはまったく変化しない状態。たとえば、次の損失曲線は、約 700 回の反復処理での収束を示しています。

デカルト図。X 軸は損失です。Y 軸はトレーニングのイテレーション回数です。最初の数回の反復処理で損失は非常に大きいものの、急激に減少します。約 100 回のイテレーションの後、損失はまだ下がっていますが、はるかに緩やかになっています。約 700 回のイテレーション後、損失は平坦なままです。

追加のトレーニングでモデルを改善できない場合、モデルは収束します。

ディープ ラーニングでは、最終的に減少するまでに多くのイテレーションで損失値が一定またはほぼ一定に保たれることがあります。損失値が一定である期間が長いと、一時的に収束が誤認されることがあります。

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

D

DataFrame

#fundamentals

メモリ内のデータセットを表すためによく使われる pandas データ型。

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

DataFrame の各列は 2D 配列のような構造になっていますが、各列に独自のデータ型を割り当てることができる点が異なります。

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

データセットまたはデータセット

#fundamentals

元データの集まり。通常は次のいずれかの形式で編成されます(ただし、これらに限定されません)。

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

ディープモデル

#fundamentals

複数の隠しレイヤを含むニューラル ネットワーク

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

ワイドモデルとは対照的です。

密な特徴

#fundamentals

ほとんどまたはすべての値がゼロではない特徴。通常は浮動小数点値の テンソルです。たとえば、次の 10 要素テンソルは、値の 9 個がゼロではないため高密度です。

8 3 7 5 2 4 0 4 9 6

スパースな特徴と対比します。

深さ

#fundamentals

ニューラル ネットワーク内の以下の式の合計。

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

なお、入力レイヤは深度に影響しません。

離散特徴

#fundamentals

有限の有効な値のセットを持つ特徴。たとえば、値が動物、野菜、鉱物のみである特徴は、離散(またはカテゴリ)特徴です。

連続機能と対比してください。

動的

#fundamentals

何かが頻繁または継続的に行われた。 ML では「動的」と「オンライン」という用語は同義語です。機械学習における「動的」と「オンライン」の一般的な用途は次のとおりです。

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

動的モデル

#fundamentals

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

静的モデルと比べます。

E

早期停止

#fundamentals

トレーニングの損失の減少が完了する前にトレーニングを終了する正則化のメソッド。早期停止では、検証用データセットの損失が増加し始めたとき、つまり一般化のパフォーマンスが悪化したときに、モデルのトレーニングを意図的に停止します。

Embedding レイヤ

#language
#fundamentals

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

たとえば、地球は現在約 73,000 種の樹木に対応しています。樹木の種類がモデルの特徴量である場合、モデルの入力レイヤには 73,000 個の要素からなるワンホット ベクトルが含まれます。たとえば、baobab は次のように表されます。

73,000 個の要素の配列。最初の 6,232 個の要素は値 0 を保持します。次の要素は値 1 を保持します。最後の 66,767 個の要素は、値 0 を保持します。

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 つ示します。

機能 ラベル
Temperature 湿度 気圧 テストスコア
15 47 998 良好
19 34 1020 非常に良い
18 92 1012 悪い

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

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

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

F

偽陰性(FN)

#fundamentals

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

偽陽性(FP)

#fundamentals

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

偽陽性率(FPR)

#fundamentals

モデルが陽性クラスを誤って予測した実際の陰性例の割合。偽陽性率は次の式で計算されます。

$$\text{false positive rate} = \frac{\text{false positives}}{\text{false positives} + \text{true negatives}}$$

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

特徴;特徴表現

#fundamentals

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

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

label と対比されます。

特徴クロス

#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 つの特徴に 1,000 バケットがあり、もう 1 つの特徴に 2,000 バケットがある場合、結果として得られる特徴クロスには 2,000,000 バケットが含まれます。

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

特徴クロスは主に線形モデルで使用され、ニューラル ネットワークではほとんど使用されません。

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

#fundamentals
#TensorFlow

以下のステップを含むプロセス。

  1. モデルのトレーニングに役立つ特徴を決定する。
  2. データセットからの元データを、これらの機能の効率的なバージョンに変換する。

たとえば、temperature が有用な機能であると判断した場合、その後、バケット化を試して、モデルがさまざまな temperature 範囲から学習できる内容を最適化できます。

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

機能セット

#fundamentals

ML モデルのトレーニングに使用する特徴のグループ。たとえば、郵便番号、物件の広さ、物件の条件は、住宅価格を予測するモデルの単純な特徴セットで構成されます。

特徴ベクトル

#fundamentals

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

[0.92, 0.56]

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

それぞれの例で特徴ベクトルに異なる値を指定するため、次の例の特徴ベクトルは次のようになります。

[0.73, 0.49]

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

[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

フィードバック ループ

#fundamentals

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

1 階

一般化

#fundamentals

未知の新しいデータに対して正しい予測を行うモデルの能力。一般化できるモデルは、その逆の過学習モデルです。

一般化曲線

#fundamentals

イテレーション回数の関数としての、トレーニングの損失検証の損失のプロット。

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

y 軸に損失のラベル、x 軸に反復回数のラベルが付けられているデカルトグラフ。2 つのプロットが表示されます。1 つのプロットはトレーニングの損失を示し、もう 1 つのプロットは検証の損失を示しています。2 つのプロットも同じように始まりますが、最終的にはトレーニングの損失は検証の損失よりもはるかに小さくなります。

勾配降下法

#fundamentals

損失を最小限に抑える数学的手法。勾配降下法では、重みバイアスを繰り返し調整し、損失を最小限に抑える最適な組み合わせを徐々に検出します。

勾配降下法は、ML よりもはるかに古い手法です。

正解

#fundamentals

現実。

実際に起こったことです。

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

H

隠れ層

#fundamentals

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

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

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

ハイパーパラメータ

#fundamentals

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

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

I

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

#fundamentals

変化しない分布から描画されるデータで、描画される各値が以前に描画された値に依存しない場合。i.i.d は機械学習の理想気体です。ML は有用な数学的構造ですが、現実世界で正確に見つかることはほとんどありません。たとえば、ウェブページへの訪問者の分布は短い期間にわたって変化している場合があります。つまり、その短い時間枠の間分布は変化せず、あるユーザーの訪問は別のユーザーの訪問とは無関係です。ただし、対象期間を長くすると、ウェブページの訪問者に季節的な違いが生じることがあります。

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

推論

#fundamentals

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

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

入力レイヤ

#fundamentals

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

4 つのレイヤ: 入力レイヤ、2 つの隠れレイヤ、出力レイヤです。

解釈可能性

#fundamentals

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

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

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

繰り返し

#fundamentals

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

ニューラル ネットワークをトレーニングする場合、1 回の反復で次の 2 つのパスが発生します。

  1. 単一のバッチで損失を評価するフォワードパス。
  2. 損失と学習率に基づいてモデルのパラメータを調整するバックワード パス(誤差逆伝播法)。

L

L0 正則化

#fundamentals

モデル内のゼロ以外の重みの合計にペナルティを適用する正則化の一種。たとえば、ゼロ以外の重みが 11 個あるモデルには、ゼロ以外の重みが 10 個ある類似モデルよりもペナルティが課されます。

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

L1 損失

#fundamentals

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

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

L1 損失は、L2 損失よりも外れ値の影響を受けにくくなります。

平均絶対誤差は、サンプルごとの L1 損失の平均値です。

L1 正則化

#fundamentals

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

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

L2 損失

#fundamentals

実際のラベル値とモデルが予測した値の差の 2 乗を計算する損失関数。以下に、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 になります。16 個のうち 9 個は 1 つの外れ値で占められています。

回帰モデルでは通常、損失関数として L2 の損失が使用されます。

平均二乗誤差は、サンプルごとの L2 損失の平均値です。二乗損失は L2 損失の別名です。

L2 正則化

#fundamentals

重みの二乗の合計に比例して重みにペナルティを適用する正則化の一種。L2 正則化は、外れ値の重み(正の値が高い値または負の値が低い値)を 0 に近づけますが、0 には近くなりません。値が 0 に非常に近い特徴はモデルに残りますが、モデルの予測にはあまり影響しません。

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

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

ラベル

#fundamentals

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

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

ラベル付きサンプル

#fundamentals

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

寝室の数 浴室数 住宅の年数 住宅の価格(ラベル)
3 2 15 34 万 5,000 ドル
2 1 72 17 万 9,000 ドル
4 2 34 39 万 2,000 ドル

教師あり ML では、モデルはラベル付きサンプルでトレーニングし、ラベルなしサンプルで予測を行います。

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

ラムダ

#fundamentals

正則化率と同義です。

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

レイヤ

#fundamentals

ニューラル ネットワーク内の一連のニューロン。一般的なレイヤには次の 3 種類があります。

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

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

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

学習率

#fundamentals

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

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

リニア

#fundamentals

足し算と乗算だけで表すことができる 2 つ以上の変数間の関係。

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

非線形と対比してください。

線形モデル

#fundamentals

モデルmodel特徴modelごとに 1 つの重みmodelを割り当て、予測modelを行います。(線形モデルにはバイアスも組み込まれています)。これに対して、ディープモデルにおける特徴と予測の関係は、一般的に非線形です。

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

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

線形回帰

#fundamentals

次の両方に該当する ML モデルの一種:

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

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

ロジスティック回帰

#fundamentals

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

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

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

  • 迷惑メールである可能性は 72% です。
  • 28% の確率はスパムメールではない

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

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

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

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

ログ損失

#fundamentals

2 進ロジスティック回帰で使用される損失関数

対数オッズ

#fundamentals

イベントの発生確率の対数。

損失

#fundamentals

教師ありモデルトレーニング中、モデルの予測がそのラベルからどの程度離れているかを測定します。

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

損失曲線

#fundamentals

トレーニングのイテレーション回数の関数としての損失のプロット。次のプロットは、典型的な損失曲線を示しています。

損失とトレーニングのイテレーションのデカルトグラフ。最初のイテレーションで損失が急激に減少し、その後に緩やかに減少し、最後のイテレーションで平坦な傾きが続きます。

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

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

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

損失関数

#fundamentals

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

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

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

M

機械学習

#fundamentals

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

ML はこれらのプログラムやシステムに関する 研究分野も意味します

多数派のクラス

#fundamentals

クラス不均衡なデータセット内のより一般的なラベル。たとえば、99% のネガティブのラベルと 1% のポジティブのラベルを含むデータセットの場合、ネガティブのラベルが過半数クラスになります。

マイノリティのクラスと対比してください。

ミニバッチ

#fundamentals

ランダムに選択された小さなバッチのサブセット。1 回のイテレーションで処理されます。ミニバッチのバッチサイズは通常、10 ~ 1,000 サンプルです。

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

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

マイノリティの階級

#fundamentals

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

マジョリティ クラスと対比してください。

model

#fundamentals

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

モデルを保存、復元、またはコピーを作成できます。

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

マルチクラス分類

#fundamentals

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

  • アヤメ
  • アヤメ
  • アヤメ

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

一方、2 つのクラスを区別する分類問題はバイナリ分類モデルです。たとえば、迷惑メールまたは迷惑メールではないのいずれかを予測するメールモデルは、バイナリ分類モデルです。

クラスタリングの問題では、マルチクラス分類は 3 つ以上のクラスタを指します。

N

陰性クラス

#fundamentals

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

  • 医学的検査の陰性クラスは「腫瘍ではない」かもしれません。
  • メール分類器の除外クラスは「迷惑メールではない」場合があります。

陽性クラスと対比してください。

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

#fundamentals

少なくとも 1 つの隠しレイヤmodelを含むモデルmodelディープ ニューラル ネットワークは、複数の隠しレイヤを含むニューラル ネットワークの一種です。たとえば、次の図は 2 つの隠しレイヤを含むディープ ニューラル ネットワークを示しています。

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

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

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

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

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

ニューロン

#fundamentals

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

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

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

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

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

ニューラル ネットワークのニューロンは、脳や神経系の他の部分にあるニューロンの挙動を模倣したものです。

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

#fundamentals

隠しレイヤにあるニューロン

ノンリニア

#fundamentals

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

2 つのプロット。1 つのプロットは直線なので、これは線形の関係になります。2 つ目のプロットは曲線なので、非線形の関係になります。

非定常性

#fundamentals

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

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

定常性と対比します。

正規化

#fundamentals

大まかに言うと、変数の実際の値範囲を標準的な値範囲に変換するプロセス。以下に例を示します。

  • -1 ~+1
  • 0~1
  • 正規分布

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

正規化は、特徴量エンジニアリングにおける一般的なタスクです。通常、特徴ベクトルのすべての数値特徴がほぼ同じ範囲を持つ場合、モデルのトレーニングが高速になり、予測の精度が向上します。

数値データ

#fundamentals

整数または実数として表される特徴。たとえば、住宅評価モデルでは、住宅の面積(平方フィートまたは平方メートル単位)を数値データとして表すことが考えられます。特徴を数値データとして表すことは、特徴の値がラベルと数学の関係にあることを示します。つまり、住宅の平方メートル数は、おそらく住宅の価格となんらかの数学的関係があります。

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

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

O

オフライン

#fundamentals

static と同義です。

オフライン推論

#fundamentals

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

たとえば、4 時間に 1 回局所の天気予報(予測)を生成するモデルについて考えてみましょう。各モデルを実行すると、各地域の天気予報がすべてキャッシュに保存されます。天気アプリはキャッシュから天気予報を取得します。

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

オンライン推論と対比します。

ワンホット エンコーディング

#fundamentals

カテゴリデータをベクトルとして表すと、次のようになります。

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

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

  • 「デンマーク」
  • 「スウェーデン」
  • ノルウェー
  • フィンランド
  • アイスランド

ワンホット エンコーディングでは、5 つの値のそれぞれを次のように表すことができます。

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

ワンホット エンコーディングにより、モデルは 5 つの国のそれぞれに基づいて異なる接続を学習できます。

特徴を数値データとして表す方法は、ワンホット エンコーディングに代わる方法です。残念ながら、スカンジナビア諸国を数字で表すことはおすすめしません。たとえば、次の数値表現を考えてみましょう。

  • "Denmark" は 0 です
  • "Sweden" は 1
  • 「Norway」は 2 です
  • 「Finland」は 3
  • 「アイスランド」は 4

数値エンコードでは、モデルは未加工の数値を数学的に解釈し、その数値でトレーニングを試みます。しかし、アイスランドはノルウェーの 2 倍(半分)ではないので、モデルは奇妙な結論を導き出します。

1 対すべて

#fundamentals

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

  • 動物と動物ではない
  • 野菜かそうでないか
  • 鉱物か非鉱物か

online

#fundamentals

dynamic と同義です。

オンライン推論

#fundamentals

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

オフライン推論と対比します。

出力層

#fundamentals

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

次の図は、入力レイヤ、2 つの隠しレイヤ、出力レイヤがある小規模なディープ ニューラル ネットワークを示しています。

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

過剰適合

#fundamentals

トレーニング データmodelとほぼ一致するモデルmodelを作成して、モデルが新しいデータに対して正しい予測を行えなくなる。

正則化により過学習を削減できます。大規模で多様なトレーニング セットでトレーニングすることでも、過学習を減らすことができます。

P

pandas

#fundamentals

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

パラメータ

#fundamentals

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

$$y' = b + w_1x_1 + w_2x_2 + … w_nx_n$$

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

陽性クラス

#fundamentals

テスト対象のクラス。

たとえば、がんモデルの陽性クラスは「tumor」かもしれません。メールの分類器で陽性のクラスが「迷惑メール」であることもあります。

陰性クラスとは対照的です。

後処理

#fairness
#fundamentals

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

たとえば、属性のすべての値で真陽性率が同じであることを確認することで、なんらかの属性の機会の平等が維持されるように分類しきい値を設定して、バイナリ分類器に後処理を適用できます。

予測

#fundamentals

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

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

プロキシラベル

#fundamentals

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

たとえば、従業員のストレスレベルを予測するモデルをトレーニングする必要があるとします。データセットには多くの予測特徴が含まれていますが、ストレスレベルというラベルは含まれていません。ストレスレベルの代理ラベルとして「職場での事故」を選択します。結局のところ、ストレスが強い従業員は落ち着いている従業員よりも多くの事故に遭います。実際に使用されているのか、職場での事故は複数の理由で 上下する場合があります

2 つ目の例として、「雨が降っていますか?」をデータセットのブール値ラベルにしたいが、データセットに雨のデータが含まれていないとします。写真がある場合は、「雨が降っているか」の代理ラベルとして、傘を携帯している人の画像を設定するとよいでしょう。これは適切なプロキシラベルでしょうか?おそらく可能ですが、文化によっては雨よりも日差しから守るために傘を持っていく傾向があります。

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

R

RAG

#fundamentals

取得拡張生成の略語。

評価者

#fundamentals

ラベルを指定する人間。「Annotator」は評価者の別名です。

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

#fundamentals

次の動作をする活性化関数

  • 入力が負またはゼロの場合、出力は 0 です。
  • 入力が正の場合、出力は入力と等しくなります。

次に例を示します。

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

ReLU のプロットを次に示します。

2 本の直線のデカルト プロット。最初の線の y 値は 0 で、x 軸に沿って -infinity,0 から 0,-0 まで続きます。2 行目は 0,0 から始まります。この直線の傾きは +1 で、0,0 から +infinity,+infinity になります。

ReLU は、非常に一般的な活性化関数です。ReLU は、単純な動作にもかかわらず、ニューラル ネットワークが特徴ラベル間の非線形関係を学習できるようにします。

回帰モデル

#fundamentals

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

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

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

  • 線形回帰。ラベル値が特徴に最も適合する直線を検出します。
  • ロジスティック回帰。これは、通常、システムがクラス予測にマッピングする確率を 0.0 ~ 1.0 の範囲で生成します。

数値予測を出力するすべてのモデルが回帰モデルであるわけではありません。場合によっては、数値予測は、たまたま数値クラス名を持つ単なる分類モデルになります。たとえば、数値の郵便番号を予測するモデルは分類モデルであり、回帰モデルではありません。

正則化

#fundamentals

過学習を減らすメカニズム。一般的な正則化の種類は次のとおりです。

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

正則化率

#fundamentals

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

ReLU

#fundamentals

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

検索拡張生成(RAG)

#fundamentals

大規模言語モデル(LLM)の出力を、モデルのトレーニング後に取得した知識ソースで根拠づけることで品質を向上させる手法。RAG は、トレーニング済みの LLM が信頼できるナレッジベースやドキュメントから取得した情報にアクセスできるようにすることで、LLM の応答の精度を向上させます。

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

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

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

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

ROC(受信機動作特性)曲線

#fundamentals

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

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 曲線は両極の中間にあります。

ROC 曲線。X 軸は偽陽性率、Y 軸は真陽性率です。ROC 曲線は、コンパス ポイントを西から北に横断する揺れた円弧に近いものです。

理論的には、ROC 曲線上の(0.0,1.0)に最も近いポイントが理想的な分類しきい値を識別します。ただし、理想的な分類しきい値の選択には、他にもいくつかの現実的な問題があります。たとえば、偽陰性は偽陽性よりもはるかに大きな問題を引き起こすことがあります。

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

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

#fundamentals

平均二乗誤差の平方根。

S

シグモイド関数

#fundamentals

入力値を制約された範囲(通常は 0 ~ 1 または -1 ~+1)に「押しつぶ」する数学関数。つまり、任意の数(2、100 万、負の 10 億など)をシグモイドに渡すことができ、出力は引き続き制約された範囲内になります。シグモイド活性化関数のプロットは次のようになります。

x 値が領域 -infinity から + 正の値を取り、y 値がほぼ 0 からほぼ 1 の範囲にまたがる 2 次元曲線プロット。x が 0 の場合、y は 0.5 である。曲線の傾きは常に正で、最大の傾きは 0.0.5 で、x の絶対値が増加するにつれて傾きは徐々に減少します。

ML におけるシグモイド関数は、次のような用途があります。

Softmax

#fundamentals

マルチクラス分類モデルに含まれる可能性のある各クラスの確率を決定する関数。確率は合計で 1.0 になりますたとえば、次の表は、ソフトマックスがさまざまな確率を分散する方法を示しています。

画像は... 確率
0.85
0.13
0.02

ソフトマックスは「完全ソフトマックス」とも呼ばれます。

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

スパースな特徴

#language
#fundamentals

値が主にゼロまたは空である特徴。たとえば、単一の 1 値と 100 万 0 値を含む特徴はスパースです。一方、高密度の特徴は、ゼロや空以外の値が大半を占めます。

ML では、かなりの数の特徴がスパースな特徴です。通常、カテゴリ特徴はスパースな特徴です。たとえば、森にある 300 種類の樹木のうち、1 つのサンプルでカエデの木だけを識別できます。動画ライブラリにある何百万本もの動画のうち、1 つの例で「カサブランカ」だけを識別することもあります。

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

スパース表現

#language
#fundamentals

スパースな特徴にゼロ以外の要素の位置のみを格納します。

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

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

位置 0 ~ 23 に値 0、位置 24 に値 1、位置 25 ~ 35 に値 0 がそれぞれ保持されるベクトル。

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

24

スパース表現は、ワンホット表現よりもはるかに簡潔です。

スパース ベクトル

#fundamentals

値がほぼ 0 のベクトル。スパースな特徴スパース性もご覧ください。

二乗損失

#fundamentals

L2 損失と同義です。

static

#fundamentals

なんらかの処理が連続的ではなく 1 回実行されること。静的とオフラインという用語は同義語です。ML における静的とオフラインの一般的な使用方法は次のとおりです。

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

[動的] と対比します。

静的推論

#fundamentals

オフライン推論と同義です。

定常性

#fundamentals

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

実際には、静止している特徴はほとんどありません。安定性と同義の特徴(海面など)でさえも、時間の経過とともに変化します。

非定常性と対比してください。

確率的勾配降下法(SGD)

#fundamentals

バッチサイズが 1 の勾配降下法アルゴリズム。つまり、SGD はトレーニング セットから均一にランダムに選択された 1 つのサンプルを使用してトレーニングを行います。

教師あり機械学習

#fundamentals

modelとそれに対応するmodelからモデルmodelをトレーニングする。教師あり ML は、一連の質問とそれに対応する回答を調べて主題を学ぶことに似ています。質問と回答の対応付けをマスターすると、生徒は同じトピックに関する未知の新しい質問に対して回答できるようになります。

教師なし機械学習と比較してください。

合成特徴

#fundamentals

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

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

正規化またはスケーリングのみで作成された特徴は合成特徴とはみなされません。

T

テスト損失

#fundamentals

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

テストの損失とトレーニングの損失または検証の損失との間に大きなギャップがある場合は、正則化率を増やす必要がある可能性があります。

トレーニング

#fundamentals

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

トレーニングの損失

#fundamentals

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

損失曲線は、トレーニングの損失と反復処理の回数をプロットします。損失曲線から、トレーニングに関する次のヒントが得られます。

  • 傾きが下がっている場合は、モデルが改善していることを意味します。
  • 傾きが上向きであれば、モデルが悪化していることを意味します。
  • 傾きがフラットであれば、モデルが収束に達したことを意味します。

たとえば、次のやや理想的な損失曲線は次のようになります。

  • 最初の反復処理で急激な下降傾向が見られる。これは、モデルの迅速な改善を意味します。
  • トレーニングの終了近くまで徐々に平坦化する(ただし、まだ下降傾向にある)。これは、最初の反復処理時よりもやや遅いペースでモデルの改善が継続されることを意味します。
  • トレーニングの終盤に向かって平坦な勾配。収束を示唆している。

トレーニングの損失と反復処理のプロット。この損失曲線は急な下向きの傾きから始まります。傾きは、傾きがゼロになるまで徐々に平坦になります。

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

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

#fundamentals

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

トレーニング セット

#fundamentals

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

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

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

真陰性(TN)

#fundamentals

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

真陽性(TP)

#fundamentals

モデルが陽性クラスを正しく予測する例。たとえば、モデルは特定のメール メッセージが迷惑メールであると推測し、そのメール メッセージは実際には迷惑メールであると推測します。

真陽性率(TPR)

#fundamentals

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

$$\text{true positive rate} = \frac{\text{true positives}} {\text{true positives} + \text{false negatives}}$$

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

U

学習不足

#fundamentals

モデルがトレーニング データの複雑さを完全にキャプチャしていないため、予測能力が低いモデルmodelを作成する。学習不足を引き起こす可能性のある問題には次のようなものがあります。

  • 間違った特徴のセットでトレーニングする。
  • エポックが少なすぎるか、学習率が低すぎる場合。
  • 正則化率が高すぎるトレーニング。
  • ディープ ニューラル ネットワークにおける隠れ層が少なすぎる。

ラベルなしの例

#fundamentals

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

寝室の数 浴室数 住宅の年数
3 2 15
2 1 72
4 2 34

教師あり ML では、モデルはラベル付きサンプルでトレーニングし、ラベルなしサンプルで予測を行います。

半教師あり学習と教師なし学習では、トレーニング中にラベルなしのサンプルが使用されます。

ラベルのないサンプルとラベル付きのサンプルを対比してください。

教師なし ML

#clustering
#fundamentals

モデルmodelをトレーニングして、データセット(通常はラベルのないデータセット)内のパターンを見つけます。

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

教師あり ML と対比します。

V

排除できます。

#fundamentals

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

検証セットはトレーニング セットと異なるため、検証で過学習を防ぐことができます。

検証セットに照らしてモデルを評価する 1 回目のテストで、テストセットに照らしてモデルを評価すると、2 回目のテストと考えることができます。

検証損失

#fundamentals

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

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

検証セット

#fundamentals

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

従来は、データセットのサンプルを次の 3 つの異なるサブセットに分割していました。

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

W

weight

#fundamentals

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

加重合計

#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 スコアにどのようにマッピングされるかを示しています。

未加工の値 Z スコア
800 0
950 +1.5
575 -2.25

ML モデルは、未加工の値ではなく、その特徴の Z スコアでトレーニングします。