1. 程式人生 > >機器學習筆記(一)----線性方程擬合的梯度下降法

機器學習筆記(一)----線性方程擬合的梯度下降法

機器學習

引言

定義:一個年代近一點的定義,由 Tom Mitchell 提出,來自卡內基梅隆大學,Tom 定義的機器學習是,一個好的學習問題定義如下,他說,一個程式被認為能從經驗 E 中學習,解決任務 T,達到效能度量值P,當且僅當,有了經驗 E 後,經過 P 評判,程式在處理 T 時的效能有所提升。經驗e 就是程式上萬次的自我練習的經驗而任務 t 就是下棋。效能度量值 p 呢,就是它在與一些新的對手比賽時,贏得比賽的概率。

目前存在幾主要的兩種型別被我們稱之為監督學習和無監督學習個想法是指我們將教計算機如何去完成任務而在無監督學習中,我們打算讓它自己進行。

監督學習

eg:可以看出,監督學習指的就是我們給學習演算法一個數據集。這個資料集由“正確答案”:可以看出,監督學習指的就是我們給學習演算法一個數據集。這個資料集由“正確答案”組成。在房價的例子中,我們給了一系列房子的資料,我們給定資料集中每個樣本的正確價格,即它們實際的售價然後運用學習演算法,算出更多的正確答案。比如你朋友那個新房子的價格。用術語來講,這叫做迴歸問題。
其基本思想是,我們資料集中的每個樣本都有相應的“正確答案”。再根據這些樣本作出預測,就像房子和腫瘤的例子中做的那樣。
我們還介紹了迴歸問題,即通過迴歸來推出一個連續的輸出,之後我們介紹了分類問題,其目標是推出一組離散的結果。

無監督學習

在無監督學習中,我們已知的資料。看上去有點不一樣,不同於監督學習的資料的樣子,即無監督學習中沒有任何的標籤或者是有相同的標籤或者就是沒標籤。所以我們已知資料集,卻不知如何處理,也未告知每個資料點是什麼。別的都不知道,就是一個數據集。你能從資料中找到某種結構嗎?針對資料集,無監督學習就能判斷出資料有兩個不同的聚集簇。
無監督學習演算法可能會把這些資料分成兩個不同的簇。所以叫做聚類演算法
所以這個就是無監督學習,因為我們沒有提前告知演算法一些資訊,比如,這是第一類的人,那些是第二類的人,還有第三類,等等。我們只是說,是的,這是有一堆資料。我不知道資料裡面有什麼。我不知道誰是什麼型別。我甚至不知道人們有哪些不同的型別,這些型別又是什麼。但你能自動地找到資料中的結構嗎?就是說你要自動地聚類那些個體到各個類,我沒法提前知道哪些是哪些。因為我們沒有給演算法正確答案來回應資料集中的資料,所以這就是無監督學習。

單變數線性迴歸

模型表示

我將在整個課程中用小寫的 m 來表示訓練樣本的數目。
以之前的房屋交易問題為例,假使我們迴歸問題的訓練集(Training Set)如下表所示:
我們將要用來描述這個迴歸問題的標記如下:
m 代表訓練集中例項的數量
x 代表特徵/輸入變數
y 代表目標變數/輸出變數
(x,y) 代表訓練集中的例項
(x(i),y(i) ) 代表第 i 個觀察例項
h 代表學習演算法的解決方案或函式也稱為假設(hypothesis)
這就是一個監督學習演算法的工作方式,我們可以看到這裡有我們的訓練集裡房屋價格
我們把它餵給我們的學習演算法,學習演算法的工作了,然後輸出一個函式,通常表示為小寫 h表示。h 代表 hypothesis(假設) ,h 表示一個函式,輸入是房屋尺寸大小,就像你朋友想出售的房屋,因此 h 根據輸入的 x 值來得出 y 值,y 值對應房子的價格 因此,h 是一個從x 到 y 的函式對映。我將選擇最初的使用規則 h 代表 hypothesis,因而,要解決房價預測問題,我們實際上是要將訓練集“喂”給我們的學習演算法,進而學習得到一個假設 h,然後將我們要預測的房屋的尺寸作為輸入變數輸入給 h,預測出該房屋的交易價格作為輸出變數輸出為結果。那麼,對於我們的房價預測問題,我們該如何表達 h?
一種可能的表達方式為:

hθ(x)=θ0+θ1x, 因為只含有一個特徵/輸入變數,因此這樣的問題叫作單變數線性迴歸問題。

代價函式

我們將定義代價函式的概念,這有助於我們弄清楚如何把最有可能的直線與我們的資料相擬合
線上性迴歸中我們有一個像這樣的訓練集,m 代表了訓練樣本的數量,比如 m = 47。
而我們的假設函式,也就是用來進行預測的函式,是這樣的線性函式形式:

hθ(x)=θ0+θ1x

我們的目標便是選擇出可以使得建模誤差的平方和能夠最小的模型引數
即使得代價函式

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2
最小
代價函式也被稱作平方誤差函式,有時也被稱為平方誤差代價函式。我們之所以要求出誤差的平方和,是因為誤差平方代價函式,對於大多數問題,特別是迴歸問題,都是一個合理的選擇。還有其他的代價函式也能很好地發揮作用,但是平方誤差代價函式可能是解決迴歸問題最常用的手段了。

代價函式的直觀理解

:hθ(x)=θ0+θ1xθ0,θ1J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2minimizeθ0,θ1J(θ0,θ1)

梯度下降

梯度下降是一個用來求函式最小值的演算法,我們將使用梯度下降演算法來求出代價函式

J(θ0,θ1)的最小值。

梯度下降背後的思想是:開始時我們隨機選擇一個引數的組合(θ0,θ1,…,θn),計算代價函式,然後我們尋找下一個能讓代價函式值下降最多的引數組合。我們持續這麼做直到到到

一個區域性最小值(local minimum),因為我們並沒有嘗試完所有的引數組合,所以不能確定
我們得到的區域性最小值是否便是全域性最小值(global minimum),選擇不同的初始引數組合,可能會找到不同的區域性最小值。
批量梯度下降(batch gradient descent)演算法的公式為:

梯度下降的直觀理解

梯度下降演算法如下:

θj:=θjαθjJ(θ)
描述:對 θ 賦值,使得 J(θ)按梯度下降最快方向進行,一直迭代下去,最終得到區域性最小值。其中 α 是學習率(learning rate),它決定了我們沿著能讓代價函式下降程度最大的方向向下邁出的步子有多大。
讓我們來看看如果 α 太小或 α 太大會出現什麼情況:
如果 α 太小了,即我的學習速率太小,結果就是隻能這樣像小寶寶一樣一點點地挪動,
去努力接近最低點,這樣就需要很多步才能到達最低點,所以如果 α 太小的話,可能會很慢,因為它會一點點挪動,它會需要很多步才能到達全域性最低點。如果 α 太大,那麼梯度下降法可能會越過最低點,甚至可能無法收斂,下一次迭代又移動了一大步,越過一次,又越過一次,一次次越過最低點,直到你發現實際上離最低點越來越遠,所以,如果 α 太大,它會導致無法收斂,甚至發散。現在,我還有一個問題,如果我們預先把 θ1 放在一個區域性的最低點,你認為下一步梯度下降法會怎樣工作?
假設你將 θ1 初始化在區域性最低點,在這兒,它已經在一個區域性的最優處或區域性最低點。結果是區域性最優點的導數將等於零,因為它是那條切線的斜率。這意味著你已經在區域性最優點,它使得 θ1 不再改變,也就是新的 θ1 等於原來的 θ1,因此,如果你的引數已經處於區域性最低點,那麼梯度下降法更新其實什麼都沒做,它不會改變引數的值。這也解釋了為什麼即
使學習速率 α 保持不變時,梯度下降也可以收斂到區域性最低點。

梯度下降的線性迴歸

梯度下降是很常用的演算法,它不僅被用線上性迴歸上和線性迴歸模型、平方誤差代價函式。梯度下降演算法和線性迴歸演算法比較如下:

:{θj:=θjαθjJ(θ0,θ1)(j=1j=0)}hθ(x)=θ0+θ1xJ(θ0,θ1)=12

相關推薦

機器學習筆記----線性方程梯度下降

機器學習 引言 定義:一個年代近一點的定義,由 Tom Mitchell 提出,來自卡內基梅隆大學,Tom 定義的機器學習是,一個好的學習問題定義如下,他說,一個程式被認為能從經驗 E 中學習,解決任務 T,達到效能度量值P,當且僅當,有了經驗 E 後,

機器學習筆記問題及正則化

一、 過擬合問題 1. 引入 線性迴歸當中:   假設我們拿出房屋面積與房價的資料集,隨著面積的增大,房價曲線趨於平緩。第一個模型不能很好地擬合,具有高偏差(欠擬合)。我們加入二次項後曲線可以較好的擬合,用第三個模型去擬合時,它通過了所有的資料點,但它是一條扭曲的線條,不停上下波動,我們並

Pytorch 學習筆記——關係

1、建立資料集 import torch import matplotlib.pyplot as plt import torch.nn.functional as F x = torch.unsqueeze(torch.linspace(-1, 1,

機器學習筆記

get 實現 mach 理論 怎樣 算法 分類 AI 結構 1、基礎概念   什麽是機器學習?   機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的

模式識別與機器學習筆記

本系列博文是對研一課程《模式識別與機器學習》的隨堂筆記,希望將老師所講的與自己的見解記錄下來,方便加深自己的理解以及以後複習檢視,筆記完全按照老師所講順序,歡迎交流。 一、模式識別與機器學習的基本問題 機器學習主要解決以下四類問題: 1.監督學習:指的是訓練的資料既包括特徵(feat

機器學習筆記:最小二乘法和梯度下降

一、最小二乘法 1.一元線性擬合的最小二乘法 先選取最為簡單的一元線性函式擬合助於我們理解最小二乘法的原理。 要讓一條直接最好的擬合紅色的資料點,那麼我們希望每個點到直線的殘差都最小。 設擬合直線為

機器學習筆記線性迴歸模型

一、線性迴歸模型 (一)引入—梯度下降演算法 1. 線性假設: 2. 方差代價函式:   3. 梯度下降:   4. : learning rate (用來控制我們在梯度下降時邁出多大的步子,值較大,梯度下降就很迅速) 值過大易造成無法收斂到minimum(每一步邁更大)

吳恩達機器學習筆記,含作業及附加題答案連結

吳恩達機器學習筆記(一) 標籤(空格分隔): 機器學習 吳恩達機器學習筆記一 一機器學習簡介 機器學習的定義 監督學習 非監督學習

深入理解java虛擬機器學習筆記

Java記憶體區域模型 Java虛擬機器在執行Java程式的過程中,會把它所管理的記憶體區域劃分為若干個不同的資料區域,這些區域一般被稱為執行時資料區(Runtime Data Area),也就是我們常說的JVM記憶體。 執行時資料區通常包括以下這幾個部分: 程式計數器(Program Counte

深入理解JAVA虛擬機器學習筆記JVM記憶體模型

一、JVM記憶體模型概述 JVM記憶體模型其實也挺簡單的,這裡先提2個知識點: 1、組成:java堆,java棧(即虛擬機器棧),本地方法棧,方法區和程式計數器。 2、是否共享:其中方法區和堆區是執行緒共享的,虛擬機器棧,本地方法棧和程式計數器是執行緒私有的,也稱執行緒

Java虛擬機器學習筆記:記憶體區域與HotSpot虛擬機器物件探祕

執行時資料區域 Java虛擬機器在執行Java程式的過程中會把它所管理的記憶體劃分為若干個不同的資料區域。這些區域都有各自的用途,以及建立和銷燬的時間,有的區域隨著虛擬機器程序的啟動而存在,有些區域則依賴使用者執行緒的啟動和結束而建立和銷燬。根據《Java虛擬機

機器學習筆記:極大似然估計與貝葉斯估計的區別

似然函式: 樣本資料的分佈和在引數為下的概率分佈的相似程度 極大似然估計:只要求出符合樣本資料分佈的最優引數即可,不需要考慮先驗。 貝葉斯估計   MAP(最大後驗估計)

機器學習筆記——基於單層決策樹的AdaBoost演算法實踐

                             基於單層決策樹的AdaBoost演算法實踐    最近一直在學習周志華老師的西瓜書,也就是《機器學習》,在第八章整合學習中學習了一個整合學習演算法,即AdaBoost演算法。AdaBoost是一種迭代演算法,其核心思想

機器學習筆記:關於隱含馬爾科夫模型

這篇文章是我在看完吳軍老師的數學之美一書中關於隱馬爾科夫模型之後所寫,旨在記錄一下自己對隱馬爾科夫模型的認識, 隱馬爾科夫模型我在很早之前就有所接觸,在學習語音識別的時候,會涉及到隱馬爾科夫模型,當時是完全不懂,現在雖然還是一知半解,因為沒有再次去使用,接下來的主攻方向是機器視覺,對隱馬爾可

周志華機器學習筆記

新人一枚,既是機器學習的初學者,也是首次發部落格。謹以此記錄我的學習體會,做一些總結。望與大家共同學習、共同進步。文中若有內容錯誤或有措詞不嚴謹之處,望大家不吝指出。謝謝! 機器學習中的基本概念 基本術語 根據上圖我們可以用一個三維空間來了解以

機器學習筆記樸素貝葉斯的Python程式碼實現

上研究生的時候,一心想讀生物資訊學的方向,由此也選修了生物數學,計算生物學等相關課程。給我印象最深的是給我們計算生物學的主講老師,他北大數學系畢業,後來做起了生物和數學的交叉學科研究。課上講的一些演算法比如貝葉斯,馬爾科夫,EM等把我給深深折磨了一遍。由於那時候

機器學習筆記邏輯迴歸與多項邏輯迴歸

1.邏輯迴歸與多項邏輯迴歸 1.1什麼是邏輯迴歸? 邏輯迴歸,可以說是線上性迴歸的基礎上加上一個sigmoid函式,將線性迴歸產生的值歸一化到[0-1]區間內。sigmoid函式如下: ​

機器學習筆記微積分

微積分 @(Machine Learning)[微積分, 概率論] 1.夾逼定理: 當x∈U(x0,r)時,有g(x)≤f(x)≤h(x)成立,並且limx→x0g(x)=A,limx→x0h(x)=A那麼:limx→x0f(x)=A 2.極限存

機器學習筆記梯度下降演算法,隨機梯度下降,正規方程

一、符號解釋 M 訓練樣本的數量 x 輸入變數,又稱特徵 y 輸出變數,又稱目標 (x, y) 訓練樣本,對應監督學習的輸入和輸出 表示第i組的x   表示第i組的y h(x)表示對應演算法的函式 是

機器學習筆記 邏輯斯蒂迴歸LR

本文是在學習完李航老師的《統計學習方法》後,在網上又學習了幾篇關於LR的部落格,算是對LR各個基礎方面的一個回顧和總結。 一 簡述   邏輯斯蒂迴歸是一種對數線性模型。經典的邏輯斯蒂迴歸模型(LR