2017.04.21AI・IoT・機械学習関連
人工知能の種類とプログラミングするうえで必要な知識・スキル
人工知能とは、まるで人間のような判断力や学習能力などをコンピュータに搭載する技術や分野のことです。近年、人工知能分野は目まぐるしい発展を遂げており、数年後には「さまざまな職業が人工知能を搭載したロボットにとって代わられる」という、SF映画のような話さえ出てきています。
今回はそんな人工知能について解説していきながら、人工知能に関わるうえで必要となる知識や、近年の動向などについてみていきましょう。
【目次】
■人工知能とは|基礎的な知識と機械学習について
◆人工知能とは
◆機械学習とは
◆弱い人工知能と強い人工知能
◆人工知能の歴史
◆近年の主要な人工知能
■人工知能で必要になる知識・スキルとおすすめ教材5選
◆人工知能に関わるうえで必要な知識
◆人工知能で必要になるプログラミング言語
◆機械学習おすすめ教材5選
■人工知能の近年の動向と将来性
◆近年の動向と重要なポイント
◆将来性
◆現在の需要とエンジニアの平均収入
◆人工知能に関する実際の案件
■まとめ
それではさっそく、人工知能について詳しくみていきましょう。
人工知能とは冒頭でも解説したように、まるで人間のような判断や学習が行えるコンピュータやその技術分野のことです。英語ではArtifical Intelligenceと言い、一般的にはAIと略されます。人工知能はさまざまなサービスを始め、業務、福祉、医療、ゲームなど、あらゆる分野で使用されています。
また、人工知能として知名度の高いものではMicrosoftのWatsonが有名かと思いますが、厳密に言うとWatsonは「質問応答システム・意思決定支援システム」と言われるもので、人工知能とは少し違うものとして区別されることがあります。人工知能が人間のように学習や判断を行うのに対し、Watsonは質問に対してデータの中からテンプレート的に応答する「コグニティブ・コンピューティング能力」を商用化したものであるため、人工知能とWatsonは別物として区別されています。Watsonについて詳しくは、IBM Watsonとは|時代のニーズと類似の人工知能をご覧ください。
人工知能は哲学者のジョン・サールによって提唱された、人工知能を2種類に分類する考え方です。「弱い人工知能」とは、道具として用いることを前提とした人工知能のことで、近年では専門分野に使用する人工知能を指す場合が多いです。例えばGoogle DeepMindによって開発された、囲碁を行う人工知能であるAlphaGoは、囲碁以外の用途には向いていないため、弱い人工知能と言えます。
逆に「強い人工知能」とは、道具としてではなく、心を持ったような人間的な人工知能のことを指します。専門的な用途ではなく、人間のようにさまざまなことができる人工知能です。
人工知能の発祥については諸説ありますが、1955年、科学者ジョン・マッカーシーによって『人工知能』という用語が使用されたことが始まりと言えます。それまでにも機械に人間的な機能を持たせられるか、ということについてはさまざまな学者によって議論されていました。また、人間の脳神経についての研究を参考にして人工ニューロン、人工ニューラルネットワークといった人工知能に用いられるアルゴリズムも開発されており、あらゆる分野で人工知能の研究は進められていました。
1956年、人工知能に関する研究発表会であるダートマス会議にて、ジョン・マッカーシーが最初の人工知能「Logic Theorist」を発表しました。これ以降、世界的に人工知能の研究は盛んになり、産業機器に人工知能を用いたり、ゲームを行う人工知能が開発されたりなど、あらゆる分野で開発が始まりました。その後、さまざまな方式の人工知能が考案、研究されていき、近年になって日の目を見るようになってきました。
そして、インターネットの普及によって、インターネット上の情報を用いることができるようになり、機械学習は飛躍的に成長を遂げました。また、人工知能を用いる分野も拡大し、GoogleやSoftbank、Microsoftなどの大手企業がこぞって人工知能技術を用いたロボットやサービスを発表しています。他にも最近では、美術や音楽業界などの芸術分野にも人工知能を用いる試みがなされています。
例えばGoogleはTensorflowというPythonを用いる機械学習ライブラリを公開しています。こちらはニューラルネットワークを用いた機械学習ライブラリです。MicrosoftにもAzure Machine Learningという機械学習アプリケーションがあります。こちらはPythonかRで使用するクラウドベースの機械学習アプリケーションです。「女子高生AIりんな」という会話ボットでも使用されています。他にもCaffeやChainerなどのライブラリ及びフレームワークがあります。
人工知能に関わるうえで必要になる知識やスキルにはどのようなものがあるのか、詳しく見ていきながら、それらを学習するうえでおすすめの教材も紹介いたします。
人工知能に関わるうえでは人工知能の仕組みである機械学習やディープラーニングについての知識が必要になります。先に解説した、機械学習の「教師あり学習」と「教師なし学習」や、ディープラーニング及び人工ニューラルネットワークの「畳み込みニューラルネットワーク」と「再帰型ニューラルネットワーク」などについては最低限知っておくべきでしょう。また、確立や統計、線形代数などの数学的な知識が必要になるため、高校卒業程度の数学Ⅲ、Cの知識が必要になります。
人工知能のプログラミングには主に、以下のプログラミング言語が用いられます。
それでは、機械学習について学習するうえでおすすめのサイトや書籍を5つ紹介いたします。
人工知能は人間を超えるかは、人工知能の基本的な知識や、これまでの人工知能の歴史、経緯、現在の人工知能にできることなどをわかりやすく解説しています。専門的な知識を持っていない方でも読みやすくなっているため、人工知能について学び始めるときにおすすめです。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装は、ディープラーニング、人工ニューラルネットワークについて基礎から学び、実際にPythonを用いてディープラーニングを作成するということを目的とした教材です。本格的な内容ですが、図解を用いているのでディープラーニング初心者にも理解しやすくなっています。
それでは最後に近年の人工知能の動向や将来性などを解説いたします。
近年の人工知能はディープラーニングに注目が集まっています。今回いくつかの人工知能を紹介しましたが、これらはまだまだ人工知能の理想形ではありません。人工知能の最終目的の1つは、人間のように考えて柔軟に行動できるモノを実現することです。現段階では、人工知能は想定外の事態に対応できないという弱点があるため、まだまだ不安要素が多く、人間の目に付く範囲でしか使用できません。
しかし、ディープラーニングの研究が進めば、さまざまなシチュエーションでの想定実験を繰り返し行って経験を積ませることで、想定外の事態であっても人間のように考えて、自ら解決策をひらめき、行動できるようになるかもしれません。そのために、ディープラーニングは人工知能にとって、非常に重要なポイントと言えます。
将来的には現在よりも人工知能は、我々にとって身近なものとなり、街中のいたるところに配備されると予想されます。それらの人工知能をあらゆるIoT製品などと連携させて、より便利な街づくり、いわゆるスマートシティ化ができると期待されています。
それだけでなく、さまざまな職業を人工知能に担当させることも期待されています。例えば危険な場所での作業や、工数の掛かる業務などを人工知能に担当させることが望まれています。
人工知能の需要は現在、非常に大きくなっています。特にディープラーニングの需要が高い傾向にあるため、ディープラーニングを始めとする人工知能関連のエンジニア需要も増えています。AINOWの調査によると、AI関連エンジニに求めるプログラミング言語1位はPythonで、AIエンジニアの平均年収は約666万円となっています。
つまり、これから人工知能関連のエンジニアとして高収入を狙う場合は、案件の多い今のうちにPythonのスキルアップをして、経験を積んでおくと良いです。なお、日本では人工知能に関するエンジニア自体がまだまだ少ないため、収入が比較的高めに設定されている場合が多いです。
弊社の運営しているエンジニア向け案件情報サービス「フリエン」に現在掲載中の案件の中から、人工知能に関する案件を一部ピックアップして紹介いたします。
こちらは、Pythonを用いて人工知能のフロントエンドをご担当いただく案件です。Pythonを用いた開発経験があれば、人工知能に関する業務経験がなくても応募できるため、人工知能関連のスキルを身につけたい方におすすめの案件です。
こちらは、IoT、ビッグデータ、人工知能のオートメーションロジックの構築、実装及び必要なデータのクレンジングなどをご担当いただく案件です。Pythonを用いた業務経験が1年以上あるか、他言語の業務経験が豊富でPythonを短期的に習得する意欲のある方を募集しています。
こちらは、WindowsとLinuxでPython、HTML5を用いた人工知能サービスのフロントエンド作成をご担当いただく案件です。フロントエンドとバックエンドの連携経験と、WindowsかLinuxの使用経験、Python、HTML5、Bootstrapの使用経験があるかたを募集しています。
いかがでしょうか。ここ数年で人工知能という言葉を耳にする機会は増えたものの、その実態はあまり知らなかったという方が多いのではないでしょうか。しかし人工知能は、もはや映画の中だけの話でも他人事でもありません。この先さらに研究が進んで行けば、いずれ人工知能は我々の身近にあらゆる形で存在するかも知れません。そうなったとき、人間の生き方は少なからず変化していきます。そして同時に人工知能関連のエンジニア需要は高まります。そのため、現在少しでも人工知能のプログラミング等に興味があるならば、今回ご紹介した内容を踏まえて勉強をしてみてはいかがでしょうか。
今回はそんな人工知能について解説していきながら、人工知能に関わるうえで必要となる知識や、近年の動向などについてみていきましょう。
【目次】
■人工知能とは|基礎的な知識と機械学習について
◆人工知能とは
◆機械学習とは
◆弱い人工知能と強い人工知能
◆人工知能の歴史
◆近年の主要な人工知能
■人工知能で必要になる知識・スキルとおすすめ教材5選
◆人工知能に関わるうえで必要な知識
◆人工知能で必要になるプログラミング言語
◆機械学習おすすめ教材5選
■人工知能の近年の動向と将来性
◆近年の動向と重要なポイント
◆将来性
◆現在の需要とエンジニアの平均収入
◆人工知能に関する実際の案件
■まとめ
それではさっそく、人工知能について詳しくみていきましょう。
人工知能とは冒頭でも解説したように、まるで人間のような判断や学習が行えるコンピュータやその技術分野のことです。英語ではArtifical Intelligenceと言い、一般的にはAIと略されます。人工知能はさまざまなサービスを始め、業務、福祉、医療、ゲームなど、あらゆる分野で使用されています。
また、人工知能として知名度の高いものではMicrosoftのWatsonが有名かと思いますが、厳密に言うとWatsonは「質問応答システム・意思決定支援システム」と言われるもので、人工知能とは少し違うものとして区別されることがあります。人工知能が人間のように学習や判断を行うのに対し、Watsonは質問に対してデータの中からテンプレート的に応答する「コグニティブ・コンピューティング能力」を商用化したものであるため、人工知能とWatsonは別物として区別されています。Watsonについて詳しくは、IBM Watsonとは|時代のニーズと類似の人工知能をご覧ください。
人工知能の種類
人工知能はその仕組みや目的などによってさまざまな種類があり、大きく分けると「機械学習」と「ディープラーニング」の2つの仕組みに分けられますが、近年、この両者を掛け合わせた「深層強化学習」という仕組みも出てきました。機械学習とは、人工知能が学習を行う方法です。機械学習の方法には、「教師あり学習」と、「教師なし学習」の2種類があります。教師あり学習とは、問題と解答をセットで人工知能に学習させ、そのデータを知識として学習させていきます。対する教師なし学習は、問題のみを人工知能に与え、あらゆるデータの中から問題との関係性を統計的に算出するなどして、問題に対する解答を導き出せるように学習させていきます。ディープラーニング
ディープラーニングとは、複数の層で構成された人工ニューラルネットワークというアルゴリズムを用いて機械学習を行う方式で、日本語では深層学習と呼ばれます。この人工ニューラルネットワークにも、「畳み込みニューラルネットワーク」と、「再帰型ニューラルネットワーク」という2つの種類が存在します。人工ニューラルネットワーク及び、ディープラーニングについては、ディープラーニングの実装手順と3つのおすすめライブラリをご覧ください。人工知能は哲学者のジョン・サールによって提唱された、人工知能を2種類に分類する考え方です。「弱い人工知能」とは、道具として用いることを前提とした人工知能のことで、近年では専門分野に使用する人工知能を指す場合が多いです。例えばGoogle DeepMindによって開発された、囲碁を行う人工知能であるAlphaGoは、囲碁以外の用途には向いていないため、弱い人工知能と言えます。
逆に「強い人工知能」とは、道具としてではなく、心を持ったような人間的な人工知能のことを指します。専門的な用途ではなく、人間のようにさまざまなことができる人工知能です。
人工知能の発祥については諸説ありますが、1955年、科学者ジョン・マッカーシーによって『人工知能』という用語が使用されたことが始まりと言えます。それまでにも機械に人間的な機能を持たせられるか、ということについてはさまざまな学者によって議論されていました。また、人間の脳神経についての研究を参考にして人工ニューロン、人工ニューラルネットワークといった人工知能に用いられるアルゴリズムも開発されており、あらゆる分野で人工知能の研究は進められていました。
1956年、人工知能に関する研究発表会であるダートマス会議にて、ジョン・マッカーシーが最初の人工知能「Logic Theorist」を発表しました。これ以降、世界的に人工知能の研究は盛んになり、産業機器に人工知能を用いたり、ゲームを行う人工知能が開発されたりなど、あらゆる分野で開発が始まりました。その後、さまざまな方式の人工知能が考案、研究されていき、近年になって日の目を見るようになってきました。
そして、インターネットの普及によって、インターネット上の情報を用いることができるようになり、機械学習は飛躍的に成長を遂げました。また、人工知能を用いる分野も拡大し、GoogleやSoftbank、Microsoftなどの大手企業がこぞって人工知能技術を用いたロボットやサービスを発表しています。他にも最近では、美術や音楽業界などの芸術分野にも人工知能を用いる試みがなされています。
主なAIの開発方法
人工知能の開発についてはさまざまな企業がライブラリやフレームワーク等をリリースしているため、それらを用いて開発するのが一般的です。例えばGoogleはTensorflowというPythonを用いる機械学習ライブラリを公開しています。こちらはニューラルネットワークを用いた機械学習ライブラリです。MicrosoftにもAzure Machine Learningという機械学習アプリケーションがあります。こちらはPythonかRで使用するクラウドベースの機械学習アプリケーションです。「女子高生AIりんな」という会話ボットでも使用されています。他にもCaffeやChainerなどのライブラリ及びフレームワークがあります。
Google DeepMind
Google DeepMindはビデオゲームのプレイ方法を学習する人工知能です。DeepMindは人工ニューラルネットワークを用いた人工知能で、前述した囲碁ができるAlphaGoもこのGoogle DeepMindを用いて作られています。DeepMindは今後、ゲームだけでなく、より社会に関わりのある形で発展していくように研究を進めていく方針です。Pepper
Pepperはソフトバンクの販売する、人工知能を搭載したロボットです。Pepperは搭載されたカメラやマイクを用いて人の名前や顔を覚え、認識してコミュニケーションを取ります。また、感情を読み取る独自の「感情機能」を搭載しており、対応する相手の感情を読み取り、それに即した行動をとります。Watson
冒頭で、「IBMのWatsonは厳密には人工知能ではない」と解説しましたが最近、一部のメディアでは人工知能としてWatsonが紹介されていたり、IBMのWatson公式サイトでも「人工知能Watsonにテープ起こしさせてみた」という記事をピックアップしたりしているところを考慮すると、Watsonも人工知能の1つとして紹介しておく必要があるかと思いますので、今回は人工知能の1つとして紹介いたします。Watsonはコグニティブ・テクノロジーで、音声や画像だけでなく、人物の性格などのさまざまな情報を分析、学習できるとして、強い人工知能の有力候補に挙がっています。人工知能に関わるうえで必要になる知識やスキルにはどのようなものがあるのか、詳しく見ていきながら、それらを学習するうえでおすすめの教材も紹介いたします。
人工知能に関わるうえでは人工知能の仕組みである機械学習やディープラーニングについての知識が必要になります。先に解説した、機械学習の「教師あり学習」と「教師なし学習」や、ディープラーニング及び人工ニューラルネットワークの「畳み込みニューラルネットワーク」と「再帰型ニューラルネットワーク」などについては最低限知っておくべきでしょう。また、確立や統計、線形代数などの数学的な知識が必要になるため、高校卒業程度の数学Ⅲ、Cの知識が必要になります。
人工知能のプログラミングには主に、以下のプログラミング言語が用いられます。
Python
Pythonは汎用性が高く、シンプルであることから人気の高い言語です。近年では人工知能だけでなくビッグデータの処理に向いていることから統計学などにも用いられ、日本でも知名度が上昇しています。PythonについてはPython入門前に知っておきたい特徴とおすすめ教材9選をご覧ください。C、C++
C言語とは、40年以上の歴史を持つプログラミング言語です。C言語はシンプルで柔軟な仕様のため、汎用性が高く、ソフトウェア開発から組み込み系まで幅広く用いられています。C++は、このC言語をオブジェクト指向にしたプログラミング言語です。オブジェクト指向にすることでオブジェクトやクラスを用いた効率の良いプログラミングが行えるようになります。Java
JavaはC言語を始め、さまざまな言語の影響を受けて開発されたプログラミング言語で、上記2つのプログラミング言語同様に汎用性が高く、人気です。組み込み系やスマートフォンのシステム、スーパーコンピュータまで幅広く使用されています。それでは、機械学習について学習するうえでおすすめのサイトや書籍を5つ紹介いたします。
人工知能のやさしい説明「What's AI」
人工知能のやさしい説明「What's AI」は、人工知能とはどういうものか、人工知能の歴史、最近の人工知能事情、人工知能についてのFAQなどが網羅されているため、1つのサイトで多くの知識を得られます。機械学習チュートリアル
機械学習チュートリアルは、40枚程度のスライドで構成されていて、機械学習について、基本的なことや主な用途、使用される分野やその仕組みなどを丁寧に解説しています。Deep Learning
Deep Learningは、その名の通り、ディープラーニングについて解説されているスライドです。ディープラーニングについての基本的な専門用語が多く出てきますので、わからない用語はインターネットで検索しながら読んでいけば、それだけで勉強になります。人工知能は人間を超えるか
☆:4.5 レビュー数:216件人工知能は人間を超えるかは、人工知能の基本的な知識や、これまでの人工知能の歴史、経緯、現在の人工知能にできることなどをわかりやすく解説しています。専門的な知識を持っていない方でも読みやすくなっているため、人工知能について学び始めるときにおすすめです。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
☆:4.5 レビュー数:47件ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装は、ディープラーニング、人工ニューラルネットワークについて基礎から学び、実際にPythonを用いてディープラーニングを作成するということを目的とした教材です。本格的な内容ですが、図解を用いているのでディープラーニング初心者にも理解しやすくなっています。
それでは最後に近年の人工知能の動向や将来性などを解説いたします。
近年の人工知能はディープラーニングに注目が集まっています。今回いくつかの人工知能を紹介しましたが、これらはまだまだ人工知能の理想形ではありません。人工知能の最終目的の1つは、人間のように考えて柔軟に行動できるモノを実現することです。現段階では、人工知能は想定外の事態に対応できないという弱点があるため、まだまだ不安要素が多く、人間の目に付く範囲でしか使用できません。
しかし、ディープラーニングの研究が進めば、さまざまなシチュエーションでの想定実験を繰り返し行って経験を積ませることで、想定外の事態であっても人間のように考えて、自ら解決策をひらめき、行動できるようになるかもしれません。そのために、ディープラーニングは人工知能にとって、非常に重要なポイントと言えます。
将来的には現在よりも人工知能は、我々にとって身近なものとなり、街中のいたるところに配備されると予想されます。それらの人工知能をあらゆるIoT製品などと連携させて、より便利な街づくり、いわゆるスマートシティ化ができると期待されています。
それだけでなく、さまざまな職業を人工知能に担当させることも期待されています。例えば危険な場所での作業や、工数の掛かる業務などを人工知能に担当させることが望まれています。
人工知能の需要は現在、非常に大きくなっています。特にディープラーニングの需要が高い傾向にあるため、ディープラーニングを始めとする人工知能関連のエンジニア需要も増えています。AINOWの調査によると、AI関連エンジニに求めるプログラミング言語1位はPythonで、AIエンジニアの平均年収は約666万円となっています。
つまり、これから人工知能関連のエンジニアとして高収入を狙う場合は、案件の多い今のうちにPythonのスキルアップをして、経験を積んでおくと良いです。なお、日本では人工知能に関するエンジニア自体がまだまだ少ないため、収入が比較的高めに設定されている場合が多いです。
弊社の運営しているエンジニア向け案件情報サービス「フリエン」に現在掲載中の案件の中から、人工知能に関する案件を一部ピックアップして紹介いたします。
こちらは、Pythonを用いて人工知能のフロントエンドをご担当いただく案件です。Pythonを用いた開発経験があれば、人工知能に関する業務経験がなくても応募できるため、人工知能関連のスキルを身につけたい方におすすめの案件です。
こちらは、IoT、ビッグデータ、人工知能のオートメーションロジックの構築、実装及び必要なデータのクレンジングなどをご担当いただく案件です。Pythonを用いた業務経験が1年以上あるか、他言語の業務経験が豊富でPythonを短期的に習得する意欲のある方を募集しています。
こちらは、WindowsとLinuxでPython、HTML5を用いた人工知能サービスのフロントエンド作成をご担当いただく案件です。フロントエンドとバックエンドの連携経験と、WindowsかLinuxの使用経験、Python、HTML5、Bootstrapの使用経験があるかたを募集しています。
いかがでしょうか。ここ数年で人工知能という言葉を耳にする機会は増えたものの、その実態はあまり知らなかったという方が多いのではないでしょうか。しかし人工知能は、もはや映画の中だけの話でも他人事でもありません。この先さらに研究が進んで行けば、いずれ人工知能は我々の身近にあらゆる形で存在するかも知れません。そうなったとき、人間の生き方は少なからず変化していきます。そして同時に人工知能関連のエンジニア需要は高まります。そのため、現在少しでも人工知能のプログラミング等に興味があるならば、今回ご紹介した内容を踏まえて勉強をしてみてはいかがでしょうか。