テックキャンプのAIコース(Pythonプログラミング)を体験&全容まとめ

テックキャンプ

テックキャンプを受講しようと思っている方の中にはAIコースを受けようと言う方も少なくありません。
私がテックキャンプの無料体験会に参加したときの参加者の半分はAIコースで、あとの半分はWEBコースでしたので。

いまAIを学ぼう、AIに強いPythonというプログラミング言語を習得しようという方は多いのかもしれません。

実際AIコースを学んでいる途中の自分が、AIコースの概要と学べることを整理してみます。これからAIコースを検討している方の参考になれば幸いです。

こんな人にAIコースをおすすめしたい!

これからAI(人工知能、機械学習、ディープラーニング)について学びたいと考えている人には勿論オススメですが、その中でも数学の知識がある程度備わっている方ならなおオススメです。このコースではAIに関する技術に加えPythonというプログラミング言語を通して学んでいきます。

Pythonの文法も学びますが、大量のデータを取り込みそれを便利なライブラリを使って学習させる多様な手法も習得します。データ分析をしたりビッグデータを元にどういった結果を得たいか(予想したり分類したり等)が明確な方にもとても価値のあるコースだと思いますね。

「住宅価格を予測する方法」から始まり、最終的には「チャットボット」や「翻訳アプリ」を作っていきます。

AIも学べるテックキャンプ

AIやPython言語の背景

囲碁のAlphaGoが有名になってからというもの何かとAI・人工知能・機械学習・ディープラーニングといった言葉を耳にする機会が増えてきました。企業はスマホやSNSやWEBを通して大量のデータを取得しAIを利用して業績アップに活用しようとしそれに伴ってこれらの技術者の需要が増えている背景があります。またPython言語エンジニアに関してはプログラマーの中で今最も年収が高いと言われています。

自分は大学生のときに(20年ほど前)人工知能の授業が少しだけあったのですが、今はその時の状況とは違っていてマシンの性能も飛躍的にアップし、また機械に学習させるためのデータも膨大にあるので、これから学習しようという方にとってはとても良い環境になったなと思います。

テックキャンプのAIコースLesson1で学べること

テックキャンプのレッスン1に関しては他のコースでもだいたい同じでテックキャンプの教材の進め方、メンターの活用の仕方、質問の仕方、事前の準備やアドバイスなどが書かれています。

特にサッと眺めて終わりで1時間程度のものです。Lesson1といいますが特にAIについて学ぶことはありません。

テックキャンプのAIコースLesson2で学べること

人工知能はじめの一歩ということでレッスン2ではまさに「AI(人工知能)とは」といった定義部分の話やなぜAIがブームになったか、どういった技術が使われているのか、この業界についての事前の知識が学べる章となっています。

学習時間は1時間程度ですのでこちらもざっと目を通すぐらいのものです。

テックキャンプのAIコースLesson3で学べること

レッスン3からPythonについて触れていきます。

AIコースの受講はAmazon AWSのCloud9というサービス(一定まで無料)を使って行います。レッスン3ではこのCloud9上にプログラミングの開発環境を構築するところから始まります。

ブラウザ(Chrome)でCloud9にアクセスするとターミナルやエディタが表示されますので、その上で実際にコードを書いたり実行したりしていきます。

レッスン3ではAIに関連するところまではやりません。

このレッスンでは1つのアプリを作りながらPythonにおける基本的な構文を理解していきます。実際にコードを書くのでプログラミング初心者の方はこの基本の章をしっかりやることをおすすめします。

この章では以下のような事を学びますが、いずれも他の言語でも初学者が必ず通る内容なので概念を理解しておくと良いです。

標準出力・標準入力 ターミナル上に文字を表示したり、ターミナルから入力を受け付けたりする方法
変数 イメージとしては入れ物の箱。Y=F(X)のXみたいなもの。プログラミングで必ず理解して欲しい。
辞書オブジェクト 変数の1つです。他言語だとハッシュと言ったりします
if条件分岐 処理の流れを条件によってA処理やB処理や分けるような操作
関数・メソッド 関数定義、引数、返り値について学びます
インデント Pythonはインデント(コードを書き始める左端からの距離)が重要らしい
演算子 足し算、引き算、乗算、除算などの計算について学ぶ
while、for どちらも処理を繰り返し行う記述です、他言語にもあります
配列 変数をグルーピングしたもの(という表現が正しいかわからないが)理解が早いかも
クラス オブジェクト指向言語の概念としてクラスとインスタンスについて学びます。あるオブジェクトの特徴(パラメータ)や挙動を定義したものと説明します。

ここまできて概念を簡単に説明するのって難しいんだな(; ・`ω・´)と気づいた。

テックキャンプのAIコースLesson4で学べること

ここから機械学習プログラミングについて取り組んでいきます。

まずはJupyter Notebookというよく使われるツールの使い方です。これもAmazon cloud9上から利用します。

また機械学習を学ぶ上でPythonで使える便利な「ライブラリ」について学びます。ライブラリの概念も他のプログラミング言語にあります。簡単に言うと誰かが用意してくれた便利な関数・メソッド郡のことで、これを自分のプログラムにインポートすることで様々な便利な処理を使えるようになります。

ライブラリとしてはNumPy、matplotlibの2つを使います。

NumPyは配列オブジェクトに使える便利なメソッドが用意されていて、matplotlibはグラフを作成することができます。

例えばNumPyでグラフのデータを作成し、そのデータをmatplotlibへ渡してグラフを作成、というようなことを学びます。

直線

ランダムな点

このレッスンの最後にはPandasというライブラリを使って多次元配列について学びます。多次元配列の概念は他の言語でもあります。AIとなると大量のデータを扱うので、多次元配列は難しいけど避けて通れないですね。レッスン中ではポケモンの大量データを拝借して学習をすすめます。

githubに誰かが作ったポケモンデータがっ!
https://raw.githubusercontent.com/we-b/datasets_for_ai/master/poke.csv

このレッスン4は非常に重要です。

テックキャンプのAIコースLesson5で学べること

ここでは機械学習を使ってデータ分析を行うまでの流れについて学習します。このあたりから用語がたくさん出てきて進捗が遅くなってきます。どんなデータを使ってどんなアルゴリズムを使ってどんな結果を得たいかを選択するすべを学びます。

そして実際にPythonでプログラミングをしながら「教師あり線形回帰」という分析のモデルについて学びます。

住宅の築年数、部屋数、寝室数、人口、世帯数、年収、住宅価格の大量データを取り込んで「住宅価格の予測」をする式を求めていきました。例えば以下のようなデータを取り込み。

式を求めました。

住宅価格=
築年数×0.083+部屋数×0.0058-寝室数×0.0050-人口×0.0043+世帯数×0.016+年収×3.7+誤差1.9

線形回帰モデルを使うとこのような予測ができるようになります。

目的(住宅価格の予測)をy、入力データをx1, x2, x3,と考えると y = ax1 + bx2 + cx3 + d このようになります。

レッスン5の最後の章では「線形多項回帰」モデルを使った実装をしていきます。取り込むデータがもっと多様になり予測の精度があがるとのこと。

式で表すとy = ax^5 + bx^4 + cx^3 + dx^2 + ex + f です。さらにここでは三角関数(sin, cos, tan)を使います。記憶が確かなら高校の数学でやったような‥もう覚えていません。かなり数学の知識が必要になりそうでオジサン的にはギブアップ気味です。(´・ω・`)

機械学習はscikit-learnというライブラリを使って、そのメソッドにデータを渡して一瞬で完了することがわかりました。pythonを使うと機械学習がやりやすいのはなるほどですね。

テックキャンプのAIコースLesson6で学べること

ここではデータを「分類」する方法について学びます。

分類には2種類に分類する→二値分類と、もっと多様に分類する→多クラス分類があります。このレッスンでは「ロジスティック回帰」という多量のデータを取り込んでそれが起こる確率を求める手法を学んでいきます。

このレッスンでやったのは花(アヤメ)の花びらの横と縦の長さのデータを多量に取り込んで、その特徴からアヤメの種類を導き出すことをPythonでやっています。

けど、私にはもう無理^p^
数学の知識がなさすぎて駄目だわ。それに今メインで学習してるのはiPhoneコースやし。(言い訳)

自分にはあまり理解できていないので、このAIコースを学びたい人なら数学の知識があって、Pythonプログラミングを習得してやっていきたい、という人におすすめしたいですね。

自分みたいに数学の知識が無い、これから勉強して知識を増やそうと思ってない‥こんな方は受講してもしょうがないです。

数学の知識もつけて、Pythonの使い方も習得するぞ!という熱意のある方ならぜひ取り組んでみて欲しいです。内容は非常に面白いので。

以降のテックキャンプのAIコースに関する解説は「目次」メインで行きます。

テックキャンプのAIコースLesson7、8、9で学べること

レッスン7は他の手法でSVM(サポートベクターマシン)、K近傍法、決定木という種類の分類手法について学んでいくレッスンです。

レッスン8では「教師なし学習」について学びます。クラスタリングと、その代表的な手法であるK-means法について学習していきます。

レッスン9は次元削減について学びます。大量に取り込むデータを精度の高いデータのみに絞っていく手法とのこと。これによってデータを可視化しやすくするメリットがあるようです。

一通りレッスン9まででAIコースのメインカリキュラムが終了となります。学習の目安時間は以下のようになっています。

レッスン1:1時間
レッスン2:1時間
レッスン3:10時間
レッスン4:10時間
レッスン5:5時間
レッスン6:15時間
レッスン7:15時間
レッスン8:20時間
レッスン9:15時間

合計92時間

正直自分では92時間では全てを理解できる気がしません。このあと応用カリキュラムがありAIを用いて実際にアプリを開発する方法を学びます。(例えば相手からのチャットメッセージに自動で返信するBotを作ります。)

応用編は合計15時間の目安となっています。

ということで、テックキャンプのAIコースの全容をお伝えしました。難易度は高いと思いますが学べる内容は非常に興味深いし面白いので熱意のある方はぜひチャレンジしてみてください!

AIも学べるテックキャンプ