News

ニューラルネットワーク型対話AIを作ってみた②

投稿日:2018年12月25日 更新日:

こんにちは。最近ゲームの周回に追われている春秋です。

 

今回は、連載記事の第2回です!

前回はWebアプリ「グチ聞き彼氏」を紹介しました。前回の記事はこちら

 

さて、ここから本題のAIについてです。グチ聞き彼氏の対話AIを紹介していきます。

 

第2回の目次は以下のようになってます。


1.AIとは
2.ニューラルネットワークとは
3.グチ聞き彼氏用対話AIの概要


 

 

では早速、AIの内容に入っていきたいと思います!

 

1.AIとは

AIとは、人工知能(Artificial Intelligence)の略で、

人間の脳が行っている情報処理を模倣したソフトウェアのことを指します。

 

 

最近はAIという言葉を耳にする機会も増えてきましたよね。

 

 

皆さん、AIに対してどのようなイメージがありますか?

 

 

 

ポジティブなイメージでしょうか、ネガティブなイメージでしょうか。

 

 

実は私この仕事に就くまで、AI開発ってヤバいことしてるんじゃないか、なんて思っていた時期もありました。

 

なんかこう、暗い実験室で科学者たちがメスとか持ってて、血まみれの手で人間の脳みたいなものを作りだしていて。

禁忌を犯しているその科学者たちの不気味な笑顔まで想像できちゃう、、、みたいな。(笑)

 

 

はい、アニメの見過ぎですね。(笑)

 

 

まぁ私の話は置いといて。

AIに対してのイメージって、一般的にもネガティブなものが少なくないみたいですね。

 

AIに仕事を奪われるんじゃないか、、、

人間を超えてしまうんじゃないか、、、など。

 

といっても、それが本当になるのかなんて分からないし、

AIを全然知らないからイメージが湧かないって方もいますよね。

 

実は私もそうです。

けれど、AIも所詮はただのプログラミングコードです。

 

 

 

お、おう、、、って感じですよね。(笑)

 

 

ただ、

結局AIって何するの?

 

 

と思っている方も多いと思います。

 

 

最も多いのは、何かしらの入力情報に基づいて判定結果を出力するタイプです。

 

ゆえに認証系、判定系、対話系が多いんですよね。

 

 

そして、これらのAIは2種類のフェーズ(学習フェーズ・運用フェーズ)があります。

学習フェーズ:学習データ(教師データともいう)に基づいたAIパラメーターの生成

運用フェーズ:生成されたAIパラメーターを用いた実利用

 

 

AIを勉強している方は、ネットなどのサンプルソースコードを使って、学習フェーズを行ったことがあるかもしれません。

けれど、私が調べている限り、運用フェーズまで紹介しているものは少ないんですよね。(というより、ほとんどない。)

 

 

しかし!

この連載では運用フェーズまで行うので、安心してください^^

 

 

どうせ作るなら、使えるAIを!(笑)

 

 

2.ニューラルネットワークとは

皆さん、ニューラルネットワークという言葉を知っていますか?

 

 

AIについて多少なりとも知っていないと、普段耳にする言葉ではないので、

聞いたことすらないかと思います。

 

深層学習(ディープラーニング)なら、聞いたこともありますかね?

 

 

実は、ディープラーニングって

ニューラルネットワークの一部なんです。

 

 

じゃあニューラルネットワークってなんなのかっていうと、

AIの学習(機械学習)の手法のひとつです。

 

 

つまり、関係的には以下のようになります!


この関係、意外に知らない人が多いです。

 

機械学習には、ほかにも強化学習というものもあります。けれど、

 

機械学習以外にAIなんてあるの?

 

はい、あるみたいです。エキスパートシステムというものが。詳しくは知りませんが。

 

興味があれば、その他のAIについても調べてみてください!

 

 

さて、AIの大まかな全体像がわかったところで、ニューラルネットワークについて少し説明したいと思います!

 

 

 

ニューラルネットワークというのは、人間の脳にあるニューロンの繋がりを数式で表現しているものです。

 

 

人間の判断能力って、凄いですよね。機械と比べると尚更。

だから、人間の脳で行われている処理方法を機械に真似させよう!ってことです。

 

図が分かりやすいと思うので、ニューラルネットワークの概要図を以下に。

 


AIを勉強してる方なら、よく見かける図かもしれません。

 

Xは入力情報、Yは出力情報、矢印のWは重みと呼ばれます。

ニューラルネットワークの学習というのは、

XとYを大量に用意して、Wを求めることです。

 

そうすると、学習したWが既知の値となる為、Xを入力した時に、Yが出力されるAIができます!

 

 

 

このニューラルネットワークを用いると、多クラス分類器と呼ばれるAIを作ることができます。

分類器とは、判定対象の特徴量を入力情報として、それに基づいて判定対象が何であるか推定する機能です。

 

要するに、入力されたものが、どのクラスであるか分類・判定するということです。

 

 

3.グチ聞き彼氏用対話AIの概要

アプリ「グチ聞き彼氏」の対話システムについてです。

 

アプリ「グチ聞き彼氏」の対話AIは、先ほど説明したニューラルネットワークを

2つ組み合わせています!

 

なぜ2つ組み合わせているのかというと、精度を上げるためです。

 

1つ目は、話題カテゴリ判別AI
2つ目は、返答決定AI

です。

 

話題カテゴリ判別AIでは、ユーザに入力されたグチの話題カテゴリを判定します。

 

現在のグチ聞き彼氏では、話題カテゴリは

「仕事」・「学校」・「恋愛」・「家庭」・「お金」・「健康」・「その他」

です。

その後、返答決定AIで返答文言を決定します。

 

いきなり返答決定AIにしてしまうと、全返答文言で返答判定が行われてしまうんですよね。

数が多いと、1つの返答文言が返ってくる確率が下がります。そこで、最初にカテゴリを特定すれば、

そのカテゴリが持っている返答文言だけで返答判定ができます!

 

例えば、それぞれのカテゴリの返答文言が100個ずつだとすると、

700個で判定するよりも、7個で判定した後に100個で判定する方が、なんとなく良さそうというのは分かってもらえるかなと。

 

 

以上の説明で気付いた方もいると思いますが、

AIが自身で返答文を作っているわけではありません。

あらかじめ用意している返答から、適切な返答を判定して返す、一問一答式対話AIです。

 

ですから、会話はできません。

いずれ、自由対話までやってみたいですけどね。

 

 


 

それでは、今回はこの辺で!

つまらない説明ばかりになってしまいましたが、いよいよ!

次回からは、実際にソースコードを公開しつつ、グチ聞き彼氏の対話AIを紹介していきたいと思います!!!

 

是非見てくださいね♪

以上、春秋でした(^^)/

 

 

投稿者プロフィール

春秋
春秋
マトリックスユニバース事業部/アプリケーションエンジニア。現在学んでいるプログラミング言語→HTML/CSS・PHP・JavaScript・Ruby・Python。ゲームと飲み会と犬が好きです。

-News
-,

Copyright© ZAIZEN Engineering Blog , 2019 All Rights Reserved Powered by STINGER.