648 blog

kyamanekoです。IT、思想、哲学、心理学などの記事を書いています。

人工知能アプリケーションの開発を簡単にはじめる8つの方法

人工知能の開発を簡単にはじめる8つの方法

従来は人工知能の開発というと、高度なスキルがないと手が届かないイメージがあった。
しかし現在では、多少のプログラミングの知識があれば、人工知能を使ったアプリケーションやシステムを開発できるようになった。

そこで今回は、手軽にはじめられる人工知能を使ったアプリケーションの開発方法をまとめてみた。

言語処理AI」「音声処理AI」「画像処理AI」など様々な種類の技術を、入門者向けに広くピックアップした。興味のある分野について、それぞれ掘り下げてみることをおすすめする。

※2016.07.23「Amazon ML」を追記

 

目次

関連記事

www.kyamaneko.com

www.kyamaneko.com

www.kyamaneko.com

 

開発方法1.ユーザーローカル社の「全自動会話API」

ai.userlocal.jp

タイプ

チャットボット

難易度

★☆☆

特徴

  • 簡単なJSONサービスで、「りんな」のようなフリートーク型のチャットボットを開発できる
  • 日本語対応している
  • 現在は申し込みを行った人限定でAPIを公開している
  • ユーザーローカル社で機械学習をさせたAIが組み込まれているが、まだ学習途上のようで、精度はまだまだの様子
  • 用途は基本的に「お遊び」ということになる
  • 実際に組み込んでみたサンプルは以下▼

「全自動会話API」サンプル
「全自動会話API」サンプル

開発方法2.Locl Interactive Incの「Meya」

Meya bot platform

Meya Bot Platform

タイプ

チャットボット

難易度

★☆☆

特徴

  • GUIベースで、LOHACOの「マナミさん」のような台本型のチャットボットを開発できる
  • 日本語対応している
  • 無料で利用可能。利用形態に応じて課金となる
  • TwitterやFacebookや独自のアプリケーションにチャットボットを組み込める
  • 簡単なスクリプト言語により、台本を作成して条件によって様々な応答をするよう、プログラミングできる
  • 用途は、「ホームページでの自動案内」「Twitterやslackの自動応答」など

開発方法3.ユーザーローカル社の「形態素解析API」

ai.userlocal.jp

タイプ

形態素解析

難易度

★☆☆

特徴

  • 簡単なJSONサービスで、形態素解析(自然言語を分解し解析する技術)を行うアプリケーションを開発できる
  • 日本語対応している
  • 現在は申し込みを行った人限定でAPIを公開している(前述の「全自動会話API」とセットでアカウント発行してくれる)
  • 用途は、「文章内でよく使われている単語をカウントする」「文章の一致度を比較する」など

 

おすすめ書籍

 

開発方法4.Palo Altoの「Wit.ai」

開発方法4.Palo Altoの「Wit.ai」

Wit -Natural Language for Developers-

タイプ

音声認識&言語認識ボット

難易度

★★☆

特徴

  • 簡単なAPIサービスで言語認識や音声認識を行う、Siriのようなアプリケーションを開発できる
  • 日本語非対応
  • GUIベースでサービス側の構築を行い、独自のプログラムからAPIで呼び出す

開発方法5.Googleの「Cloud Vision API」

cloud.google.com

タイプ

画像認識

難易度

★★☆

特徴

  • APIで画像を送ると、画像内に写っている物の名前をテキストで返してくれる
  • 被写体の人物の感情を類推してくれる
  • OCR機能で画像内の文字を認識してテキスト化してくれる
  • 用途は、「画像の自動タグ付け」「画像の自動分類」など

開発方法6.マルコフ連鎖

h1dia.hateblo.jp

タイプ

未来予測のアルゴリズム(中でも文章生成の事例が多い)

難易度

★★☆

特徴

  • マルコフ連鎖は、現状から未来を予測するためのシンプルなアルゴリズムだ
  • プログラミング言語で独自に実装する必要がある
  • 用途は、「文章の自動生成」「ネット上ユーザーの行動予測」など

 

おすすめ書籍

 

開発方法7.Googleの「Tensorflow」

www.tensorflow.org

タイプ

ニューラルネットワーク学習&分類用ライブラリ

難易度

★★★

特徴

  • ニューラルネットワークの学習と分類を行えるライブラリ
  • 利用する言語は通常Pythonとなる
  • 分類とは、「犬の画像を読み込み、80%で犬、10%で狼である」などと判断すること
  • きちんとニューラルネットワークなどについて学ばないと使いこなすのは難しい
  • 理解すれば、ニューラルネットワークによる学習と分類を行える
  • 画像処理の場合は、後述のCV系ライブラリで物体を切り抜いてから、こちらで分類をする方法がある

開発方法8.OpenCV

opencv.jp

タイプ

コンピュータ・ビジョン(CV)用ライブラリ

難易度

★★★

特徴

  • 画像や映像の中の物体を認識して切り抜いたり、特定の被写体を検出することができる
  • 物体を認識して切り抜く技術はR-CNNと呼ばれ、代表的なものにselective searchなどがある
  • OpenCV自体はPepperをはじめ、さまざまなアプリケーションや機器に組み込まれている
  • 別のCVライブラリに、dlibなどがある
  • 利用する言語はCやPythonなど
  • 比較的簡単に、「人間の顔認識」「写真内の物体検出」「映像内の人の動きの検出」などを実装できる
  • 機械学習については、きちんとCV技術などについて学ばないと使いこなすのは難しい
  • 用途は、「写真上の人の顔の認識」「画像の性質などの分析」「画像や映像の(動的な)加工」など

開発方法9.IBMの「Watson」(追記)

IBM Bluemix - Next-Generation Cloud App Development Platform

IBM Bluemix - Next-Generation Cloud App Development Platform

タイプ

複数AI機能が搭載されたプラットフォーム

難易度

★★★

特徴

  • IBMのWatsonは、複数のAIの機能を搭載している(無料アカウントで確認できたのは、音声、テキスト、画像、翻訳、検索エンジンなど14種のAPI)
  • 現状で考えられる、あらゆる人工知能ソリューションが用意されている印象
  • 6種類のAPIが日本語対応 → IBM Watson Developer Cloud - Japan
  • 一般ユーザーは、WatsonをBluemixというPaaSプラットフォームよりすぐに利用できる
  • Bluemixでの利用については、一定まで無料で、そこから課金が必要(ひとまずカード登録もなく無料で試用できた)
  • Watsonの機能については、Bluemix上のPaaSインスタンス、または外部のアプリケーションからWeb API接続で利用する

開発方法10.AWSの「Amazon ML」(追記)

Amazon Machine Learning (機械学習モデルの作成、実行) | AWS

Amazon Machine Learning (機械学習モデルの作成、実行) | AWS

タイプ

プラグラミングなしで機械学習によるデータマイニング

難易度

★☆☆

特徴

  • Amazon Web Services(AWS)のAmazon ML(Machine Learning)を利用すると、プログラミングなしでビッグデータを機械学習して、未来予測を行える
  • 競合となる「Microsoft Azure」「Google Cloud Platform」の機械学習機能と比べてもっとも簡単
  • 機械学習の知識があれば、細かなパラメータを調整することもできる
  • CSVデータでのインターフェース(CSVデータを読み込ませて、CSVデータで解析結果を取得できる)
  • エクセルを使えるレベルのスキルでディープラーニングを使った機械学習を利用できる
  • 学習したMLモデル(ネットワーク)は、「日々発生したデータをCSVで一括解析=バッチ処理」「Webアプリケーションなどから随時リアルタイムでAPI呼び出し」することができる

www.kyamaneko.com

まとめ

今回は、比較的簡単に人工知能を利用したアプリケーションの開発をするための、8つ(+2)の方法を紹介した。

もし興味があれば難易度の低いものから触れてみて、感覚を掴んでいってみるといいと思う。

人工知能系のAPIやライブラリはますます便利かつ高度になってきている。しばらく前では考えられないほど、無料で様々なことができるようになった。

試してみるなら今しかない。




Amazon.co.jpアソシエイト