読者です 読者をやめる 読者になる 読者になる

648 blog

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

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

テクノロジー テクノロジー-人工知能 (AI)

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

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

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

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

 

関連記事

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

タイプ

畳み込みニューラルネットワーク(Convolutional Neural Networks, CNN)用ライブラリ

難易度

★★★

特徴

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

開発方法8.OpenCV

opencv.jp

タイプ

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

難易度

★★★

特徴

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

まとめ

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

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

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

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