この記事はこんな要望や疑問を持った、あなたに向けたAIプログラミングの入門記事です。
具体的には、次の順番で紹介しています。
- AI(人工知能)の基礎知識
- AIプログラミングで必要な知識
- AIプログラミングの学習方法
- AIプログラミングで作れるものの紹介
- AIエンジニアの市場価値について
AI(人工知能)に興味があるのであれば、ぜひ読んでみてくださいね。
記事のもくじ
【入門1】そもそもAI(人工知能)とは何か
AI(人工知能)について、覚えておきたい基礎的な知識についてお話します。
AI(人工知能)の定義と歴史
AIはArtificial Intelligenceの略で、人工的な知能=人工知能となります。
人工知能の定義は、研究者の間でもばらつきがありますが、人工知能に関する著書を多数出版する、東京大学の松尾豊さんは次のように述べています。
「人工的に作られた人間のような知能。ないしはそれを作る技術」
AI(人工知能)は、最近になって注目を集めているように思われがちですが、その歴史は古いものです。
最初のAIブームは1960年代で、その後10年ほどの間隔でブームと下火となる「冬の時代」が交互に訪れています。
2010年代に入り、インターネットが発達したことで、ビッグデータと呼ばれる膨大な量のデータを簡単に入手できるようになりました。
そのビッグデータを処理するために、機械学習が活用され始め、現在のAIブームに至ります。
現在は、第3次AIブームの真っ只中です。
AI(人工知能)でできること
AI(人工知能)では、膨大なデータをもとに高速で次に挙げる処理を行うことができます。
- 分析、分類、最適化
- 予測、推論
- 認識、理解、意味付け
具体的には,画像認識や株価予想、文書の分類などが挙げられますね。
もともとコンピュータは単純作業の繰り返しを得意としています。
そのため、与えられたデータの種類や意味を理解できるようになれば、膨大なデータから予測や推測をできるようになります。
後述する機械学習やディープラーニングによって、AI(人工知能)によってできることは、格段に広がりました。
AI(人工知能)について、もっと詳しく知りたい方は、この記事もおすすめです。
【入門2】AIプログラミングで必要となる知識
AI(人工知能)について、基礎的な知識を身に着けたあとは、AIプログラミングで必要となる具体的な知識について見ていきましょう。
機械学習
これからAIプログラミングを行うにあたり、避けて通れないのが「機械学習」です。
人間とコンピュータの大きな違いは、自ら学習して知識を増やすことができるかどうか、という点ですね。
機械学習は、文字通り機械(コンピュータ)に学習する能力をもたせることによって、自ら判断することを可能とする方法・手法です。
端的に言えば「データから規則性を抽出する統計的手法」を、機械学習と呼びます。
機械学習を使って、コンピュータが学習する方法は大きく分けて3つあります。
- 教師あり学習→「入力に対する適切な出力を求める学習」
- 教師なし学習→「入力情報の特徴を見つける学習」
- 強化学習→「最後の結果が最良となる行動を見つける学習」
教師あり学習は画像認識や分類に関する学習であり、教師なし学習は傾向分析、予測に関する学習です。
強化学習は、囲碁や将棋などの指し手をイメージするとわかりやすいでしょう。囲碁のAIプログラムであるAlphaGoを代表とする、「価値」を最大化する行動に関する学習となります。
ディープラーニング
ディープラーニングは、機械学習の中に含まれます。
人間の脳細胞の挙動を模倣した、ニューラルネットワークモデルの1つの形態がディープラーニングとなります。
ディープラーニングは「十分なデータ量があれば、機械が自動的に特徴を抽出する」事ができる学習方法です。
ディープラーニングは、目の認識部分のニューラルネットワークを模したものであるため、画像認識や分類を得意としています。
囲碁の盤面も画像として認識・学習することができ、先程も登場した囲碁のAIプログラムであるAlphaGoも、ディープラーニングを活用しています。
第3次AIブームの火付け役とも言われるのがディープラーニングです。
ディープラーニングによって、AI(人工知能)の精度は飛躍的に高まりました。
そのため、これからAIプログラミングを学習するにあたり、ディープラーニングも避けて通れないモノの一つですね。
数学
機械学習を理解するためには、数学の知識が必要となります。
機械学習で求められる数学のレベルは、高校~大学卒業レベルのものです。具体的には、次のものが挙げられます。
- ベクトル
- 微分
- 行列
- 指数関数
- 対話関数
なかでも微分は、特に重要となる数学知識の一つです。
機械学習でコンピュータに学習をさせる場合、大抵はある関数が最小(または最大)を取る入力を探す問題である「最適化問題」に帰着します。
この問題を解くためには、関数の傾きを知ることが重要となり、その傾きを導出する方法が「微分」であるからです。
数学が得意な人であれば、スムーズにAIプログラミングの学習を進めることができるでしょう。
しかし、現時点で数学の知識がなくても諦める必要はありません。
あくまでもプログラミングと数学は別物であるため、数学の問題を解くこととは別物であるからです。
実際にAIプログラミングを実践する中で、少しずつ学んでいきましょう。
【入門3】AIプログラミングの4ステップ学習法
それでは、具体的にAIプログラミングを学ぶための学習方法を紹介します。
4つのステップに分けているため、一つずつ学習を進めていきましょう。
Step.1:Pythonの基礎文法を学ぶ
AIプログラミングでは、プログラミング言語にPythonを選ぶことが多いものです。
Pythonには、多くの機械学習向けのライブラリやフレームワークが存在していることが、大きな理由としてあげられます。
さらに、Pythonはプログラミング初心者にも易しい言語であり、シンプルかつ読みやすいコードを書けるところも選ばれる理由の一つです。
高速な処理を求められる場合は、CやC++などを選ぶこともありますが、まずはPythonから学ぶことをおすすめします。
Pythonの基本学習は、書籍やオンラインサイトで行いましょう。
書籍であれば「詳細! Python 3 入門ノート」が人気が高くおすすめです。
オンライン学習サイトであれば「Progate」や「ドットインストール」が学びやすく、おすすめできます。
どちらの学習サイトも実際にコードを入力して進めていくため、手を動かしながら学べます。
Progateでは、実行環境を用意する必要がないため、すぐに学習に取り欠かれるところが特徴です。
ドットインストールでは、学習を開始する前に実行環境を用意しなければなりませんが、実行環境を作るための講座もあるため、あなたの状況に合わせて選択してください。
Step.2:機械学習について学ぶ
Pythonで一通りの基本を学び終えたら、機械学習についての学習を開始します。
Pythonで機械学習について学ぶのであれば、次に挙げるライブラリやフレームワークについて、学習を進める中で学んでいきましょう。
- Nampy
- Pandas
- Matplotlib
- Keras
- TensorFlow
機械学習を学ぶための書籍としては、次に挙げる書籍が人気があるため、書籍を使って学習を進める場合の参考としてください。
オンライン学習サイトとしては、「Aidemy」がおすすめです。
Aidemyでは実行環境を用意する必要がなく、Pythonの基礎から機械学習概論、ディープラーニングの基礎まで、無料で学習することができます。
さらに、機械学習について学ぶ中で、必要となる数学の知識も合わせて学習を進めていきましょう。
数学の知識と合わせて学習ができる書籍としては、「Pythonで動かして学ぶ!新しい機械学習の教科書」をおすすめします。
Step.3:付随する技術を身につける
機械学習では、膨大なデータを必要とするため、データを収集する・保存するための技術も併せて身に着ける必要があります。
機械学習について、一通りの学習を終えたあとに次に挙げる技術についても学習しましょう。
- SQL(データベース)
- スクレイピング
- クラウドサービス
Web上のデータはデータベースに保存されていることが多いものです。データベースからデータを取得するためには、SQLの知識が欠かせません。
さらに、データを収集するためには、Web上の情報を自動的に取得するための「スクレイピング」を活用しましょう。
クラウドサービスは、AmazonのAWSやGoogleのGCPが有名です。
AWSやGCPでは、サービスを開発するためのインフラや、データ分析を行うためのクラウドサービス(API)が用意されています。
うまく活用することができれば、時間をかけずに簡単にサービスを作成することができますよ。
Step.4:サービスを作り、公開する
最後は、実際にあなたが考えて作成したサービスを公開してみましょう。
実際にサービスを作る中で、自分に足りない知識を把握することができます。公開したサービスをユーザーに使用してもらうことで、フィードバックも得られますね。
学習は知識を得るためのものであり、最終的には形にして公開することが大切です。
スキルは目に見えづらいため、形として残すことができれば、各方面へのアピールに繋がります。
たとえば、データサイエンティストやAIエンジニアを目指すのであれば、ポートフォリオとして提示することもできますよね。
Twitterなどで公表すれば、同じ志を持つ仲間を作ることもできますし、アウトプットすることのメリットはいろいろ考えられます。
いきなり新しいサービスを作ることが難しいと考えているのであれば、最初は既存サービスの模倣からでも良いと考えます。
模倣の場合は、あなたが作ったものとして公開することは難しいですが、プログラミングを身につけるためには有効的な方法です。
サービスを公開する場合には、自前でサーバーを用意するのは現実的ではないため、AWSやGCPなどのクラウドサービスを活用することをおすすめします。
データの分析を行いたい場合でも、分析した結果をアウトプットしてみましょう。
分析した結果から何が求められたのか、言語化して公開することで、サービスを公開するときと同様のメリットを得られます。
【入門4】AIプログラミングの例
AIプログラミングで作られたものにはどのようなものがあるのか、具体的な例を紹介します。
仮想通貨の価格予測
ビットコインのチャートデータから、回帰予測を行った例です。
過去のデータから、今後の予測を立ててグラフとして出力しています。
予測の精度が高まれば、自動取引で億万長者が目指せるかも・・・?
文書の自動分類
さまざまなジャンルの文言が入り混じった文章を、機械学習をもちいてジャンル別に分類した例です。単語からジャンルを分析して、分類しています。
「あなたへのおすすめ」などに使用されるレコメンド機能であったり、スパムメッセージの対応などに活用することが考えられますね。
自動運転
私たちの暮らしに直結する自動車の自動運転。ニュースでも話題に上がることが多いですね。
自動運転にも機械学習が応用されていて、自動運転がどのような仕組みであるのかを理解することができます。
画像認識・顔認識
画像認識や顔認識も機械学習の例として有名です。
紹介する例では、動き続ける人物の顔を認識して、モザイクを掛け続けるというもの。
顔認識の精度が高くなれば、セキュリティ方面に大きく発展させることができます。
【入門5】AIエンジニアの市場価値
入門の最後に、AIエンジニアの市場価値について紹介します。
AIエンジニアの市場価値は非常に高く、これからプログラマーを目指すのであれば、AIエンジニアはとても魅力的な職業です。
経済産業省によれば、AIエンジニアを含む先端IT人材の不足数は、2020年までに4.8万人にまで拡大するとの試算が出ています。
AIエンジニアは不足していて、非常に求められていることがわかりますね。
求人情報を見ると、年収は500万円~1,000万円ほどが見込める職業です。
ここまでは日本における話ですが、海外に目を向けてみると、AIエンジニアはさらに優遇されていることがわかります。
アメリカの経済誌「Forbes」のWeb記事にて、海外のAIエンジニアの平均年収は1,000万円ほどとの調査結果が出ていました。
AIエンジニアは日本だけでなく、世界的にも求められている職業です。
海外では特に市場価値が高い職業として、人気があります。
参照元:『IT人材の最新動向と将来推計に関する調査結果』(経済産業省)
まとめ:プログラミングを学んで市場価値の高いAIエンジニアを目指そう!
現在、AI(人工知能)は第3次ブームを迎えていて、これからさらに発達・発展していくことが予想されます。
AIエンジニアとして働くことは、非常に価値のあるものになるでしょう。
日本でのAIエンジニアの市場価値は高いものですが、海外では日本以上に市場価値が高い職業です。
AIエンジニアは多くのスキルセットを求められるため、簡単になれるものではありませんが、今からAIや機械学習について学習するのであれば、目指してみたい職業の一つと言えるでしょう。