mini-MNISTで
「AIが学習する」とは
どういうことか観察する

  • ニューラルネットワークは、学習すると内部の「神経(パーセプトロン)」の結びつきが、だんだんと秩序立ってきます。
  • 学習では、ニューラルネットワークのサイズそのものは変わらないものの、この結びつきが「整理」されていくことで、正しい判断をする確率が上がっていきます。
  • ただし、学習には「上限」があります。ある程度、学習データを与えると、それ以上は足踏み状態になります。「過学習」になると、未知のパターン、ちょっと違いを極端にとらえて、かえって誤判定が増えることがあるのです。

関連記事

1. ニューラルネットワークは、学習すると何が変わるのでしょうか。

人間のように「知識」がそのまま中に書き込まれるわけではありません。ニューラルネットワークでは、ニューロン(neuron:神経細胞を模した計算単位)どうしの結びつきに設定された「重み(weight)」が少しずつ調整されていきます。

この変化を目で見て観察できるようにしたのが、mini-MNISTです。

1.1. 最初は、ほとんどバラバラ

学習を始める前の step=0 では、ニューラルネットワークの重みは初期値のままです。

この段階では、どの特徴を強く見るべきなのか、まだネットワーク自身が学んでいません。そのため、内部の結びつきを可視化すると、強い部分と弱い部分に、はっきりした傾向が見えません。

ところが、学習データを繰り返し与えていくと様子が変わります。

たとえば step=87 まで学習した状態を見ると、結びつきの中に強弱が生まれ、最初とは違ったパターンが見えてきます。mini-MNISTでは、学習の進行とともにニューラルネットワーク内部の状態が変化する様子を観察できます。(Chiilabo)

1.2. 「学習」とは、ネットワークを大きくすることではない

1.2. 「学習」とは、ネットワークを大きくすることではない

ここで重要なのは、学習してもニューラルネットワークの大きさそのものが変わるわけではない、ということです。

ニューロンの数や接続の構造は同じままで、それぞれの接続に設定されている「重み」が調整されます。

ある入力を与えて間違った答えを出したら、「どの重みを、どちら向きに、どれくらい変えれば正解に近づくか」を計算して、少しずつ修正します。

これを何度も繰り返すことで、数字を見分けるために役立つ特徴が結果として強く反映されるようになります。

つまり、「AIが学習する」というのは、内部の結びつきの強さを調整し、正しい答えを出しやすい状態へ変化していくことだと考えるとわかりやすいです。

2. 学習すればするほど賢くなる、とは限らない

2. 学習すればするほど賢くなる、とは限らない

では、学習データを無限に与え続ければ、正解率も無限に上がっていくのでしょうか。

そうではありません。
最初のうちは学習によって大きく改善しますが、やがて正解率の伸びは小さくなります。

さらに注意が必要なのが、「過学習(overfitting)」です。

2. 学習すればするほど賢くなる、とは限らない

過学習とは、学習に使ったデータに適応しすぎてしまい、新しく与えられたデータにうまく対応できなくなる状態です。

たとえば、数字の「7」を判定するとき、本来なら「7らしい形」を幅広く覚えてほしいところです。しかし特定の手書き文字ばかり学習しすぎると、その文字にある細かな特徴まで重要だと判断してしまうことがあります。すると、少し傾いた「7」や、書き方の違う「7」を見たときに、かえって間違えやすくなります。

つまり、学習データに対する成績が良くなっていても、未知のデータに対する成績まで良くなっているとは限りません。

3. AIの「学習」は、内部の調整を積み重ねること

mini-MNISTで内部の状態を眺めていると、「AIが学習する」という言葉が少し具体的に見えてきます。

  • 最初はランダムに近かった重みが、間違いを修正するたびに少しずつ変化する。
  • その積み重ねによって、同じ大きさのニューラルネットワークでも、以前より正しい判断をしやすくなる。

一方で、学習を続ければ必ず良くなるわけではなく、学習データへの合わせ込みすぎにも注意する必要があります。

AIの学習とは、「知識を覚え込ませる」というよりも、たくさんの例をもとに内部の数値を調整し、判断の仕方を変えていく過程なのです。