BPNN中的常用传递函数与训练函数总结

compet---竞争型传递函数;
hardlim---阈值型传递函数;
hardlims---对称阈值型传输函数;
logsig---S型传输函数;
poslin---正线性传输函数;
purelin---线性传输函数;
radbas---径向基传输函数;
satlin---饱和线性传输函数;
satlins---饱和对称线性传输函数;
softmax---柔性最大值传输函数;
tanhsig---双曲正切S型传输函数;
tribas---三角形径向基传输函数;


traingd 最速梯度下降算法
收敛速度慢,网络易陷于局部极小,学习过程常发生振荡
traingdm 有动量的梯度下降算法
收敛速度快于traingd
traingdx 学习率可变的BP算法
收敛速度快于traingd,仅用于批量模式训练
trainrp 弹性BP算法
用于批量模式训练,收敛速度快,数据占用存储空间小
traincgf Fletcher-Reeves变梯度算法
是一种数据占用存储空间最小的变梯度算法,且速度通常比traingdx快得多,在连接权的数量很多时,时常选用该算法
traincgp Polak-Ribiére变梯度算法
存储空间略大于traincgp,但对有些问题有较快的收敛速度
traincgb Powell-Beale变梯度算法
性能略好于traincgp,但存储空间较之略大
trainscg 固定变比的变梯度算法
比其他变梯度算法需要更多迭代次数,但无需在迭代中进行线性搜索使每次迭代的计算量大大减小,存储空间与traincgf近似
trainbfg BFGS拟牛顿算法
每次迭代过程所需的计算量和存储空间大于变梯度算法,数据存储量近似于Hessian矩阵,对规模较小的网络更有效
trainoss 变梯度法与拟牛顿法的折中算法
trainlm Levenberg-Marquardt算法
对中等规模的前馈网络(多达数百个连接权)的最快速算法
trainbr 贝叶斯归一化法
可使网络具有较强的泛化能力,避免了以尝试的方法去决定最佳网络规模的大小
BPNN(Back Propagation Neural Network)是一种常见的神经网络类型,用于解决分类和回归等问题。以下是定义 BPNN 函数的示例代码: ```matlab function [W1, W2] = BPNN(X, Y, hidden, eta, epochs) % X:输入样本,每行为一个样本 % Y:样本标签 % hidden:隐藏层神经元个数 % eta:学习率 % epochs:训练轮数 % 随机初始化权重 [m, n] = size(X); W1 = rand(hidden, n + 1) - 0.5; W2 = rand(1, hidden + 1) - 0.5; for i = 1:epochs % 随机抽取一个样本 j = randi(m); x = [1, X(j,:)]; y = Y(j); % 前向传播 z = sigmoid(W1 * x'); z = [1; z]; o = sigmoid(W2 * z); % 反向传播 delta2 = (o - y) .* o .* (1 - o); delta1 = (W2' * delta2) .* z .* (1 - z); delta1 = delta1(2:end); % 更新权重 W2 = W2 - eta * delta2 * z'; W1 = W1 - eta * delta1 * x; end end function y = sigmoid(x) y = 1 ./ (1 + exp(-x)); end ``` 这是一个简单的 BPNN 实现,包括随机初始化权重、前向传播、反向传播和权重更新等步骤。您可以根据自己的需求进行修改和优化。要使用此函数,请将其保存在一个名为 BPNN.m 的文件,并使用以下代码进行调用: ```matlab X = ...; % 输入样本 Y = ...; % 样本标签 hidden = ...; % 隐藏层神经元个数 eta = ...; % 学习率 epochs = ...; % 训练轮数 [W1, W2] = BPNN(X, Y, hidden, eta, epochs); ``` 其,X 和 Y 分别是输入样本和样本标签,hidden 是隐藏层神经元个数,eta 是学习率,epochs 是训练轮数。函数将返回最终的权重矩阵 W1 和 W2。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值