AIの時代!次世代のエンジニアになる為の勉強法とは?

◆AIとは?

AIの正式名称はArtificial Intelligence(略称AI)、人工知能の略になります。
人工知能とは、人間の脳が行っている知的な作業をコンピュータで模倣したソフトウェアやシステム。
具体的には、人間の使う自然言語を理解したり、論理的な推論を行ったり、経験から学習したりするコンピュータプログラムなどのことをいいます。

上述の通り、実は人工知能いうの明確な定義って実は決まっておりません。
理由としては、各々で認識がずれていたりするからなんです。

AIは1950年頃から、話題にはなっておりましたが理解されておらず技術力等の問題により断念されてきました。

・第一次人工知能ブーム
・第ニ次人工知能ブーム
・第三次人工知能ブーム

このように実は何度か話題になりその度に断念されてきました。
今は第三次ブームに当たりますね。
現在「ビッグデータ」と呼ばれて いるような大量のデータを用いることで人工知能(AI)自身が知識を獲得する「機械学習」、
次いで知識を定義する要素を人工知能(AI)が自ら習得するディープラーニング(深層学習や特徴表 現学習とも呼ばれる)が登場したことが、ブームの背景にあります。

◆AIの活躍の場

今の世の中様々な分野でAIが取り入れられてきています。
医療、介護、ショッピング、家電や自動車。

例えば、

●実店舗でもAIが活躍?

人工知能とロボットを組み合わせた接客ロボットが、実店舗で活躍しています。
ロボットはお客さんがやってくると、顔認証をして来店歴がある顧客なのか、常連客なのかを識別します。
常連客の場合、来店回数や、過去に顧客が注文をしたメニューなどの情報をもとに、AIを駆使して顧客に適したサービスを提供します。また同時に、データを分析し、売り上げ向上に役立つ統計情報を得る機能も備え付けられています。
実際に、この機能を導入しているラーメン店では、来店するとロボットが「いらっしゃいませ」と声をかけ、来店客を特定します。
その後顧客の来店回数が3回に達しているとクーポンを出したり、顧客の年代に合わせた食べ方のアドバイスなどをくれます。現在は、ロボット接客を受けたい場合は、事前にアプリから顔登録が必要なようですが、今後この作業の必要性もなくなる位、技術が発展していくかもしれません。

参考

AIがラーメン店で接客。おいしい食べ方の指南も

また、
【課題】
中国・貴州省の省都である貴陽市では、経済成長や都市化の進展により市内中心部の交通渋滞が大きな社会問題となっています。
【解決策】
NTTデータは中国科学院ソフトウエア研究所と共同で、交通管理用のカメラを通じて収集した大規模な交通量データを分析。
渋滞予測・信号制御シミュレーションを行って信号パラメーターを最適化するAIにより、中国貴陽市の観山湖区19交差点の信号機約220機を制御する実証実験を行いました。
渋滞緩和および交差点における交通処理量の改善効果を検証した結果、対象エリアにおける渋滞が平均で7%、最大で26%改善され、交通処理量も平均6.7%改善したことを確認しました。
参考
http://www.nttdata.com/jp/ja/services/sp/ai/004/index.html

◆今後の需要は?

ECやWebメディア、農業、医療などの領域はIotやビックデータが普及し、データが蓄積することでさらなる進化を遂げることになると思います。
画像認識や音声認識などの領域も同様でしょう。
ディープラーニングに関しても、GoogleやFacebook等がソフトウェアのソースコードを公開し世界中のエンジニアが利用できる環境にあります。
その結果、かなりのスピード感で改良、進化を遂げており、例えば記憶機能を持つようなディープラーニングのアルゴリズムが現在注目を集めており、記憶し、考慮した上での論理的な質問回答が研究レベルでは実現しつつあります。
また、自動運転や需要の予測などの環境情報の解釈、理解が課題であった領域でもどんどん実用化されていくことになるでしょう。

成長戦略「未来投資戦略2017」で、政府は『AI』やモノのインターネットであるIoTなどを産業や社会生活に取り入れて様々な社会問題を解決する目標を掲げるなど、『AI』を活用した政策運営に力を入れています。
また、『AI』を活用したものづくりや医療・介護サービスなど、新しく需要が見込まれる分野を想定した地方創生推進交付金の支給対象の拡大も検討されています。
今後もこうした政策的な後押しも受けて、『AI』は私たちの身の回りで一層活躍の場を広げていくと考えられます。

◆学ぶために必要なスキル、言語は?

AIエンジニアは、AIの知識・技術を持つ人が不足していることから、一般的なエンジニアよりもかなり良い待遇で雇用されているようです。
まだ活躍の場は、限られてくることから、ITエンジニアとしての経験を積み、技術力を備えている人が、さらにAIエンジニアに必要なスキルを習得していくことが重要になりそうです。

数学の知識、データベースの運用知識などそもそもAIのエンジニアとしてではなくとも必要な知識も重要で、
例えば・微分積分学 ・線形代数学 ・確率論、統計学についての理解は偏微分が機械学習のパラメーター最適化につかわれたり、統計学を使ってデータ解析を行ったりするために必要です。

データベースの運用知識、MySQLやNoSQLなどのデータベース関係データベース管理システムの知識はデータ解析を行うための必須スキルです!

ただ、やはり機械学習を学ぶ面が新しい分野になるかと思いますが
既にPythonライブラリとして提供されています。
有名なものであれば、・scikit-learn ・genism がよく使われています。
また、深層学習のフレームワークも多くあり、・TensorFlow ・Chainer ・Caffe ・Pytorch  などがあります。

Pythonは現在の機械学習、科学計算の分野で最もシェアを獲得している言語です。
「機械学習をするならPython!」と言ってしまっても、過言ではありません。

◆どんな勉強をしていけばいい?

私もいろいろ調べてみましたが、大枠で言うと以下の勉強が重要になりそうです。
他のプログラミングに比べたら必要な数学的基礎知識が多いですが、

・まずは前述した数学の知識

微分積分学、線形代数学、確率論、統計学を中心にデータ解析などを理解するうえで必要そうです。

・機械学習の基礎知識・機械学習アルゴリズムの知識

ここを把握することが難関になりそうです。
基本的には本で読むか、講師付きの学習を行うか。
ここになるでしょう。

そもそも数学としての知識がないと理解するのも難しいのですが、
「コンピュータにも人のように学習できる能力を与えられたらいいんじゃない?」という発想から、研究が始まり実際にできるようにしたのが機械学習です。
今までプログラムしていた「このような特徴があれば、それは猫だ」というルールを自動で獲得することが機械学習の目的と言えるでしょう

オススメの本

人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書) [単行本]
松尾 豊
KADOKAWA/中経出版
2015/3/11

・Pythonの知識

Pythonで実現可能なものは簡単にいうと、・WEBアプリ ・データ解析/分析ツール ・人工知能 です。

Pythonが人工知能の分野で使われる理由として
・Pythonは科学技術計算の分野で発展してきた
・Python自体の汎用性や言語自体の簡潔さが人気を博した
・Pythonが持つ習得しやすさ、生産性の高さ、コードの可読性により多くのひとから支持され
※googleの言語という事からも使われる理由かと思います。

PythonはPearl,PHP,Rubyと同様に動的言語です。 Pythonは教育用言語であるABC言語の影響を受けています。
Pythonは静的で型に厳格なC言語やJava言語と比較すると習得しやすく、教育用言語として子供が最初に学習する言語としてもよく利用されます。

動画での勉強、書籍での勉強様々ありますが、チュートリアルなどでいきなり作っていくのも良いでしょう。

オススメはこれです!
1動画2分程度で学べるコンテンツでPython学習の導入にぴったりのサイト

URL:http://dotinstall.com/lessons/basic_python_v2

・習った内容を人に教える

これはどの業務でもそうなんですが、人に教えることが一番重要になります。
自身の覚えてる内容って人に説明すると難しかったりすることありませんか?
完璧に理解することは誰でも難しいですが、人にわかりやすく教えることで自身で理解していない部分が把握できるはずです。
一通り知識、仕組みを学べたら人に教えてみるが好いでしょう。