function [weight,bias] = SGD(hidenActiFcn,outputActiFcn,weight,bias,nabla_weight,nabla_bias,nlayer,mini_batch_size,eta,a,z,y,lambda,n)
时间: 2023-07-31 21:05:41 浏览: 54
这是一个使用SGD算法进行神经网络训练的MATLAB函数。具体参数说明如下:
- hidenActiFcn:隐藏层激活函数,如sigmoid、tanh等;
- outputActiFcn:输出层激活函数,如softmax、sigmoid等;
- weight:网络权重,是一个cell数组,每个元素表示相邻两层之间的权重矩阵;
- bias:网络偏置,是一个cell数组,每个元素表示相邻两层之间的偏置向量;
- nabla_weight:权重梯度,是一个cell数组,每个元素表示相邻两层之间的权重梯度矩阵;
- nabla_bias:偏置梯度,是一个cell数组,每个元素表示相邻两层之间的偏置梯度向量;
- nlayer:网络层数;
- mini_batch_size:小批量样本数量;
- eta:学习率;
- a:隐藏层激活值,是一个cell数组,每个元素表示相邻两层之间的隐藏层激活值向量;
- z:输出层输入值,是一个cell数组,每个元素表示相邻两层之间的输出层输入值向量;
- y:输出层激活值,是一个cell数组,每个元素表示相邻两层之间的输出层激活值向量;
- lambda:L2正则化系数;
- n:样本总数。
函数的主要功能是根据小批量样本的权重和偏置梯度来更新网络参数。具体过程如下:
- 对于每个小批量样本,计算其输出值和梯度;
- 根据小批量样本的权重和偏置梯度累加总梯度;
- 使用总梯度来更新网络参数(权重和偏置);
- 对于每个权重,使用L2正则化来约束其大小;
- 重复以上步骤,直到达到指定的迭代次数。
这个函数的具体实现可能因人而异,但以上是其主要思路。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)