Coursera Machine Learningまとめ
深層学習、強化学習を学ぼうと1年以上前に決めたにも関わらず、なかなか自習が進まず。まずは、機械学習の基礎からちゃんと学ぼうと、有名なCourseraのAndrew Ng氏のMachine Learningを受講しました。受講したまま放っておくと内容をどんどん忘れそうなので、備忘のためにブログにまとめます。
Coursera Machine Learningコースがどのようなものか
機械学習の基礎をAndrew Ng氏がわかりやすく解説してくれます。動画での解説8割、演習での実際のプログラミング2割といった感じで、演習では、scikit-learn等の機械学習ライブラリを使うわけでは無く、基礎の数式から自分で機械学習のプログラミングを行います。利用する言語は、Octave/MATLAB。
演習込みで行う場合は、コースを購入(8,000円くらい)する必要があるのですが、動画だけで学習するのであれば、YouTubeでも閲覧することができます。
自分は、以前YouTubeで学習しようとしたのですが、特に期限もなくだらだらとやっていたので、結局途中でやめてしまいました。今回は、演習含めやりたかったので、コースを購入。値段以上の価値はあったかなと思います。
コース概要
コースの目次です。ブログにまとめたものについては、そのリンクも記載しています。
Week1(まとめ:本記事)
- Introduction
- Linear Regression with One Variable
- Linear Algebra Review
Week2(まとめ記事)
- Linear Regression with Multiple Variables
- Octave/Matlab Tutorial
Week3
Week4(まとめ記事)
- Neural Networks: Representation
Week5(まとめ記事)
- Neural Networks: Learning
Week6
Week7(まとめ記事)
- Support Vector Machines
Week8
Week9
Week10(まとめ記事)
- Large Scale Machine Learning
Week11(まとめ記事)
- Application Example: Photo OCR
Week1
Introduction
機械学習の概要紹介です。歴史や何に使われているか等を説明してくれます。
Linear Regression with One Variable
まずは、機械学習の基礎ということで、変数が1つの場合の線形回帰について学びます。お題は住宅価格の予測で、サイズを変数として価格を予測します。
家のサイズを変数 x として、価格を予測するためのHypothesisを以下のように定義します。
シータはパラメータです。
シータを求めるために、下記のコスト関数を最小化します。Hypothesisで予測した価格と実際のデータからの価格 y との差分の最小化です。
コストを最小化するために、Gradient Descentを用います。コスト関数をシータで微分すれば、そのシータに関する傾きがわかるので、その値を用いて、シータを更新し続けます。(正の傾きであれば、シータを大きくすれば、コストが大きくなるので、シータを小さくする。負の傾きであればその逆)
アルファは、Learning rateで、大きすぎると、コストが収束せずに発散する場合があります。
コストが最小になるまで、この計算を繰り返せば、適切なシータが得られ、Hypythesisで価格を予測できるようになります。(今回は、変数が1つで、そこまで精度の良いものではありませんが。。)
ちなみに、Gradient Descentの各ステップに全てのトレーニングデータを用いるものを、“Batch” Gradient Descent というらしいです。
Linear Algebra Review
線形代数の基礎を教えてくれます。行列計算等忘れてしまった場合は、再学習できます。
次回は、Week2 Linear Regressionについてまとめます。
本記事を読んでいただきありがとうございます。
機械学習を実際に使うにあたり、Coursera MLと合わせておすすめしたい書籍を紹介します。
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
scikit-learnを用いた機械学習を学ぶのに最適な本です。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
Deep Learningと言えばこれ。TensorFlowやPyTorch等のフレームワークを用いずに、基礎の理論からDeep Learningを実装します。Week4、Week5の記事を読んで、より深く理解したいと思った人におすすめです。
Kaggleで勝つデータ分析の技術
データ分析について学び始めた人におすすめです。