今回はAIを導入してみたいが、具体的に何が出来るのかイメージ出来ない。実際の導入サンプルを見たいという方向けの内容です。AIシステムのシンプルな事例を紹介します。
なるべく平易な言葉でシステムについて詳しく分からない方ですので、厳密には多少語弊もあると思いますのでご容赦ください。
AIとは?用語の確認
AI(Artificial Intelligence)とは日本語で人工知能と言われるものです。AIという言葉の指す範囲は幅広く、昨今の最新手法から1970年代のエキスパートシステムなども含まれます。
上図の中の機械学習(マシンラーニング)は機械が与えられたデータを元にして学習する人工知能の手法で、2020年現在も用いられている手法です。
さらに機械学習の中でも、人間の脳の仕組みのような形式で深い階層構造を構成して学習する深層学習(ディープラーニング)という手法があります。
深層学習は、表現の幅が広く人間の直感に近いような判断が可能となりますが、学習に伴う計算量も膨大になる事があります。深層学習は現在最先端の発展的な分野ではありますが、必ずしも他の機械学習などより精度が高いというものではありません。
AIと一般的なプログラミングの違い
実際のAIシステム(ここでは主に機械学習・深層学習)は、少し大雑把な表現をするとデータを元にプログラムをコンピュータに作らせるようなものです。
そのため、一般的にプログラミングと言われるルールベースのプログラムでは表現できない判定処理などが可能になります。
例えば「画面上のボタンを押したら次の画面へ遷移する」などの こういう時はこうする といった明確なルールが決まっている場合は、一般的なプログラミングの方が正確な場合が多いです。
しかし「与えられた写真に人の顔が映っているかどうか判定する」といった処理は人間では判定基準を明確に示すことが出来ないためルールに基づいた分岐処理で作ることは難しいですが、こういった判断がAIだと可能になります。
なんでもAIにすれば良いということはありません。むしろ案件によってはAIの導入を想定されていても、実際にはAIを導入せずに一般的なプログラムで開発したほうが良いものもあります。
AIの制作に必要なものとは?
学習用データ
AIを制作することは最先端で高度な技術でもありますが、実際には 学習に使うデータの準備 がAIの精度を分ける重要なポイントになってきます。
例えばAIで画像判定システムなどを作る場合、極論1枚の画像だけで学習する事も可能ではありますが、他の画像が来た場合にうまく判断できないといった事が起こります。(他の画像での応用が利かない)
精度を高めるためにはAIの学習に適した画像を学習しやすい形式で大量に用意する必要があります。そのためGAFA(Google, Apple, Facebook, Amazon)などの大企業や中国などのビッグデータを保有しているところがAIに強いと言われています。
AIに学習させるためには、沢山のデータ(今回であれば画像)が必要となり、ディープラーニングでは学習用データの準備が一番といっても良いほどネックになってきます。
ただし「人の顔を判断する」等の色んな用途によく使われるものは、既に学習済みのモデルが公開されていたりしますので、データの準備が不十分でもそれなりに活用できるものもあります。
他にも囲碁のAIなどでは、AI対AIでの対戦を繰り返す事で学習を進める手法が用いられていて、こういった手法の場合は必ずしもデータが必要でないケースもあります。
学習用サーバ/マシン
学習内容やモデルによってケースバイケースではありますが、一般的には学習(AIを作成する)用のサーバ/マシンには大きな計算を早く行えるよう一定以上のスペックが要求されます。
GPU(Graphics Processing Unit)やTPU(Tensor processing unit)といった計算を早くするためのユニットがあり、一般的にはこれらのユニットを積んだマシンで学習を行います。
これらGPU・TPUを積んでいなくとも計算自体は出来るのですが、時間がかかりすぎるので実務で使うような少し大きめの計算をすると全く計算が終わらないという状況になってしまいます。
学習結果(モデル・重み)を使用するだけれあれば、さほど高くないスペックでも利用する事ができます。ただし、学習時に使うライブラリのバージョンと合わせたり多少の制約はあります。
具体的なWEBサンプルを紹介(AI画像判定機能)
AIについて簡単に説明してきましたが、実際に機能を見た方が分かりやすいと思いますので、サンプルを用意しました。AI画像判定機能を作成し、弊社のオフィシャルサイトに一機能として組み込んでみましたので、興味のある方はご覧頂ければと思います。
サンプルを実際にこちらからご利用いただけます。
https://ai.advanceffort.jp/introduction/
AI画像判定機能の概要
今回は丁度よいデータが無かったのでAI作成用途にも使いやすいフリーの画像セット約8000万枚を提供しているサイト「CIFAR-10」の画像を使った画像判定システムを作ってみます。
こちらのサイトの中で6万枚の画像には、各画像に何の画像かというラベル(10パターン)付けされているデータがありますので、このデータを利用して画像を10パターンに分類させてみます。
具体的には、上記リンク先のフォームから写真をアップして頂くと、写真に写っているものを “飛行機”, “自動車”, “鳥”, “猫”, “鹿”, “犬”, “カエル”, “馬”, “船”, “トラック” の10パターンにAIが判断・分類し、画面上に結果を返します。
学習は別途学習用のマシンで実施し、結果のAIモデルをWEBサーバで活用しています。AIの種類を先述の区分けの中の深層学習(ディープラーニング)で生成しています。技術的な制作方法はこちらでは割愛します。
実際に学習結果を利用して判断し、結果を表示すると上記のようなイメージです。それぞれが何パーセント程度マッチしていたかを返しています。
学習にはフリーのサンプルイメージを使い、大雑把な分類としていますので精度はあまり高くありません。実務ではもう少し実際に即したデータで学習させることになりますので精度は向上します。
まとめ
今回はシステムに詳しくない人向けにAIの簡単な解説と導入事例として画像判定のサンプルを紹介しました。
AIの世界は奥が深く日進月歩で新しい情報が出てくる世界ですので、簡単に説明するのは難しいですが、少しはイメージを掴んでいただけたようでしたら幸いです。
また、実際のAI機能として画像の分類システムを制作しました。フリーのサンプルデータを使ったかなり大雑把な分類でしたので精度はいまいちですが、実務ではジャンルに特化した判別用のデータを学習させると精度は格段に上がります。
今後はAIの学習に必要となる情報収集手法としてWebスクレイピングについてや、AIの別の使い方について紹介していきたいと思います。
主には、株や為替などの予測モデル・ラズベリーパイの監視カメラで取得した写真をもとに人物や人の顔を検知したりする仕組みなどを近いうちに紹介できればと考えております。
何かご相談などありましたら、以下よりご連絡頂ければと思います。