Coursera 機(jī)器學(xué)習(xí)筆記_第1頁(yè)
Coursera 機(jī)器學(xué)習(xí)筆記_第2頁(yè)
Coursera 機(jī)器學(xué)習(xí)筆記_第3頁(yè)
Coursera 機(jī)器學(xué)習(xí)筆記_第4頁(yè)
Coursera 機(jī)器學(xué)習(xí)筆記_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Coursera機(jī)器學(xué)習(xí)-筆記

?參考:

?博主自己總結(jié)歸納

/python27/tag/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/

?課程資源介紹及PPT匯總http:〃daniellaah.gilhub.io/2016/Machine-Learning-Andrew-Ng-My-

Notes.html

?縱觀大局

?機(jī)器學(xué)習(xí)

?監(jiān)督式學(xué)習(xí)-給定數(shù)據(jù)集,有期望的輸出值。

?回歸-預(yù)測(cè)連續(xù)輸出中的結(jié)果

?舉例

?分類-預(yù)測(cè)離散輸出中的結(jié)果

?邏輯回歸模型

?通過考試的概率(0/1)與學(xué)習(xí)時(shí)間的比較,圖中s曲線h(x)>=0.5/theta'*X>=0

預(yù)測(cè)為1;h(x)<0.5/theta'*X<=0,預(yù)測(cè)為0

Probabilityofpassingexamversushoursofstudying

Hoursstudying

邏揭回歸曲哪圖表顯示通過考試的概率與小時(shí)學(xué)習(xí)0

?神經(jīng)網(wǎng)絡(luò)-非線性分類問題

?舉例:圖像識(shí)別-輸入動(dòng)物圖像,正確輸出動(dòng)物的類型

概率最大的被當(dāng)做是預(yù)測(cè)結(jié)果

?代價(jià)函數(shù)-前向傳播

J(e)=

1-m.K、

—££以”9(心3⑴))去+(1-姬)/。9(1一&(?)))口

mi=ik=i

^\SL-S181gsi+l(eS))2

?計(jì)算梯度(求偏導(dǎo))-后向傳播

?非監(jiān)督式學(xué)習(xí)-給定數(shù)據(jù)集,沒有期望的輸出值

?聚類-根據(jù)集群中特定相似屬性分類

?舉例:

?K-means聚類-基于質(zhì)心的聚類

?輸入:訓(xùn)練數(shù)據(jù)集{x(l),x⑵,…,x(m)}和聚類數(shù)量K(將數(shù)據(jù)劃分為K類)

?輸出:K個(gè)聚類中心口1,口2,…,piK和每個(gè)數(shù)據(jù)點(diǎn)x(i)所在的分類。

?關(guān)聯(lián)

?舉例:聲音分離

?計(jì)算方法:

?假設(shè)預(yù)測(cè)函數(shù):h(x)=thetaO+thetalx-下面需要做的就是訓(xùn)練模型theta

?代價(jià)(損失)函數(shù)-表示真實(shí)值與預(yù)測(cè)值之間的差異,下面需要:1找到合適的代價(jià)函數(shù)能夠

評(píng)價(jià)模型的準(zhǔn)確性,對(duì)參數(shù)e可微。2不斷改變theta使代價(jià)函數(shù)最小,從而得到最優(yōu)的

theta.

c(theta)-單個(gè)樣本J(theta)-多個(gè)樣本,所有代價(jià)函數(shù)的取值求均值對(duì)于每種算法來(lái)說(shuō),代

價(jià)函數(shù)不是唯一的代價(jià)函數(shù)是參數(shù)6的函數(shù)J(e)是一個(gè)標(biāo)量參考:

http:〃www.cnblogs.eom/Belter/p/6653773.html

?線性回歸-均方誤差

qm-Im

J(%M)=說(shuō)E(y(i)-嚴(yán)嚴(yán)=百£>(/))-嚴(yán)產(chǎn)

1=1t=l

m:訓(xùn)|練樣本的個(gè)數(shù);h0(x):用參數(shù)G和x預(yù)測(cè)出來(lái)的y值;y:原訓(xùn)練樣本中的y值,

也就是標(biāo)準(zhǔn)答案上角標(biāo)(i):第i個(gè)樣本

?邏輯回歸(分類)-交叉燧

4。)=一五[£(/log也(別)+(1-*)1。虱1一版(工⑴))]

1=1

?簡(jiǎn)化

whichcanbesimplifiedto:

J(。)=---[依一的"—log(l+e—牝)]=—?—

i=l

-log(l+effx,)],(*)

i=l

?神經(jīng)網(wǎng)絡(luò)

,mK

J(。)=-曰££(婢)唳聞伯⑴)+(1-婢))bg(l-(帕3⑴))*)]

2=1k=l

K表示在多分類中的類型數(shù)

?如何找到最優(yōu)的theta

?梯度下降-梯度即對(duì)代價(jià)函數(shù)的偏導(dǎo)數(shù),決定了在學(xué)習(xí)過程中參數(shù)下降的方向,學(xué)習(xí)率

(通常用a表示)決定了每步變化的步長(zhǎng)。

?不同模型的梯度下降

?線性回歸模型

otfj______aO-neij-------

LG(?L0S-J']

J

2m、二-----口

gj=o:—j(e°M)=七%(心(4')-產(chǎn))

sj=i:-J(.&)=上堂(QW)弋*◎

?邏輯回歸(分類算法)模型

根據(jù)邏輯回歸模型的代價(jià)函數(shù)以及sigmoid函數(shù)

=g

h6(x)(嚴(yán)工)

g2(z)=-l+-e——-z

得到對(duì)每個(gè)參數(shù)的偏導(dǎo)數(shù)為

的J(8)=一城)藥

3i=l

詳細(xì)推導(dǎo)過程可以看議里-謖輯回歸代價(jià)函數(shù)的導(dǎo)數(shù)

?神經(jīng)網(wǎng)絡(luò)-后向傳播

?如何加快收斂速度

?特征縮放-不同特征X之間數(shù)量級(jí)差別太大時(shí),為了加快收斂速度,將特征規(guī)劃

到統(tǒng)量級(jí)[0,1]或【-1,1].xj=(xj-avergaej)/(maxj-minj)

?選擇合適的學(xué)習(xí)速率a

?太大無(wú)法收斂,太小收斂很慢

?從0.001,0,003,0.01,0.03,0.1,0.3,1選擇最優(yōu)

?正規(guī)方程法

e=(XTX)-1XTY

http:〃/elaron/archive/2013/05/20/3088894.himl

?使用高級(jí)優(yōu)化算法

optTheta=fminunc(@costFunction,initialTheta,options)

?防止過擬合問題

?減少榭正X數(shù)量:

?人工選擇重要特征,丟棄不必要的特征

?利用算法進(jìn)行選擇(PCA算法等)

?正規(guī)化Regularization-減少參數(shù)6j的數(shù)量級(jí)或者值,在代價(jià)函數(shù)后加上懲罰項(xiàng)

?線性回歸

?代價(jià)函數(shù):

-Imn

喇=丁£(e(?。┮?))2+入£弓

ZiTTl.r.r

Lz=lj=l

?梯度下降參數(shù)更新:

[77Z

詼=氏-a丁£(無(wú)6(/))-即謁;);,=0

1=1

1m

Oj=Gj-a—£(廄(/))-y⑻)*)+—Oj;j>1

t=lm

?邏輯回歸(分類)

?代價(jià)函數(shù):

J⑻=—:£[/)log(%(—)))+(1—/))池(1一版(.)))]

i=l

n

+」\_寸俠

27n々7

尸1

?梯度下降參數(shù)更新:

-Im

W,,

0o=do-a而E(加(一))-3/)4;>=0

i=l

Oj=0j-a—£(/ie(a:⑥)一/))斕H---%;j>1

?機(jī)器學(xué)習(xí)簡(jiǎn)介及一元線性回歸

?初步介紹

?監(jiān)督式學(xué)習(xí)supervisedlearning:給定數(shù)據(jù)集并且知道其正確的輸出應(yīng)該是怎么樣的,即有

反饋feedback

?回歸Regression:預(yù)測(cè)連續(xù)輸出中的結(jié)果

?分類Classificaion:預(yù)測(cè)離散輸出的結(jié)果

?非監(jiān)督式學(xué)習(xí)unsupervisedlearning:給定數(shù)據(jù)集,并不知道其正確的輸出是什么,沒有反

?聚類Clustering:獲取1,000,000個(gè)不同基因的集合,并找到一種方法將這些基因自動(dòng)分

組成不同變量的相似或相關(guān)的組,例如壽命,位置,角色,GoogleNews,Computer

Clustering,MarkertSegmentation

?關(guān)聯(lián)Associative:"雞尾酒會(huì)算法",允許您在混亂的環(huán)境中查找結(jié)果。(即在雞尾酒

會(huì)上識(shí)別來(lái)自聲音網(wǎng)格的個(gè)人聲音和音樂)

?一元線性回歸

?假設(shè)Hypothesis:h0(x)=0O+01x

?參數(shù)Parameters:00,01

?代價(jià)函數(shù)CostFunction

771n

"。4i)=心£⑸的)-網(wǎng)

1=1

?代價(jià)函數(shù)是線性回歸中的一個(gè)應(yīng)用,在線性回歸中,要解決的一個(gè)問題就是最小化問題。

?假設(shè)在醫(yī)院線性回歸中,在一個(gè)訓(xùn)練集中,我們需要找到一條直線能和該訓(xùn)練集中的點(diǎn)最

接近。假設(shè)直線方程:

hff(x)=%+%立

?如何選擇00.ei,使得he(x)更接近于訓(xùn)練集(x,y)?

?上述問題可以轉(zhuǎn)化為求

771n

9。,01)=小£(加(4))-理)

?求最小值

minF(%,%)

?目標(biāo)函數(shù)Goal:mineo,eiJ(0O,ei)

?梯度下降GradientDescent

?初始化eofnei,90=o,ei=o

?不斷的改變eo和ei值,不斷減少F(eo,ei)直至達(dá)到最小值(或者局部最?。?。注

意00和01值要同時(shí)更新,切記不要求一次導(dǎo)更新一次!

repeatuntilconvergence:{

]m

%:=——a——防)

:=i

仇:=%一a—£((加(皿)-yi)xi)

i=l

}

?a被稱作為學(xué)習(xí)速率

?如果a被設(shè)置的很小,需要很多次循環(huán)才能到底最低點(diǎn),收斂速度過慢

?如果a被設(shè)置的很大,來(lái)來(lái)回回可能就會(huì)離最低點(diǎn)越來(lái)越遠(yuǎn),會(huì)導(dǎo)致無(wú)法收斂,甚至發(fā)散。

?當(dāng)快要到最低點(diǎn)的時(shí)候,梯度下降會(huì)越來(lái)越慢,因?yàn)閐/de越來(lái)越小。

?a的取值可以從0.001,0.003,0.01,0.03,0.1,0.3,1這幾個(gè)值去嘗試,選一個(gè)最優(yōu)

?矩陣

?矩陣乘法:只有在第一個(gè)矩陣的列數(shù)(column)和第二個(gè)矩陣的行數(shù)(row)相同時(shí)才有意義

?多元線性回歸

?多元線性回歸:一元線性回歸只有一個(gè)特征x,而多元線性回歸可以有多個(gè)特征xl,x2,…,xn

?假設(shè)Hypothesis:h0(x)=0Tx=0OxO+01xl+...+0nxn

?參數(shù)Parameters:00,01,...,0n

?代價(jià)函數(shù)Costfunction:

771°

」(。。,仇)=壺£(而砂)-/)

?=1

?目標(biāo)Goal:min0J(0)

?梯度下降GradientDescent

?迭代更新參數(shù)e

%=%_*玄(加3?)-泗同,

1=1

?向量化實(shí)現(xiàn)VectorizedImplementation:;

-吟(x/xe-y))

?特征縮放:如果不同特征X之間的數(shù)值量級(jí)差別太大,那么梯度下降的速度非常慢,為了加快

算法的收斂速度,將各個(gè)特征劃歸到統(tǒng)一數(shù)量級(jí),一般是[0,1]或者[-1,1]之間

?Trickl:xj=(xj-|jj)/sj,其中Mj表示第j個(gè)特征的均值,sj表示第j個(gè)特征的范圍(max-min)

或者標(biāo)準(zhǔn)差(standarddeviation)

?Trick2:學(xué)習(xí)速率的選擇

?如果a被設(shè)置的很大,來(lái)來(lái)回回可能就會(huì)離最低點(diǎn)越來(lái)越遠(yuǎn),會(huì)導(dǎo)致無(wú)法收斂,甚至

發(fā)散。

?a的取值可以從0.001,0.003,0.01,0.03,0.1,0.3,1這幾個(gè)值去嘗試,選一個(gè)最

優(yōu)的

?計(jì)算參數(shù)分析一正規(guī)方程法

?正規(guī)方程法相對(duì)梯度下降法,它可以一步找到最小值。而且它也不需要進(jìn)行特征值的縮放

?pinv:偽逆矩陣,即使不存在逆矩陣也可以解決問題

?梯度下降和正規(guī)方程法匕瞅

?超大數(shù)據(jù)集合

?梯度下降運(yùn)行良好

?正規(guī)方程時(shí)間復(fù)雜度高

?學(xué)習(xí)率a選擇

?梯度下降需要選擇,并且迭代多次

?正規(guī)方程不用選擇,也不需要多次跌打檢測(cè)是否收斂

?OctaveMatlab教程

?基本操作

?數(shù)學(xué)操作

?+

?A%幕指數(shù)

?log()%對(duì)數(shù)運(yùn)算

?exp()%指數(shù)運(yùn)算

?abs()%求絕對(duì)值

?邏輯運(yùn)算

?==

?~=%判斷是否不相等

?&&

?II

?xor(,)%異或運(yùn)算

?更換首行提示符

?PS1('>>')%單引號(hào)內(nèi)是帶替換的首行提示符

?變量賦值

?a=3%賦值數(shù)字

?a=3;%不想使其輸入加分號(hào)

?b='hello'%賦值字符串

?disp(a)

?disp(sprintf('2decimals:%0.2f',a))%sprintf打印格式化字符串

?formatlong%讓接下來(lái)字符串顯示默認(rèn)位數(shù)

?formatshort%讓接下來(lái)字符串下數(shù)點(diǎn)后打印少量位數(shù)

?向量和矩陣

?A=[l2;34;56;]%創(chuàng)建矩陣變量,分號(hào)的意思是換到下一行

?v=1:0,1:2%a:x:b表示[a,b]區(qū)間,x表示遞增步長(zhǎng)

?ones(2,3)%生成2*3的元素都為1的矩陣(2行3列)

?2*ones(2,3)%生成2*3的元素都為2的矩陣

?zeros億3)%生成2*3的元素都為0的矩陣

?rand(l,3)%生成1*3的隨機(jī)數(shù)矩陣

?eye(2,3)%生成2*3的單位矩陣

?eye(3)%生成3*3的單位矩陣

?幫助函數(shù)

?helpeye%help后面跟一個(gè)名字,就會(huì)顯示出這個(gè)命令的詳細(xì)用法

?MovingDataAround

?矩陣計(jì)算

?A=[l,2;3,4;5,6;];

?size(A)%計(jì)算矩陣的維度大小ans=32

?size(A,l)%顯示矩陣的行數(shù),1表示返回行數(shù)

?size(A,2)%顯示矩陣的列數(shù),2表示返回列數(shù)

?v=[1,2,3,4];

?length%計(jì)算向量最大維度的大小,length通常對(duì)向量使用,而不對(duì)矩陣使用

?讀取和存儲(chǔ)文件數(shù)據(jù)

?load

?load('xxx')%以字符串的形式加載

?v=xxx(l:10)%簡(jiǎn)歷向量v,元素分別為xxx文件內(nèi)1~10的數(shù)據(jù)

?loadxxx%xxx為當(dāng)前路徑下的文件名

?save

?savexxx.matv%將當(dāng)前數(shù)據(jù)存儲(chǔ)到文件中,冰倩變量名為v

?savexxx.txtv-ascii%將當(dāng)前的數(shù)據(jù)存儲(chǔ)到ascii編碼的文本文檔中

?顯本命令

?pwd%顯示當(dāng)前路徑

?Is%顯示當(dāng)前路徑的文件夾

?cd'path'%打開該路徑

?who%在當(dāng)前內(nèi)存中存儲(chǔ)的所有變量

?whos%更詳細(xì)地顯示變量的名稱,維度和占用多少內(nèi)存空間和數(shù)據(jù)類型

?clear%清楚所有變量

?addpath('path')%將路徑添加到當(dāng)前搜索處

?矩陣索引操作

?A=[l,2;3,4;5,6;];

?A(3,2)%索引矩陣第3行第2列的元素ans=6

?A(2,:)%索引矩陣第2行所有元素,冒號(hào)表示該行或該列的所有元素ans=3

4

?A(:,2)%索引矩陣第2列所有元素ans=2;4;6

?A([l,3],:)%索引矩陣第1行和第3行所有元素

?A(:,2)=[10,ll,12]%將A的第2列用右邊向量代替

?A=[A,[100;101;102]]%加入新的1列向量

?A(:)%將矩陣A的元素變成列向量

?A=[l,2;3,4];B=[4,5;6,7];

?C=[A,B]%等價(jià)于C=[AB]合并矩陣A在左邊,B在右邊

?C=[A;B]%合并矩陣A在上邊,B在下邊

?ComputingonData

?矩陣計(jì)算

?A*B%矩陣相乘

?A.*B%矩陣對(duì)應(yīng)元素相乘

?A「2%矩陣每個(gè)元素平方

?1./A%矩陣每個(gè)元素求倒數(shù)

?log(A)%矩陣每個(gè)元素求對(duì)數(shù)

?exp(A)%矩陣每個(gè)元素求指數(shù)

?abs(A)%矩陣每個(gè)元素絕對(duì)值

?A+ones(length(A),l)%A中每個(gè)元素加1

?A+l%A中每個(gè)元素加1

?A'%A的轉(zhuǎn)置矩陣

?A<3%A中每個(gè)元素和3比較,0為假,1為真

?find(A<3)%查找A中所有小于3的元素,返回其索引

?[r,c]=find(A>=7)%r,c分別表示A矩陣中元素大于7的行和列

?A=magic(3)%生成每一行每一列相加起來(lái)都是相等的矩陣,即矩陣幻方

?sum(A)%A中所有元素的和

?prod(A)%A中所有元素的積

?floor(A)%人中元素向下取整

?ceil(A)%A中元素向上取整

?rand(A)%生成3*3隨機(jī)矩陣

?max(A,[],l)%A中每列的最大值,1表示從A的列去取值

?max(A,[],2)%A中每行的最大值,2表示從A的行取值

?max(A)%默認(rèn)是A每列的最大值

?max(max(A))%A中所有元素的最大值

?max(A(:))%A中所有元素的最大值

?sum(A,l)%人每列的和

?sum(A,2)%人每行的和

?eye(9)%構(gòu)造9*9的單位矩陣

?flipud(A)%矩陣垂直翻轉(zhuǎn)

?pinv(A)%A的偽逆矩陣

?畫圖PlotingData

?t=[0:0.1:0.98];yl=sin(2*pi*4*t);y2=cos(2*pi*4*t);

?plot(t,yl);

?holdon;%在原來(lái)的圖像中畫圖

?plot(t,y2,'r');

?xlabel('time');%x軸單位

?ylabel('value');%y¥由單位

?legendCsin'/cos');%將兩條曲線表示出來(lái)

?title('myplot');%加入標(biāo)題

?print-dpng'myplot.png'%輸出圖片為png格式

?close%關(guān)閉

?figure⑴;plot(t,yl);%分開畫圖

?figure(2);plot(t.y2);

?subplot(L2,l);%將圖像分為1*2的格子,使用第1個(gè)

?plot(t,yl);

?subplot(122);%將圖像分為1*2的格子,使用第2個(gè)

?plot(tzy2);

?axis([0.51-11]);%改變軸的刻度,x軸變?yōu)閇051],y軸變?yōu)閇-1,1]

?elf;%清除一幅圖像

?A=magic(5);

?imagesc(A)%生成矩陣的彩色格圖,不同顏色對(duì)應(yīng)不同的值

?imagesc(A),colorbar,colorm叩gray;%增加灰度分布圖和顏色條

?循環(huán)語(yǔ)句ControlStatements:',while,ifstatement

?v=zeros(5,l);fori=l:5,v(i)=2Ai;end;%for語(yǔ)句,以end為結(jié)尾標(biāo)志

?i=l;whilei<=3;v(i)=100;i=i+l;end;%while語(yǔ)句

?i=l;whiletrue,v(i)=999;i=i+l;ifi==6,break;end;

end;%ifzbreak;end;

?ifv(l)==l,disp('Thevalueisone');elseifv(l)==2zdisp('Thevalueisone');

elseifv(l)==2zdisp('Thevalueistwo');elsedisp('Thevalueisnotoneor

two');end;%if-else語(yǔ)句

?邏輯回歸LogisticRegression:一種分類算法

?Logistic回歸

?假設(shè)Hypothesis:

he(x)=g(*a)

1

g(z)=

1+e-z

?對(duì)于輸出的解釋

?h0(x)=estimatedprobabilitythaty=loninputx

P(y=1|力;0)+P(y=O|a?;0)=1

?決策邊界DecisionBoundary:如何做出決策,不需要具體的帶入sigmoid函數(shù),只需要求解

6Tx>0即可以得到對(duì)應(yīng)的分類邊界

?predict"y=l"ifh9(x)>=0.5等價(jià)于predict"y=l"if0Tx>=O

?predict"y=0"ifh6(x)<0.5等價(jià)于predict"y=l"if6Tx<0

?代價(jià)函數(shù)CostFunction

?如果用平方函數(shù)(線性回歸)定義,則是非凹函數(shù)

CostFunction=F(%%)=-—(A(x⑴)—y⑴產(chǎn)

g⑺=~

1+e~^x

?ify=l:h0(x)=l/Cost=0;h0(x)=O,Cost=oo

f-log(he(x))-y=1

cost&(N),g)=

\-log(l-he(x));y-0

?簡(jiǎn)化代價(jià)函數(shù)

?邏輯回歸代價(jià)函數(shù)

cost⑸(c),y)=-ylog&(0))-(l-y)log(l-he(x))

1Tn

J(')=一A£沙㈤log(加(?)))+(1-y(i))log(l-加(一)))

t=l

?Tofitparameters0:minJ(0)

?Tomakeapredictiongivennewx:

ho(x)=ggx)

/、1

g(z)=.,

1+ez

?梯度下降

m

J(0)=-慧fy⑴log/M(r⑴)+(1-yW)log(l-

i=l

Wantmin。J(。):

Repeat{_______

%:=%一at帆①可—/)婢)]k&A%

-----------二;:S一,1-J

(simult5neeuUyjj£dateall

\十。

?高級(jí)優(yōu)化

Example:幟入

function[jVal,gradient]

A_[011°入《=costFunction(theta)

jVal=(theta(f)-5)人2+.二-

(%一祠Rheta(2)-5)人王

gradient=zeros(2,1);

就J⑻=2⑼-5).gradient(1)=2*(theta(1)-5);

廉J伊)=2(出一5"gradient(2)=2*(theta(2)-5);

options=optimset('GradObjz,'on','Maxlterr,'100');

initialTheta=zeros(2,1);

(optTheta,functionVal,exitFlag]...

=fminunc(@costFunctionrinitialTheta,options);

?右上角:函數(shù)

?下方:matlab命令

?exitFlag=l:收斂

?Logistic回歸用于多元分類one-vs-all:y=l,y=2,y=3,y=4....

?正規(guī)化

?過擬合問題overfitting解決

?減少特征數(shù)量:

?人工選擇重要特征,丟棄不必要的特征

?利用算法進(jìn)行選擇(PCA算法等)

?正規(guī)化Regularization

?保持特征的數(shù)量不變,但是減少參數(shù)0j的數(shù)量級(jí)或者值

?這種方法對(duì)于有許多特征,并且每種特征對(duì)于結(jié)果的貢獻(xiàn)都比較小時(shí),非常有效

?線性回歸的正規(guī)化:"Simpler"hypothesis在原來(lái)的代價(jià)函數(shù)中加入?yún)?shù)懲罰項(xiàng)如下式所示,

注意懲罰項(xiàng)從j=l開始,第0個(gè)特征是全1向量,不需要懲罰。

?正則化參數(shù):lambda

?代價(jià)函數(shù):

mn

J⑻=2比⑸例))-*)2+入"4

J=1j=l

?梯度下降參數(shù)更新:

1m/?

=。0-Q—一=0

t=i

%=%-a^^⑸砂))一/))吟)+嬴%;j>1

t=l

?Logistic回歸的Regularization

J=(l/m)*((-y)'*(log(sigmoid(X*theta)))-(l-y)'*(log(l-

sigmoid(X*theta))))+(lambda/(2*m))*(sum(theta.A2)-theta(l)A2);

grad=(l/m)*(X**(sigmoid(X*theta)-y));theta(l)=O;grad=grad+(lambda/m)*theta;

?代價(jià)函數(shù):

J⑻=一)七W)log的(—)))+(1-yw)log(l-加(/)))]

i=l

n

+\寧俠

2m4-(3

J=I

?梯度下降參數(shù)更新:

-1m

%=%-a—£&(/"))=0

1=1

1""A

Oj=0j-a—一聲)斕——%;j>1

mr—/Jm

.a=i_

?gradient(n+1)=[codetocompute5J(0)/50n]

?神經(jīng)網(wǎng)絡(luò)--表示

?動(dòng)機(jī):對(duì)于非線性分類問題,如果用多元線性回歸進(jìn)行分類,需要構(gòu)造許多高次項(xiàng),導(dǎo)致特征特多

學(xué)習(xí)參數(shù)過多,從而復(fù)雜度太高。

?神經(jīng)網(wǎng)絡(luò)NeuralNetwork

Layer1Layer2Layer3

InputLayerHiddenLayerOutputLayer

?ai(j)表示第j層網(wǎng)絡(luò)的第i個(gè)神經(jīng)元,a-activation激活值

?e(j)表示從第j層到第j+i層的權(quán)重矩陣

?euv(j)表示從第j層的第V個(gè)神經(jīng)元到第j+l層的第U個(gè)神經(jīng)的權(quán)重,需要注意到的是下標(biāo)UV

是指V->U的權(quán)重而不是u->v

?一般地,如果第j層有sj個(gè)神經(jīng)元(不包括bias神經(jīng)元),第j+l層有s(j+l)個(gè)神經(jīng)元(也不

包括bias神經(jīng)元),那么權(quán)重矩陣0j的維度是s(j+l)行x(sj+l)列

?前向傳播ForwardPropagration,FP

?后一層的神經(jīng)元的值根據(jù)前一層神經(jīng)元的值的改變而改變,以上圖為例,第二層的神經(jīng)元的更

新方式為

a?=+叫叫++暇均

譚=g(碌)g+*g+朗%2+碳%3)

a.)=g(碌'o+O^xi+―①2+姆勺3)

謂=g(%g+婢6+明立2+騁①3)

其中g(shù)(z)為sigmoid函數(shù),即g(z)=下三

?向量化實(shí)現(xiàn)VectorizedImplementation

力0z?

Q⑴=x=X1Z⑵=£)

X21

J2)

13」L4J

「有⑴姆n(l)/)1

%0%2%3

。⑴—n(l)n(l)有⑴n(l)

°一%0%1%2%3

/)⑴A⑴0⑴n(l)

-030°31°32°33-

?簡(jiǎn)化更新公式:前向傳播

z⑵=J⑴a⑴

。⑵=g(z⑵)

■=0⑵a⑵

。⑶=g(z⑶)=九標(biāo))

?與Logistic回歸的聯(lián)系:Logistic是回歸是不含隱藏層的特殊神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)從某種程度

上來(lái)說(shuō)是對(duì)logistic回歸的推廣

?神經(jīng)網(wǎng)絡(luò)示例:對(duì)于如下圖所示的線性不可分的分類問題,(O,O)(L1)為一類(0,D(L0)為另一類,

神經(jīng)網(wǎng)絡(luò)可以解決

00g(-10)=0

01g(10)=1

10g(10)=1

?NAND=((notxl)and(notx2))

X】心(X)

00g(io)=i

01g(-10)=0

10g(-10)=0

11g(-30)=0

?NXOR=NOT(xlXORx2):xl,x2中有且僅有f為真取反,即xl,x2同時(shí)為真或者同時(shí)

為假。該神經(jīng)網(wǎng)絡(luò)用到了之前的AND操作(用紅色表示)、NAND操作(用青色表示)

和OR操作(用橙色表示),從真值表可以看出,該神經(jīng)網(wǎng)絡(luò)成功地將(0,0)(LD分為一類,

(1,0)(0,1)分為一類,很好解決了線性不可分的問題。

?神經(jīng)網(wǎng)絡(luò)的代價(jià)函數(shù)(含正則項(xiàng))

1mK'

-一££婕%+(i--啾1-&(N㈤))*)

m[?=1"1.

\L-lsis/i

+衣££(+吩

/=li=lj=\

?m:訓(xùn)練example的數(shù)量

?K:最后一層(輸出層)的神經(jīng)元的個(gè)數(shù),也等于分類數(shù)(分K類,K>3K>3)

?yk(i):第i個(gè)訓(xùn)練exmaple的輸出(長(zhǎng)度為K個(gè)向量)的第k個(gè)分量值

?(h9(x(i)))k:對(duì)第i個(gè)example用神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的輸出(長(zhǎng)度為K的向量)的第k個(gè)分量值

?L:神經(jīng)網(wǎng)絡(luò)總共的層數(shù)(包括輸入層和輸出層)

?0(1):第I層到第1+1層的權(quán)重矩陣

?si:第I層神經(jīng)元的個(gè)數(shù),注意i從1開始計(jì)數(shù),bias神經(jīng)元的權(quán)重不算在正則項(xiàng)內(nèi)

?sl+1:第1+1層神經(jīng)元的個(gè)數(shù)

?神經(jīng)網(wǎng)絡(luò)一學(xué)習(xí)

?后向傳播(Backpropagration,BP)算法-解決如何計(jì)算梯度

?代價(jià)函數(shù):考慮正則項(xiàng),其中K為K個(gè)輸出單元,關(guān)注正則化都是從1開始:

l=l,i=l,j=l,thetaO是+1

T隹£一的(陽(yáng)/)))*+(i-4”叩(1-(加(工町。

LnJ

、L-l81S/+1/八

+言£E£(e?)2

/=1j=l

?后向傳播-求偏導(dǎo)

?初始化:設(shè)置僅1川=0(理解為對(duì)第II層的權(quán)重矩陣的偏導(dǎo)累加值)

?Fori=1:m

?設(shè)置a(l)=X

?通過前向傳播算法(FP)計(jì)算對(duì)各層(不包括第一層,第一層是真實(shí)已知的)的預(yù)測(cè)

值a(l),其中1=2,3,4,…,L

?計(jì)算最后一層的誤差向量6(L)=a(L)-y(8-deta(costfunc對(duì)中間項(xiàng)z=theta*X的偏

導(dǎo)數(shù)):該層的激活值的誤差=激活值(=h(x)=g(z))-真實(shí)值),利用后向傳播算法

(BP)從后至前逐層計(jì)算誤差向量8(L-1),8(L-1),…,8(2),(沒有5(2)因?yàn)槲覀儾恍?/p>

要對(duì)輸入層考慮誤差項(xiàng))計(jì)算公式為(關(guān)注是點(diǎn)乘哦!)

型=(a)T/i).*d(z(。)

?更新

△。):=△(/)+6。+1)(丁)尸

?end//for

?計(jì)算梯度

。—明了。

9W)

89。)=

?BP實(shí)際運(yùn)用中的技巧

?將參數(shù)(矩陣)展開成向量

thetaVec=[ThetalQ;Theta2(:);Theta3(:)];DVec=[Dl(:);D2(:);D3(:)]%使用如下代碼可

以得至!I原來(lái)的矩陣Thetal=reshape(thetaVec(l:110),10,11);Theta2=

reshape(thetaVec(lll:220),10,11);Theta3=reshape(thetaVec(221:231),1,11);

?梯度檢查(bug)

實(shí)數(shù):NG:gardApprox=(J(theta+EPSILON)-J(theta-EPSILON))/(2*EPSILON)向量:

fori=1:n(n維參數(shù)的維度)thetaPlus=theta;thetaPlus(i)=thetaPlus(i)+

EPS;thetaMinus=theta;thetaMinus(i)=thetaMinus(i)-EPS;gradApprox(i)=

(J(thetaPlus)-J(thetaMinus))/(2*EPS);end;checkthatgradapprox=DVec(DVec是從

反向傳播中得到的導(dǎo)數(shù))

?因?yàn)榻频奶荻扔?jì)算代價(jià)很大,在梯度檢杳后記得關(guān)閉梯度檢查的代碼。

?隨機(jī)初始化

?初始權(quán)重矩陣的初始化應(yīng)該打破對(duì)稱性(symmetrybreaking),避免使用全零矩陣進(jìn)行初

始化??梢圆捎秒S機(jī)數(shù)進(jìn)行初始化,即

0(l)ije[-€,+e]

Thetal=rand(10,11)*(2*INIT_EPSILON)-INIT_EPSILON生成一個(gè)10*11的矩陣,矩

陣的元素值介于(0,1)之間,把它*2EPSILON-EPSILON,則生成(-EPSILON,EPSILON)

之間的矩陣,EPSILON很小,接近于0.(此處EPSILON和梯度檢查時(shí)的EPSILON無(wú)關(guān))

?如何訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)(得到的是局部最優(yōu),但是非常接近全局最優(yōu))

?隨機(jī)初始化權(quán)重矩陣(theta)

?利用前向傳播算法(FP)計(jì)算模型預(yù)測(cè)值h0(x)

?計(jì)算代價(jià)函數(shù)J(e)

?利用后向傳播算法(BP)計(jì)算代價(jià)函數(shù)的梯度dJ(0)/50(l)

?利用數(shù)值算法進(jìn)行梯度檢查(gradientchecking),確保正確后關(guān)閉梯度檢查

?利用梯度下降(或者其他優(yōu)化算法)求得最優(yōu)參數(shù)0

?應(yīng)用機(jī)器學(xué)習(xí)的建議

?評(píng)估學(xué)習(xí)算法

?為了能有效地評(píng)估我們的模型,先要將數(shù)據(jù)集分成兩個(gè)部分,第一部分為訓(xùn)練集(trainingset),

第二部分為測(cè)試集(testset).注意,在數(shù)據(jù)集分割的時(shí)候,最好先打亂數(shù)據(jù)的順序,以免數(shù)據(jù)集本

身的順序?qū)ξ覀兊脑u(píng)估造成影響.通常,我們將元數(shù)據(jù)的70%作為訓(xùn)練集,30%作為測(cè)試集.

?對(duì)于線性回歸問題:

16test

^Aest(。)=5丁£(砧叫-小)

2mtest[仁

?對(duì)于0-1分類問題:

-1TTltest

兒就(。)=——嚴(yán))

mtestM

?其中

1Ifhg[x)>0.5andy=0

1Ifho[x)<0.5andy=1

{0otherwise

?模型選擇(modelselect),訓(xùn)練/測(cè)試/驗(yàn)證集

?將數(shù)據(jù)分成訓(xùn)練集(Trainingset),交叉驗(yàn)證集(CrossValidationset)和測(cè)試集(Testset)三

部分,Traningerror,CrossValidationerror和Testerror

Train/validation/testerror

Trainingerror:

m

JtrainW=肅£&(/))一再產(chǎn)

t=l

CrossValidationerror:

mcu

》心(。)=康E&Q給—點(diǎn)))2

i=l

Testerror:

-5>JtesdO)=2^777£儂(斕1)-剌1t)2

i=l

?偏差-方差權(quán)衡Bias(underfit)andVariance(overfit)

?regularization和bias/variance

Bias(underfit)?/加⑻值較大

()'IJcv⑻XJtrain^)

Vzf辦加⑻值較小

Vanance(overfit):|^w)〉2)

?學(xué)習(xí)曲線

?總結(jié)

措施解決的問題

增加訓(xùn)練實(shí)例過擬合

嘗試更少的特征過擬合

增加更多的特征欠擬合

增加多項(xiàng)式特征欠擬合

增加lambda過擬合

減小lambda欠擬合

?機(jī)器學(xué)習(xí)系統(tǒng)設(shè)計(jì)

?構(gòu)建垃圾郵件分類器(spamclassfier)

?采用監(jiān)督式學(xué)習(xí),構(gòu)建一個(gè)單詞表,對(duì)于每一封郵件,判斷郵件中是否出現(xiàn)單詞表中的單

詞,如果出現(xiàn)對(duì)應(yīng)位置標(biāo)記為1,反之標(biāo)記為0,這樣將一封郵件映射為一個(gè)高維的0;向

量,然后對(duì)于垃圾郵件標(biāo)記為I反之標(biāo)記為0,從而轉(zhuǎn)化為一個(gè)常規(guī)的分類問題。

?處理偏斜數(shù)據(jù)(skeweddata)

?對(duì)于癌癥/非癌癥的分類問題,假設(shè)y=l表示癌癥,y=0表示非癌癥,因?yàn)榘┌Y的人數(shù)必

然是少數(shù)(不妨假設(shè)為1%),那么一個(gè)非常naive的算法可以在任何情況下直接返回0,這

樣表面上該算法的正確率高達(dá)99%(因?yàn)楸緛?lái)99%的人都是非癌癥),然而實(shí)際上容易看

出,對(duì)于癌癥患

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論