🐱

【初心者】ネコでも分かる「学習回数」ってなに?【図解】

2022/04/06に公開

はじめに

人工知能の記事を見ていると「学習回数」という言葉が多く出てきます。

どの記事も難しい言葉を使って説明されているので、分かりにくい!と思った方も多いと思います。

今回は「学習回数」を分かりやすく説明します。


Created by NekoAllergy

書いてあること

  1. 学習回数とは?
  2. バッチサイズとイテレーションとは?
  3. まとめ

1. 学習回数とは?

学習回数とは、モデルにデータを見せた回数のことです。学習回数 100 回、学習回数 1000 回、といった感じで使われます。

1 つずつ説明していきます。

例えば、今あなたは、イヌとネコの画像を仕分ける人工知能(AI)を作ろうとしています。
イヌの画像を 3,000 枚、ネコの画像を 3,000 枚、合計 6,000 枚用意しました。

しかしモデルは、 6,000 枚を一度見ただけで賢くなることはできません。 これは、先生が授業で言った内容を、一度で覚えられないことと同じです。

そこで、この 6,000 枚を何回も何回も、繰り返し見ることで、特徴や違いを覚えようとします。簡単に言えば、この 「何回見せたか」 を、学習回数と呼びます。

この時、全データである 6,000 枚を、1 セットとして扱います。つまり、

6,000 枚の画像を 3 回見たら、学習回数 3 回。
(合計 18,000 枚)
6,000 枚の画像を 5 回見たら、学習回数 5 回。
(合計 30,000 枚)
6,000 枚の画像を 100 回見たら、学習回数 100 回。
(合計 600,000 枚)
学習回数は、このように数えていきます。

学習回数が多くなれば、AI はその分賢くなっていきます。1 回目の学習、つまり、最初の 6,000 枚は、「イヌなのかネコなのか、分からない…」、となっていた画像も、2 回、3 回と繰り返し見せていくと、「さっきは分からなかったけど、今ならわかるぞ!」という感じで、徐々に賢くなっていきます。

学習回数の基本はこんな感じですが、実際は少し違った方法で学習しています。数年前にどこかの偉い人が、「もっと効率よく賢くなる方法」を考えました。それが、「バッチサイズ」を使用する方法です。

2.バッチサイズとは?

もっと効率よく覚えるために、バッチサイズ という考え方を使います。例えば、バッチサイズ=600 の場合は、下のようになります。

まず、6,000 枚の画像を、600 枚ずつのグループに分けます。この時の、600 という数値がバッチサイズにあたります。バッチには「束」という意味があります。6,000 枚を 600 枚ずつの束にまとめるので、全部で 10 個のグループができることになります。

モデルは、このグループごとに学習していきます。最初の 600 枚のグループから、画像を 1 枚ずつ学習し、全て終わったらパラメータの調整をします。そして次のグループの学習を始めます。グループごとにモデルに見せていき、10 グループ全てが終わった段階で、学習回数 1 回とカウントされます。600 枚 ×10 グループなので、最終的にモデルが学習するデータの数は変わらず、6,000 枚です。




また、6,000 枚をバッチサイズ=600 で分けると、10 個のグループができますが、この「10」のことを「イテレーション」と呼びます。イテレーションは日本語で「繰り返し」という意味になります。「1 回、2 回、3 回」のように、「イテレーション 1、イテレーション 2、イテレーション 3」という雰囲気で使います。つまり、今回の例だと、6,000 枚のデータセットを、バッチサイズ=600、イテレーション=10 で学習させた。という風になります。イテレーションの数は、バッチサイズが決まれば自動的に決まる数値です。






ここで注意すべき点があります。グループ分けされる画像は、最初の画像から順番に選ばれていくのではなく、6,000 枚から「ランダム」に選ばれていくという点です。

6,000 枚から適当に 600 枚を選ぶ
→ グループ 1
6,000 枚から適当に 600 枚を選ぶ
→ グループ 2
6,000 枚から適当に 600 枚を選ぶ
→ グループ 3

このようにして 10 個のグループを作ります。この時、イヌが何枚ずつで、ネコが何枚ずつ、という風に決める必要はありません。めちゃくちゃ適当に 600 枚ずつのグループを作ります。

「そうやってランダムに選んでいくと、2.3 回選ばれる画像とか、1 回も選ばれない画像が出てくるのでは?」と、疑問に思った方もいると思います。

その通りです。
このように、ランダムに選ぶことによって、柔軟な AI を作ることができます。




ちなみにプログラマ達は、学習回数のことを「エポック数」と呼びます。
学習回数 3 回はエポック 3、
学習回数 10 回はエポック 10、
学習回数 100 回はエポック 100、
のようになります。

3.まとめ

エポック、バッチサイズ、イテレーションを図解しました。

学習回数とバッチサイズは、またまだ奥が深いですが、基本となる考え方は今回の内容となります。このような基礎用語についてのイメージを持っているだけでも、その後の内容をスムーズに取り入れることができます。

人工知能の記事や論文を見たときに「学習回数」という単語が出てきたときでも理解できるはずです!

機械学習をもっと詳しく

DeepLearning の基礎を本にまとめています。手に取って頂けるととても喜びます ↓
https://zenn.dev/nekoallergy/books/904df952389317


ねこアレルギーのAI

ねこアレルギーの AI
YouTube で機械学習について発信しています。お時間ある方は覗いていただけると喜びます。




参考文献

https://www.oreilly.co.jp/books/9784873117584/



Created by NekoAllergy

Discussion