Coffee break 3 ディープラーニングの原理

Coffee break 3 ディープラーニングの原理

faceoookをはじめいろいろなSNSがありますが、AIの投稿を見た時にAI情報のリンクが非常に一番多いですね。IBMが○○を作ったとか、Googleの△△はすごいなどです。その中で2種類のコメントがあるようです。
1つ目はAIの現在や将来の社会性についてですが、例えば、AIは職を奪うのか?心を持つのか?といった類です。2つ目は技術的なことです。まだまだAIを使うだけというところには社会が来ていないため、PythonやC++といったプログラミング言語の話題が多くあります。技術者向けです。
例えばこんな投稿ですが、「《日経Robo》なぜディープラーニングがうまく学習できるのか」というリンクに対しボクがこうコメントしています。

「日経Robo」ですから当然読者は技術関係者が多いでしょう。従って「なぜディープラーニングがうまく学習できるのか」という内容は至極当たり前です。しかしfacebookは誰でもが投稿できるSNSなので、技術関係者でなくても記事を目にします。そこでボクが技術関係者でない一般の方に対してこう質問したわけです。

「ディープラーニングについてなかなかうまい説明をしていると思うのですが、皆さん、お分かりになるでしょうか?この記事の中で、低次元、多項という単語がよく出てくるのですが、その意味がお分かりになるでしょうか?
AIの技術者にはもちろんわかると思うのですが、一般の人は読み飛ばしてしまうのではないでしょうか?
ご意見をお聞かせください。これをうまく使い、更に分かりやすく書けないか、やってみようと思う次第です。」

これに対していろいろな方からのコメントがありました。ここで重要なことが一つあります。投稿者(ここではボク)が何のコメントもなくただリンクを貼っただけではおそらく何のコメントも帰ってきません。投稿者が内容を理解したうえで意見を述べると反応が違います。投稿者(ここではボク)の意見だけでも意味が通じるからです。
この投稿であるリンクの内容について、一人の方のコメントです。

Yさん「線形、低次元、多項、局所性、マルコフネットワーク。他にもたくさん、うーむ。。。
ディープラーニング の特徴について、なんとなくわかったような、わからないような。」

それに対してボクが返しました。

大岩「Yさん、1行で書くとだいたいこんな感じです。ディープラーニングの構造ですが、なるべく局所的に解析部分を持っていき(広がると大変)、そのデーターの集団を平面(2次元)や列(1次元)に落とし込み、多項(1つのデーター, 他のデーター, ….., n個)にすることによりそのデーター間の関連性がより精度の高い解析につながるのですが、その関連性は線形(1次式か2次式)でないと計算ができない・・・なんて感じです。」

実はこの「日経Robo」のリンクの記事は、ディープラーニングは低次元の多項式にすることでうまく解決している、ということを言っているのですが、 当然ディープラーニングの原理を知っている者でなければ理解できません。せっかくの機会なのでCoff Breakでコーヒーでも飲みながらこの「低次元の多項式」を少し理解してみましょう。

ここにりんごがありますが、これは静止画像という2次元の情報です。これを3×3に分割し9個に分けます。その分けたりんごの1片に数値を割り当てますが、この場合は画像であるので、その部分のカラー番号を振りましょう。実際には1片がこの大きさではカラー番号も色々な番号が混ざり、違う数字がたくさん存在します。より細かくして平均化するなどの処理が実際には行われます。今回は敢えて説明の都合上9分割にしています。

そしてこのりんごがカメラで撮影され解析するために入力されたとき100という数値になるようにしたいとします。まず1片ごとのカラー番号を取得します。番号例は適当です。

こうすることによって2次元の画像は1次元の配列に落とされました。単純に描くとですが、各々の重みと掛け算され、その総和が教師信号(ここでは100)になると、その教師信号のりんごだということになります。

×

重み W1

×

重み W2

×

重み W3

 

 

×

重み W4

×

100
重み W5

×

重み W6

×

重み W7

×

重み W8

×

重み W9

 

こうして多次元(ここでは2次元の例)が1次元の多項に分かれることによって解析できるというディープラーニングの原理の1コマですが、詳しいことは後述しますので、そちらで数式などを参考にしてください。


このコンテンツは会員限定のコンテンツです。
会員登録または、ログインしてください。