人工知能(AI)のアプリ開発現場での適用方法

ショウ
ショウ

こんにちはショウです

今日は近年巷を賑わせているAI(人工知能)についてです

こんな疑問に答えていきます

  • 色々な所でAIすごいって聞くけど、AIて何のこと?
  • AIを使えば何ができるの?
  • AIと機械学習は違うの?
  • ディープラーニングって何??

正式名称

ただ単にAIというと計算機科学の一分野なんです

人工知能(じんこうちのう、(英: artificial intelligence、AI)とは、「『計算(computation)』という概念と『コンピュータ(computer)』という道具を用いて『知能』を研究する計算機科学(computer science)の一分野」を指す語[1]。「言語の理解や推論、問題解決などの知的行動を人間に代わってコンピューターに行わせる技術」[2]、または、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」ともされる[3]。

Wikipediaより
https://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD

難しいですよね?
そこで、研究する側ではなくAIを使用(AIを使用したアプリ開発)する側として考えました
そこで見えてきた私なりの普通のアプリとAIを使用したアプリの違いをお話します

AIの分類

まずはAIの分類についてです
AIを分類すると以下に分けられます

特化型人工知能(AGI)

ある領域に特化した人工知能のことです。

例えば・・・・
将棋やチェスのプログラ厶
自動運転自動車
画像認識や音声認識

汎用人工知能(GAI)

なんでもできる、人間そのものを模した人工知能
小説やアニメでよくでてくる人工知能はこっちですね
現在の研究ではまだ人間の域には達していないです

AIのアプリへの適用

現時点で汎用型人工知能をアプリに活用することは難しいです
そのため、特化型人工知能をアプリに使用する場合を考えます
ここから先でててくるAIは全て特化型人工知能のこととなります

まずはAIを使用しているアプリとそうでないアプリの違いについてです

普通のアプリ

一般的なアプリの特徴は以下のようになります

  • 答えが確実にわかるものを素早く計算することを得意とする
  • バグがなければ間違えることはない

例えるまでもないですが
1+1=2
などです

AIを使用したアプリ

AIを使用したアプリの特徴は以下のようになります

  • 間違えることはある
  • 学習して賢くなる
  • 未知の問題にも答えが出せる

例えば・・・
画像を入力としてこの画像は犬ですか?の問いにYES or NOで答える

過去のデータからこの後の株価が上がるか下がるか予測する

などなどです

AIの手法

ここからは、AIを実現している手法について紹介します

機械学習

機械学習は与えられたデータを元に学習する仕組みです

具体的には・・・・

開発者が入力データとそのデータの特徴を機械に教えます(プログラミング)
機械が教えられた特徴に基づいて判断します(プログラムの実行)

ディープラーニング

機械学習を少し進化させた仕組みとして、ディープラーニングがあります

人間の脳を模倣したニューラルネットワークと呼ばれるモデルを使用することで
判断するための特徴を自分でみつけだすものです

賢いディープラーニングを作るためには学習用の画像をたくさん
用意する必要があります

ニューラルネットワーク

複数の入力データと出力される結果の法則性を計算して
入力データの重み付けを(判断するための特徴を算出)する
実行時には重み付けによって得られた値で計算を行う

AIにおすすめのプログラム言語

自身でAIを使用したアプリを作るならPythonがオススメです
PythonにはAI用のライブラリが豊富に要されており、簡単に試すことができます

まとめ

どうでしたか?

今日はAI(人工知能)についての入門的な内容でした

世間からの注目度も高く、日々研究が行われている分野なのでその進化スピードはすごいです
今後もこの勢いはとどまることなく、いろんな技術に適用されていくと思います
将来的にはAIに多くの仕事が奪われる日が来ると言われています
そんな中、AIを開発したり提供する側になれれば将来安泰かもしれないです

私もまだ簡単な部分しかわかってないので、
新たな情報をインプットしたらまたみなさんに共有したいと思います