Haruchunのブログ

大学生の'春'のお勉強の備忘録

【Python】㉘機械学習Ⅱ(仕組み)

f:id:Haruchun:20200523082736j:plain

 

始めに

前回は、機械学習の用語についてまとめていきました。

今回は、機械学習の仕組みについて学んでいきましょう。

 

前回の記事はこちら

haruchun.hatenablog.com

 

 

 

モデルとは

ここでは「教師あり学習」についてです。

モデルとは、データを入力すると、内部で何らかの処理を行い、処理結果のデータを出力する仕組みのことです。

 

モデルの内部にはいくつかの調節可能なパラメータがあります。

学習を行う目的は、これらのパラメータを適切に調整することによって、入力から望ましい出力が得られるようなモデルに改良することです。

 

f:id:Haruchun:20200523084146p:plain

 

最初のパラメータは適当な値に設定しておきます。

 適当に設定したため、多くの場合は入力から望ましい出力は得られません。

そこで、訓練データを使った学習を行います。

教師あり学習における訓練データは、入力部分と正解部分から構成されています。

 

例えば、多数の犬の画像と猫の画像を、訓練データとして使い、その画像が犬か猫かを見分けるプログラムを作るとします。

コンピュータはどちらが犬か猫かをそもそも知らないため、各画像にその画像が示すラベルをつけておいます。

この場合、入力部分は犬と猫の画像、正解部分はラベルです。

 

訓練データのモデルの入力部分をモデルに入力すると、モデルが処理した結果を出力します。

この出力と、正解部分を比較し誤差を求めます。

 

f:id:Haruchun:20200523143449p:plain

 

求めた誤差を使い、モデルのパラメータを調整していきます。

誤差がなるべく小さくなるようにすることで、正解に近い出力をするモデルに改良することができます。

 

 

 

テストデータとは

 学習によってモデルがどの程度まで改良されたかを調べるために「テストデータ」を使用します。

このテストデータも訓練データ同様、入力部分と正解部分で構成されています。

 

テストデータのモデル部分を入力すると、モデルが処理結果を出力します。

その結果と正解部分を比較し、そのモデルの正解率を求めます。

 

「訓練データ」と「テストデータ」は異なるものを使用します。

これは、訓練データでは高い正解率を出力することができるが、未知のデータに対しては高い正解率を出力することができないという事態も起こりえるためです。

学習の目的は、既知のものに対してだけではなく、未知のものに対しても高い正解率を出力することです。

f:id:Haruchun:20200523143751p:plain


 

 

 

 

終わりに

今回は機械学習の仕組みについて学んでいきました。

次回は、実際にプログラムを実行させてみましょう。