1. 程式人生 > >機器學習入門(四)之----線性迴歸(正規方程)

機器學習入門(四)之----線性迴歸(正規方程)

再談最小平方問題

有了矩陣求導工具後,我們可以尋找最小化損失函式的引數值的閉式解(closed-form solution)。首先我們先把這個損失函式表達成向量的形式。

把每個訓練樣本放在矩陣一行,可以得到一個\(m \times n\) 設計矩陣\(X\) (design matrix) ,即
\[ X=\left[ \begin{array}{c}{ -\left(x^{(1)}\right)^{T}-} \\ {-\left(x^{(2)}\right)^{T}-} \\ {\vdots} \\ {-\left(x^{(m)}\right)^{T}-} \end{array} \right] \]

$\vec{y} $ 是一個$m $ 維的列向量,包含對應的標籤,
\[ \vec{y}=\left[\begin{array}{c}{y^{(1)}} \\ {\vdots} \\ {y^{(m)}}\end{array}\right] \]
因此,有,
\[ \begin{aligned} X \theta-\vec{y} &= \left[\begin{array}{c}{\left(x^{(1)}\right)^{T} \theta} \\ {\vdots} \\ {\left(x^{(m)}\right)^{T} \theta}\end{array}\right]-\left[\begin{array}{c}{y^{(1)}} \\ {\vdots} \\ {y^{(m)}}\end{array}\right] \\ &=\left[\begin{array}{c}{h_{\theta}\left(x^{(1)}\right)-y^{(1)}} \\ {\vdots} \\ {h_{\theta}\left(x^{(m)}\right)-y^{(m)}}\end{array}\right] \end{aligned} \]
我們先把均方誤差損失函式\(J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}\) 表達成向量的形式,有,
\[ \begin{aligned} \frac{1}{2}(X \theta-\vec{y})^{T}(X \theta-\vec{y}) &=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} \\ &= J(\theta) \end{aligned} \]
可以看到這個損失函式其實是關於向量引數\(\theta\) 的矩陣函式。利用之前矩陣求導的兩條性質,
\[ \begin{equation} \begin{aligned} \nabla_{A^{T}} f(A) &=\left(\nabla_{A} f(A)\right)^{T} \\ \nabla_{A} \operatorname{tr}A B A^{T} C &=C A B+C^{T} A B^{T} \\ \end{aligned} \end{equation} \]
我們可以有,
\[ \begin{equation} \begin{aligned} \nabla_{A^{T}} \operatorname{tr}A B A^{T} C &= B^{T}A^{T}C^{T}+BA^{T}C \\ \end{aligned}\end{equation} \]
接下來對損失函式關於引數向量\(\theta\) 求導我們有,
\[ \begin{aligned} \nabla_{\theta} J(\theta) &=\nabla_{\theta} \frac{1}{2}(X \theta-\vec{y})^{T}(X \theta-\vec{y}) \\ &=\frac{1}{2} \nabla_{\theta}\left(\theta^{T} X^{T} X \theta-\theta^{T} X^{T} \vec{y}-\vec{y}^{T} X \theta+\vec{y}^{T} \vec{y}\right) \\ &=\frac{1}{2} \nabla_{\theta} \operatorname{tr}\left(\theta^{T} X^{T} X \theta-\theta^{T} X^{T} \vec{y}-\vec{y}^{T} X \theta+\vec{y}^{T} \vec{y}\right) \\ &=\frac{1}{2} \nabla_{\theta}\left(\operatorname{tr} \theta^{T} (X^{T} X) \theta I-2 \operatorname{tr} \vec{y}^{T} X \theta\right) \\ &=\frac{1}{2}\left(X^{T} X \theta+X^{T} X \theta-2 X^{T} \vec{y}\right) \\ &=X^{T} X \theta-X^{T} \vec{y} \end{aligned} \]
第三個等式用到一個標量的跡就是它本身。第五個等式前半部分用到了上面的性質$\nabla_{A^{T}} \operatorname{tr}A B A^{T} C = B^{T}A^{T}C^{T}+BA^{T}C $ ,而後半部分用到$\nabla_{A}\operatorname{tr}A B =B^{T} $ 。

我們令這個導數等於零,就得到正規方程(normal equations),
\[ \begin{equation}\begin{aligned} X^{T} X \theta=X^{T} \vec{y} \end{aligned}\end{equation} \]
最後可以得到引數的閉式解,
\[ \begin{equation}\begin{aligned} \theta=(X^{T} X)^{-1}X^{T} \vec{y} \end{aligned}\end{equation} \]
打完,收工。

相關推薦

機器學習入門----線性迴歸正規方程

再談最小平方問題 有了矩陣求導工具後,我們可以尋找最小化損失函式的引數值的閉式解(closed-form solution)。首先我們先把這個損失函式表達成向量的形式。 把每個訓練樣本放在矩陣一行,可以得到一個\(m \times n\) 設計矩陣\(X\) (design matrix) ,即 \[ X=\

機器學習演算法與Python實踐邏輯迴歸Logistic Regression

#!/usr/bin/python # -*- coding:utf-8 -*- import numpy as np from numpy import * import matplotlib.pyplot as plt #處理資料函式 def loadDataSet():

機器學習5 正則化的線性迴歸Regularized Linear Regression和偏差對方差Bias v.s. Variance

在這篇博文中我們將會實現正則化的線性迴歸以及利用他去學習模型,不同的模型會具有不同的偏差-方差性質,我們將研究正則化以及偏差和方差之間的相互關係和影響。 這一部分的資料是關於通過一個水庫的水位來預測水庫的流水量。為了進行偏差和方差的檢驗,這裡用12組資料進行迴

機器學習筆記《》:線性迴歸,邏輯迴歸案例與重點細節問題分析

import numpy as np import pandas as pd import matplotlib.pyplot as plt import os path = "data"+os.sep+"creditcard.csv"; pdData =

機器學習線性迴歸Linear Regression

線性學習中最基礎的迴歸之一,本文從線性迴歸的數學假設,公式推導,模型演算法以及實際程式碼執行幾方面對這一回歸進行全面的剖析~ 一:線性迴歸的數學假設 1.假設輸入的X和Y是線性關係,預測的y與X通過線性方程建立機器學習模型 2.輸入的Y和X之間滿足方程Y= θ

機器學習線性迴歸機器學習基石

引子 在一個二元分類的問題中我們通常得到的結果是1/0,而在分類的過程中我們會先計算一個得分函式然後在減去一個門檻值後判斷它的正負若為正則結果為1若為負結果為0。 事實上從某種角度來看線性迴歸只是二元分類步驟中的一個擷取它沒有後面取正負號的操作,它的輸出結果為一個實數而非

用python來實現機器學習線性迴歸linear regression

需要下載一個data:auto-mpg.data 第一步:顯示資料集圖 import pandas as pd import matplotlib.pyplot as plt columns = ["mpg","cylinders","displacement","horsepowe

吳恩達機器學習多元線性迴歸假設、代價、梯度、特徵縮放、多項式

目錄 0. 前言 學習完吳恩達老師機器學習課程的多變數線性迴歸,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 0. 前言 多元線性迴歸(Multivari

機器學習十大經典演算法決策樹學習筆記整理

一、決策樹概述 決策樹是一種樹形結構,其中每個內部節點表示一個屬性上的測試,每個分支代表一個測試輸出,每個葉節點代表一種類別。決策樹是一個預測模型,代表的是物件屬性與物件值之間的一種對映關係。 最初的節點稱為根節點(如圖中的"顏色"),有分支的節點稱為中間節點

機器學習線性迴歸正規方程、邏輯迴歸的正規化

問題:過分擬合  為了片面追求對已知樣本的識別率,擬合過於高階的函式輸入,導致出現很多區域性最優情況 解決方法:為代價函式引入新的引數項 1)線性迴歸        代價函式       梯度 2)正規方程       方程 3)邏輯迴歸       代價函

TensorFlow線性迴歸

線性迴歸屬於有監督學習,此類問題,根據帶標註的資訊去訓練一個推斷模型。該模型覆蓋一個數據集,並且對不存在的新樣本進行預測。該模型確定以後,構成模型的運算也就固定。在各運算過程有一些參與運算的數值,在訓練過程不斷更新,使模型能夠學習,並對其輸出進行調整。 雖然推斷不同模型在運算數量和組合方

資料結構實驗C++線性1

(1) 建立一個順序表,存放在陣列 A[N]中,元素的型別為整型,設計演算法調整 A,使其左邊的所有元素小於 0,右邊的所有元          素大於 0(要求演算法的時間複雜度和空 間複雜度均為 O(n))程式碼:#include<iostream>using

PRML線性迴歸Linear Models for Regression

囉嗦兩句,PRML這本書是基於貝葉斯思想進行相關機器學習演算法的推導和講解。書上有詳細的公司推導,故LZ不做公式方面的讀書筆記記錄,來講講演算法遞進的邏輯關係。 在開始記錄線性迴歸模型學習之前,容我們閉目獨立思考兩個問題:①什麼是機器學習?②機器學習的本質問題是什麼?這

Andrew機器學習課程 章節4——多變數線性迴歸

Normal equation:(正規方程) 其中:X為1列值為1的vector(其對應額外的特徵變數)+xi的轉置合併的矩陣。 正規方程與梯度下降相比較的優缺點: 優點:1.不需要設定初試的學習率α         2.不需

Andrew機器學習課程 章節2——單變數線性迴歸

在surpervised question中 (x,y)表示一個訓練樣本。    x為features(特徵)y為target(目標) (xi,yi)表示訓練集。上標i just an index into the training set Hypothesis fu

Bobo老師機器學習筆記第五課-多元線性迴歸

思維導圖學習筆記 自己參考BoBo老師課程講解實現: # -*- coding: utf-8 -*- import numpy as np from metrics import r2_score class LinearRegression(object): def __

Bobo老師機器學習筆記第五課-簡單線性迴歸

課程地址:https://coding.imooc.com/class/169.html 最小二乘法的推導部落格點選此處 程式碼實現(參考Bobo實現,如果要看BoBo老師原始碼,請點選此處): # -*- encoding: utf-8 -*- """ 實現簡單的線性迴歸, 自己

機器學習筆記 第5課:線性迴歸演算法

線性迴歸可能是統計學和機器學習中最知名且易於理解的演算法之一。 它不就是一項起源於統計學的技術嗎? 預測建模主要關注的是讓模型的誤差最小化,或者說,在可以解釋的前提下,儘可能作出最準確的預測。我們會借用,重用,甚至是竊取許多不同領域(包括統計學)的演算法,並將其用於上述的目標。 線性迴歸

機器學習經典演算法梳理】一.線性迴歸

【機器學習經典演算法梳理】是一個專門梳理幾大經典機器學習演算法的部落格。我在這個系列部落格中,爭取用最簡練的語言、較簡潔的數學公式,和清晰成體系的提綱,來盡我所能,對於演算法進行詳盡的梳理。【機器學習經典演算法梳理】系列部落格對於機器學習演算法的梳理,將從“基本思想”、“基本形式”、“過程推導”、“

吳恩達機器學習課程筆記章節二單變數線性迴歸

1、模型描述 Univariate(One variable)Linear Regression m=訓練樣本的數目,x's=輸入的變數/特徵,y's=輸出變數/目標變數 2、代價函式 基本定義: 3、代價函式(一) 回顧一下,前面一些定義: 簡化的假設函式,theta0=0,得到假