Matlab人工神經網路基本知識筆記

2021-09-28 15:31:29 字數 1629 閱讀 3180

建立網路

老版本為newff函式,新版本為feedforwardnet

feedforwardnet(hiddensizes,trainfcn)

%hiddensizes為行向量,表示隱層尺寸,預設值為10

%例如hiddensizes = [2,3]表示隱層第一層有2個神經元,第二層有3個神經元

%trainfcn為訓練方法,預設值為'trainlm'

net.inputs.processfcns = {};

net.outputs.processfcns = {};

%舊版newff這個引數預設值為空,新版newff和feedforwardnet這個引數預設值為'mapminmax',即預設進行歸一化。如資料集已經進行過歸一化,可將該引數賦值為空。

資料集的劃分

分為訓練集、驗證集和測試集,分配方法如下:

net.dividefcn = 'dividetrain';%全部劃分給訓練集

net.dividefcn = '';%與'dividetrain'作用相同

net.dividefcn = 'dividerand';%預設值,隨機分配

%三個引數:net.divideparam.trainratio, net.divideparam.valratio, net.divideparam.testratio

%訓練集佔比計算公式為:trainratio/(trainratio+valratio+testratio)

%其餘二者佔比也按照該方法計算。三個引數預設值分別為0.7, 0.15, 0.15

初始化
net.initfcn = 'initlay' %只能是 initlay
net.layers.initfcn = 'initnw' 或 'initwb'
net.inputweights.initfcn = 'rands' , 'initzero' , 'midpoint' , 'randnc' , 'randnr' 或 'initsompc' 

net.layerweights.initfcn = 'rands' , 'initzero' , 'midpoint' , 'randnc' , 'randnr' 或 'initsompc'

net.biases.initfcn = 'rands' , 'initzero' 或 'initcon' [^1]

初始化的例子:

net.initfcn = 'initlay';

net.layers.initfcn = 'initwb';

xornet.inputweights.initfcn = 'rands';

xornet.layerweights.initfcn = 'rands';

net.biases.initfcn = 'rands';

net = init(net);

訓練

參考資料:

[^1]

[^2]

其餘來自matlab文件

人工神經網路 多層神經網路

模型原型 sklearn.neural network.mlpclassifier hidden layer sizes 100,activation relu algorithm adam alpha 0.0001,batch size auto learning rate constant le...

人工神經網路

人工神經網路 artificial neural network,ann 通過對大量歷史資料的計算來建立分類和 模型。神經網路的學習就是通過迭代演算法對權值逐步修改優化的過程。學習的目標是通過修改權值是訓練樣本集中所有樣本都能被正確分類。人工神經元用於模擬生物神經元,人工神經元可以看作乙個多輸入 單...

人工神經網路

import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns from sklearn.model selection import train test splitann建模...