1. 程式人生 > >機器學習筆記(一):梯度下降演算法,隨機梯度下降,正規方程

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

一、符號解釋

M 訓練樣本的數量

x 輸入變數,又稱特徵

y 輸出變數,又稱目標

(x, y) 訓練樣本,對應監督學習的輸入和輸出

表示第i組的x  

表示第i組的y

h(x)表示對應演算法的函式

是演算法中的重要引數(向量)

表示引數為的函式,以下考慮線性迴歸,所以表述為:

二、梯度下降演算法

表示函式計算輸出的結果,用y表示期望的輸出值

-y表示誤差,若我們有m組訓練樣本,在訓練過程中,我們希望誤差越小越好,所以來調整引數

使得

其中二分之一是使得運算更加簡便,採用誤差的平方來計算,對於所有的樣本,誤差之和最小的引數就是我們要得到的結果。

我們稱上述式子為,我們要不斷修改引數,使的值儘可能小

初始時候,我們設定

接下來不斷改變

更新,其中手動設定的學習速率引數。

通過對J函式求偏導數,我們求得J的梯度,即J下降最快的方向,通過這個方向更新引數,使得J的函式值越來越小。

計算當m=1時,只有1組訓練樣本時:


當有m組樣本時,把每一組的效果累加起來:

有其中後一部分便是的結果。

由於每次更新引數,都遍歷了一次所有的樣本資料,這樣做屬於完全梯度下降,具有更高的準確性,卻在遍歷m集合上花費了大量的時間,當訓練集合很大是,這種方法是很浪費時間的,所以引出隨機梯度下降。

三、隨機梯度下降演算法:

Repeat:

對於j從1到m:


對於每一次更新引數,不必遍歷所有的訓練集合,僅僅使用了一個數據,來變換一個引數。這樣做不如完全梯度下降的精確度高,可能會走很多彎路,但整體趨勢是走向minmum。

這樣做可以節省更多的時間,演算法更快。

四、正規方程:

引入概念:

對矩陣求導:


則引數的調整可表述為:

若f是一個從m*n矩陣對映到實數的函式,則:


trAB = trBA (求跡運算)

trABC = trCAB = trBCA



所以

則對於直接誤差求內積:


則有

時,誤差最小,此時可有正規方程表示:

相關推薦

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

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

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

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

Python3《機器學習實戰》學習筆記k-近鄰演算法

**轉載:**http://blog.csdn.net/c406495762執行平臺: WindowsPython版本: Python3.xIDE: Sublime text3 他的個人網站:http://cuijiahua.com   文章目錄

機器學習實戰》學習筆記k-近鄰演算法

k-近鄰演算法 原書中程式碼為python2中語法,python3的語法參考連結:https://blog.csdn.net/c406495762/article/details/75172850 給出k-近鄰演算法的完整程式碼(海倫相親程式) import numpy a

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

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

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

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

python3.5《機器學習實戰》學習筆記k近鄰演算法

轉載請註明作者和出處:http://blog.csdn.net/u013829973 系統版本:window 7 (64bit) python版本:python 3.5 IDE:Spyder (一個比較方便的辦法是安裝anaconda,那麼Spyder和

Python3《機器學習實戰》學習筆記k-近鄰演算法(史詩級乾貨長文)

#一 簡單k-近鄰演算法     本文將從k-鄰近演算法的思想開始講起,使用python3一步一步編寫程式碼進行實戰訓練。並且,我也提供了相應的資料集,對程式碼進行了詳細的註釋。除此之外,本文也對sklearn實現k-鄰近演算法的方法進行了講解。實戰例項:

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

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

隱馬爾可夫模型學習筆記前後向演算法介紹與推導

學習隱馬爾可夫模型(HMM),主要就是學習三個問題:概率計算問題,學習問題和預測問題。概率計算問題主要是講前向演算法和後向演算法,這兩個演算法可以說是隱馬爾可夫的重中之重,接下來會依次介紹以下內容。 隱馬爾可夫模型介紹 模型的假設 直接計演算法,前向演算法,後向演

機器學習學習筆記線性回歸、邏輯回歸

ros XA andrew ID learn 給定 編程練習 size func 《機器學習》學習筆記(一):線性回歸、邏輯回歸 本筆記主要記錄學習《機器學習》的總結體會。如有理解不到位的地方,歡迎大家指出,我會努力改正。 在學習《機器學習》時,我主要是

機器學習筆記Tensorflow 實戰 Tensorflow入門

1 - TsensorFlow計算模型 ——計算圖 1.1- 計算圖的概念 計算圖是TensorFlow中最基本的一個概念,TensorFlow中的所有計算都會被轉化為計算圖上的節點。 在TensorFlow中,張量可以簡單地理解為多為陣列。如果說TensorFlow的第一個詞T

機器學習實戰》 筆記K-近鄰演算法

一、K-近鄰演算法 1.1 k-近鄰演算法簡介 簡單的說,K-近鄰演算法採用測量不同特徵值之間的距離的方法進行分類。 1.2 原理 存在一個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料 與所屬分類的對應關係。輸入沒有標籤的新資料

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

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

Python3《機器學習實戰》學習筆記Logistic迴歸基礎篇之梯度上升演算法

一 前言 本文從Logistic迴歸的原理開始講起,補充了書上省略的數學推導。本文可能會略顯枯燥,理論居多,Sklearn實戰內容會放在下一篇文章。自己慢慢推導完公式,還是蠻開心的一件事。 二 Logistic迴歸與梯度上升演算法 Logistic迴歸是眾

機器學習學習筆記線性迴歸、邏輯迴歸

    本筆記主要記錄學習《機器學習》的總結體會。如有理解不到位的地方,歡迎大家指出,我會努力改正。     在學習《機器學習》時,我主要是通過Andrew Ng教授在mooc上提供的《Machine Learning》課程,不得不說Andrew Ng老師在講授這門課程時,

HLSL學習筆記基礎

pad ddx 做了 cto har 分割 with 圖形 content http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家無事,於是學習了一下HLSL,基於XAN4.0的。學習

EF6 學習筆記Code First 方式生成數據庫及初始化數據庫實際操作

view sqlserver 4.5 xpl 安裝 右鍵 ef6 字符串 ref 參考原文地址: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-wit

Servlet學習筆記生命周期

磁盤 停止 生命 第一個 每一個 clas 瀏覽器 doget des 一、Servlet 生命周期:   Servlet 生命周期可被定義為從創建直到毀滅的整個過程。以下是 Servlet 遵循的過程:初始化——響應請求——終止——回收 Servlet 通過調用 in

JSP學習筆記JSP語法和指令

沒有 文件的 encoding 引入 2.0 .cn name blog .get 一、語法 1、腳本程序的語法格式:   腳本程序可以包含任意量的Java語句、變量、方法或表達式,只要它們在腳本語言中是有效的。 <% 代碼片段 %> 2、中文編碼問題