人工知能を独学で学ぶ [あなたの興味のあるAIを見つけよう!]

「人工知能(AI)」、もはや耳にしない日はないほどAIが世の中に浸透してきました。私たちの暮らしだけでなく、産業界でもAIの導入の流れが止まりません。AIによって生活が豊かで便利になる一方で、AIに職が奪われてしまう可能性もあります。

例えば、自動車の「自動運転」が社会に実装されたら、タクシーや運送のドライバーがいらなくなることに加え、個人が車を所有する必要がなくなります。
これは、日本が世界に誇れる自動車産業にとって大きな衝撃です。

数年後の世界はAIによって世界はどのように変わるのか非常に高い関心が寄せられております。

AIは急速な勢いで進歩しており、それが我々の生活やビジネスに取りこまれることで、従来のやり方が通用しなくなり革新や変化を求められるものが生まれてくるでしょう。

そしてそれは逆に新たなビジネスチャンスを生み出すチャンスでもあります。

しかし、それらの変化やチャンスを逃さないためには世の中に常にアンテナをはり、そして今のAIに何ができて何が出来ないのかをしっかりととらえることが大事です。

AIは万能なツールではないし映画の世界のように人類を滅ぼそうとは思いません(少なくとも今の段階では)し、限界もあります。そこを見極めて適切にAIを使うことで新たなチャンスが生まれると私は信じています。

そこで私はAIを学ぶための手段の一つとして、 人工知能を独学で学ぶ ことに挑戦しました。

しかし、独学で学ぼうにもプログラミングが全くの初心者で、Excel VBAぐらいは使ったことがある、、という私にとっては、人工知能の勉強を始めようと思い立っても、何から手をつけていいのかわかりません。そこでこの記事では、実際に私が人工知能を独学で学ぶために、どのようなステップで勉強していったのかを紹介します。

はじめに

” 人工知能を独学で学ぶ “とあるように、AIやプログラミングは学んだことのない私が「知識ゼロからどのようにAIの知識を得ていったか」というプロセスを記録した記事です。したがって本記事は時系列的に学習したことや得た知識を更新しつづけていきます。

あなたが興味あるのは、どのAI?

「人工知能(AI)」とひとくくりにされていますが、AI(と思われているものも含めて)にも様々な種類があります。あなたが興味を持っている、業務や趣味で学習したいと思っているAIは何ができるものでしょうか?

はじめにAIとざっくりひとまとめにされているものを、分類して基本的な知識を紹介していきます。

「人工知能って何ができるのだろう?」「自分がやりたい技術は何か?」ということがイメージできない人はまずはこの章を読み進めながら自分が行いたいことを一度確認し、そのキーワードでさらに検索してみてください。

写真に判別する、文字を認識する : 画像認識・自然言語処理

過去の連続した大量のデータから未来の異常(ズレ)を検知する : 機械学習

単純な繰り返し作業をPCにサポートしてほしい : RPA(ロボティック・プロセス・オートメーション)

自分で学習し進化していく人工の生命体をつくりたい : 人工生命

(番外編) ビッグデータを活用するデータサイエンティスト

人工知能とは少し外れますが、ただ人工知能・AIブームの根幹となる分野が「ビッグデータ」であり、そのビッグデータを収集・分析・評価しビジネスで有用な知見として提供するのが「データサイエンティスト」です。

データサイエンティストには高度な知識が要求されて、学習するのが大変!と思う人も多いかと思いますが、この記事で紹介されているように今後10年、20年先の鍵となる知識・技術です。

AIを使ったサービスを開発したいという人にとってもデータサイエンティストの基礎となる「統計学」と「機械学習」の知識は有用です。

さらに知りたい人は以下のデータサイエンティスト向けの講座をページをご覧ください。

AIを活用してビジネス課題の解決、新規ビジネス創造に使いたい方

人工知能やAIを用いて自身や会社がかかえるビジネス課題を解決したい、もしくは新たなビジネスチャンスをつかみたい!という人には、細かいコーディングの知識よりも課題抽出から運用、評価といった実務・プロジェクトマネジメント的な以下のスキルが重要です。

  1. どのような人工知能や AI であれば解決できるか
  2. その人工知能や AI を作るために必要なデータとして何が必要なのか
  3. そのデータをどう集め、どのように前処理を行い学習させるのか
  4. 何をもって、ビジネス課題を解決したと断定できるのか

手っ取り早く・無料で業界の全体像をつかむには AI 、データサイエンスに関する無料のセミナーに参加するのが有効です。以下のページに無料説明会が紹介されています。

AI ・ 人工知能を独学で学ぶ

ここまで、「 人工知能を独学で学ぶ 」その中身に入る前に、「どんなAIに興味があるのか」「AIを活用してビジネス課題の解決、新たなビジネスに使いたい方」といった点について紹介してきました。

それでは、AI・人工知能の「具体的に何を学ぶべきなのか」見ていきたいと思います。

人工知能を独学で学ぶ

物事を学ぶためには、まず近年のAI革命の「要素技術」とは何か、という点に着目して調べる必要があります。キーワードは「機械学習」と「Deep Learning」です。

AIの要素技術の「機械学習」、革命を起こした「Deep learning」

従来のAI要素技術の「機械学習」

従来の人工知能について説明します。ここでいう”従来の”とは、後で紹介する「Deep Learning」技術が生まれる2011年ごろより前を指します。

従来の人工知能も、「画像認識」や「音声認識」などの処理は可能でしたが、それには人間による定義づけが必要でした。つまり、「ルール」や「特徴」を人間の手で言語化して入力する必要がありました。

しかし、人間が物事を完全に定義するには限界があります。そのために従来のAIは予め設定された範囲を超える事態や例外的な事柄に対応することが苦手だと言われておりました。

例えば、以下に「ネコ」と「ヒョウ」の写真があります。「ネコ」と「ヒョウ」を正しく見分けることが出来るでしょうか。

殆どの人は直感的に、左が「ネコ」で右が「ヒョウ」だと見分けることができます。

この判断プロセスの間に人間の脳内で何が行われているかというと、

脳内の今までの記憶・経験の中から「ネコっぽい特徴」「ヒョウっぽい特徴」を思い出して、上の写真と比較・参照することで瞬時に判断を下します。

このブログ記事を読んでいる人にとったは上の2つの写真は初めて見るものだと思いますが、その写真でも瞬時に「ネコ」と「ヒョウ」を判別することができます。

我々人間の場合には厳密な言葉の定義が無くても、「何となくの特徴・雰囲気」で判断できます。

これを機械学習的な言葉で言い換えると人間は「一般化された特徴量」を学習して会得しているのです。

それでは、従来の人工知能はどうでしょう?

従来の人工知能の画像認識では、まず始めに「ネコ」と「ヒョウ」の特徴を言語化して人間の手で定義してやる必要があります。例えば、

  • 「ネコ」:丸くてつぶらな瞳、全長1m以下、ペットとして飼われている
  • 「ヒョウ」:するどい牙を持つ、全長1m以上、野生動物

という定義があれば、上記の写真から判別することはできるかもしれません。

しかし、例えば以下の2枚の写真はどうでしょうか?

この写真も同様に最初が「ネコ」で次が「ヒョウ」です。しかし、「ヒョウ」の写真が赤ちゃんのものを用いており、「ネコ」で定義した[丸くてつぶらな瞳][全長1m以下]といった定義と重なってしまいます。そのため、初期の定義から判断することは難しくなりました。

人間は特定の定義がなくても今までの大量の経験から、非言語的に「ネコ」と「ヒョウ」を分類することができます。

従来の人工知能は、事前に人間が用意した訓練データ(「ネコっぽい特徴」「ヒョウっぽい特徴」を現すモデル)を学習し、そのデータをもとに分類・予測を行っていました。これを「機械学習」と言います。

しかし、あくまで人間により言語化された定義が必要であるため解析には限界があり、人間のように直感的に判断することは苦手とされていました。

これらの課題を解決したのがDeep Learning技術です。

近年のIT革命は「Deep learning」が鍵

Deep Learning技術は人間の脳内の神経を真似たシステムを用いて、大量のデータからAI自身がルールや問題の解を見つけるという技術です。

人間の赤ちゃんが「ネコ」「ヒョウ」の特徴を大量の情報から学んでそれぞれの「特徴」を学んでいくように、AI自身が大量のデータから「ネコっぽい特徴」「ヒョウっぽい特徴」を定義づけるのです。

有名なのは「Googleの猫」で、人工知能に大量の猫の画像を見せることで、人工知能が誰に教わるでもなく、自分で猫の特徴を学習して猫を認識するまでに至ったという記事です。

これらのディープラーニングの事例と可能性をわかりやすく示しているのが以下の本です。

このDeep Learningが今のAIブームの火付け役で、この技術があるために昨今のAI革命が起こりました。このきっかけとなった、Deep Learningを学ぶことで「今のAIに出来ること」「AIの成長の方向性」を把握できるのではないかと考えました。

Deep Learningと機械学習の違い?

ここでは今まで出てきた、Deep Learningと機械学習についてもう一度整理したいとおもいます。

  • Deep Learning: 大量のデータをInputしてAI自身が特徴量を学習する
  • 機械学習: 開発者が定めた「トレーニングルール」により特定のAIが特定のタスクを実行できるようにすること

以下のHPでは、「赤いリンゴ」と「青いリンゴ」を判別することを例に機械学習とディープラーニングの違いを説明しています。

ディープラーニングはたくさんのデータを見ることによって、どこに着目すればよいかを自分で学習し、人間からの指示を待たずに自動でどんどん賢くなっていく。

機械学習では何に着目するか、例えば「色」に着目するように指定しなければならない。

上の記事を見る限り、ディープラーニングには大量のデータが必要なことがわかりました。個人が大量のデータを有していたり、それらのデータを処理するためのスーパーコンピューターもありません。それに、「ディープラーニング」は「機械学習を実施するための1つの手法」であります。つまり、初心者が昨今で話題に乗っている人工知能を独学で学ぶには、「機械学習」を学ぶことこそが現実的かつ効率的な道であると考えました。

人工知能(機械学習)を学ぶための基礎言語「Python」

どんなに複雑で高度な処理を行うプログラムでも、それらは必ずある複数の「命令文」によって構成されております。それらの命令文を組み、実行するためには「プログラミング言語」をある程度理解する必要があります。

プログラミング言語は、「JavaScript, Visual Basic, C++」があります。プログラミング言語にはそれぞれ特徴が異なり、分野ごとに用いられているプログラミング言語は異なります。

人工知能(機械学習)に適したプログラミング言語が「Python」です。Pythonは「スクリプト言語」と呼ばれる種類のプログラミング言語です。

調べてみるとPythonの特徴として、以下のような特徴が挙げられております。

  • Pythonはほかの言語に比べて文法が簡単で覚えなければならないことが格段に少ない
  • 本格的なソフトウェアの作成に使える(GoogleやNASAの内部で利用されている)
  • 様々なサービスに利用されているために学習しやすく、また多種多様な「ライブラリ*」が用意されており実践で使いやすい

*プログラムで使える”既成部品”で、高度なプログラミングを0から作る必要なく、既成のライブラリを上手に活用することで少ない労力で高度なプログラミングが可能となる。

機械学習にも使われており、シンプルで現在も様々な分野で使われているばかりか、人工知能ブームによる将来性も期待されている、なんとも夢のようなプログラミング言語ではありませんか!

ということで、「Python」という入口を選択して人工知能に関する勉強方法を調べてみました。

その他の参考学習サイト

Python の学習におすすめのサイト・書籍を紹介

ここまで読んで頂いた方には、冒頭で「人工知能・AI」にどのようなことができるのかという大まかなイメージを持っていただき、それらを実際に自分で動かしたり中身を理解しようとしたときには「Python」というプログラミング言語を学ぶことがよさそうだということがおわかりいただけたかと思います(厳密には、この他にも統計学的な知識があることが望ましいですがここでは割愛します)。

さて、このPythonを学ぶには「楽しみながら手を動かす」ということが私には一番でした。そこで私は、「ゲームで遊びながら手を動かし」、つまずいたり疑問に思った箇所は「導入本で確認する」という2つの手法を組み合わせて学習しました。そのときに実際に使ったものを紹介します。

楽しみながら書いてみるー学習サイト・ゲーム

楽しみながら勉強するなら、ゲーム形式のコンテンツが打ってつけです。ここでは、Pythonを学習できるゲームプログラムを示しました。

日本語サイト・ゲーム

paiza

e-Learningの他にもゲームや転職について等様々な学習機能がある。課題クリアで貰えるポイントが転職時の評価に使えるらしいです。

paizaのゲームの中には、もし次の常駐先が女子エンジニアばかりだったらコードガールコレクション等があり、日本語で学びながら遊べます。

これらのゲーム・学習サイトの中でも特に初心者にお勧めしたいのが、CODECOMBATpaizaのe-Learningです。

paizaのe-learningは一講座当たり2~3分で、動画による講義と同じ画面にある入力画面でプログラミングの実践が出来ます。登録無料で受講できるために、自分の学習方法に適しているか試しやすいです。

初心者にお勧め RPG風に遊びながら学べる CODE COMBAT

CODE COMBATはRPG系であり、他の英語系ゲームと比較してBGMや、効果音SEも本格的で一番ゲームとしての完成度が高いです。

初心者にお勧めの理由として、以下の点が挙げられます。

  • 基本無料でプレイ可能
  • 初心者に優しいコードの入力ガイド
  • 初心者に優しいヒント

日本語でヒントがかかれているためわかりやすいです。ヒントが一部英語の部分もありますがイラストも示されているので、問題なく進めます。

最初のステージをクリアした後も、この丁寧なガイドが続くので初心者でも安心して上達していくことができます。

CODE COMBATの更に詳しい内容は以下の記事で紹介しております!

基礎の用語や関数の学習 -書籍・学習サイト

Paiza や CodeCombat で楽しみながら学習していても、「この “for”ていう構文はどういう意味だろう」、「この関数は何に使うの?」というようにつまずいてしまう場合がありました。そんなときに私が参照したのは『いちばんやさしいPythonスタートブック』です。

この書籍は複数の記事でお勧めされていた本で、プログラミング未経験の人の導入に向いていると評価されておりました。

確かに、いきなりPythonのプログラミングの組み方や計算方法に入るのでなく、Pythonのインストール方法から、快適な使用のための環境設定など、プログラミンソフトを触ったことのない本当の意味での初心者にも優しい構成となっております。

とは言え、本当に基礎的な部分から始まっているので人によっては内容が薄すぎるように感じられてしまいます。

プログラミングが初めてで、プログラミングの基礎的な考え方について具体例を交えながら学びたいという人にもお勧めです。

私も悩みましたが結局、多くの人の編集やチェックを経て完成した「書籍」を信頼して、上記の本を買いました。数千円の初期投資で信頼できる土台作りをしてから、各学習サイト等を比較して自分にあったものを選択していければいいかな、と思います。

Pythonの学習法についてもう少し詳しく見たい人は以下の記事もどうぞ。

最後に

今回私が学んだのは「現在のAI革命の背景には、Deep Learningがある」ということと、「Deep Learningの体系は機械学習に分類される」ということでした。

どうやら、近年の人工知能ブームはこのDeep Learningが急速に発展したものであり、その根本には機械学習という分野の知識を獲得することが必要だと考えました。

今後もこれらの機械学習を独学で習得するための記事の中から、私が実際に参照したり採用した方法についてお知らせします。

さらに プログラミング / 人工知能(AI) / 機械学習 について興味がある人は下のまとめページも読んでみてください!

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。