Deep Learning・AIと聞くと、技術に興味ない人は「知能を持つようになったか」とか鉄腕アトム的なロボットをイメージすることが多いのではないだろうか。
残念ながら、無から生み出せないし感情なども当然持たない。現状、データからパターンを認識して未知のデータにも認識したパターンを駆使して推論を行う感じだと思う。
今回は動物を自動でAI(Deep Learning)が分類するというモデルを例に、数式を使わずにDeep Learningはどういうものかを解説していきます。
目次
Deep Learningは犬も認識できない?
Deep Learningは犬についても認識はできない。疑似的に認識していると表すのが正しいだろうか。
動物の種類を画像から推論するのは、以下のような流れだ。
・画像を入力とする(高さ × 幅 × 3(RGBのため))
・画像に行列計算を適用する
・計算した値の特定の値が一番大きければ犬と推論したと扱う

分類においては、”計算した値”というのは具体的にはベクトルだ。
{犬, 猫, 馬, ….} という感じで、{0.8, 0.1, 0.1…..}となったら犬の確率が一番高いので犬だと推論する。
要するに、この画像は犬だ!と判断するのではなく、犬っぽい特徴があれば犬を表す値を1に近づけるように学習するということだ。
これらのことから、Deep Learningは画像を犬と認識するのではなく、犬っぽい特徴があったら犬を表す特定の値を1に近づけるようにする、というのが正しいと考えられる。
この仕組みから、データがないと当然特徴が分からないため、無から知能・知識をもったモデルを作ることは厳しいことが分かったのではないだろうか。次はどうやってDeep Learningが学習していくのかを説明する。
Deep Learningはどうやって学習していくのか
動物の種類を推論するDeep Learningのモデルを作るには動物の画像・その画像がどの動物がどの種類か(教師データ)のデータが必要だ。
最初は一切知識がないため、画像だけだと学習のしようがない。そのため、この画像は犬の画像だよみたいな、画像とそれに合った正解を大量に与えてあげることで各動物の特徴を学習していく。
以下のようなイメージだ。これを数千個など大量のデータを集めて学習させることで高い精度で自動で分類できるようになる。

データからどうやって行列の部分を学習させるのかの具体的なところは、数学的な知識が絡むので今回は紹介しません。Deep Learningの仕組みを知るには微分・線形代数の知識が必要になります。
まとめ
ここまで読んでみると、人工知能と呼べるのか?数千個も画像と正解のデータを集めるの大変じゃないか?という疑問が浮かぶかもしれません。
全くその通りです。そのうえでDeep Learningは計算量が多いので高スペックな(GPUを積んだ)PCが必要になることが多いです。
導入など大変そうに見えますが、今ではDeep Learningを扱う仕組みがある程度揃っています。
Deep Learningを導入するときの大きな問題はデータを用意することかと思います。実際に業務で私が経験したことを別記事でまとめています。
この記事でもあるように、モデルの精度よりもデータ絡みの問題が多いように思えます。
Deep Learningはデータが大事でデータがないと学習ができない、ということを覚えていただければと思います。