Coursera Machine Learningまとめ

 

深層学習、強化学習を学ぼうと1年以上前に決めたにも関わらず、なかなか自習が進まず。まずは、機械学習の基礎からちゃんと学ぼうと、有名なCourseraのAndrew Ng氏のMachine Learningを受講しました。受講したまま放っておくと内容をどんどん忘れそうなので、備忘のためにブログにまとめます。

 

Coursera 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つの場合の線形回帰について学びます。お題は住宅価格の予測で、サイズを変数として価格を予測します。

Housing Price Estimation

 

家のサイズを変数 x として、価格を予測するためのHypothesisを以下のように定義します。 


Hypothesis

シータはパラメータです。

シータを求めるために、下記のコスト関数を最小化します。Hypothesisで予測した価格と実際のデータからの価格 y との差分の最小化です。


Cost Function

コストを最小化するために、Gradient Descentを用います。コスト関数をシータで微分すれば、そのシータに関する傾きがわかるので、その値を用いて、シータを更新し続けます。(正の傾きであれば、シータを大きくすれば、コストが大きくなるので、シータを小さくする。負の傾きであればその逆) 

アルファは、Learning rateで、大きすぎると、コストが収束せずに発散する場合があります。


Gradient descent algorithm

コストが最小になるまで、この計算を繰り返せば、適切なシータが得られ、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を実装します。Week4Week5の記事を読んで、より深く理解したいと思った人におすすめです。



Kaggleで勝つデータ分析の技術

データ分析について学び始めた人におすすめです。