コラム - お役立ち情報

2022.05.09

人工知能/深層学習って何?

人工知能/深層学習とは?

数年前から耳にすることが多くなってきたこれらの言葉。
コンピュータ無しには実現しない技術なので情報技術屋の筆者も「触り」のところを勉強しました。
そこで、理解したつもりの内容を情報技術屋さんではない方々に分かり易いように努めて説明したいと思います。

人工知能について

人工知能=AIは実現方法に多くの種類があり、その種類によってはかなり古くから実装されてきました。
洗濯機などの電化製品に「ニューロ」の名が冠された商品は何度も世に出ては消えていきました。
これは人間の脳のニューロンの仕組みをプログラムで真似することで、例えば洗濯物の汚れ具合や水温のような多数の条件から洗濯方法を決定するような仕組みだったと思います。
洗濯方法程度の対象ならば安価な「マイコン」にセンサー情報からいくつかの判断を下すプログラムでも同様の機能が実現できてしまうので、寧ろマーケティング的な要素で「AI」「ニューロ」を使ってますよ!と訴えるのが第一目的だったのでしょう。

深層学習について

ここ数年で話題に登るのは人工知能のなかでも「深層学習」と呼ばれる分野です
「ニューロ」を含め「知能」と名の付くものは「学習」と「実行」の2つの動作があります。
乱暴に言えば洗濯機の「ニューロ」はメーカーの開発段階で「学習」させておき、その情報を組み込んで製品化して消費者の下では「実行」しか行っていないので人工知能的な要素のない洗濯機と見た目にも挙動的にも違いが見えません。
「深層学習」はこの隠れていた「学習」に今までにない特徴があり、さらにコンピュータやスマートフォンの急速な進化と相まって「学習」が消費者に近いところに出てきたところがこれまでの人工知能との違いだと思います。

名前から想像できるように事象を階層に分けて学習し、その層が概ね4層以上になると深い層、ということで深層学習と呼ばれます。
理論的には新しくはないのですが計算量が膨大になるので実用的ではないと思われていたところ、2000年を過ぎてから「オートエンコーダ」「バックプロパゲーション」等の画期的な手法が発明され、計算量が激減したために突如実用化の道が開けたのです。

深層学習の例

深層学習がどんなことをやっているのか理解するために例として「手書き文字の認識」を考えてみます。
「学習」のために手書き文字の画像が必要になります。

上記画像を細かなマス目に分けて、

個々のマス目が「完全に白」か「黒を含む」かが学習への入力値です。
この絵ではマスが粗すぎるのでひらがなの判定には足りませんが雰囲気だけ感じてください。

このマス目情報を学習プログラムに投入します。

左から処理が流れる絵で、○が所謂ニューロンとしての仕事をするプログラムです。
最初のステップは手書き文字の各マス目に対応し、入力がある=「黒を含む」入力があるとそのニューロンは「興奮した」とか「発火した」と呼ばれる状態になり、相応の出力を発生します。
2段目以降は複数の入力がありますが、それぞれの入力に重み付けを行って、つまりそのニューロンにとって「とても重要な入力」「大して参考にしない入力」があり、それらを加味してまた「興奮」状態が決定し、次の層へと結果が渡されます。
深層学習ではこの層が多段階になるわけです。
最終層では判断結果が出力されます。
「あ」の出力を受け持つニューロンが「興奮」したら入力は「あ」だったのだろう、と考えるわけです。
「学習」段階では当然間違いが発生しますので、入力に対応する「正解」を併せて使用し、出力が間違っていたら出力層から段々と遡って誤った判断をもたらしたニューロンの重み付けを修正することになります。
1つの入力された手書き文字でこれだけの処理を行って、各ニューロンの重み付けを調整できたら別の文字を使って処理を繰り返します。
多数のサンプルを処理して各ニューロンの重み付けを算出するわけですが、結局これは統計処理です。
統計は実在サンプルからその背景にある規則性を導き出す手法です。

深層学習はその規則性の発見(=学習)と、規則を新たなデータに適用する(=実行)行為をセットにしたものと言えます。。
この学習過程は例えばアルファベット大文字の認識に限っても26出力、入力は画像の精緻にも依りますが10×10のマス目くらいは必要になるでしょう。
これだけでもかなりの計算量になることが想像できますが、これが日本語の手書き文字になった途端に計算量大爆発です。
さらに実用に堪える結果を得るには大量の学習が必要で、アルファベットの手書き文字では概ね数万~数10万のサンプルを学習させる必要があると言われています。
これが人物の顔認証や音声認識、物体の判定のような複雑な対象になると更に多くの学習素材が無いと判断精度が向上しません。
深層学習の「学習」は実用化フェーズに入ったとは言え、まだまだ「簡単に誰でも」には遠い存在なのです。

一方、学習結果が整って「実行」するのは比較的容易です。
間違いの修正という面倒な処理がないのでニューロンを左から1回計算させるだけの処理になります。

スマートフォンで手書き文字を認識したり、写真に写っているものが何かを判断したりする処理をスマートフォンのプロセッサで充分行うことができています(一部の処理は被写体をサーバに送ってサーバ側のAIエンジンで実行処理を行っているものもあります)。

最新のPCやスマートフォンのチップは深層学習/実行の計算を高効率で実行できるように工夫されているものが出てきており、増々深層学習の利用シーンが増えていくことが予想されます。

まとめ

如何でしょうか?
皆様のビジネスで何か深層学習使って有益なことができないか、とお考えでしたら、
 1.学習のサンプル(データと模範解答のセット)が大量に用意できる
 2.学習を実行するための強力なコンピュータ資源を用意(借りる)できる
が一つの判断の目安になります。
学習と実行のプログラムはそれから考えても遅くありません。