モデル評価

記事数:(28)

機械学習

訓練誤差:モデル学習の落とし穴

機械学習では、まるで人間の学習と同じように、たくさんの例題を使って計算機に学習させます。この学習に使われる例題の集まりを訓練データと言います。訓練データを使って学習を進める中で、計算機がどのくらいきちんと理解できているかを測る一つの方法が、訓練誤差です。これは、訓練データの正解と、計算機が予測した値との違いを数値で表したものです。 例として、たくさんの動物の画像と、それぞれの画像がどの動物なのかを示す正解データを使って、計算機に画像認識を学習させるとしましょう。この学習の過程で、計算機はそれぞれの画像を見て、それがどの動物であるかを予測します。そして、その予測結果と、実際の正解データとを比較します。もし予測が正解と一致していれば、計算機はその画像の内容を正しく理解できていると考えられます。逆に、予測が外れていれば、計算機はまだ学習が足りていない、もしくは学習方法に問題があると考えられます。 この予測の正しさ、もしくは誤りの大きさを示すのが訓練誤差です。訓練誤差の値が小さければ小さいほど、計算機は訓練データをよく理解し、正確な予測ができていることを示します。例えば、猫の画像を学習させているとします。訓練誤差が小さいということは、計算機が猫の画像を正しく猫として認識できていることを示します。逆に、訓練誤差が大きい場合は、計算機が猫の画像を犬やその他の動物と誤認識している可能性が高いことを意味します。 訓練誤差は、学習の進み具合を確かめるための重要な指標です。訓練誤差が小さくなるように学習を進めることで、計算機は訓練データの特徴をより深く理解し、未知のデータに対しても精度の高い予測を行うことができるようになります。ただし、訓練誤差だけに注目しすぎると、訓練データに過剰に適応してしまい、新しいデータへの対応力が弱まるという問題も起こることがあります。これは過学習と呼ばれ、注意が必要です。
機械学習

偽陽性と偽陰性:理解と対策

機械学習の分野では、作った模型の良し悪しを色々な角度から調べることが大切です。そのための便利な道具の一つに、混同行列というものがあります。これは、結果が「ある」か「ない」かの二択で表される問題を扱う時に特に役立ちます。例えば、病気の検査で「病気である」か「病気でない」かを判断する場合などです。 混同行列は、模型の出した答えと本当の答えを比べ、四つの種類に分けて数えます。模型が「ある」と答えて、実際に「ある」場合を「真陽性」と言います。これは、検査で「病気である」と出て、実際に病気だった場合と同じです。模型が「ある」と答えたのに、実際は「ない」場合を「偽陽性」と言います。これは、健康なのに検査で「病気である」と出てしまった場合に当たります。 逆に、模型が「ない」と答えて、実際は「ある」場合を「偽陰性」と言います。これは、病気なのに検査で「病気でない」と出てしまった、見逃しの場合です。最後に、模型が「ない」と答えて、実際も「ない」場合を「真陰性」と言います。これは、健康で、検査でも「病気でない」と出た場合です。 このように、四つの種類の数を把握することで、模型の正確さだけでなく、どんなふうに間違えやすいかなども分かります。例えば、偽陽性が多ければ、必要のない検査や治療に導く可能性があります。偽陰性が多ければ、病気を見逃してしまう可能性があり、どちらも深刻な問題につながる可能性があります。混同行列を使うことで、ただ正解した数がどれだけあるかを見るだけでなく、模型のより詳しい特徴を掴むことができるのです。
機械学習

k分割交差検証で精度向上

機械学習の模型の働きぶりを測るには、使える資料をうまくやりくりする必要があります。そのためのやり方の一つに、分割検証というものがあります。分割検証は、持っている資料を同じくらいの大きさの束に分け、そのうちいくつかを模型の学習に、残りを模型の評価に使うというものです。 具体的には、まず資料を同じ大きさの例えば10個の束に分けます。そして、その中の9個の束を使って模型を学習させ、残りの1個の束で模型の働きぶりを評価します。次に、別の9個の束で学習させ、残りの1個で評価する、ということを繰り返します。こうして、それぞれの束が1回ずつ評価に使われるように、全部で10回繰り返します。10回の評価が終わると、10個の評価結果が得られます。この10個の平均値を、模型の最終的な成績として使います。 このように、全ての資料を学習と評価の両方に使うことで、限られた資料でも模型の真の実力をより正しく測ることができます。分割数を10にした場合を10分割検証と言いますが、3分割や5分割といったやり方もあります。分割数は、資料の量や性質に合わせて適切に決める必要があります。資料の数が少ない場合は、分割数を大きくすることで、より多くの資料を学習に使うことができます。ただし、分割数を大きくしすぎると、計算に時間がかかってしまうため、バランスが大切です。 この方法は、特に資料が少ない場合に、模型が新しい資料に対してもきちんと働くかどうかを、より正確に見積もるために役に立ちます。たくさんの資料があれば、最初から学習用と評価用に分けてしまっても良いのですが、資料が少ない場合は、分割検証を使うことで、限られた資料を最大限に活用することができます。
機械学習

交差検証:機械学習の精度の鍵

機械学習では、集めた情報を使って、コンピュータに色々なことを学習させます。学習した結果が、本当に役立つものなのかを確かめる必要があります。そのために使う方法の一つが、交差検証です。 交差検証は、限られた量の情報を有効に使うための工夫です。例えるなら、料理のレシピを少しの材料で試し、改良していくようなものです。材料を全部使って一度だけ料理を作るのではなく、材料を分けて何回か料理を作ります。 具体的には、集めた情報をいくつかのグループに分けます。そして、ある一つのグループを除いた残りのグループを使ってコンピュータに学習させます。残しておいたグループを使って、学習した結果がどれくらい正しいかを調べます。これを、残しておいたグループを変えながら繰り返します。それぞれのグループを順番にテスト用として使い、それ以外のグループを学習用として使うことで、全てのデータが学習とテストに使われます。 この方法の利点は、少ない情報でも学習結果の確かさを調べることができる点です。全ての情報を学習に使い、別のデータでテストできれば理想ですが、十分な情報がない場合、交差検証が役立ちます。 交差検証によって、コンピュータが学習したことが、特定の情報だけに合うのではなく、他の新しい情報にも役立つことが確認できます。つまり、本当に役立つ知識をコンピュータが学習できたかを確認できるのです。 交差検証は、機械学習の様々な場面で使われており、より信頼性の高い学習結果を得るために重要な方法です。