第10回 ニューラルネットワークの計算式
前回は物体検出の話をしました。第8回目では「何が」、第9回目では「どこに」を認識することで、1枚の画像から様々な情報を知ることができる技術について述べました。この技術が応用され、自動車の自動運転につながっているようです。
今回は少し数学の話をします。AIのベースになっているNN(ニューラルネットワーク)という用語は第1回目で紹介しました。NNは生物の神経伝達をモデル化しているといわれています。NNモデルは大きく分けて、入力層、中間層、出力層と3つに分かれています。入力層は情報が入るところ、出力層は結果が出てくるところとなり、その途中で計算をしています。計算は重みと呼ばれるWとバイアスと呼ばれるbが使用され、y=wx+bと表現できます。xは入力層、yは中間層になります。実際には中間層は複数の層が重なっているため、この式が何回も繰り返されて出力層につながっています。
NNでは1次元のデータを扱うことができるのですが、画像認識のように2次元のデータを扱うときには、1次元にデータを加工する必要がありました。NNを2次元でも使えるようにしたのがCNN(畳み込みニューラルネットワーク)です。画像データとフィルタと呼ばれる2次元の重みをかけて足したものを利用します。一般的にフィルタのサイズは画像データより小さいので、フィルタをずらしながら計算し、新たな画像データを作り出します。式はy=∑∑wx+bと表現できます(細かな添え字は省略しています)。CNNでも中間層は複数ありますので、何度も繰り返されて出力層につながっています。
今回は数式が出てきたので、AIはちょっと…と反応した人も多いと思いますが、大丈夫です!プログラムでは関数という形で、NNもCNNも使用することができます。このように使用されているんだな、という感覚が大切です。ぜひ数式にひるむことなくチャレンジしてみてください。
「YSeye22号」掲載