AIがよくわからない人のためのAIの話

# <font color="009F8C">**まえがき**</font>
最近やたらと**AI**というものが流行っているようです。
あちこちで**AI**を使ってなんかしたいという言葉を聞くようになりました。

**(　ﾟ∀ﾟ)o彡ﾟAI！AI！
(　ﾟ∀ﾟ)o彡ﾟAI！AI！**

正直このAIブームについていけてない！
AI技術ってつまりなんなの？！

このAIというふんわりとしたものを
少し具体的に捉えられるようになる話を書いてみたい。

# <font color="009F8C">**AIってつまりなんなの？**</font>

AIでやってること、
<font color="red">**「推測」とか「予測」**</font>

例えば

## **予測変換**

文字入力の途中で次に打とうと思ってた文字が勝手にでてくる！

## **あなたにオススメの商品はコチラ！**

今までの買い物の履歴や、似たようなものを買っている人の傾向から
おそらくこんな商品を欲しがっているだろうという商品を進めてくる！

## **車の自動運転**

赤は止まれ、青は進めだけなら単純な話かもしれないが
ここから人が飛び出してくるかもしれないから速度を落とそう！
という、かもしれない運転をする。

## **将棋のAI**

ここに角を置くと有利なはずだ！
相手がここに置いたということは、こっちに歩を置くと有利なはずだ。
戦局を予想する。


こんな感じでAIは基本的に<font color="red">**「推測」、「予測」をする技術**</font>と捉えると
ふんわりしたイメージが少し具体的に捉えられると思います。



# <font color="009F8C">**AI開発で大事なもの**</font>

AIで検索すると
数学とか、統計学とか、機械学習とかディープラーニングとか
いろいろ難しそうなものがヒットすると思いますが


一番大事なのは

- **分析力**
- **データ収集力**

これ

# <font color="009F8C">**なぜ分析力とデータ収集力がいるの？**</font>

たとえば人が「リンゴ」を見て、これは「リンゴ！」
と判断(予想)するときは
そもそも<font color="red">**「リンゴ」はこういうものだっていうのを知っている**</font>。

コンピューターに果物を見せて、これは「〇〇」と判断(予想)させるためには
予めコンピューターに<font color="red">**沢山の果物の情報を覚えさせなければいけない。**</font>

## **１．果物の情報とはつまり何？という事を見抜く分析力**

そもそも人は果物をどうやって識別しているのか

見た目だけで判断するのであれば
<font color="red">**「色」、「形」、「模様」といった特徴**</font>で判断しているはずだ

AIで何かを推測、予想したいとなったときに
そのためにはどんな情報が必要なのかという
<font color="red">**本質的な部分をとらえる力**</font>が必要不可欠になる。

```
もちろん画像から、色、形、模様という情報を数値化するための技術も必要だが
どんな情報が必要かを見極められなければ、そもそもスタートラインに立つことができない。
```

### **例えば人の会話**

人間のように会話するAIを作りたいとする。
相手の言葉に対して、何を返答するのが正解かという推測、予想が必要になる。
自然な会話を行うために必要な情報は何かがわからなければ、人間レベルで会話できるAIは作れない。


## **２．果物の画像を大量に集めるデータ収集力**

果物の情報を得るためには大量の果物の画像がいる。
必要なデータの量は何を予想したいかにもよるが
<font color="red">**数十万件～数千万件と超膨大なデータ量が必要になる。**</font>

そしてその画像の質も大事だ。


例えば

**山田「この写真にうつってる人を探してほしいんだ、これ写真ね」**

**田中「集合写真だし、距離あって顔がぜんぜんわかんねぇ！もっとマシな写真くれよ！」**

こんな風に、わかりにくい写真からでは必要な情報が得られない。
人間だろうがAIだろうが、学習する時には良い素材が必要になる。

必要な情報をちゃんと含んだデータを大量に用意できなければ
推測、予想させるための特徴を覚えさせる事ができない。

<font color="red">**AI開発は実際の開発よりも、データ集めに大半の時間を費やす。**</font>



# <font color="009F8C">**AIにどうやって学習させるの？**</font>

統計学的な難しいお話は自分もよくわかっていないが
コンピューターに学習させる時には、<font color="red">**機械学習**</font>という技術を使う。

基本的には以下の3つの方法があるようです。

1. **教師あり学習**
2. **教師なし学習**
3. **強化学習**

なにやら難しそうだし、実際難しいとは思うけど
大雑把に言ってしまえば<font color="red">**データを「分類」するテクニック**</font>という感じ。

以下それぞれについて簡単なイメージを紹介。

## **教師あり学習とは**

コンピューターにこれは強そうな顔、これは弱そうな顔と
沢山の顔について強い、弱いを教えてあげます。

こんな風に<font color="red">予め正解を与えて特徴を覚えさせるのが**教師あり学習**です</font>。

こいつは強そうな気がする！逃げたほうがいい！とか
こいつは弱そうだ！やっちまえ！とか
推測、予測する方法です。

## **教師なし学習とは**

コンピューターにこの人の顔みて、次この人の顔みて
という具合にとりあえず沢山の人の顔を見せます。

コンピューターは顔の特徴を分析し
この人はこの人と同じタイプという具合に
顔の<font color="red">**特徴でグループ分けさせていきます。**</font>

コンピューターがどんな特徴でグループ化したのかは
最終的な結果を見て、人間が判断します。

かっこいいとかっこ悪いの狭間のルックスをどっちと判断するか
<font color="red">**人間には判断が難しいようなデータ**</font>にはこういう方法が適していると言えそうです。




### 補足
こんな風にデータをグループ化する事を<font color="red">**クラスタリング**</font>と呼びます。
分類と似たような感じですが違うものらしいです。


## **強化学習とは**

https://www.youtube.com/watch?v=ATXJ5dzOcDw

この動画が分かりやすい。

この方法はとりあえずやってみて
その結果をもとに行動を改善していくような方法です。
簡単に言えば<font color="red">**トライアンドエラー**</font>です。

4足歩行ロボットを歩かせてみて
転んだ時、転ばなかった時という情報を蓄積し
どう動けば転ばないんだろうという事を学習させるとかも強化学習と言えます。

某漫画のデータテニスで有名な乾君はこのタイプだと思います。

# <font color="009F8C">**最近はやりのディープラーニングとは？**</font>
 
深層学習とも呼ばれていますね。
これは最近編み出された機械学習の方法の１つのようです。
(正確には昔から考えられていたが、マシン性能が低くて試せなかったらしい)

機械学習とは要するに分析して推測、予測するための特徴を見出していく作業ですが
うまく特徴が分析できなかったりしたときは、人間が

- うーんじゃぁちょっと条件を変えてみるかとか
- 与えてるデータがわるいのかとか

人間がいろいろ調整する必要がありました。
この部分はめちゃくちゃトライアンドエラーするしかなかったのです。

ディープラーニングというのは
いままで人間がどこに注目して学習していけばいいんだろうと調整していた
特徴を捉えるためのポイントや、判断する上でのバイアス(偏り)を
独自に学習(調整)するという、今までとは違った学習方法という感じかと思います。

コンピューターが勝手にいい感じに学習するというのは
今までのAI技術からすると革命だったようで
これがここ最近のAIブームに火をつけました。

またディープラーニングの特徴として
勝手にいい感じに学んでしまうため

なぜコンピューターがこういう判断を出来るようになったのか
どういう風に学習したのかという事が
AIを作った人にもわからないという特徴があります。

そもそも知能というものがブラックボックスなので
ある意味では人工知能が本物の知能に近づいたような気もしますね。



# <font color="009F8C">**現段階での人工知能(AI)と人間知能の違い**</font>

## **特化型と万能型という違い**
<font color="red">**人工知能というのは基本的に何かに特化した知能だ。**</font>

将棋のAIは自動運転などはできないし、その逆もしかりである。
しかし特化した分野に関しては人間をも凌駕する事があります。

それに比べて人間の知能は
将棋も、運転も全てこなせる万能型である。
またあえて不正解を選ぶといったイレギュラーも起こしやすい。

<font color="red">**界王「フリーザには絶対に手を出すな」**</font>
教師に正解を教えられても、あえて不正解を選択する



## **自主的に考えられるかどうか**

現状のAIというのは、目的に合ったデータを人間が与えて学習させる必要がある。
つまり与えたデータ以外の事はわからないのが人工知能(AI)だ。

人間は目的を自ら生み出す事ができるし
その目的に必要なもの、情報を自ら判断、収集し学習する事ができる。


# <font color="009F8C">**AIが人類を滅ぼしにくるのか？**</font>

よくAIが人類の知能を超えてしまい制御できなくなるとか
人間を悪と判断して全滅させるだとかいう本が出てたりします。

専門用語だと<font color="red">**「シンギュラリティ」**</font>というようですが
これ、現実に起こりえるのかというと

- 自ら目標を持つことができない
- 自ら新しい情報を手に入れて学習する事ができない

という現状のAIでは、シンギュラリティが起こる可能性はないと思っています。

またAIには生存本能がないという点も、人間との大きな違いだと思います。
人間が何かを学習する時、本能は１つの大きな判断基準になっているはずです。


# <font color="009F8C">**AIの定義**</font>
AIに明確な定義はないようなので、これはただのイメージですが

<font color="red">**データから特徴や経験を学習し
その学習した内容から可能性を予測して判断する
こういう側面を持っていればAIと呼べる気がします。**</font>

「こんにちは」と言われたら「こんにちは」と返す
というプログラムを組めばAIっぽい事はできると思います。
超頑張って人間レベルで会話できる条件を定義すれば
それはもう人工知能って感じになると思います。

が、それはやはり**AIっぽい**かもしれませんが
**AI技術**とは言えないというか、個人的にはAIではないなと思います。


# <font color="009F8C">**まとめ**</font>

どうだろう、とりあえずAIというふんわりとしたものが
少しは具体的に捉えられるようになったでしょうか？

そもそも知能がある人間に何かを教えるのだって難しいです。
理解できるように教えたと思っても、ちゃんと理解してもらえなかったり

同じ授業を受けているはずなのに
その結果は人それぞれ、ばらばらになるものです。

とあるテニスプレイヤーも言っていた言葉
<font color="red">**理屈じゃない**</font>
胸に刺さります。

人工知能とはつまりは知能のメカニズムを解き明かしていく事でもあると思います。
ディープラーニングの可能性もまだ未知数な気がしていますので
これから先、AIがどんなふうに進化していくのかは楽しみだなと思います。