0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゆるく理解する機械学習の基本

Last updated at Posted at 2025-12-05

自分の理解も兼ねて、機械学習の仕組みを初心者でも分かるように解説します。

たとえ話

来週は数学のテストです。
数学の問題集をたくさん買ってきました。
計算ミスに注意するよう方針を立てました。
方針にしたがって勉強しました。
テストでいい点を取ることができました。

概観

機械学習は、主に4つのフェーズに分かれます。

  1. タスクの定義
  2. データの用意
  3. モデルの設計
  4. モデルの学習
  5. モデルの評価

たとえ話は一文ごとに、機械学習の各フェーズと対応しています。
1のタスクの定義では、機械学習を用いて何を行いたいかを明確にします。
2のデータの用意では、学習や評価に用いるデータを用意し、学習用データと評価用データを作成します。
3のモデルの設計では、タスクに合わせてモデルを設計します。
4のモデルの学習では、学習用データをモデルに渡し、モデルを学習させます。
5のモデルの評価では、評価用データをモデルに渡し、モデルがタスクをどれほど遂行できるかを評価します。

タスクの定義

タスクとは?

タスクを定義します。
タスクとは、機械学習を用いてやりたいことです。
例えば、天気から売り上げを予測したい とか、アヤメの品種を分類したい とかです。
定めたタスクに応じて、用いるデータやモデルを決めることになります。

データの用意

データとは?

まず、データを用意します。
データに含まれる情報の項目のことを特徴量と呼びます。
特徴量同士で足したり掛けたりして新しい特徴量を作ることもあります。
機械学習では、この特徴量を用いてタスクを達成します。

人間の特徴量は、身長、体重、年齢とかです。
身長と体重からBMIという新しい特徴量を作れます。
肥満度を推定するなら身長と体重を用いるよりBMIを用いる方がよさそうですよね?

学習や評価に用いるデータのまとまりのことを、データセットと呼びます。
用いるデータセットは、タスクに応じて決める必要があります。

数学のテストに向けて地理の問題集を用意するのは賢い選択ではありませんよね?

データセットの例

有名なデータセットには、MNISTがあります。
以下のような手書きの数字の画像が大量に含まれています。

image.png

MNISTは、画像分類タスクの練習用に非常によく用いられます。
MNISTの特徴量は画像を構成する1つ1つの点の色です。
つまり、それぞれの点の色を0~9の値に変換します。
この変換の仕方を調整することで、予測ができるようになります。

データの分割

次に、データを学習用データと評価用データを用意します。
この、学習用データを訓練データ、評価用データをテストデータと呼びます。
訓練データとテストデータは、一般に、データセットを分割することで用意します。

image.png

なぜ、評価に訓練データを用いてはいけないのでしょうか?
理由はタスクにあります。一般に、機械学習によって達成したいタスクは、「どんなデータに対しても」できてほしいものです。

逆に、数個のデータのみに対応してほしいなら、単純なプログラムで処理できますよね?

そのため、モデルは未知のデータを通して評価される必要があります。
学習に用いたデータはモデルにとっては良く知ったデータなので、対処できて当然なのです。

これは、身近に経験していることだと思います。テストで山が当たればいい点が取れますよね

すべてのデータに対しタスクをこなす能力を汎化能力と呼びます。
機械学習は、モデルが汎化能力を獲得するための技術といえます。

モデルの設計

モデルとは?

タスクに合うアーキテクチャを選択し、データを処理できるようなモデルを設計します。
モデルとは、データをどう学習し、どう処理するか等の関数と、どう学習したか等のパラメータのまとまりです。
アーキテクチャとは、モデルの関数と初期のパラメータの設計図です。

つまり、アーキテクチャは数学の勉強法で、モデルは勉強法を取り入れた私たち自身です。関数は勉強やテストに取り組む私たちの行動に対応し、パラメータは学習した私たちの脳みそです。

image.png

アーキテクチャの例

画像を処理するタスクに用いられるアーキテクチャの例としてCNNというものが挙げられます。
仕組みは非常に難解ですが、画像の特徴をうまく捉えることができます。

つまり、CNNは図形問題に特化した勉強法ですね。

ハイパーパラメータ

モデルの設計において、人間が決める部分をハイパーパラメータと言います。
例えば、同時に何個のデータを学習するかを決めるバッチサイズや、データから学んだことをどれだけ取り入れるかを決める学習率などがあります。
一般に、適切なハイパーパラメータはタスクやデータ、モデルによって異なります。

勉強時間と休憩時間だったり、一日に解く問題数だったりは勉強におけるハイパーパラメータですね。

この部分は機械学習で最適化されないので、人間がいい感じに設定する必要があります。
いい感じの組み合わせを決めるための手法として、クロスバリデーションというものがあります。
初めのうちは、粗くしらみつぶしをして、その結果をヒートマップなどを用いて視覚化する方法がおすすめです。
簡単な仕組みで良い組み合わせの検討をつけることができます。
また、どのハイパーパラメータがどう結果に影響しているかを理解する手助けにもなります。

モデルの学習

学習とは?

モデルに訓練データを渡し、学習させます。
学習によって、モデルはパラメータを変化させ、汎化能力を獲得します。

機械学習において、訓練と学習はほぼ同じ意味を持ちます。訓練を勉強に置き換えると、ニュアンスが分かりやすいかもしれません。

過学習を防ごう

訓練データが限られている状況では、学習をしすぎると訓練データに特化しすぎてしまいモデルが汎化能力を失ってしまいます。
この現象を過学習と呼びます。

数学の問題集を丸暗記している状況です。テストで問題集の解答をそのまま書いても点は取れませんね。
勉強しすぎた受験生が用語しか使わなくなったり街中の数字や図形を試験問題と思い込む例の病は過学習が原因でしょう。

image.png

過学習が起きてもある程度の汎化能力は獲得できるのですが、できれば防ぎたいです。
過学習を防ぐには、訓練データを増やす方法がありますが、データを集めるのは大変です。
そこで、学習の最中に何度か、未知のデータでテストを行います。
こうすれば、過学習が起きているかを確認することができます。

模擬テストと同じですね。

そうして、過学習をしていると分かったら、その段階で学習をストップします。
これを、アーリーストッピングといいます。
また、このとき用いるデータをバリデーションデータと呼び、訓練データをさらに分割して用意します。

例えるなら、バリデーションデータは問題集の演習問題です。
問題集の演習問題がうまく解けなかったら、勉強のやり方が悪いんだなと思いますよね?
そこで今の勉強法を一旦やめるのが、アーリーストッピングです。

他にも、特徴量を減らす、モデルを単純にする、極端な学習にペナルティを与える(正則化)、ハイパーパラメータを調整するなどがあります。

モデルの評価

評価とは?

モデルにテストデータを渡し、汎化能力をテストします。
テストデータは未知のデータなので、もちろん訓練データよりも悪い結果になります。
しかし、テストでいい結果になったということは、どんなデータでもうまく対応できるということです。

問題集が解けても、テストでいい点を取れなければ意味が無いですよね。

モデルの評価が悪かったら、そこで終わりではありません。
モデルの学習法を変えたり、モデルのアーキテクチャを変えたりして、モデルの評価を高くしようと試行錯誤します。
機械学習で大事なのはここです。
実践的な機械学習は、モデルがタスクをある程度こなせることを前提として、精度を向上させることをメインテーマとしています。

テストでいい点が取れなかったら、一度ノートにまとめ直したり、勉強時間を伸ばしたり、いっそのこと勉強法を一新してしまったりして対策を考えるでしょう。

例えば、例で挙げたmnistの分類は、ランダムに行っても10%の確率で当たります。
つまり、精度20%でもタスクはこなせているんです。
ですが、20%の確率で数字を当ててくれるサービスを利用したがる人はあまりいなそうですよね?
そのため、価値のあるサービスにするために精度を90%、99%、99.99%と改善していく必要があります。

おわりに

概観の繰り返しになりますが、機械学習は以下の手順で行います。

  1. タスクを定義する
  2. タスクに合うデータを選び、訓練データとテストデータに分割する
  3. タスクに合うアーキテクチャを選び、モデルを設計する
  4. 訓練データでモデルを学習させる
  5. テストデータでモデルを評価する

この記事を通して、機械学習のイメージを理解できたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?