プログラミングで人工知能を活用したサービスの作り方

はてブ

人工知能でどんなサービスを作ることが出来るのか、知っていますか?
この記事では、最近何かと世間を騒がせている人工知能についての基本的な知識から、サービスへの導入までを簡単にご紹介していきたいと思います。

エンジニアでも、順を追って学習しないと難しいと言われている人工知能ですが、一体中身はどのような構造になっているのでしょうか。
また人工知能のプログラミングができると何ができるのか。そして、プログラミングができなくても、2010年に始まった第三次人工知能ブームは、どこまで進化し続けるのでしょか?
AIによって仕事が奪われるとまで言われる、今回のブームで私たちの身の回りに出てくる影響が少しでも想像できるといいですね。
それではいってみましょう!

Wikipediaによると

ウィキる

人工知能は、「言語の理解や推論、問題解決などの知的行動を人間に代わってコンピューターに行わせる技術」、または、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」
と定義されています。しかし、未だこの分野における確定した定義は、存在しておりません。従って、説明をする人・聞く側によって、解釈は多岐に渡ってしまう場合もありますのでご注意下さい。
では、前述の定義をもっとわかりやすく噛み砕いてみましょう。
簡単に言えば、人間のような判断力と学習能力をコンピューターに組み込む技術のことになります。導入の部分でも書いたように、今回の人工知能のブームですが、すでに第三次ブームなんです。何も今に始まったわけではないんですね。
一説では、第一次人工知能ブームは1900年代後半に、ジョン・マッカーシー氏が「人工知能」という言葉を作り出したと言われています。しかし、この段階では単純なパズルを解くことしかできなかったために、早々と終焉しました。
第二次は人工知能ブームは、1980年代に「エキスパートシステム」という方法が考えられ、実際の医療の現場にまで及びました。エキスパートシステムは、その名の通り、専門家の知識をコンピューターに移植させることで問題を解決しようとしたものです。
そして、今の人工知能ブームが2010年ごろから始まった、第三次人工知能ブームです。ディープラーニングや画像認識、音声認識の精度が、第二次のブームの時よりも格段に上がりました。

人工知能種類

人工知能

では、人工知能の種類は現在はどのくらいあるのでしょうか。上述でもあるとおり、「機械学習」や「ディープラーニング」がそれに当たります。
つまり、大きく分けると人工知能の種類は2つだと覚えておいて良いでしょう。
厳密には目的や仕組みによって、多種多様な人工知能が存在していますが、最初は大きく上述のような理解で十分です。
まず「機械学習」を説明します。
これはコンピューターが学習をする方法を指しています。さらに分解すると、”教師あり学習”と”教師なし学習”の2つの方法があります。
前者の”教師あり学習”は、覚えて欲しいお題と解をセットにしてコンピューターに渡し、記憶させます。
後者の”教師なし学習”は、お題だけを渡し、あとは関連する膨大なデータから算出できるようにコンピューターに指令をします。
次にディープラーニングを説明します。
ディープラーニングを日本語にすると、「深層学習」。初見では、意味がわかるようでわからないですね。こちらは、コンピューターが自ら、深く学ぶことが可能になったということです。だからディープラーニングなんですね。こちらの技術は、非常に難しいのではと長年言われてきました。しかし第三次人工知能ブームで、この技術が脚光を浴びたため、今や人工知能といえばディープラーニングといってもいいでしょう。実はこれも、「機械学習」技術の1つになります。ディープラーニングはデータを基に、その特徴を見つけ出し、認識・分類してくれるため、画像認識・音声認識の技術に応用されてきています。

人工知能とプログラミングの違い

プログラミング違い

人工知能とプログラミングはどう違うのでしょうか。
人工知能とは、人がプログラミングをすることによって作り出した知能のことを言います。
人工知能はプログラミングによって生み出されるもので、プログラミングしない限りは人工知能が登場することはありません。
そのため、人工知能は言語の一つでもなく、プログラミングでもありません。

人工知能を扱うために必要なスキル・知識

知識・スキル

ここまでは、「人工知能とは何か」「人工知能の種類」を説明してきました。人工知能を理解するために、まずは機械学習、ディープラーニングに関して深く理解しましょうという内容でした。
では基礎的な知識を理解したあとは、どんなスキル・知識が必要になってくるのか、ご紹介したいと思います。

プログラミング言語

言語

人工知能を作るには、プログラミング言語を使う必要があります。
主に使われる言語は、Python, C言語, C++, Javaが使われています。ここでおすすめする言語は、Pythonになります。
Pythonは世界的に、とてもメジャーな言語でありますし、汎用性とシンプルなコードで書ける設定になっていることからも日本でも人気が出ている言語でもあります。

「ニューラルネットワーク」

ネットワーク

こちらは、ディープラーニングを学ぶ際にも出てくるアルゴリズムです。人間の脳のように学習能力を持たせるアルゴリズムを「人工ニューラルネットワーク」と言います。
多層構造(入力層、中間層、出力層)になっており、これがディープラーニングの強みに繋がっています。

社会人になってからの人工知能の学習は遅い?

遅い?

社会人になってからこそ人工知能の作り方を学ぶべきです。
人工知能に多くのデータから自動で学習するようにプログラミングすることで、勝手に学習し、データ分析を行なってくれます。

既存の産業も人工知能が活用されることでどんどん自動化されることになります。

ただし、ここで必要なのは今まで実際にその仕事を担っていた人たちなのです。

ニュースやメディアでは、人工知能が仕事を奪うといったように書かれていますが、今、
そういった産業で働いている人の暗黙知の部分も数値化できないことには、人工知能は効果を発揮することができません。

そういった人こそ、人工知能について学び、産業の効率化進め、さらなる発展を遂げる一躍を担うチャンスがあるのです。

人工知能を(一部)無料で学べるサービス

サービス

実は、オンライン上で人工知能を無料で学べるサービスがあります。
無料で公開されている範囲では、人工知能の基礎的な部分までしか学習できませんが、環境構築の必要なく、すぐに学習することができるのでオススメです。

Aidemy

人工知能に特化したオンライン学習サービス。
機械学習やディープラーニングといった内容を実際にコードを書きながら学習することができます。

Paiza

Paizaはオンライン上で動画を見ながら学習することができるサービスです。
人工知能だけでなく、その他の言語も学習することができます。
転職サービスもあるので、学習した後に活用することができます。

人工知能学習におすすめの本

理論を学ぶ

Pythonを学ぶならこれ!

『独学プログラマー Python言語の基本から仕事のやり方まで』

機械学習も取り入れてPythonしよう!

『Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』

ライブラリフレームワークを活用しよう!

先に知っておく

書籍やオンラインで人工知能を学んだあとは、世に増えてきている、ディープラーニングのライブラリを活用して、簡単に人工知能を作ってみましょう!無料で利用できますし、チュートリアルもあるので初学者でも、安心して学習を後押ししてくれるはずです。

おすすめライブラリ

Keras

迅速な実験を可能にすることに重点を置いて開発されており、Pythonで書かれた、高水準のニューラルネットワークライブラリです。

pandas

データの解析を支援するための機能を提供しており、こちらもPythonで書かれております。Python単体で、データを処理するよりも高速で処理することができます。

人工知能を使ったサービス

目安の期間は

「Pepper」

ソフトバンクが販売する、Pepper君です。最近お寿司屋さんにいくと受付にいる、あの可愛いロボットです。
人の顔を認証して、コミュニケーションを自動でとってくれます。

「Seeing AI」

カメラを向けるだけでナレーションしてくれるアプリです。カメラを周囲に向けると、認識したものを説明してくれます。

スマートシティ化

Iotと組み合わせることで、近い将来スマートシティ化される見込みです。

まとめ

まとめ

いかがでしたか?
人工知能は、難しいと言われていることは間違いありませんが、プログラミングにおいて、あくまで分野の1つです。
他のプログラミング言語を学び出すのと同じなので、あまり尻込みをする必要もなさそうです。
巷では、仕事が奪われて大変だと騒がれている中で、人工知能の知識・スキルを持っておくと、その類の話題に踊らされることはなくなるかと思います。
言葉節だけを信じるだけでなく、自分で学習して、人工知能が溢れる社会になっても、慌てることなく、人工知能を使いこなしてしまいましょう!

子どもの頃見ていた、ドラえもんの世界がやってくるのも、すぐそこまでやってきました。
ぜひ今回をきっかけにAIの世界に飛び込んではいかがでしょうか?

関連記事