
4,173 文字

人工知能を愛好するみなさん、おはようございます。今日は機械学習の基礎的なテーマについてお話しさせていただきます。パラメトリックモデルとノンパラメトリックモデルの違いについてです。
もしかしたら、なんでいくつかのアルゴリズムは決まった数のパラメータが必要なのに、他のアルゴリズムはデータに応じて適応するんやろか?って考えたことがあるかもしれませんね。まあ、それは精神的に健全やということの表れかもしれません。実は、これは集団的な幻覚なんですけどね。
この謎を解き明かす準備をしましょう。この区別を理解することは、機械学習の全体像を把握するのに欠かせませんからね。もしこの動画が、私が冷蔵庫が勝手にアイスクリームを注文してたことを発見した時くらい驚かれたら、優しくいいねボタンを押して、まだの方は登録もよろしくお願いします。コメントもぜひ残してくださいね。
では、お気に入りの飲み物でも用意して、機械学習の魅力的な世界への新しい冒険に出発しましょう。
入力と出力を持つ機械を想像してください。ブラックボックスみたいなもんです。この機械の側面には、動作を変えるためのダイヤルがついています。このダイヤルがモデルのパラメータを表しているんです。ダイヤルを回すことでパラメータを調整し、機械の動作を変更できます。
例を挙げて説明しましょう。犬の画像を機械に入力すると、「車」という結果が出ます。ダイヤルを回してパラメータを変更し、同じ犬の画像を再度入力すると、今度は「犬」という異なる、そして正しい結果が出ます。これは、同じ入力に対して、パラメータが出力に直接影響を与えることを示しています。
機械学習において、パラメトリックモデルは有限個のパラメータで完全に記述できるモデルです。これらのパラメータは通常、モデルを定義する数学的な方程式の係数です。例えば、単純な線形回帰の方程式を考えてみましょう。
この方程式では、ŷは予測出力、xは入力、w0とw1がモデルのパラメータです。これらのパラメータを調整することで、入力xと予測出力ŷの関係を変更します。パラメータの値に応じて傾きw1とx軸との交点w0が変化する直線のグラフで、これを視覚化できます。
でも、パラメータの良い値はどうやって見つけるんでしょうか?ここで学習アルゴリズムの出番です。学習アルゴリズムは、モデルの予測出力ŷと期待される出力yの差を測る損失関数を最小化しようとします。
損失関数は、ダーツゲームのターゲットのようなものと考えられます。モデルが行う各予測は、ターゲットに向かって投げられるダーツです。ターゲットの中心は、予測出力が期待される出力と完全に一致する完璧な予測を表します。学習の目的は、予測(つまりダーツ)がターゲットの中心にできるだけ近づくようにモデルを調整することです。
分類の例を見てみましょう。犬、車、イチゴの画像があり、それぞれに対応するラベルが付いているとします。各画像は「犬」「車」「イチゴ」のいずれかにラベル付けされています。猫の画像を機械に入力すると、「車」と予測します。損失関数は、機械の出力ŷ(車)と期待される結果y(犬)の差、つまりこの誤差を数値化します。
この測定値が0に近いほど、機械の出力は期待される結果に近くなります。損失関数は問題に応じて異なる形式を取る数学的な関数です。例えば、よく知られている損失関数の一つに平均二乗誤差があり、これは予測値ŷと実際の値yの差の二乗の平均を計算します。
この方程式を分解してみましょう。Lは総損失、nはデータセット内のサンプル数、yi-ŷiは期待値と機械の出力の差、つまり誤差です。この誤差を二乗して合計するため、平均二乗誤差と呼ばれます。この損失関数は誤差が二乗されるため、大きな誤差をより重く罰します。
損失関数の選択は、モデルの学習方法に影響を与えるため非常に重要です。多くの損失関数が存在し、適切な関数の選択は機械に学習させたい問題に依存します。学習アルゴリズムはこの損失関数を最小化するようにモデルのパラメータを調整します。これは機械学習の設計における重要なポイントです。
人工ニューロンはパラメトリックモデルの古典的な例です。ここで少し歴史的な話をしましょう。人工ニューロンの概念は1943年にウォーレン・マカロックとウォルター・ピッツによって導入されました。彼らは人工ニューロンの数学モデルを作り、人工ニューラルネットワークの基礎を築きました。
人工ニューロンは入力の重み付け和を計算し、活性化関数を適用して出力を生成します。人工ニューロンの方程式を分解してみましょう。ŷはニューロンによる予測出力、Φは活性化関数と呼ばれます。ディープラーニングと人工ニューラルネットワークに関する上級の動画で詳しく説明しますが、今重要なのは、これが非線形性を導入するということです。
w0はバイアスと呼ばれ、活性化関数をシフトさせるパラメータです。その他のwiは各入力xiに関連付けられたパラメータで、xiはニューロンへの入力です。重みwiとバイアスw0を調整することで、ニューロンは入力を出力に変換する方法を変更します。
ここで、人工ニューロンは冒頭で説明した機械であり、各入力に関連付けられた重みは、機械の動作を変更するために回すことができるダイヤルです。例えば、入力x1に関連付けられた重みw1を増やすと、その入力が出力ŷにより大きな影響を与えることになります。
生物学的ニューロンのシナプスに相当する各入力に関連付けられた重みは、その入力がモデルの出力に与える影響の強さと考えることができ、この強さは正または負の値を取ることができます。活性化関数Φは非線形性を導入することでモデルに複雑さを加え、ニューロンが入力と出力の間のより複雑な関係をモデル化することを可能にします。
パラメトリックモデルとは対照的に、ノンパラメトリックモデルは入力変数と出力変数を結びつける関数の特定の形状について仮定を行いません。予測を行うために直接データに依存します。
k近傍法(KNN)を例に取りましょう。新しいインスタンスのクラスを予測する際、KNNは新しいインスタンスaとデータセット内の各インスタンスbの間の距離を計算することで機能します。ユークリッド距離はこの類似性を計算するためによく使用される測定方法です。学校でよく勉強したと思いますが、実は他にもたくさんの方法があります。
ユークリッド距離は次の方程式で定義されます。この式でdは新しいインスタンスaとトレーニングセットのインスタンスbの間の距離です。授業で見たかもしれない二次元の場合とは異なり、ここではデータセットのインスタンスを表すすべての特徴(フィーチャー)にこの距離を適用します。nは、これらのインスタンスを表す特徴の総数です。
新しいインスタンスとトレーニングセット内のすべてのインスタンスの間の距離を計算したら、最も距離の小さいk個のインスタンス、つまりk個の最近傍を特定します。新しいインスタンスのクラスを予測するために、これらの近傍の中で最も頻繁に出現するクラスを調べます。これが多数決の原理です。
具体的な例として、アヤメのデータセットを使ってみましょう。分類すべき新しい点aがあるとします。ユークリッド距離を使用して、aとトレーニングセットの各インスタンスbの間の距離を計算します。これにより、aの3つの最近傍を特定できます。3つの近傍を使用しているということは、3NNアルゴリズム(KNNの一例)を使用していることを意味します。
4つの近傍、5つの近傍、10の近傍を使用することもできましたが、この変数の選択の重要性については後で説明します。今のところ、これらの近傍のうち2つがアヤメ・セトーサクラスに属し、1つがアヤメ・バーシカラークラスに属すると仮定しましょう。近傍の中で多数を占めるクラスなので、aをアヤメ・セトーサクラスに割り当てます。
KNNのようなノンパラメトリックモデルは、変数間の関係が複雑で、単純なパラメトリック関数でモデル化が難しい場合に特に有用です。しかし、ノンパラメトリックモデルにも欠点があります。新しいインスタンスとトレーニングセットのすべてのインスタンスの間の距離を計算する必要があるため、非常に大きなデータセットでは計算コストが高くなることがあります。
1億、2億、あるいは10億のインスタンスを持つデータセットを想像してみてください。さらに、トレーニングセットのすべてのデータを保持する必要があり、これはメモリの観点で問題となる可能性があります。
まとめると、パラメトリックモデルは動作を変更する固定数のダイヤルを持つ機械のようなものです。データの形状について仮定を行い、予測を行うために有限個のパラメータを使用します。パラメトリックモデルを選択することで、事前確率(プライア)と呼ばれるものを導入します。
これは、解決策が取るべき形状について、最初から仮定を行っていることを意味します。例えば、線形モデルを選択することで、データ内の関係が線形であると仮定しています。このプライアは帰納バイアスと呼ばれます。言い換えれば、数学的関数を選択する際に立てた仮定に基づいて、特定の解決策を他の解決策よりも優先するようにモデルは最初からバイアスがかかっています。
もし仮定が正しければ、より少ないデータでより速く学習し、より正確な予測を行うことができるため、これは利点となります。しかし、仮定が間違っていれば、モデルはデータにうまく適応できないでしょう。
一方、ノンパラメトリックモデルは固定のダイヤルを持たない機械のようなものです。関数の形状について厳密な仮定を行わずに、予測を行うためにデータセット全体に依存します。
この2つのタイプのモデルの違いを理解することは、適切な問題に適切なツールを選択する上で重要です。
この動画をご覧いただき、ありがとうございました。質問やコメントがありましたら、下に残してください。いいねボタンを優しくタップして、機械学習マスタークラスシリーズの次回の動画を見逃さないように登録することもお忘れなく。それでは、お元気で。さようなら。


コメント