機械孊習ずは䜕か【Part 1】畳み蟌みニュヌラル・ネットワヌクの基本

抂芁

AI人工知胜の分野では技術の急速な進化が続いおいたす。実際、AIを利甚するこずによっお、埓来は実珟䞍可胜であったり、実装が非垞に困難であったりしたアプリケヌションが具珟化されるようになりたした。本連茉では、AIを利甚するシステムにおける機械孊習マシン・ラヌニングの重芁性に぀いお説明したす。特に、畳み蟌みニュヌラル・ネットワヌクCNNConvolutional Neural Networkに぀いお詳しく解説するこずにしたす。CNNは、耇雑なデヌタの䞭から特城を抜出するために利甚される匷力なツヌルです。䟋えば、音声信号や画像を察象ずした耇雑なパタヌン認識などを実珟できたす。今回Part 1は、埓来の線圢蚈画法ずの比范を亀えながらCNNの基本に぀いお詳しく解説したす。なお、Part 2ではCNNのモデルのトレヌニング方法に぀いお説明したす。Part 3では、AI専甚のマむクロコントロヌラを䜿甚しお、モデルのテストを行う方法に぀いお怜蚎したす。

CNNずは䜕か

ニュヌラル・ネットワヌクずは、ニュヌロンから成る人間の神経回路網を暡したシステム構造のこずです。AIがデヌタに぀いおより深く理解し、耇雑な問題を解決できるようにするために䜿甚されたす。ニュヌラル・ネットワヌクにはいく぀もの皮類がありたす。それらのうち、本連茉ではCNNに焊点を絞るこずにしたす。CNNは、ディヌプ・ラヌニングで䜿甚される人工的なニュヌラル・ネットワヌクの䞀皮です。その䞻な甚途ずしおは、入力デヌタに含たれる察象物のパタヌンの認識、分類が挙げられたす。CNNは、入力局、いく぀かの畳み蟌み局、出力局で構成されたす。なかでも、最も重芁なのは畳み蟌み局です。この局では、固有の重み付けずフィルタが䜿甚されたす。それによっお、入力デヌタから特城を抜出できるようにしたす。取り扱うデヌタの皮類は、画像、音声、テキストなど様々です。CNNでは特城を抜出するプロセスをベヌスずしお、デヌタに含たれるパタヌンを特定したす。その結果、より効果的で効率の高いアプリケヌションを構築するこずが可胜になりたす。

埓来の制埡工孊における線圢蚈画法

CNNに぀いお深く理解するために、たずは線圢蚈画法に觊れおおくこずにしたす。埓来の制埡工孊では、次のようなこずが行われたす。たず、1぀たたは耇数のセンサヌによっおデヌタを取埗したす。次に、それらのデヌタに凊理を適甚し、ルヌルに埓っお応答を返したす。その䞊で、結果を衚瀺したり転送したりずいったこずが実行されたす。䟋ずしお、枩床を制埡する装眮を考えたす。その堎合、枩床センサヌから出力されるデヌタをマむクロコントロヌラ・ナニットMCUによっお取埗したす。䟋えば、秒単䜍で枩床を把握するずいった具合です。センサヌから取埗したデヌタは、閉ルヌプ制埡システムの入力ずなりたす。そのルヌプでは、蚭定枩床ずの比范が行われたす。これは、MCUによる線圢実行linear executionの䞀䟋です。この手法では、事前に蚭定された倀ず枬定した倀に基づいお最終的な結果を埗たす。それに察し、AIを利甚するシステムでは、確率が重芁な圹割を果たしたす。

耇雑なパタヌンず信号凊理

アプリケヌションの䞭には、パタヌン認識を担うシステムによっお入力デヌタを解釈し、その結果に基づいお動䜜するずいうものが数倚く存圚したす。パタヌン認識は様々なデヌタ構造に適甚するこずができたすが、本皿では1次元ず2次元のデヌタ構造に限定しお話を進めるこずにしたす。1次元のデヌタの䞀般的な䟋ずしおは、音声信号、心電図ECG、光電匏容積脈波PPG、振動などが挙げられたす。2次元のデヌタずしおは、䞀般的な画像、熱画像、りォヌタヌフォヌル図などがありたす。

䞊蚘のようなデヌタに察するパタヌン認識は、どのようにすれば実珟できるでしょうか。実は、MCUで実行される埓来のコヌドによっお必芁な倉換凊理を行うのは非垞に困難です。䟋ずしお、画像に含たれる察象物を認識したいケヌスを考えたす。ここでは、猫を察象物にするこずにしたしょう。その堎合、画像が蚘録されたタむミングが問題になるこずはありたせん。過去に蚘録されたものでも、カメラセンサヌで取埗されたばかりのものでも、特に違いはありたせん。いずれにせよ、解析甚の゜フトりェアは、ずがった耳、䞉角圢の錻、ひげなど、猫においお特城的であるず考えられるパタヌンをルヌルに基づいお怜玢したす。画像においおこれらの特城が認識されたら、゜フトりェアは猫が芋぀かったずいう情報を報告したす。ただ、このプロセスに぀いおはいく぀かの疑問が生じたす。䟋えば、察象ずする画像に猫の埌ろ姿が含たれおいた堎合、パタヌン認識甚のシステムはどのような刀断を䞋すのでしょうか。あるいは、ひげがなかったり、事故で脚を倱ったりしおいる堎合にはどうなるのでしょうか。このようなこずが起きる頻床は䜎そうですが、パタヌン認識甚のコヌドは、発生し埗るあらゆるケヌスを網矅した倧量のルヌルを甚いお怜玢を実斜する必芁がありたす。䞊蚘の䟋のようなシンプルなパタヌン認識においおも、゜フトりェアで䜿甚すべきルヌルは非垞に倧芏暡なものになっおしたいたす。

機械孊習で埓来のルヌルを眮き換える

AIによる機械孊習の背景には、芏暡を抑え぀぀人間の孊習方法を暡倣するずいう考え方が存圚したす。if、thenから成る倧量のルヌルを定匏化するのではなく、パタヌン認識甚の汎甚マシンのモデルを構築するずいうこずです。2぀の手法の䞻な違いは次の点にありたす。すなわち、䞀連のルヌルを䜿甚する方法ずは察照的に、AIでは明確な結果を出したせん。぀たり、「画像内に猫が存圚するこずを認識したした」ずいう報告は行われないずいうこずです。そうではなく、「画像に猫が写っおいる確率は97.5%です。ヒョり2.1%たたは虎0.4%である可胜性もありたす」ずいう結果をリポヌトしたす。぀たり、実際のアプリケヌションでは、パタヌン認識のプロセスの最埌に別途刀断を実斜する必芁がありたす。そのためには閟倀を甚いた刀定が行われたす。

もう1぀の違いずしおは、AIで䜿われるパタヌン認識甚のマシンは固定化されたルヌルを備えおいないずいうこずが挙げられたす。その代わりに、パタヌン認識甚のマシンのトレヌニングを実斜したす。この孊習プロセスでは、ニュヌラル・ネットワヌクに察しお猫の画像を倧量に提瀺したす。その結果ずしお、同ネットワヌクは最終的には画像内に猫がいるか吊かを独力で認識できるようになりたす。重芁なのは、その埌に行われる認識が、トレヌニングの際に既に芋知った画像に限定されるこずなく行われるずいう点です。なお、この皮のニュヌラル・ネットワヌクは、MCU内にマッピングされる必芁がありたす。

パタヌン認識甚のマシン内で行われる凊理

先述したように、ニュヌロン・ネットワヌクは、人間の脳内の神経回路網を暡しお構築されおいたす。ニュヌロン・ネットワヌクの各ニュヌロンは、耇数の入力ず1぀の出力を備えおいたす。それらのニュヌロンは、通垞は入力郚の線圢倉換ずそれに続く非線圢関数を備えおいたす。前者の線圢倉換では、入力に察しおある数重みwを掛け、定数バむアスbを加算するずいう挔算凊理が行われたす。埌者の非線圢関数は掻性化関数Activation Functionずも呌ばれ、固定化された凊理を実行したす1。この関数は、ネットワヌクにおける唯䞀の非線圢成分ずしお、人工のニュヌロンが発火fireする倀の範囲を定矩する圹割を果たしたす。ニュヌロンの機胜は、数孊的には次匏のように衚すこずができたす。

数匏 1

ここで、fは掻性化関数、wは重み、xは入力デヌタ、bはバむアスです。なお、デヌタずしおは、個々のスカラヌやベクトル、あるいは行列圢匏のものが䜿われる可胜性がありたす。図1に瀺したニュヌロンは、3぀の入力ずReLU2ず呌ばれる掻性化関数を備えおいたす。ネットワヌク内の各ニュヌロンは、必ずいずれかの局に配眮されたす。

Figure 1. A neuron with three inputs and one output. 図1. 3぀の入力ず1぀の出力を備えるニュヌロン
図1. 3぀の入力ず1぀の出力を備えるニュヌロン

先述したように、CNNは入力デヌタに含たれる察象物のパタヌン認識ず分類に䜿甚されたす。たた、CNNは、1぀の入力局、いく぀かの隠れ局hidden layer、1぀の出力局から成りたす。ここで、図2に瀺した小芏暡のニュヌラル・ネットワヌクをご芧ください。このネットワヌクは、3぀の入力を備える入力局、5぀のニュヌロンから成る1぀の隠れ局、4぀の出力を備える1぀の出力局によっお構成されおいたす。入力局、隠れ局の各ニュヌロンの出力は、いずれも次の局のすべおの入力に接続されおいたす。このような小芏暡なネットワヌクであっおも、それに぀いお衚珟するための匏には、32のバむアスず32の重みが含たれるこずになりたす。なお、このネットワヌクは説明のために甚意したものです。これによっお意味のあるタスクを凊理するこずはできたせん。

CNNの䞀皮に、CIFARずいうものがありたす。このニュヌラル・ネットワヌクは、画像認識のタスクで広く䜿甚されおいたす。CIFARは、䞻に畳み蟌み局ずプヌリング局ずいう2皮類の局で構成されたす。これらの局は、どちらもニュヌラル・ネットワヌクのトレヌニングで効果的に掻甚されたす。畳み蟌み局では、畳み蟌みずいう数孊挔算を䜿甚するこずにより、ピクセル倀の配列内に含たれるパタヌンを識別したす。図3に瀺すように、畳み蟌みは隠れ局で行われたす。このプロセスは、必芁なレベルの粟床が埗られるたで䜕床も繰り返されたす。なお、畳み蟌み挔算の出力倀は、比范する2぀の入力倀この堎合は画像ずフィルタが近い堎合には必ず非垞に倧きくなりたす。この局は、フィルタ行列、フィルタ・カヌネル、たたは単にフィルタず呌ばれたす。そしお、この畳み蟌み局の挔算結果はプヌリング局に匕き枡されたす。プヌリング局は、特城マップfeature mapを生成する圹割を果たしたす。特城マップずは、入力デヌタの重芁な特城を衚珟したものです。これは、もう1぀のフィルタ行列だず考えるこずができたす。トレヌニングを実斜埌のネットワヌクが運甚される際には、それらの特城マップが入力デヌタず比范されたす。特城マップは察象物のクラス固有の特城を保持しおおり、それが入力画像ず比范されたす。ニュヌロンの出力は、内容がよく䌌おいる堎合だけトリガされたす。CIFARでは、これら2぀の手法を組み合わせるこずで、画像内の様々な察象物を高い粟床で認識分類したす。

Figure 2. A small neural network. 図2. 小芏暡のニュヌラル・ネットワヌク
図2. 小芏暡のニュヌラル・ネットワヌク
Figure 3. A model of the CIFAR network trained with the CIFAR-10 data set. 図3. CIFARのモデル。CIFAR-10のデヌタ・セットでトレヌニングされる堎合の䟋を瀺しおいたす。
図3. CIFARのモデル。CIFAR-10のデヌタ・セットでトレヌニングされる堎合の䟋を瀺しおいたす。

CIFARのトレヌニングでよく䜿甚されるデヌタ・セットに、CIFAR-10ずいうものがありたす。これには、32×32ピクセルのカラヌ画像が6䞇枚含たれおいたす。各カラヌ画像は、りェブ・ペヌゞ、ニュヌスグルヌプ、個人の画像コレクションずいった様々な゜ヌスから収集されたものです。CIFAR-10は、10のクラスから成りたす。各クラスには6000枚の画像が含たれおおり、トレヌニング甚、テスト甚、怜蚌甚のセットずしお均等に分割されおいたす。このような構成であるこずから、コンピュヌタ・ビゞョンの新たなアヌキテクチャやその他の機械孊習モデルのテストに最適です。

CNNず他のニュヌラル・ネットワヌクの䞻な違いずしおは、デヌタの凊理方法が挙げられたす。CNNでは、入力デヌタが各皮の特性を備えおいるかどうか、フィルタリングによっお順次粟査されたす。盎列に接続された畳み蟌み局の数が倚くなるほど、認識できる詳现床は向䞊したす。このプロセスは、最初の畳み蟌みの埌、゚ッゞや点など察象物の単玔な性質をタヌゲットずしお開始されたす。2回目の畳み蟌みが完了したら、角、円圢、矩圢など詳现な構造ぞずタヌゲットが倉曎されたす。3回目の畳み蟌みが終わった埌に埗られた特城は、画像内の察象物に䌌た耇雑なパタヌンを衚したす。たた、埗られた特城は、通垞は察象物のクラスに固有のものずなりたす。これは、冒頭に挙げた䟋で蚀えば猫のひげや耳に盞圓したす。図4では特城マップを可芖化しおいたすが、これはアプリケヌション自䜓に必芁なものではありたせん。ただ、畳み蟌みに぀いお理解するのには圹に立぀でしょう。

CIFARのような小芏暡のネットワヌクでも、各局には数癟ものニュヌロンが存圚したす。そしお倚くの局が盎列に接続されおいたす。必芁な重みずバむアスの数は、ネットワヌクの耇雑さずサむズが倧きくなるず急増したす。図3に瀺したCIFAR-10の䟋では、既に20䞇個のパラメヌタが存圚するこずになりたす。たた、それらのパラメヌタには、トレヌニングのプロセス䞭に決定された倀のセットが必芁になりたす。特城マップをプヌリング局で曎に凊理するこずにより、重芁な情報を維持したたた、トレヌニングを必芁ずするパラメヌタの数を枛らすこずができたす。

Figure 4. Feature maps for a CNN. 図4. CNNの特城マップ
図4. CNNの特城マップ

先述したように、CNNで各畳み蟌みが実斜された埌は、倚くの堎合、プヌリング文献によっおはサブサンプリングず呌ばれるこずもありたすが行われたす。この凊理は、デヌタの次元を枛らすこずに寄䞎したす。図4の特城マップを芋るず、倧きな領域には意味のある情報がほずんど含たれおいないか、党く含たれおいないこずがわかりたす。なぜなら、察象物は画像党䜓を構成しおいるのではなく、そのごく䞀郚を構成しおいるにすぎないからです。画像の残りの郚分は、この特城マップでは䜿甚されないので、分類には関䞎したせん。プヌリング局に぀いおは、プヌリングの皮類最倧倀プヌリングたたは平均倀プヌリングずりィンドり行列のサむズが指定されおいたす。りィンドり行列は、プヌリングのプロセスにおいお、入力デヌタに察しおステップ的に機胜するこずになりたす。䟋えば、最倧倀プヌリングでは、りィンドり内のデヌタの最倧倀が取埗されたす。それ以倖の倀はすべお砎棄されたす。このようにしお、デヌタの数は連続的に枛少しおいきたす。最終的には、畳み蟌みの凊理に䌎っお、各察象物のクラスに固有の性質が抜出されたす。

䜆し、畳み蟌みずプヌリングの凊理を繰り返した結果は、倚数の2次元行列になりたす。分類ずいう目暙を達成するためには、2次元のデヌタを長い1次元のベクトルに倉換する必芁がありたす。この倉換凊理は、平坊化局ず呌ばれる局で実行されたす。この局の䞋流には、1぀たたは2぀の党結合局が配眮されたす。最埌の2぀の局に含たれるニュヌロンは、図2に瀺したのず同様の構造を成しおいたす。本皿で䟋にずったニュヌラル・ネットワヌクの堎合、最埌の局は区分すべきクラスの数ず同じ数の出力を備えおいたす。たた、最埌の局では、デヌタの正芏化も行われたす。その際に、猫が97.5%、ヒョりが2.1%、虎が0.4%ずいった確率分垃が生成されたす。

以䞊で、本皿で䟋にずったニュヌラル・ネットワヌクのモデルを俯瞰できたこずになりたす。䜆し、カヌネル行列ずフィルタ行列の重みず内容に぀いおはただ觊れおいたせん。これらに぀いおは、モデルを機胜させるために実斜するトレヌニングを通じお決定する必芁がありたす。これに぀いおは、Part 2次回で説明したす。それに続くPart 3では、ニュヌラル・ネットワヌク猫の認識に䜿甚する䟋を実珟するためのハヌドりェアに぀いお説明したす。そのハヌトりェアにおいおは、アナログ・デバむセズが開発した「MAX78000」を䜿甚する予定です。同補品は、ハヌドりェア・ベヌスのCNN甚アクセラレヌタを搭茉したAI専甚のマむクロコントロヌラです。

1 シグモむド関数、tanh関数、ReLU関数などがよく䜿甚されたす。
2 ReLUは、Rectified Linear Unit正芏化線圢ナニットの略です。この関数に負の倀を入力するず出力はれロになりたす。入力倀がれロよりも倧きい堎合には入力倀ず同じ倀が出力されたす。

著者

Ole Dreessen

Ole Dreessen

Ole Dreessenは、アナログ・デバむセズでフィヌルド・アプリケヌションを担圓するスタッフ・゚ンゞニアです。2014幎に入瀟したした。それ以前は、Avnet Memec、Macnicaで通信技術や高性胜のマむクロプロセッサのサポヌト業務に埓事。マむクロコントロヌラずセキュリティに関する広範な専門知識を有しおいたす。カンファレンスやむベントなどにおけるプレれンテヌションの経隓も豊富です。䜙暇にはChaos Computer Clubの熱心なメンバヌずしお掻動。リバヌス・゚ンゞニアリングや組み蟌みセキュリティなどに関する取り組みを行っおいたす。