機械学習とは
機械学習(Machine Learning, ML)は、システムが明示的なプログラムなしに大量のデータからパターンやルールを自動的に学習し、予測を行う技術です。このプロセスは、データを中心にしたアプローチである「データドリブン」(Data-Driven)な手法です。
機械学習のメリット
機械学習のメリットは、主に以下の二つです。
- データから自動的にモデルが学習され、適切な出力が得られるようになる点です。ルールベースのような人工的な設計が不要です。
- 複雑なデータも学習することができる点です。人間が手作業でルールを定義することが困難なタスクにも対応可能です。
モデルとパラメータ
モデルは関数のようなもので、データを入力すると、それに対応するデータを出力します。例えば、モデルを$f$、入力データを$x$, 出力データを$y$とすると、以下のように表されます。
$$y=f(x)$$
また、モデルは内部に調整可能な要素として、複数のパラメータを持ちます。例えば、複数のパラメータを$\boldsymbol{\theta} = [\theta_1, \theta_2, \dots]$とすると、モデル$f$は、次のように記述されます。
$$y = f(x; \boldsymbol{\theta}) = f(x; \theta_1, \theta_2, \dots)$$
上記式より、入力データ$x$が同じでも、複数のパラメータ$\boldsymbol{\theta}$が変わると、推論される出力データ$y$も変化することが分かります。
損失関数
損失関数は、学習中にモデルがどれだけ誤った予測をしているかを測定するための関数です。損失が小さいほどモデルからの出力が適切であることを示しています。つまり、モデルは損失が小さくなるように学習を進めます。
学習と推論
機械学習モデルの動作は、主に以下の二つに分けられます。
- 学習(Training):主に開発過程で、出力データ$y$が適切になるように、モデル内部の複数のパラメータ$\boldsymbol{\theta}$が調整されます。具体的には、損失関数を使用して損失を計算し、その損失を最小化するように複数のパラメータ$\boldsymbol{\theta}$が調整されます。
- 推論(Inference):主に運用過程で、未知の入力データ$x_{new}$に対してモデル$f$を適用し、出力データ$y_{pred}$の推論を行います。推論段階では、学習によって最適化された複数のパラメータ$\boldsymbol{\theta}$は固定されています。
データセット
データセットは、モデルの学習に使用されるデータの集合です。データセットは、主に以下の三つに分けられます。
- 訓練データ(Training Data):モデルの学習するために使用するデータです。つまり、モデルのパラメータを更新するために使用するデータです。
- 検証データ(Validation Data):モデルの学習過程で、モデルの汎化性能を評価するために使われるデータです。過学習(Over Fitting)を防ぐために使用されます。
- 推論データ(Test Data):最終的なモデルの性能を評価するために使用するデータです。訓練にも検証にも使用されていないデータです。
機械学習の種類
機械学習は主に、教師あり学習、教師なし学習、そして強化学習の3つのタイプがあります。以下でそれぞれを詳しく説明します。