最新のIT技術やAI技術(機械学習)を学ぶ上で非常に優れたUdacityの講座の中で、特におすすめする講座を詳しく解説していきます。
今回は、AI習得に向けて初心者の方におすすめの『AI Programming with Python Nanodegree』について徹底解説していきます。
Udacity とは
Udacity(ユダシティ)とは、世界190カ国の合計16万人以上に利用されているMOOCs(Massive open online course)です。
特に、最新のIT技術やAI技術に強みを持っており、分かりやすく質の高いコンテンツによりアメリカでは非常に人気があります。
質の高いサービスであるにも関わらず、日本語の情報があまりありませんでした。詳細についてはこちらの記事でまとめましたので、興味のある方はぜひご覧ください。
AI Programming with Python Nanodegree とは
習得可能な分野:『人工知能(Artificial Intelligence)』
AI Programming with Python の講座は、9つある分野のうち、人工知能(Artificial Intelligence)に属します。近年、人工知能の分野の発展はめまぐるしく、まさに日進月歩の世界です。
AIを使いこなせるエンジニアの需要は増える一方であり、エンジニアの中でも機械学習エンジニアは高給な求人が多いというのが特徴です。
今後はあらゆるものがネットに繋がり、多くのデータが収集できるようになります。データ収集を自動化して、AIモデルによる処理及びアウトプットまでを自動化するための技術は重要度が増していくことが考えられます。
ニーズの高い技術を学び、自らの市場価値をどんどん上げていきましょう!
AI Programming with Pythonをおすすめする理由
1年前や2年前のコードがOSSとして公開されていても、ライブラリのバージョン違いや環境の違いで正常に動かないという経験をされた方も多いのではないでしょうか。
コードを読み解こうとしても、『どこで』『何ために』『どういった』処理をしているかが分からなければ、何を変えれば良いのかが分からないといったことになります。
個人的な意見になりますが、イチから全てのコードを書く必要はなく、OSSとして公開されているコードを読み解き、自分なりにアレンジすることができるようになれば業務上は問題ないです。
そのためには、Pythonの基礎的な文法に加えて、人工知能の分野の体系的な技術を身に着けるのが早道です。
体系的な技術が身についていれば、人工知能を使って何が出来る/出来ないのかの見極めが容易になり、ソースコードのある行が『どういった』処理を『何のために』しているかが分かるようになります。
『何のために』処理をしているかという理由が分かれば、処理を自分なりにアレンジすることも可能です。さらに、一度体系的な技術を身に着けることができれば、一生ものとして活かすことができます。
前置きが長くなりましたが、AI Programming with Pythonの講座では、人工知能の体系的な技術を身に着けることが可能です。
概要
概要
このプログラムは、AI技術者になるために必要な基礎的な構成要素に焦点を当てた実践的なコースです。
具体的には、プログラミングのスキルや、AIを構築するために不可欠な数学などを学び、AIのアーキテクチャを構築します。さらに、ニューラルネットワークやディープラーニングにも踏み込みます。
Udacityの主な目標の1つは、就職に有利なポートフォリオを作成することです。
プロジェクトの構築は、身につけたスキルを試すのに最適な方法であり、また、将来の候補者に自分の新しい能力を示すのに最適な方法です。
このコースでは、事前に訓練されたニューラルネットワークを使用します。また、自分で画像分類器を作ることで、AIアーキテクチャーを学びます。
以下のセクションでは、プロジェクトの詳細な説明と、コースで使用される教材が紹介されています。
そのために必要なスキルを紹介します。
期間と必要な時間
コースに必要な期間は3か月で、1週間あたり約10時間の勉強時間を見込んでいます。
ボリュームも多いですが、コンテンツの質が非常に高いです。そのため、私の場合は自分の成長を毎日感じることができ、受講が楽しみでた。
難易度
Udacityは全講義を3つの難易度に分けています。
AI Programming with Pythonは、初心者向けの難易度である『★☆☆:Beginner』です。
価格
2つの購入方法があります。
- 月あたり$399(自分のペースで学習することができ、いつでもキャンセル可能です)
- 3か月間の代金として、$1017(平均的な修了期間は3か月です。3か月分をまとめることで15%の割引になります。月あたりに変更可能)
3か月間やりきるんだという覚悟を持って進められる方は、2つ目のプランがおすすめです。
一方、まずは手始めにどのようなレベルか、やり切れるか試してみたいという方は1か月間のプランがおすすめです。
値段は高額ではありますが、それに見合うコンテンツの質と量です。今後の自分の人生を豊かにするため、自己投資と考えられるかがポイントになるかと思います。
講義 詳細
AI Programming with Pythonは、大きく5つのコースから構成されます。
- Introduction to Python(Pythonの紹介)
- Anaconda, Jupyter Notebook, NumPy, Pandas, and Matplotlib(ライブラリの使い方)
- Linear Algebra Essentials(線形代数や数学的な基礎知識)
- Calculus Essentials(微積分)
- Neural Networks(ニューラルネットワーク)
機械学習を学ぶ上で土台となる数学的な知識から習得します。
機械学習を使いこなすためにはある程度の数学的な知識が必要になります。今回の講義では、本格的な機械学習に臨む前の土台作りが目的となります。
もう1つ上のコースでも行けそうだと思われた方は、1つ上のDeeplearning Nanodegreeをおすすめします。
ここからは、コースの1つ1つで何を学べるかを見ていきます。
内容については、下記URLのシラバスをまとめた内容となりますので、さらに詳細を知りたい方はこちらからダウンロードをお願いいたします。
Introduction to Python(Pythonの紹介)
Pythonでコーディングを始め、ライブラリや自動化スクリプトを利用して、複雑な問題を迅速に解決するための手段について学びます。
コンテンツは以下の通りです。
- なぜPythonでプログラミングするのか
- データ型と演算子
- 制御フロー
- ファンクション
- スクリプト
- クラス
Anaconda, Jupyter Notebook, NumPy, Pandas, and Matplotlib(ライブラリの使い方)
Pythonでデータを扱うための主要なツールの使い方を学びます。
コンテンツは以下の通りです。
- Anaconda
- Jupyter notebook
- Numpy
- Pandas
- Matplotlib
Linear Algebra Essentials(線形代数や数学的な基礎知識)
AIの成功に必要な基礎的な線形代数を学びます。
コンテンツは以下の通りです。
- イントロ
- ベクトル
- 線形の結合
- 配列の操作
- ニューラルネットワークの中の線形代数
- Lab
Calculus Essentials(微積分)
微積分の基礎を学び、ニューラルネットワークの学習方法を理解します。プロット、導関数、微積分の法則、などなど。ニューラルネットワークの例で、これらの数学的スキルがどのように視覚的に実現されるかを学びます。
コンテンツは以下の通りです。
- イントロ
- 導関数
- 連鎖律とドット積
- さらなる導関数
- 制約
- 積分
- ニューラルネットワークの中での計算
Neural Networks(ニューラルネットワーク)
AIで最もホットな分野であるニューラルネットワーク、ディープラーニング、PyTorchの基礎をしっかりと身につけます。
コンテンツは以下の通り。
- ニューラルネットワークのイントロ
- ネットワークの学習
- Pytorchを用いたディープラーニング
以上が、講義の内容となります。
講義を終えた時の自分
非常に盛り沢山の内容で、この講義を終えた時には本格的に機械学習を学ぶための土台が出来上がっているように設計されております。
最後の課題として、以下の内容のプロジェクトを自分が持っているデータセットに対して適用するという課題があります。この講義を終えるころには、実装できるようになっているでしょう。
課題
最後のプロジェクトでは、画像分類アプリケーションを実装します。このアプリケーションは、画像のデータセットでディープラーニングモデルを学習させます。そして、学習したモデルを使って新しい画像を分類します。
まず Jupyterノートブックでコードを開発し、学習効果を確認します。次に、そのコードをコマンドラインから実行するPythonアプリケーションです。
最後に
以上でAI Programming with Pythonの紹介を終わります。非常に質が高く、ボリュームもある講義なのでお試しで1か月間だけでもやってみるのはいかがでしょうか。