10分で分かるAIの歴史

##はじめに

こんにちは！
久しぶりの投稿になってしまいましたが、今回はAIのジャンルや歴史、AIが具体的にどんなことに使われているか、どのように取り掛かればいいかなどをざっとご紹介しようと思います。
特に、これからAIやディープラーニングの勉強を始めたいという方には役立つと思うので「へー、そうなんだ」くらいの気持ちで流し読みしていただければと思います！

##AIの歴史

###第1次AIブーム
「AI（人工知能）という言葉はいつから存在するか？」という問いに答えられる人はあまり多くないのではないでしょうか。
答えは**「1956年」**です。
この年の夏、アメリカ東部のダートマスという都市で開催されたワークショップで、人間のように考える機械のことを初めて「AI」と呼ぶことにしたと言われています。
このワークショップで世界初のAIとされている「ロジックセオリスト」が、アレン・ニューウェルとハーバート・サイモンによって発表されました。
![アレンニューウェル.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/3a63e3ef-7883-4f81-12b1-6af7aeeb5c19.jpeg)
アレン・ニューウェル(1927~1992)
![ハーバートサイモン.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/8bf0396b-be31-d856-e225-3e4cfbbdda41.jpeg)
ハーバート・サイモン(1916~2001)

ロジックセオリストは数学の定理を証明するというAIであり、数値計算しかできないと言われていたコンピューターの可能性を大幅に広げるものでした。
これを皮切りに第1次AIブームがスタートし、迷路を解くAI、チェスをプレイするAIなど様々なAIが開発されていきます。
しかし、それらは全て限定されたルールの中でしか動作できないものであり、組み合わせや状況が複雑に絡み合う現実の問題は解けないといったことが明らかになっていき、1970年代に入ると次第にブームは翳りを見せていきます。

###第2次AIブーム

1970年代にブームは下火になってしまいましたが、その後1980年代に入ると第2次AIブームがスタートします。
ルールが決められたおもちゃのような問題（トイプロブレム）しか解けないと言われていたAIが、今度は現実の問題にも適用できる形となって帰ってきます。確かに、便利なものは使いたいというのは大衆の本能であり、ブームが再びやってくるのも頷けますよね！
このブームを支えたのは**「エキスパートシステム」**と呼ばれるAIでした。簡単にいうと、AIに専門家の知識を大量に覚えさせ、与えられた問いに対して専門家のような振る舞いで推論を行うといったものです。特に有名なのが**「MYCIN」**という、感染性の血液疾患の患者を診断し、抗生物質を処方するようにデザインされたシステムです。MYCINは69%の確率で正しい処方を下すことができたと言われており、これは専門医には劣るがそうでない医師には勝るぐらいの精度だったそうです。
ただ、「診断の責任はどこにあるのか？知識を覚えこませた人？医師？MYCINを使った人？」という倫理的な問題から、実際の臨床現場で使われることはなかったそうです。
しかも、なんとなく気持ちが悪い、なんとなく頭が痛いなどの曖昧な症状に対して診断をつけることはとても難しく、専門家の限定的な知識は覚えられても私たち人間が普段何の気なしに用いている膨大な量の常識を覚えさせるのは不可能とされました。これは今の時代まで続くAIの弱点であり、専門家がどれだけ頭を悩ませてもなかなか解決できなかった問題です。このように、AIは決まりきった形の知識でないと使えないという最大の弱点があります。
この**「人間の常識を全て覚えさせるのは不可能」**といったとてつもなく高い壁に直面し、第2次AIブームも勢いをなくしていきました。。。儚いですね。。。

###第3次AIブーム

2つのブームを経て、「AIはもう限界を迎えたのか？」と皆が思いかけたその頃、またしてもブームが訪れます。そのきっかけとなったのが**大量のデータ流通（ビッグデータ）**です。1990年代になると爆発的にパソコンが普及していき、携帯電話の普及、そして2007年にはiPhoneの登場など日々膨大なデータを世に生み出す機械が大衆に広く使われるようになりました。
このようなビッグデータを用いることで、新たなAIの潮流が生まれました。それこそが**ニューラルネットワーク**です。ニューラルネットワークとは簡単にいうと人間の脳神経回路を真似したものであり、信号によって次の層へ指令を伝えるという構造をしています。
![ニューラルネットワーク.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/8260c736-99ea-90fa-91a1-9f9e4c632f9c.png)
(引用先:http://starpentagon.net/analytics/neural_network_structure/)

今まで人間の手によって限定的な知識を覚えこませることでやっと機能したAIが、このシステムによって自分で学習するという機能を身につけることで爆発的に発達を見せました。
AIという言葉はこの10数年でとてつもなく身近なものになって、家電製品などの日用品にもどんどんと進出してきており、今やAI無しでは語れない時代となりつつあります。
特にバズったものの中に、IBM社が開発したワトソンという人工知能があります。ワトソンは高度な自然言語解析技術を用いて、2011年にアメリカの人気クイズ番組「ジョパディ！」で歴代チャンピオンを打ち負かしたことで一気に有名になりました。現在はワトソンに膨大な医療論文を読み込ませることによって、医師のサポートをする人工知能を開発する動きも始まっています。
こういったことを踏まえると、筆者の個人的な意見としては、AIという漠然とした言葉ではなく、今は**「ディープラーニングの時代」**といったほうが適切な気もします。

しかし、以前と比べると第3次AIブームも少しずつ収束を見せつつあるのではないでしょうか。ディープラーニングは自ら学習できるといっても、知識を蓄える段階ではまだまだ人間の手が必要であり、その数はデータが増えるに従って不足しつつあります。しかも、AIは人間の真似をしてそれらしく見せているだけであって、言葉の意味や潜在的な事象を人間のように理解することはまだまだ不可能です。
このようにして第1次、第2次のブームも終わったことを考えると、そろそろ第3次AIブームも終焉を迎えそうな気がしてきます。
第4次AIブームが起こるのは、**現在人間の手で行なっている職業が何か一つでもAIに完全代替されたとき**ではないでしょうか。しかもそれは、近いうちに起こるかもしれません。。。

##AIのジャンル

ここまで読んでいただいた方はお気づきでしょうが、一口にAIといってもジャンルは多岐に渡ります。
なのでここからは、「AIの種類多すぎてわけわからん！」といった方に向けて、AIのジャンル、比較的取り組みやすい内容などをご紹介していきたいと思います。

###画像分類
画像分類はAIの入門編と言っても過言ではないと思います。
僕もPythonの勉強をザーッとした後はすぐ画像分類に取り掛かりました。
![MNIST.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/91541b86-1629-8adf-4e8e-e5248cae81c3.png)
（引用先:https://www.codexa.net/cnn-mnist-keras-beginner/)

この画像はMNISTという手書き数字の有名なデータセットで、人の手によって書かれた大量の数字を学習させ、新しく与えられた数字に対してその数字は0〜9のどれなのかを判定させるといったものです。
「初心者　画像分類」で調べると真っ先にこれがヒットするくらい有名なもので、なおかつ取り組みやすいです。

これを勉強し終わった方は、自前のデータセットでディープラーニングのすごさを体感すると面白いと思います。自分が書いたコードで初めてディープラーニングが動いた時の面白さは今でも覚えています。
これ以上書くと画像分類に内容が偏りすぎてしまうので、みなさんにはぜひ僕が以前書いた記事を読んで、その内容を試していただければと思います。リンク貼っときます！
[[面倒なことはPythonで！]ネットから画像の自動収集](https://qiita.com/cr-fun/items/7841a114c4fe67a51dbd)
[[完全版]画像分類これだけ！[VGG16]](https://qiita.com/cr-fun/items/13d012867bc4b216f342)

###物体検出

物体検出とは、一言で説明すると「画像や動画の中のどこに何があるのか」を判定するシステムです。
画像分類と同様、物体検出もいかにもAIらしい結果を出してくれるので、勉強したての人にとって学びがいのあるジャンルだと思います。
![20161205164002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/3eb9dac4-4e01-7f3a-090e-b118650b09a2.png)
(引用先:https://tech-blog.abeja.asia/entry/object-detection-summary)
画像を渡すと、このように写っているものや人を検出して枠で囲ってくれるというのが、一般的な物体検出です。
![201801241739862000.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/bdd841b2-cb8a-e72d-a9b2-5400b2a62448.jpeg)
(引用先:https://www.moguravr.com/facebook-ar/)
最近では検出したものにピクセル単位で色を塗って、境界まではっきり検出してくれるものもあります。
物体検出が特に活用されているのは自動運転システムです。道路に飛び出てきた人を素早く検知して車をストップさせるというシステムが盛んに開発されています。
物体検出を学習するためにはR-CNN、YOLOV3、SSDなど様々なツールがあるのですが、一番実行しやすいのはYOLOV3ではないでしょうか。
YOLOV3に関しても記事を書いていますので、皆さんぜひ試してみてください！
[[物体検出]YOLOv3を動かしてみよう！](https://qiita.com/cr-fun/items/42d2c78e3bd29ea90f01)

###セグメンテーション

セグメンテーションとは、「Semantic Segmentation」というのが正式名称であり(Semantic＝意味的な）、画像や動画から物体を検出するだけでなく、検出したものそれぞれに意味を与えるといった仕組みです。ちょっと説明が難しいので、実際の画像を見ましょう！
![resear6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/08d96a22-db8a-6e95-bb52-ed6febaaebee.png)
(引用先:http://incubit.co.jp/blog/3532)

このようにして、ピクセル単位で色ぬりをし、さらにそのそれぞれに対して意味を記載するというのがセグメンテーションです。
この技術も自動運転に利用されています。
もう一つ利用されている例が医療分野です。
例えば、MRIの画像に対して腫瘍の部分だけを白く塗り、それ以外を全て黒で塗りつぶす。このような画像を数百枚用意して人工知能に学習させる。そして新たに腫瘍が写ったMRI画像を識別させると見事に腫瘍の部分だけ色ぬりされた結果が返ってくる。
このように画像分類、物体検出よりも実際の産業や医療の分野に応用しやすいのがセグメンテーションではないでしょうか。
よく利用されているツールはSegNet,U-Net,PSPNetなどです。これらは上記の二つよりも扱うのが難しいので、この使い方を説明した記事も今後書ければと思います！

###GAN(敵対的生成ネットワーク)

名前、いかつすぎませんか？（笑）
とてつもなく聞きなれない単語ですが、その内容もとてつもなく面白いです。
簡単に説明すると「実在しないものの画像を作り出せる」といったシステムです。
例えばこれ⬇️
<img width="639" alt="スクリーンショット-2019-02-06-10.35.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/6eec9819-8183-8bc1-0785-db226816668a.png">
(引用先:https://ai-scholar.tech/machine-learning/ai-gan-74/)
実在しない人の顔をGANが作ったものです。もうどう見ても世界のどこかにいそうな顔ですよね。。。GAN恐ろしい。。。
GANは「教師なし学習」と呼ばれ、学習データは与えられるものの画像分類などと違って正解は与えられておらず、画像から独自のやり方で法則を見つけ出して真似をします。
最近だとこんな面白いニュースもありました！
https://robotstart.info/2019/05/17/gan-datagrid.html

###自然言語処理

ディープラーニングの中で最も身近なのは自然言語処理なのではないでしょうか。
SiriやGoogle翻訳など、普段頻繁に使うものに利用されている技術です。
形態素解析、構文解析、意味解析、文脈解析など様々な用語がありますが、テーマがないとどれも取り組みにくいものです。
僕がよく使っているUdemyに面白そうな講座があったので、これを使って勉強してみるなど、何かテーマが決まっているものがあると良いでしょう。
[自然言語処理とチャットボット: AIによる文章生成と会話エンジン開発](https://www.udemy.com/ai-nlp-bot/)


##おまけ

さて、ここまではAIの歴史とジャンルについてでしたが、ここからは僕が面白いと思った記事やコンテンツを紹介しようと思います。

###①AI vs. 教科書が読めない子どもたち
![51twtvqpgZL._SX344_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/fee07cb5-d2e9-ba36-fde5-2bec302572a4.jpeg)
もう読まれた方も多いのではないでしょうか。
僕は恥ずかしながら最近この本を読んだのですが、AIの歴史や、現在の取り組み、さらには今後のAIの展望や限界について非常に読みやすく書かれています。
タイトルにもある「教科書が読めない子供たち」についても、著者である数学者の新井紀子さんのチームが考案したRSTという読解力テストを全国の小中高生に行なった結果が書かれており、読む人(学校の先生や保護者）によっては非常に危機感を覚える内容かもしれませんが、勉強になる内容ばかりです。
新井さんは人工知能が東大合格を目指す「東ロボプロジェクト」の仕掛け人であり、そのことについてもTEDで面白い動画があるのでチェックしてみると良いかもしれません。
![NorikoArai_2017-embed.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/f8c1c941-de3c-6015-a328-1587e038fbfc.jpeg)
[ロボットは大学入試に合格できるか？](https://www.ted.com/talks/noriko_arai_can_a_robot_pass_a_university_entrance_exam?language=ja)

###②【画像判定AI自作にチャレンジ！】TensorFlow・Keras・Python・Flaskで作る機械学習アプリ開発入門

これはUdemyの講座なのですが、今回紹介した画像分類について初心者でもわかりやすい内容で学習できるようになっています。
僕もこの講座で学習した一人なのですが、AIがどのように動作するのか、どのようにコーディングすれば良いのかがわかりやすかったです。
特に作ったモデルをスマートフォンのアプリケーションにできるところが秀逸でした。
この他にもたくさんの講座があるので、自分にあったものを探して学習することを強くお勧めします！評価が高い講座を選ぶと基本的に失敗はないと思います。
[【画像判定AI自作にチャレンジ！】TensorFlow・Keras・Python・Flaskで作る機械学習アプリ開発入門](https://www.udemy.com/tensorflow-advanced/)

###③統計学が最強の学問である
![41-4aLbrvpL._SX344_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/e4a9fcbb-8665-e288-9975-921de3ff2076.jpeg)
この本はAIの内容からは離れてしまうのですが、AIによる学習結果を判断するときに使える統計学的な知識が勉強できます。
AIを使えば何かしら結果が出るのは当たり前なわけで、その結果についても感度や特異度、AUCやp値、95%信頼区間などたくさんの用語が絡み合っています。
今回出た結果は偶然のものなのか？などを検証するときに統計学的な知識が必要になってくるので、pythonのライブラリ(scikit-learnなど）で結果がまとめられるにしても知識を頭に入れておくこと自体に損はありません。

##終わりに

AIってなに？ディープラーニングってなに？という状態からでも読みやすい記事を目指したのですが、いかがだったでしょうか？

今回ご紹介した様々なジャンルから興味のあるものを選んで勉強すると、様々な気づきがあって面白いと思います。

最後に、医学生である僕が所属しているツカザキ病院眼科AIチームのページも見ていただけたら幸いです！ぜひご覧ください！
[ツカザキ病院眼科AIチーム DeepOculus](https://qiita.com/organizations/deepoculus)

では、また次の記事で！