機械学習とは

完了

機械学習は、データの統計および数学的モデリングの中にその起源があります。 機械学習の基本的な考え方は、過去の観測値のデータを使用して、未知の結果や値を予測することです。 次に例を示します。

  • あるアイスクリーム店の経営者は、過去の売り上げおよび気象記録を組み合わせたアプリを使用し、天気予報に基づいて、特定の日に売れそうなアイスクリームの数を予測する場合があります。
  • ある医師は、過去の患者の臨床データを使用して、体重、血糖値、その他の測定値などの要因に基づいて、ある新しい患者に糖尿病のリスクがあるかどうかを予測する、自動テストを実行する場合があります。
  • ある研究者は南極で、過去の観測値を使用し、ペンギンの翼、くちばし、その他の身体属性の測定値に基づいて、さまざまなペンギンの種類 ("アデリー"、"ジェンツー"、または "ヒゲ" など) の識別を自動化する場合があります。

"関数" としての機械学習

機械学習は数学と統計に基づいているため、機械学習モデルについては数学用語で考えるのが一般的です。 基本的に、機械学習モデルは、1 つ以上の入力値を基に出力値を計算するための "関数" をカプセル化する、ソフトウェア アプリケーションです。 その関数を定義するプロセスは、"トレーニング" と呼ばれます。 関数を定義したら、それを使用して、"推論" と呼ばれるプロセス内で新しい値を予測できます。

トレーニングと推論に関連する手順を確認しましょう。

機械学習内のトレーニングおよび推論のフェーズを示すダイアグラム。

  1. トレーニング データは、過去の観測値で構成されます。 ほとんどの場合、その観測値には、観測された属性または観測されている対象の "特徴量"、および予測するモデルをトレーニングする対象の既知の値 ("ラベル" と呼ばれます) が含まれます。

    数学用語では、多くの場合、特徴量は短縮形の変数名 x を使用して参照され、そしてラベルは y として参照されます。 通常、観測値は複数の特徴量の値で構成されるため、x は実際には "ベクトル" (複数の値を含む配列) です。たとえば [x1,x2,x3,...]

    これをより明確にするために、前に説明した例を考えてみましょう。

    • アイスクリーム販売のシナリオ内では、目標は、天気に基づいて、アイスクリームの販売数を予測できるモデルをトレーニングすることです。 その日の天気の測定値 (温度、降水量、風速など) は "特徴量" (x) で、それぞれの日に売れたアイスクリームの数は "ラベル" (y) です。
    • 医療のシナリオ内では、目標は、臨床測定値に基づいて、ある患者に糖尿病のリスクがあるかないかを予測することです。 その患者の測定値 (体重、血糖値など) は "特徴量" (x) で、その糖尿病の可能性 (たとえば、リスクがある場合は 1、リスクがない場合は 0) は "ラベル" (y) です。
    • 南極の研究シナリオ内では、その身体属性に基づいて、ペンギンの種類を予測したいと考えています。 そのペンギンの主要な測定値 (翼の長さ、くちばしの幅など) は "特徴量" (x) で、その種類 (たとえば、アデリーは 0、ジェンツーは 1、またはヒゲは 2) は "ラベル" (y) です。
  2. ある "アルゴリズム" がそのデータに適用され、その特徴量とそのラベル間の関係を判断し、その関係を、x に対して実行して y を予測できる計算として一般化します。 使用される特定のアルゴリズムは、解決しようとしている予測問題の種類によって異なりますが (これについては後ほど詳しく説明します)、基本原則はそのデータに対して関数を "調整" しようとすることです。それにより特徴量の値を使用してラベルを計算します。

  3. そのアルゴリズムの結果は、そのアルゴリズムによって得た計算を、"関数" としてカプセル化する "モデル" です。これを f と呼びましょう。 数学表記では:

    y = f(x)

  4. これで "トレーニング" フェーズが完了したので、このトレーニング済みのモデルは "推論" に使用できます。 このモデルは本質的にはソフトウェア プログラムであり、そのトレーニング プロセスによって作成される関数をカプセル化します。 特徴量の値のセットを入力し、その対応するラベルの予測を出力として受け取ることができます。 そのモデルからの出力は、その関数によって計算された予測であり、観測値ではないため、多くの場合、その関数からの出力は ŷ として表されます (これは、冗談めかして "y-ハット" と呼ばれます)。