深層学習とは何か?

深層学習は、機械学習の一つの分野です。

機械学習では、入力から正しい出力を得られるように、パラメーターを自動的に調整します。パラメーターを自動的に調整する仕組みを、プログラムとして実装するので、機械的に学習が進むのです。

たとえば、入力が「人物の写真」だとして、この人は「眼鏡をかけている」「眼鏡をかけていない」というのが出力です。パターン認識と呼ばれる基本的な分野です。

眼鏡をかけているかどうかの正答率を上昇させていくことが、機械学習の目標です。

深層学習は、機械学習の中でも、人間の神経伝達の仕組みを模倣した、ニューラルネットワークを利用した機械学習です。

深層学習は、ニューラルネットワークの中で、深層学習と呼ばれ、複数の入力と複数の出力を、多段階に連続的につなぎ、最終的な出力を得る方法です。

人物の写真
↓
(x0, x1, x2, x3)
↓
(y0, y1, y2, y3, y4)
↓
(z0, z1, z2)
↓
(眼鏡をかけている、眼鏡をかけていない)

実際は、x1~xnまでは、もっと長いです。y1~ykまでももっと長いです。xの個数とyの個数は異なっても構いませんし、一般的には、異なるようにします。

また、段数は、この例では、x, y, zですが、これも、もっと長くなります。

入力から、複数入力と複数出力を多段につなげていって、出力を得るというところがポイントです。

100億個のニューロンに該当するものを作るとすれば、各層のニューロン数は1億個程度、層の数は100層くらいになります。

数学の言葉をできるだけ使わないで解説

Perlで学ぶ深層学習入門では、高校数学だけを前提としつつ、数学の言葉をなるべく少なして解説します。

まずプログラミングのサンプルで、入力と出力を提示します。そのあとで、補助的に高校生の数学で理解できる範囲で説明します。

「えっ、そんなことができるの?」

「中身、全部ソースコードじゃないですか!!! 数学が完全にはわからなくっても、エンジニアであれば、コードは読めるはず!!!」

やってみてからのお楽しみ。

関連情報