Machine Learning學習日記 — Coursera篇 (Week 2.1):Multiple features, Gradient Descent for multiple variables, feature scaling

Pandora123
6 min readMay 5, 2016

--

Multivariate Linear Regression(上)

綱要

  1. Multiple features
  2. Gradient Descent for multiple variables
  3. Feature scaling

1. Multiple features

跟前面所提的hypothesis,最大的差異是不再只是單一個feature/參數了

現在要考慮的情境會比較像是

Hypothesis改寫之後的模樣:

Previously:先前的

當給予一個hypothesis的時候,會將輸入變數(x)以及參數(θ)視為兩個獨立的matrix

for convenience of notation:為方便符號的標記

這兩個獨立的matrix的乘積要等於這個式子:

現在問題來了,要如何用x的matrix跟θ的matrix來表示這個式子?

還記得前面所提的Matrix運算嗎?

為了要使兩個matrix可以進行相乘,故需要將θ matrix轉成適合的dimension(使用transpose矩陣)

原本的θ matrix
轉換過後的θ matrix跟x matrix

若只是讓matrix的乘積等於hypothesis的話,不一定只能在θ matrix上動手腳,x matrix應該也能做相對應的transpose的轉置

但我覺得這應該是一個約定成俗的習慣吧,輸入的每筆資料是一行一行的呈現(由上至下),而參數matrix則相對較為彈性

2. Gradient Descent for multiple variables

How to fit the parameter of that(multiple features) hypothesis ?

怎麼找到最適當的參數呢?

  • Cost function

Cost function求得目前參數所預測的偏差值

simultaneously:同時地

Gradient descent則是將偏差值最小化,以求得最適當的參數(所有參數都要以同個cost function(當前參數預測的偏差值)來進行運算)

這個式子的概念就是,隨著參數越來越準,後面那一大串的數值(偏差值)就會越來越小,也因此θj便會漸漸趨近於一個範圍,直至後面的數值(偏差值)趨近於0

隨堂練習

equivalent:相等的

Ans:

這題要考的是要如何用不同的函式表示hθ(x)

第一個即為前面線性代數所提到的矩陣相乘的觀念

第二個則為需了解裡面符號的含義

θ及X右下方的 j表示第 j項的 數字

X右上方的(i)則表示第 i組的 training data

θj乘上Xj正是原本hypothsis:h(θ)=θ0*X0+θ1*X1+θ2*X2+…+θn*Xn

為什麼要特別強調這個 θ0,X0。是因為其代表著“常數”(X0通常為設為1)

在參數只有兩個的時候,Gradient descent的呈現較易理解

就是不斷的針對二個參數(θ0,θ1)進行優化。

如果對這兩個函式有點陌生的話,可以複習一下前面Gradient Descent的觀念(由偏微分和chain rule所推導)

3. Feature scaling

A trick for making Gradient Descent algorithm work well

概念:令所有的features都為相似的尺度、比例

舉例:若是今天兩個features相差懸殊

則其所形成的分布圖也會較為分散,使得搜索效率不佳

若今天我們把這些feature除上基數,使其皆處於一個0-1的範圍

其分佈將較為集中,使得搜尋效率較佳

Feature scaling就是將所有features的範圍壓縮在差不多-1~1之間的比例

(1) Correct example

x1: -1~1 ; x2: 2~3

(2) Wrong example

x1: -100~100 ; x2: -0.001~0.001

而除了除上基數之外,有時候也會進行Mean normalization

先扣掉平均數在除上基數

(假設size的平均數為1000, bedroom數的平均數為2)

--

--