1.人工神經(jīng)網(wǎng)絡(luò)
????人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network溜腐,ANN)是在受到了生物學(xué)的啟發(fā)后創(chuàng)建的倘核,在某種程度上它是對(duì)生物大腦的一種模擬约急。人們仿照生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)兰英,使用簡(jiǎn)單運(yùn)算單元模擬神經(jīng)元展融,并將大量運(yùn)算單元按某種形式密集連接寞射,便構(gòu)成了人工神經(jīng)網(wǎng)絡(luò)渔工。結(jié)構(gòu)如圖:
帶有權(quán)重值(w1,w2,...,wn)的信號(hào)(x1,x2,...,xn)經(jīng)過(guò)z整合后進(jìn)行激活函數(shù)f(x)的處理,最后輸出處理的結(jié)果桥温。
2.激活函數(shù)的類型
(1)閾值函數(shù):
(2)Relu函數(shù):
(3)分段線性函數(shù)
(4)非線性轉(zhuǎn)移函數(shù)
3.常用的人工神經(jīng)網(wǎng)絡(luò)模型
(1)BP神經(jīng)網(wǎng)絡(luò)(反向傳播算法)
(2)RBF神經(jīng)網(wǎng)絡(luò)
(3)FNN
(4)LM神經(jīng)網(wǎng)絡(luò)(精準(zhǔn)度非常高)
4.BP神經(jīng)網(wǎng)絡(luò)
(1)主要思想:從后向前逐層傳播輸出層的誤差引矩,以間接算出隱層誤差。
(2)模型圖:
(3)算法分為兩個(gè)階段:
第一階段(正向過(guò)程)輸入信息從輸入層經(jīng)隱層逐層計(jì)算各神經(jīng)元的輸出值侵浸。
第二階段(反向傳播過(guò)程)輸出誤差逐層向前算出隱層各神經(jīng)元的誤差旺韭,并用此誤差修正每層權(quán)值。
(4)工作流程:
(5)算法實(shí)現(xiàn):
神經(jīng)網(wǎng)絡(luò)既可以用于處理分類問(wèn)題掏觉,又可以處理回歸問(wèn)題区端,相應(yīng)算法只是在輸出層略有差別:
·對(duì)于分類問(wèn)題,幾元分類問(wèn)題就有幾個(gè)輸出節(jié)點(diǎn)澳腹,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)類別珊燎。預(yù)測(cè)時(shí),哪個(gè)節(jié)點(diǎn)輸出值最大遵湖,該節(jié)點(diǎn)的輸出編碼為1悔政,其它節(jié)點(diǎn)的輸出編碼為0,模型最終輸出一個(gè)二進(jìn)制編碼延旧。
·對(duì)于回歸問(wèn)題谋国,需輸出連續(xù)實(shí)數(shù)值(通常只有一個(gè)輸出值),此時(shí)輸出節(jié)點(diǎn)的激活單元f將被去除迁沫,線性單元的輸出值z(mì)直接作為模型的最終輸出芦瘾。
(1)對(duì)于分類問(wèn)題,實(shí)現(xiàn)方法有兩種:
①利用深度學(xué)習(xí)Keras下的序列Sequencial模塊構(gòu)建人工神經(jīng)網(wǎng)絡(luò)
②利用sklearn庫(kù)下的MLPClassifier模塊構(gòu)建人工神經(jīng)網(wǎng)絡(luò)
【注】
class sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100, ), activation=’relu’, solver=’adam’, alpha=0.0001,batch_size=’auto’,learning_rate=’constant’, learning_rate_init=0.001, power_t=0.5, max_iter=200, random_state=None)
重要參數(shù)說(shuō)明:
①hidden_layer_sizes?:元組格式集畅,長(zhǎng)度=n_layers-2,默認(rèn)(100近弟,),第i個(gè)元素表示第i個(gè)隱藏層的神經(jīng)元的個(gè)數(shù)挺智。?
②activation?:{‘identity’祷愉,‘logistic’,‘tanh’,‘relu’}二鳄,默認(rèn)’relu’赴涵。
?Ps隱藏層的激活函數(shù):
‘identity’,無(wú)操作激活订讼,對(duì)實(shí)現(xiàn)線性瓶頸很有用髓窜,返回f(x)= x;
‘logistic’欺殿,logistic sigmoid函數(shù)寄纵,返回f(x)= 1 /(1 + exp(-x));
‘tanh’脖苏,雙曲tan函數(shù)程拭,返回f(x)= tanh(x);
‘relu’帆阳,整流后的線性單位函數(shù)哺壶,返回f(x)= max(0,x)蜒谤。
③solver:{‘lbfgs’山宾,‘sgd’,‘a(chǎn)dam’}鳍徽,默認(rèn)’adam’资锰。
Ps權(quán)重優(yōu)化的求解器:
'lbfgs’是準(zhǔn)牛頓方法族的優(yōu)化器;
'sgd’指的是隨機(jī)梯度下降阶祭;
'adam’是指由Kingma绷杜,Diederik和Jimmy Ba提出的基于隨機(jī)梯度的優(yōu)化器。
注意:默認(rèn)解算器“adam”在相對(duì)較大的數(shù)據(jù)集(包含數(shù)千個(gè)訓(xùn)練樣本或更多)方面在訓(xùn)練時(shí)間和驗(yàn)證分?jǐn)?shù)方面都能很好地工作濒募。但是鞭盟,對(duì)于小型數(shù)據(jù)集,“l(fā)bfgs”可以更快地收斂并且表現(xiàn)更好瑰剃。
(2)對(duì)于回歸問(wèn)題齿诉,利用sklearn庫(kù)下的MLPRegressor模塊構(gòu)建人工神經(jīng)網(wǎng)絡(luò)