深層学習(ディープラーニング)を素人向けに解説(前編)―基礎となるニューラルネットワークについて

Pocket

ニューラルネットワークの計算はどうやる?

なんとなくどんなシステムなのかは感覚的に理解できたと思いますが、もう少し具体的に掘り下げて理解してみましょう。

ディープラーニングを理解する際に「写真の識別」が具体例に出されることが多いのですが、耳の形や模様の話を出すのは抽象的過ぎるので、ここでははっきりと違いの分かりやすい「種族の識別」を具体例にしてみようと思います。

15028-5

例えば、上図のようなパーセプトロンで「哺乳類判別知能」を作ったとします。

 一番右側のパーセプトロンは、4つの情報から哺乳類かどうかを判別する(output)ようになっています。そこで、4つの受け取る情報が「恒温動物かどうか」「肺呼吸をするかどうか」「卵を生むかどうか」「足があるかないか」だったとしましょう。

哺乳類は、恒温動物で、肺呼吸で、卵を生まず、多くの場合足があります。そこで、それに一致する場合だけ点数を入れるようにしました。

基準1: 恒温動物1点 肺呼吸1点 胎生(非卵生)1点 足1点 → 合格点4点

まず、一つ一つの情報の繋がりを全く意識しない場合、全て一致した場合だけ哺乳類だと考えるはずです。つまり、「恒温動物である(1点)」「肺呼吸である(1点)」「卵を生む(0点)」「足がある(1点)」と言う情報が来た際に、機械は「哺乳類ではない(4点未満)」と回答します。しかし、「恒温動物である(1点)」「肺呼吸である(1点)」「卵を生まない(1点)」「足がない(0点)」と言うような情報が来た場合、機械はルールに沿って「哺乳類ではない(4点未満)」と回答するのです。

クジラ: 恒温動物1点+肺呼吸1点+非卵生1点+四足動物0点= 3点 非哺乳類

この動物はクジラなのですが、哺乳類の大半が足があるので、機械は哺乳類ではないと判定してしまいました。これは失敗です。

では、仮に合格点を3点としてしまうと、「恒温動物(1)・肺呼吸(1)・卵を生む(0)・脚がある(1)」となった場合に鳥なのに哺乳類だと判定してしまうのです。

そこで、点数配分を以下のように変更します。

基準2: 恒温動物2点 肺呼吸1点 非卵生3点 足1点 → 合格点5点

クジラ: 恒温動物2点肺呼吸1点非卵生3点+四足動物0点=6点 哺乳類

すると、「恒温動物(2)で卵を生まない(3)」と言う情報が分かった時点で、哺乳類だと判別されます。ただし、仮に肺呼吸(1)で卵を生まない(3)足のある生き物(1)なのに、恒温動物ではない(0)と言う情報が来た場合、これも哺乳類と判定します。

生物1: 恒温動物0点+肺呼吸1点非卵生3点四足動物1点=5点 哺乳類

生物2: 恒温動物2点+肺呼吸0点+非卵生3点+四足動物0点=5点 哺乳類

生物3: 恒温動物0点+肺呼吸0点+非卵生3点+四足動物0点=3点 非哺乳類

おや、と思うかも知れませんが、生物1のように「変温動物で卵を生まない足のある生き物」はいません。「恒温動物ではない」と言う情報は、エラーによって生じたと判断されます。同様に、生物2のように「恒温動物(2)で卵を生まない(3)」のに、「肺呼吸ではない(0)」というのも、肺呼吸の情報が誤情報であると考えられます。

しかし、生物3のように、「卵を生まない」のに、「恒温動物でも肺呼吸でもなくて足もない」と言う情報が来た場合、「卵を生まない」のが誤情報であるか、もしくは動物類ではない可能性が高まります。

(追記: 卵生の哺乳類もいますが、「母乳で育てるかどうか」の情報が欠けているので、このパーセプトロンではそこまで正確な識別はできません)

このように、一つ一つの情報に優先度の割り振りを行うことによって、幅広い判断が行われるようになります。とは言え、この程度の優先度を付けた計算であればニューラルネットワークじゃなくても普通の計算装置で行えます

ニューラルネットワークにおいて重要なのは、このパーセプトロンが大量に取り付けられ、優先度設定が使えば使うほどより正確に洗練されていく、ネットワーク化された装置と言う部分なのです。

実際のニューラルネットワークでは、誤情報と思しきデータが発生した場合、これ以外にも存在する別のパーセプトロンの判断を使って総合的に判断するようになっています。そこで、あまりにも誤情報が多ければ、そこからくるデータの優先度は下がりますし、正確と思しきデータが送られてくる繋がりは優先的に高いポイントで判断するようになります。

今回の例で言えば、「恒温動物かどうか」の判定を行うパーセプトロンがさらに上層に存在していて、それもまたさらに上層から送られてくる情報を踏まえて判定を行っています。一つ一つのパーセプトロン同士がお互いの情報に優先度をつけているため、優先度設定が適切であれば、全体の情報も正確になるのですね。

後編へ続く

 

参考資料:
ニューラルネットワークと深層学習(http://nnadl-ja.github.io/nnadl_site_ja/index.html)
はじめるDeep learning(http://qiita.com/icoxfog417/items/65e800c3a2094457c3a0)

 

サイトの内容を電子書籍でまとめて読める!

(Amazon Kindle版)

※当サイトで掲載されている人工知能関係の記事に大幅な加筆修正を加えて製作されたものです。