深層学習とは何か?
深層学習は、機械学習の一つの分野です。
機械学習では、入力から正しい出力を得られるように、パラメーターを自動的に調整します。パラメーターを自動的に調整する仕組みを、プログラムとして実装するので、機械的に学習が進むのです。
たとえば、入力が「人物の写真」だとして、この人は「眼鏡をかけている」「眼鏡をかけていない」というのが出力です。パターン認識と呼ばれる基本的な分野です。
眼鏡をかけているかどうかの正答率を上昇させていくことが、機械学習の目標です。
深層学習は、機械学習の中でも、人間の神経伝達の仕組みを模倣した、ニューラルネットワークを利用した機械学習です。
深層学習は、ニューラルネットワークの中で、深層学習と呼ばれ、複数の入力と複数の出力を、多段階に連続的につなぎ、最終的な出力を得る方法です。
人物の写真 ↓ (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で学ぶ深層学習入門では、高校数学だけを前提としつつ、数学の言葉をなるべく少なして解説します。
まずプログラミングのサンプルで、入力と出力を提示します。そのあとで、補助的に高校生の数学で理解できる範囲で説明します。
「えっ、そんなことができるの?」
「中身、全部ソースコードじゃないですか!!! 数学が完全にはわからなくっても、エンジニアであれば、コードは読めるはず!!!」
やってみてからのお楽しみ。