見出し画像

10才の子供に機械学習の本質を教える方法

"If you can’t explain something in simple terms, you don’t understand it."                                                                                    -Richard Feynman-
もし何かを簡単な言葉で説明できないとしたら、あなたはそれを十分に理解していないことになる。                                     -リチャード・ファインマン-

キカイ学習とは何かを伝えるために、今から簡単なゲームをしてみよう。名付けて「ロボットなりきり数式穴埋めゲーム」だ。まあ、ネーミングはどうでもいいが、とりあえず、君には今からロボットになってもらう。

なぜロボットになりきるのかって?それは、もちろん君がキカイ学習を理解するためだ。キカイ学習はキカイの学習の仕方のことなんだから、キカイの気持ちになってみないと多分わからないだろう?

ロボットになる準備は良いかな?OK、そしたら、今から君にはある命令を与える。命令といっても君はもうロボットだから、ロボットでもできそうな単純な問題を解いてもらうだけだ。

では、始めよう。今から紙に計算式を書くから、四角に当てはまる数を当ててほしい。簡単だろう?じゃあ、まずはこれは解いてみて

1+1=□

そう。答えはだね。なに?簡単すぎるって?まあ、そうがっかりせずに。じゃあ、これは?

3×2=□

?正解!君はロボットの中でも、足し算と掛け算はマスターしている賢いロボットのようだな。よし、ではもっと難しい問題を出してみよう。次の問題はどうかな?

8△2=□

さあ、答えは!?...え?こんな問題わかるわけないだろって...そんなに怒らなくてもいいだろう。逆に何でわからないんだい?「だって、△が足し算か掛け算かわからないから、□もわからないだろ」って。うーんなるほど。

よし、わかった。問題が解けたら、あとでコンビニでアイス買ってきてあげるから、とりあえずなんか適当にいってみて。そう、チョコモナカジャンボね。いや嘘じゃないから大丈夫。

はい!答えは?!...?...本当に?

ぶぶー。違います。答えは20でした。さては、割り算だと思ったな?ざんねん。これは足し算でも、掛け算でも、割り算でも、ましてや20だから引き算でもありません。完全に僕のオリジナルの計算法です。

「いいからはやく、チョコモナカジャンボ買ってきて」って、まだ問題は解けてないんだけど。

でも、ここまでは予想通りだ。実は、キカイ学習でも同じように、最初はキカイもデタラメな回答を出してくる。そのあと僕が出した答えをヒントに回答を少しずつ修正していくわけだ。

だから、もっと問題を出してみよう。これはどうかな?

1△1=□

10?実はもっと小さい。?いや、もっと小さい。

4?正解だ!

さあ、何で正解できたのか考えて、次の問題にいってみよう。ここまでを整理すると、

<ここまでの例題>
8△2=20
1△1=4

となっている。

じゃあ、この問題はどうだろう?

1△2=□

?惜しい!答えはだ。

<ここまでの例題>
8△2=20
1△1=4
1△2=6

適当に答えていても、だんだん何となく傾向は掴めてきたんじゃないか。次の問題にいってみよう。

0△3=□

さて、これはどうかな?が出てくるとややこしい?まあ、でもこれも良いヒントになるかもしれない。?違う。答えはだ。

<ここまでの例題>
8△2=20
1△1=4
1△2=6
0△3=6

1△2と0△3が同じ結果になってるね。もしかしてあるパターンに気づいたんじゃないかな?よし、じゃあ次の問題を一発で当てれるかどうか、みてみよう。

5△2=□

さあ、答えは?....そう、14だ!

素晴らしい。実は△は左の数と右の数を足して、2倍するという計算だったんだね。

<△の意味>
8△2=20 → (8+2)×2=20
1△1=4 → (1+1)×2=4
1△2=6 → (1+2)×2=6
0△3=6 → (0+3)×2=6
5△2=□ → (5+2)×2=14

さて、実はこれがキカイ学習の裏側で起きていることだ。

つまり、キカイ学習の目的は、まだキカイが知らない計算の仕方を教えることにあるんだ。

君(=キカイ)は、たし算(+)やかけ算(×)は知っていたけど、この△は知らなかっただろう?だからそれを学習してもらったというわけ。

じゃあ、はじめから、もったいぶらずに△の意味を教えてくれればよかったじゃないかって?それはできない。なぜなら、最初にいったように君がロボットだとすると、言葉で説明しても理解できないからだ。

もっというと、この△という計算法は僕以外の誰かが勝手に考えた計算法かもしれない。たとえば、太陽系の外に住んでるエイリアンが考えたものだとしよう。そうすると、誰も言葉で説明できなくなってしまう。

じゃあ、どうやって学習するのかって?それは君に今やってもらった通りだ。つまり、△の意味はわからないけど、□にどういう結果が出てくるかは知っているわけだ。

<△の意味はわからないけど、□はわかる>
8△2=20
1△1=4
1△2=6
0△3=6
5△2=14

こういう結果がわかっている問題を集めたものを、僕たちはデータと呼ぶ。そして、データがあればあるほど、君が回答に近づけたように、キカイもだんだん答えに近づいていくんだ。

もちろん、君はキカイよりも賢いから、問題の途中で色々予測を立ててたと思う。キカイはそういう予測はできないから、学習にもっと時間がかかりそうだね。ただ、キカイのえらいところは全く文句を言わずにこうした問題を何万何千と回答し続けられることだ。電気代は食うけど、ご機嫌を取るためのチョコモナカジャンボはいらない。

どうだろう。何となくキカイ学習のやっていることは理解できただろうか?「わかったから、モナカはやく買ってこい」って。どうやら、もう少し学習の積み重ねが必要なようだな。


この記事が気に入ったらサポートをしてみませんか?