Coursera の Machine Learningの内容を
あまり専門用語などを使わず、
自分の理解に基づいて、
**ゆるーく** まとめます。
そのため、きっと厳密性には欠ける部分が多々あると思います。
11週のコースで、
以下のような項目が学べます。
能力に応じてどんどん自分のペースで学んでいけます。
# Week1:
## Introduction
学習する概要と、
このコースの使い方が説明されます。
具体的には、
- 機械学習とは?
- どのような分野で使われているか。
- 教師あり学習: 手書き文字認識など、お手本がある学習
- 教師なし学習: SNSでのグループを分けるとか、無秩序から秩序を見つける方法
## Linear Regression with One Variable
例えば、土地の面積と、住宅の価格との関係が、
ある関数で表せる場合、
面積から価格が予想できます。
学習予想が、ある関数の形にフィットする場合。
ひとつの入力に対して、線形回帰により
値を予測する方法が説明されます。
ここで学ぶのは、
- 仮説関数と、そのパラメータを、数式でモデル化する方法
- 目的関数: Cost Function/ Objective Function
これは値を予測するための関数です。
- 最急降下法: Gradient Descent
目的関数の最小値つまり、予測値を求める方法
## Linear Algebra Review
機械学習を効率的に行うために、
行列計算や、ベクトル計算が多用されます。
高校などで習った行列計算の復習をします。
# Week2
## Linear Regression with Multiple Variables
前週はひとつの変数の場合が説明されましたが、
ここでは
どのように線形回帰を多変数に応用したらよいのか、
多変数の場合が説明されます。
具体的には以下のようなことを学びます。
- Octave/MATLABのインストール
- 多変数最急降下法
多変数関数の最小値を求める方法
- パラメータの調整や補正:
スケール調整、正規方程式 Normal Equation
複数の変数のレンジを統一する方法
- 学習ステップα
仮説を求めるとき、どのくらい変数を変化しつつ学習すべきか
## Octaveについて
数値解析マクロみたいな言語 Octaveの概要を学びます。
Octaveでの
- 数値計算、行列計算
- データのグラフ・プロット
- プログラム制御 for, while, if statement
C言語やJavaなどの言語でも同じことが出来ますが、
やはり数値解析に特化した言語だと、
複雑な数列計算やベクトル計算が、
数行で記述できてしまうので、
慣れるととても分かりやすいです。
Andrew Ng教授は、
低レベルの言語で学ぼうとする人は、
早めに挫折する人が多い、と言ってました。
# WEEK 3
## Logistic Regression
ロジスティック回帰では、データの分類を学びます。
例えば、
- スパムメールかどうかを分ける
- このオンライン作業は詐欺的?
- 腫瘍は悪性?良性?
ここではこのようなことを学びます。
- 分類するための仮説を、どのように数値表現すれば良いのか?
- グループの線引きはどうやったら良いのか?
- 複数のグループを分類をするにはどうすれば良いのか。
## Regularization 正則化
学習のしすぎについて学びます。
与えられたデータにフィットさせすぎると、
逆に将来のデータに適切な回答が出来なくなることがあります。
目的関数をなだらかにして、学習のしすぎを回避(正規化)して、
線形回帰や、ロジスティック回帰をなだらかにする方法を学びます。
# WEEK 4
## Neural Networks: Representation
脳の神経細胞の構造を意識したニューラルネットについて学びます。
古くから提唱された考え方で、
一時廃れましたが、
またあらゆる分野で使えるようになってきました。
このようなことを学びます。
- ニューラルネットとその情報の流れ方
- ニューラルネットで論理(AND, OR, XNOR,etc)が作れる
# WEEK 5
## Neural Networks: Learning
復活してきたニューラルネットワーク。
どのようにニューラルネットで学習させるかを学びます。
Andrew Ng教授自身も、パット見複雑だと認めています。
でも論理さえ組み込めば、
中身を詳細に理解しなくても、
仮説を求めるには有効な方法です。
学習がうまく行っているのか確認する方法や、
学習前の初期値をどのように選んだら良いのか、
という具体的な方法も説明されます。
- ニューラルネットの目的関数
- 信号を前方に流し(ForwardPropagetion)、
- 誤差を最小にするために後方に戻します(BackPropergation)。
- Octaveでの実装方法
- 学習がうまくできているかの確認方法
- 初期値はどうのように選んだら良いのか
# WEEK 6
## Advice for Applying Machine Learning
機械学習アルゴリズムを評価する方法を学びます。
学習させたデータに対してうまくいっても、
新たな未知のデータに対する成績が悪ければ意味がありません。
学習セット、相互検証セット、テストセットに分けて検証する方法や、
偏った学習、学習しすぎについて理解します。
## Machine Learning System Design
良い仮説を導くために、、
作成中の機械学習システムの中で、
優先的に改善する箇所を見つける方法を学びます。
- 良いシステムを、最短で生み出すためのアドバイス
- 精度と再現率を評価する方法、
- そしてそのバランスをとる方法
- データを持つものが勝者になる?とは
# WEEK 7
## Support Vector Machines
SVM Support Vector Machineとは、
ロジスティック回帰を単純化して、
分類に余裕を持たせる方法を学びます。
カーネルで、等高線みたいにデータを把握する方法。
その後、異常値を検出するときも出てきます。
# WEEK 8
## Unsupervised Learning
未知のデータを、いくつかのグループに分ける方法、
教師なし学習を学びます。
- データは何個のグループに分けられるか?
- その中心はどこにあるのか?
## Dimensionality Reduction
主成分分析 PCA Principal Component Analysis
データの主成分を把握して、
予測精度をできるだけ落とさず、
計算量を減らす
方法を学びます。
具体的には、
三次元にばらついたデータを、二次元に転写したり、
二次元にばらついたデータを、一次元に転写したりします。
# WEEK 9
## Anomaly Detection
異常値、外れ値、例外の検出方法を学びます。
具体的には
- 製品の不良品を見つける
- 監視システム
- 詐欺行為の検出
異常値検出と、教師あり学習の違いも学びます。
## Recommender Systems
AmazonやNetflixなどを利用するときに、
ユーザーの好みそうな他の情報を表示させるなど、
おすすめシステムの構造を学びます。
- ユーザーの好みから、好きそうなものを、おすすめする方法
- 逆に、ユーザーの好みから、その好みのものの性質を把握する方法
# WEEK 10
## Large Scale Machine Learning
デジタル時代になり、豊富なデータを集められるようになりました。
また日々更新し続けるデータを、ダイナミックに学習する必用があるかもしれません。
巨大データを扱うには、注意する点もあります。
- 計算量を減らす方法
- 確率的に仮説に到達する方法
- 小分けにして仮説に到達する方法
- 更新され続けるデータを扱う方法
- データの並列処理
# WEEK 11
## Application Example: Photo OCR
具体的な応用として、
画像上の人物、物体、文字を検出する方法を学びます。
写真上の文字を認識して、
OCR(Optical Character Recognition/Reader)
を使って、文字を読み取る方法も学びます。
Comments
Post a Comment