课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础
1.1 Supervised Learning
已知輸入x以及其對應的標簽y,求解?f:x→y
回歸 regression:輸出的結果y是一個連續的變量?y=?
分類 classification:輸出的結果y是一個離散的變量?y={1,2,3...,k}
分類 classification:分類到各不知名的聚類中
當theta1 =?0.5的時候,計算得到J(θ)=0.58
當theta1=0的時候,計算得到J(θ)≈2.3
如果α取值太小,那么下降到最小值的速度會比較慢
如果α取值太大,可能一步就跳過了最小值點……
1.2 Unsupervised Learning
已知輸入x,并不知道其所屬的類別標簽y,求解將x們劃分到不同的聚類中,這些聚類具體是什么類別并不知道。
1.3 Semi-supervised Learning
輸入的x中,一部分有對應的標簽y,大部分沒有。通過這一部分有標簽的去推測各不知名的聚類是什么類別。
1.4 一張圖弄懂
?
(圖片來源:臺灣大學林軒田的《機器學習基石》3-2)
2.1 Model Representation
例子:房價預測 - 給出房子的各種特征,如面積、位置等,以及該房子對應的價格。學習一個模型,當輸出其他房子的特征時,能夠預測出新房子的價格。?
明顯這是一個回歸模型。
數據說明:
| x | 輸入數據 |
| y | 輸出數據,數據x的標簽(真實輸出結果) |
| x(i)j | 第i條數據的第j個特征 |
| m | 訓練集中數據的個數 |
| h(x) | 學習得到的模型 |
| y?? | 模型對輸入數據x的預測結果 |
由于一開始我們并不知道θ是多少,而這個就是模型需要通過數據學習得到的,和人學習一樣,模型需要知道自己究竟哪里錯了才能夠進一步學習。
于是提出模型的錯誤公式,loss/cost function來定義這個錯誤。
2.2 Cost Function
最簡單的錯誤評估,就是將預測出來的結果同真實的結果做一個平方差:
因為有m條數據,所以將這些個平方差求和之后再平均一下,作為整個訓練集的error:
再者,為了接下來模型根據這個error進行學習的以后更加方便,再除以2(因為平方項在求導的時候可以與這個分母2抵消):
而最終的目的就是讓這個error最小,只要error最小了,那就說明這個h(x)預測出來的結果和真實的結果相差不大了,那我們的模型就訓練完畢了。
學習目標:
2.3 Cost Function - intuition
接下來通過幾個例子來了解一下cost function是怎么工作的,θ又該怎么取值。
下面的圖中,紅色叉叉表示訓練數據,黑色直線代表h(x)。
?
4. 以此類推,再畫出一些點,然后連接起來
cost function取最小值的時候就是凹陷處,數學意義上梯度為0的地方。
2.4 Gradient Descent
更新過程可視化如下,從上面的點一直沿著一定的方向下降到下面的點:
下面來看看這個步長α的取值問題:
另外,如果這個J(θ)不止一個最小值點,那么當落入局部最小值(local minimun),就跳不出來了,因為梯度已經變成了0,不再更新θ了。
當不斷靠近最小值的過程中,每次更新的速度也會下降,因為梯度越來越小了,如下圖所示:
最后把gradient descent應用到linear regression with one variable問題上:
梯度求導如下;
對于有一些J(θ),可能具有多個“局部最優解”,如下圖:
但是對于Linear Regression來說,J(θ)是“碗形”的,術語稱為“convex function”,如下圖:
Batch Gradient Descent?
使用訓練集中所有數據的error的平均值作為一次更新,即:
Stochastic Gradient Descent?
使用訓練集中的一個數據的error就更新一次,即:
Mini-Batch Gradient Descent?
使用訓練集中部分數據的error的平均值作為一次更新,即:
總結
以上是生活随笔為你收集整理的课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商业项目中最受欢迎的 7 种编程语言
- 下一篇: 百度地图大数据告诉你一线城市真相