AI(人工知能)ニュース

初心者から始めるAIアプリ開発!1・2・3ステップでマスター!

初心者から始めるAIアプリ開発!1・2・3ステップでマスター!

AI(人工知能)のアプリって、株の予想だったり、囲碁・将棋やゲームだったり、音声認識や顔認識だったり、自動運転やチャットの自動応答などとバラエティーに富んでいますよね。とはいえAI(人工知能)のアプリの開発ってなんだか難しそう・・・と感じる方もいるかもしれません。

でも、どんな応用分野であってもAI(人工知能)のアプリというカテゴリーで括られているわけですから、開発していることの本質はそんなに種類は多くないんです。ちょうど、人間の脳は一つで色々なことが考えられるのと同じように、AI(人工知能)のアプリ開発は、まず「考える仕組み」をプログラムして、そのプログラムに色々な分野のデータを与えることでそれぞれの分野への応用をしています。

そこで今回は、AI(人工知能)のアプリ開発の本質とは何か、つまりAI(人工知能)が色々な物事を考えるのに必要な基本的な仕組みをどうやって作るのかをズバリ、ご紹介します。

AI(人工知能)のアプリ開発とは線を引くことである

線を引くイメージ

まず第一ステップとして、高校時代のことを思い出してみましょう。物理や化学の実験レポートで測定結果をグラフに書くときに、測定値の点を順番につないで行って注意されたことがある人もいますよね。

例えば、バネにぶら下げる重りの重さとバネの伸びのグラフとか、等速運動の時間と距離の関係のグラフとかは、本当は直線になるはずですが実際のデータは測定のばらつきによってぴったし直線上に乗ることはありません。そういう場合、測定値の点を結んで行くのではなく、グラフ上の点を眺めて、だいたい真ん中へんだなーと思うところに線を引くんだと言うことを習った人もいますよね。AI(人工知能)のアプリを開発すると言うことは、このだいたいこの辺だと思うところに線を引く方法をプログラムするということなのです。

図1

ここでの実験の測定値(グラフの点)に当たるものが、訓練用データあるいはトレーニングデータと呼ばれるものです。これはたくさんあればあるほど全体の傾向がつかめ、線が引きやすくなるでしょう。そして、訓練が終わって線が引けたら(モデルができたら)、今度は実際の検証用データあるいはテストデータを与えます。そうすると、すでに訓練済みのモデルがありますからそれを使って結果の値が予測できるようになります。

このときに当初予測された値と、実際に測定された値の間の誤差を調べて、それが許容範囲ならばそのアプリは実応用に使えると言うことになります。もし誤差が大きければ、もっとたくさんの訓練データを与えたり、線を引く方法を工夫したりして、誤差を少なくして実応用に使えるように改良していきます。実際のAI(人工知能)アプリでは、目で見て線を引くのではなく、様々なデータを用いてプログラムが線を引くわけですから、この誤差を減らすプログラムを書くことがAI(人工知能)のアプリ開発で一番大変なところなのです。

それでは次に、この「線を引く方法」について、順を追って説明していきます。

数値を予測する線形回帰モデル

数値を予測するイメージ

AI(人工知能)で中古車の査定価格や、賃貸住宅の適正な家賃など、数値を予測するアプリがありますよね。AI(人工知能)のアプリ開発で次に考えるのは、物理や化学の実験グラフの例と全く同じように、入力したデータに対して、答えの数値を予測する方法で、これは線形回帰モデルと呼ばれます。

例として、中古車の価格を予測するAI(人工知能)を考えて見ましょう。中古車価格を決める要素はたくさんあって、例えば、車種、色、排気量、年式、走行距離、事故歴などが考えられ、訓練用データとして実際に売られている中古車の値段と、これらのデータをたくさん集めます。このうち、走行距離について考えてみると、走行距離が多いほど価格は下がりますので、この走行距離と価格のデータの関係を調べて、予測データと実データの誤差が最小になるように線を引いていきます。同様に年式や排気量など他の要素についても実際の販売価格との関係を調べて線を引くことをおこない、最終的に様々な要素を総合して誤差が最小になるように線形回帰モデルを作成していきます。

こうしてできた中古車価格予測のAI(人工知能)を使って、例えば自分の車を売ろうと思った場合、その車種や走行距離や年式を入力して行くことにより、査定価格が予測されます。また、気に入った中古車を見つけた場合、その車のデータを入力していくことにより、適正価格が予測されますので、売っている値段が高いのか安いのかがだいたいわかりますよね。

実は株価の予想AI(人工知能)も同じような考えで、株価に影響する要素のデータをたくさん集めてきて訓練してモデルを作成し、出来上がったモデルに実際のデータを与えることで株価の値を予測するのです。

クラスに分類するロジスティック回帰モデル

グラフのイメージ

最後にご紹介するのは、いくつかのクラスに分類するAI(人工知能)のアプリの開発です。例えば、犬の写真と猫の写真をたくさん集めてきて、これは犬、これは猫、とAI(人工知能)に教えて訓練していきます。訓練が終了したAI(人工知能)に犬や猫の写真を見せると、うまく訓練された場合は、時々間違えることはあってもだいたい犬と猫の区別がつくようになっているはずで、この、どちらのクラスに近いかを判断する仕組みをロジスティック回帰モデルと呼びます。

図2

これを実験データに当てはめて考えてみましょう。集めた猫と犬の写真の特徴をデータにして、点をグラフ上に打っていくと、図のように猫のかたまり、犬のかたまりというのができてきます。もちろん、中には犬だか猫だか区別がつかない写真もあるでしょうから、全てが二つのかたまりにきれいに分かれるわけではありません。しかし、出来上がったグラフを見てみると、だいたいどこに線を引けば犬と猫に分けられるかわかりますよね。

こうして出来上がったモデルに新たに犬または猫の写真を見せると、これは犬、これは猫と言うように判断をするようになります。ただし、訓練データが少なかったり、モデルの作り方が悪かったりすると、間違った分類をしますので、それが少なくなるように工夫しなければなりません。これが、AI(人工知能)のアプリ開発の勘どころでしょう。

分類するクラス数を犬猫の二つだけではなく、どんどん増やして行くと、色々な物体認識ができますし、たくさんの人の顔写真を見せて訓練すると、正しい人を選択することができる顔認識AI(人工知能)のアプリが開発できると言うことになるのです。

 

さて、今回はAI(人工知能)のアプリ開発の基本として、AI(人工知能)が色々な物事を考えるということは線を引くことである、というところからスタートして、その仕組みとして、入力データから出力の数値を予測する線形回帰モデルと、入力データをクラスに分類するロジスティック回帰モデルをご紹介しました。説明のためにデータは二次元平面上に現しましたが、実際は様々な特徴を用いてモデルを作成しますので、多次元データとなり簡単に図示できるようなものではないと言うことに気をつけましょう。

大事なことは、同じ考える仕組みであってもそれに与えるデータを応用分野によって替えれば、様々なAI(人工知能)のアプリが開発できるということです。これは、人間の脳の仕組みはみんな共通なのに、どういう学習をするかによって全く異なる働きをするということから考えられるでしょう。

もちろん今回ご紹介したのはAI(人工知能)のアプリ開発の一面でしかなく、様々な考え方や手法が存在し、精度を上げるために色々な工夫がなされています。しかし、基本中の基本は本当に単純な考え方なんです。これを踏まえて、AI(人工知能)の色々な手法を勉強するとともに、ツールの使い方も習得し、アプリ開発ができるようチャレンジしていきましょう。

コメントをどうぞ

トップへ戻る
タイトルとURLをコピーしました