初心者でも作れる!対話AIの作り方とAIの仕組み!フクロウ2018/5/232019/8/9最近、AI技術の進歩が良く話題になりますよね。Learningなどの機械学習を組み込んだシステムを作ってみたい!という方、多いんじゃないですか?AIを使ったシステムは既にいろんなところで実用化されています。こんなシステムを作るにはどうすればいいのか、この記事で解説していきます!この記事ではまずはじめにAIシステムの作り方を簡単3ステップに分けて解説します。それを参考にして、「対話AIシステムが簡単に作れるAPI」と行った応用的な内容のご紹介をします。Learningなどの機械学習を組み込んだシステムの作り方を3ステップに分けて解説します!機械学習と言っても色々ありますが、ここでは「教師あり学習」と呼ばれるものについて考えていきます。AIを使ったシステムを作成する流れを大きく分けると以下の3ステップです。データを集めるモデルを学習させるシステムに組み込むこの3ステップを詳しく見ていきましょう!1データを集めるデータ解析などでもそうですが、「データを集める」ステップが一番時間がかかります。機械学習を使って、例えば対話システムを作ると考えましょう。AIさんに「元気ですか?」に対する返答を覚えてもらいたい時、Aさん「元気ですか?」→Bさん「元気だよ!」Aさん「元気ですか?」→Bさん「まあまあかな」Aさん「元気ですか?」→Bさん「寝不足なんだよね」このような会話のデータを膨大な数集めます。このデータを集める方法としては無償・有償で公開されているデータセット使うTwitterなどのSNSから自分で集めるその他インターネット上にあるデータを自分で集めるなどの方法がありそうです。インターネット上にあるデータは、多くの場合何かしらかの形で「コンピュータに分かりやすい形」に構造化されています。HTMLなどがそれですね。それを機械学習で使いやすいように前処理する必要があります。HTMLタグを抜いたり、必要ならば絵文字を削除したりが必要ですね。別の例でも考えてみましょう。「写真に映っているのが犬なのか猫なのかを識別するシステム」を作りたいとしましょう。stocその時には「犬または猫が映った画像」と「その画像に映っているのが犬なのか猫なのかが分かる情報(=ラベル)」がセットになったデータを大量に集めなければなりません。このような作業をまとめて「データを集める」ステップとここでは呼ぶことにします。2モデルを学習させるデータを集めたら、実際の機械学習モデル(アルゴリズム)を学習させます。イヌとネコを分類する問題を例にして考えてみましょう。「本当のラベルを出力できるように機械学習モデルを修正する」これを繰り返すことでイヌかネコかを識別するモデルを学習します。stoc例えば正解ラベルがイヌかネコかの2つしか無いのなら、イヌを1、ネコを0にしてあげればコンピュータ上でラベルを簡単に扱えますね。詳しく学習の仕組みを見ていきましょう。中学校でやったような、y=f(ax+b)という関数があります。ここでt=ax+bとおけばy=f(t)ですね。fはよくわからない関数ですが、数字を与えられると必ず0~1の範囲で答えを返します。MEDIAここでこの関数fを上の図の関数だとしましょう。これならば、t=ax+bの値がどんな値でも、0~1の範囲に収まる値を返しそうです。ここで、xがネコやイヌの画像を数字にしたものだとすると、ネコの時にy=0、イヌの時にy=1になるような関数にするには、aとbの値をいじってあげれば良いことが分かります。このaとbをパラメータと呼びます。ニューラルネットワークなどの機械学習モデルでは、関数が目的の出力yを返すようにパラメータを修正することを学習と呼んでいます。後はこの関数がもっと大規模で複雑になったものが機械学習モデルだと思ってください。機械学習では最終的に、全てを数字に置き換えて扱う必要があります。正解ラベルこれらを数字やいくつかの数字の組み合わせ(ベクトル・行列など)で表すことができるのならば、得手不得手はありますが機械学習で扱うことができそうです。私達人間が頭を悩ませて、良さそうなaとbを探すことでもモデルを調整することはできますが、実際の機械学習モデルの学習フェーズでは、このパラメータの修正も自動で行ってくれるアルゴリズムを使います。3システムに組み込むさて、機械学習モデルの学習が終わっても、システム全体としてはまだ完成ではないですね。UI(ユーザーインターフェース)の実装が必要になります。SNS上で動く対話システムを作るのであれば、SNSから対話システム宛てに投げられた「問いかけ」を受け取る機能と、SNS上に「返答」を返す機能が必要です。Webアプリで画像分類を行うなら、ユーザーが画像をシステムにアップロードする機能や、分類結果をWebブラウザで表示する機能を追加しないといけません。必要であればデータベースなどとも連携する必要があります。これらを作ることで、ようやくAIを使ったシステムが完成します。stoc手軽に対話システムを実装するには、IT企業が公開しているAPIを使うのが近道です。APIとは、「ソフトウェアの一部をWEB上で公開する事によって、誰でも外部から利用する事ができる」機能です。2019年11月21日さて、この記事では対話システムを作るためのAPIを紹介しましょう。対話システムが作れるAPIはいくつかありますが、ここでは有名所を2つ紹介します。docomoが公開している対話システムのAPIです。ブログなどでは、docomoの雑談対話APIの紹介が多いですが、そちらのAPIは2018年6月末に廃止予定です。この自然対話APIを使えば、自分で対話システムの機械学習部分を自力で作ること無く、対話システムを作れます。APIは、RECRUITが公開している日常会話応答機能を提供してくれるAPIです。memory(LSTM)を使ったシステムが利用できます。Learningに連なるニューラルネットワークモデルです。Learning/ニューラルネットワークのパワーを体験してみたいなら、このAPIを使ってみたいところですね。apiを使って実装する方法を紹介しました。何かに特化した対話システムを作りたい。自分で一から作ってみたい。思ったら、深層学習を始めとしたAI分野の勉強を始めましょう!AI分野の勉強コンテンツはたくさんありますが、大きく分けて4つの方法を紹介します!参考書で独習するWebコンテンツで独習する勉強会で学ぶオンラインスクールで勉強する現状で手軽に勉強を始めるなら、この4つが選択肢になります。これ以外にも、専門の大学に行くという最も手堅い方法もあります。ライフスタイルに合うか考えて選んでみてください。上の4つについては、侍で記事を公開していますので、是非参考にしてください。2019年6月22日また、侍では機械学習を三ヶ月から六ヶ月程度の期間で習得するためのプログラミングスクールを開講しています。本腰を入れて勉強したい方、是非チェックしてみてください!侍エンジニア塾とは?詳細はこちらからこのままPythonを学び続けて大丈夫?なぜPythonを学ぶのか?あなたがPythonを学ぶ理由は何でしょうか?Pythonが人気だからとりあえず学んでいるAIや機械学習の分野に興味があるからPythonは初心者向けの言語と言われています。その理由としてシンプルでわかりやすい構文や、実用的なライブラリが豊富なことが挙げられ、実際に学びやすい言語です。あなたが機械学習に興味があって、とくに知識も無いまま学習を進めると、挫折する可能性が高いと言えます。機械学習の分野はプログラミング以外にも、専門的な知識や数学の知識も必要になります。なんとなく学習していると早い段階でつまづきやすく、そのまま挫折してしまうなんてことも...。最適な学習環境を用意する必要なライブラリ・ツールを導入するわからないことを質問できるメンターを見つけるなどが必要になります。効率よく学びたいなら、無料体験レッスンがおすすめこのままPythonを学び続けていいのかな...まだまだ知りたいことがたくさんある!もっと詳しくPythonについて知りたい!といった悩みや願望を持っている方は、弊社「侍エンジニア塾」をご利用下さい。フリーランス・起業サポートを受けることができます。業界屈指のコンサルタントから、効率的な学習方法や仕事獲得術、今後のキャリアまでさまざまな疑問を相談してみませんか?遠方の方でもオンラインで受講できます!お気軽に受講下さい。無料体験レッスンを受けるまとめこの記事ではAIシステムの作り方、特に機械学習の「教師あり学習」に注目して解説しました。機械学習を手軽に使うために、いろんな企業が公開している学習済みの機械学習システムが使えるAPIについても解説しました。まとめると、AIを使うシステムを作るには以下の2つの選択肢があります。大手IT企業が公開してくれているAPIを使って手軽に作る自分でAIを勉強してデータ集めから頑張って作るまた、対話システム、画像認識システム、音声認識システムなど、様々なAI技術が手軽に試せる&実装できるようになってきていますので、ドンドン試して面白いAIを活用したシステムを作ってみてください。TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人フクロウ第一言語はPythonです。皆さんRustやりましょう。