AIの現状と技術の概要

最近業務で新しいことにチャレンジする機会が多いので、それらを時間が許される範囲で投稿して行こうと思います。
まずは軽くAIの現状を個人的に纏めてみました。

#AIとは
<img src="https://qiita-image-store.s3.amazonaws.com/0/200860/3439fd47-7a2d-185b-69f5-318226a6a575.png" width=50%>
最近流行りのAI（人工知能）ですがそもそもAIとは何でしょうか？
実は厳密な定義は無いらしく人によって曖昧なものらしいです。
とはいえ、私の周りでは下の図のような解釈が一般的なように感じます。
![20170830175944.jpg](https://qiita-image-store.s3.amazonaws.com/0/200860/0281ea1c-5e6e-3aa5-7c68-e06a40a0e116.jpeg)
>人工知能：人工的にコンピュータ上などで人間と同様の知能を実現させようという試み、或いはそのための一連の基礎技術を指す。
>機械学習：人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。
>ディープラーニング：多層のニューラルネットワークによる機械学習手法である。

（Wikiより）

 

そして、現在AIとして話題になってる技術は基本的にディープラーニングに関連するものが多いように感じます。

#ディープラーニングとは
ディープラーニングとは簡単に言うと人間（動物？）の脳（ニューロン）の仕組みを参考にした機械学習の一種です。
脳はニューロンという神経細胞同士がつながっており、それぞれが微細な電気信号を送り合うことにより複雑な処理をしています。
その仕組みを模したのがディープラーニングという訳です。
ディープラーニングの先駆けとなったのは1957年に発表されたパーセプトロンという非常に単純なアルゴリズムであり、内容としては下記の図の通り複数の入力を受けてある条件を満たした時に出力が発生するというものです。
![20170830181031.jpg](https://qiita-image-store.s3.amazonaws.com/0/200860/81c33335-5254-bd98-4717-e4be36d61fb9.jpeg)
ディープラーニングとは上記のパーセプトロンの考え方をベースにして多層化したものを指します。
![20170830181108.jpg](https://qiita-image-store.s3.amazonaws.com/0/200860/6785e283-24c4-5950-7870-33d8898e8643.jpeg)
ちょっと面白い話としてディープラーニングがなぜ画像の分類などで劇的な成果を出しているのか
実はいまいち分かってないのが現状です。
例えばニューロンを多層化する際に次の層に出力を伝えるかどうかを判断するアルゴリズムを活性化関数というのですが、数年前まで主流だったシグモナイト関数をReLU関数というよりシンプルなものに置き換えると何故か層が深いモデルで劇的に学習が改善した等があります。
脳のニューロンが次のニューロンに信号を伝達するかしないかの動きがシグモナイト関数よりReLU関数の動きに近いのが理由という話を聞いたことがありますが、理由は不明なのです。

#なぜ今ディープラーニング
パーセプトロン自体は随分昔からある技術なのになぜ今ディープライニングが人気なのか？
まず最初に、深いニューラルネットワークを学習させるには膨大な量の計算が必要であり、当時は現実的ではなかった。1957年といえばまだ真空管の時代でしょうか？
![20170830181452.jpg](https://qiita-image-store.s3.amazonaws.com/0/200860/2a16821c-b9bd-602e-5ea7-1092e3be0c9d.jpeg)
次に大量の学習データが用意出来るようになったからです。
ディープラーニングでは最初に学習フェーズといって大量のデータセットとそれに対する正解を用意する必要があります。
例えば猫の種類を見分けるネットワークを構築する場合はペルシャ猫の写真200枚、アメショの写真200枚、シャム猫の写真200枚といった感じに相当な数の画像を用意する必要があります。
今ならネットで用意できますが、当時はかなり大変だったのではないのでしょうか。

#AI関連技術 
最後にAIに関連する技術を列挙します。
AIに関連する技術を利用するのであればCloudのAPIを呼べば簡単に利用出来ます。
また、利用だけでなくAIを研究したい方であれば研究を前提としたフレームワークも各種そろっています。
それぞれの細かい内容はまた別の機会に掘り下げていければと思います。
 
シンギュラリティが起きるのではないかと世界の頭が良い人たちが言っていますが、はたしてどうなのでしょう？
もし興味を持った方がいれば本記事がAIの入り口になってくれれば幸いです。
<img src="https://qiita-image-store.s3.amazonaws.com/0/200860/5009d60a-2d31-6c69-d1cd-ef53457f8af3.png" width=50%>

#Cloud系API
| サービス名                                                               |               概要 |
|:------------------------------------------------------------------------|:------------------|
| [Amazon Rekognition](https://aws.amazon.com/jp/rekognition/)            | ・写真から物体の検出<br>・顔解析（女性、笑っている等）<br>・顔比較、二枚の写真が同一人物か<br・画像のコレクションから似た顔の抽出> |
| [Amazon Polly](https://aws.amazon.com/jp/polly/)                        | テキストを読んでくれる |
| [Amazon Lex](https://aws.amazon.com/jp/lex/)                        | ・コールセンターボットの作成<br>・情報ボット作成<br>・アプリケーションボット作成<br>・エンタープライズ生産性ボット作成 |
| [CLOUD JOBS API](https://cloud.google.com/jobs-api/)                        | 求人のマッチ |
| [CLOUD NATURAL LANGUAGE API](https://cloud.google.com/natural-language/)                        | ・構文解析<br>・エンティティ分析<br>・感情分析<br>・エンティティ感情分析 |
| [CLOUD SPEECH API](https://cloud.google.com/speech/)                        | 音声認識<br>スピーチをテキストに書き起こす |
| [CLOUD TRANSLATION API](https://cloud.google.com/translate/)                        | 翻訳 |
| [CLOUD VISION API](https://cloud.google.com/vision/)                        | ・ラベル検出（乗り物や動物など）<br>・商品ロゴ検出<br>・ランドマーク検出<br>・光学式文字認識（OCR）<br>・顔検出 |
| [CLOUD VIDEO INTELLIGENCE](https://cloud.google.com/video-intelligence/)                        | ・ラベル検出<br>「犬」、「花」、「車」などの動画内のエンティティを検出<br>・ショット変更の検出<br>動画内のシーンの変更を検出 |
| [Natural Language Classifier](https://www.ibm.com/watson/jp-ja/developercloud/nl-classifier.html)                        | ・テキストの内容を分類する<br>「プライベート」「仕事」「プロモーション」のように |
| [Personality Insights](https://www.ibm.com/watson/jp-ja/developercloud/personality-insights.html)                        | 文章から性格の分析 |
| [Visual Recognition](https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html)                        | ・クラス(犬等)の説明<br>・クラスの分類構造<br>・顔検出 (性別、年代、有名人）<br>・類似イメージと信頼度スコア |
| [Language Translator](https://www.ibm.com/watson/jp-ja/developercloud/language-translator.html)                        | 翻訳 |
| [Speech to Text](https://www.ibm.com/watson/jp-ja/developercloud/speech-to-text.html)                        | 音声から認識した単語のテキストの書き起こし<br>スピーチの書き起こし |
| [Text to Speech](https://www.ibm.com/watson/jp-ja/developercloud/text-to-speech.html)                        | テキストから音声を合成してくれる |
| [Computer Vision API](https://azure.microsoft.com/ja-jp/services/cognitive-services/computer-vision/)                        | ・顔検出<br>・タグ付け<br>・OCR<br>・手書き文字読み取り（英語だけ）<br>・著名人およびランドマークの認識<br>・ビデオリアルタイム解析<br>・サムネイルの生成 |
| [Face API](https://azure.microsoft.com/ja-jp/services/cognitive-services/face/)                        | ・2 つの顔が同一人物のものである確率を検証<br>・年齢、感情、性別、姿勢、笑顔等を分析<br>・似た顔の検索<br>・顔のグループ化 |
| [Content Moderator](https://azure.microsoft.com/ja-jp/services/cognitive-services/content-moderator/)                        | ・画像のモデレート<br>・テキストのモデレート<br>・ビデオのモデレート<br>・目視レビュー ツール |
| [Emotion API](https://azure.microsoft.com/ja-jp/services/cognitive-services/emotion/)                        | ・画像の感情を認識<br>・ビデオの感情を認識 |
| [Video API](https://azure.microsoft.com/ja-jp/services/cognitive-services/video-api/)                        | ・ビデオのブレを補正<br>・顔を検出して追跡<br>・モーション検出　動き検出<br>・ビデオのサムネイルを作成<br>　勝手に重要な部分を抜粋して動画を作る |
| [Custom Vision Service](https://azure.microsoft.com/ja-jp/services/cognitive-services/custom-vision-service/)                        | 画像の新たなラベルを学習させる |
| [Video Indexer](https://azure.microsoft.com/ja-jp/services/cognitive-services/video-indexer/)                        | ビデオを分析して人やキーワード等を抜粋する |
| [Speaker Recognition API](https://azure.microsoft.com/ja-jp/services/cognitive-services/speaker-recognition/)                        | 話すことにより人を認証 |
| [Bing Speech API](https://azure.microsoft.com/ja-jp/services/cognitive-services/speech/)                        | オーディオをテキストに変換 |
| [Custom Speech Service](https://azure.microsoft.com/ja-jp/services/cognitive-services/custom-speech-service/)                        | ・カスタム言語モデルの作成<br>・カスタム音響モデルの作成<br>・カスタム モデルのデプロイ<br><br>誰かに特化したようなモデルの作成 |
| [Text Analytics API](https://azure.microsoft.com/ja-jp/services/cognitive-services/text-analytics/)                        | ・評判分析<br>否定的か肯定的か<br>・重要なフレーズを抽出<br>・トピック検出<be>・言語を検出<br>　英語、日本語等 |
| [Translator Text API](https://azure.microsoft.com/ja-jp/services/cognitive-services/translator-text-api/)                        | 翻訳 |
| [QnA Maker API](https://azure.microsoft.com/ja-jp/services/cognitive-services/qna-maker/)                        | 既存のコンテンツから FAQ サービスを作成<br><br>既存の質問票から文脈等を理解して、質疑応答サービスの構築 |
| [Bing Autosuggest API](https://azure.microsoft.com/ja-jp/services/cognitive-services/autosuggest/)                        | 検索枠の自動補完<br>あんまりAI関係ない |
| [Bing Image Search API](https://azure.microsoft.com/ja-jp/services/cognitive-services/bing-image-search-api/)                        | Web画像検索 |
| [Bing News Search API](https://azure.microsoft.com/ja-jp/services/cognitive-services/bing-news-search-api/)                        | Webニュース検索 |
| [Bing Video Search API](https://azure.microsoft.com/ja-jp/services/cognitive-services/bing-video-search-api/)                        | 動画検索 |
| [Bing Web Search API](https://azure.microsoft.com/ja-jp/services/cognitive-services/bing-web-search-api/)                        | Web検索 |

#FrameWork
| 名前                                                              |               公式概要 |
|:------------------------------------------------------------------------|:------------------|
| [Chainer](https://chainer.org/)            | A Powerful, Flexible, and Intuitive Framework for Neural Networks |
| [Keras](https://keras.io/ja/)            | Kerasは，Pythonで書かれた，TensorFlowまたはCNTK，Theano上で実行可能な高水準のニューラルネットワークライブラリです． |
| [TensorFlow](https://www.tensorflow.org/)            | An open-source software library for Machine Intelligence |
| [Caffe](http://caffe.berkeleyvision.org/)            | Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by Berkeley AI Research (BAIR) and by community contributors. Yangqing Jia created the project during his PhD at UC Berkeley. Caffe Is released under the BSD 2-Clause license. |
| [Scikit-learn](http://scikit-learn.org/stable/)            | Simple and efficient tools for data mining and data analysis Accessible to everybody, and reusable in various contexts Built on NumPy, SciPy, and matplotlib Open source, commercially usable - BSD license |