matlab与神经网络
单层感知器神经网络
以 newp 创建感知器神经网络
根据要解决的问题,确定输入向量的取值范围和维数,网络层的神经元数目.传输函数和学习函数;然后以单层感知器神经网络的创建函数 newp 创建网络
以 train 训练创建网络
构造训练样本集,确定每个样本的输入向量和目标向量,调用函数 train 对网络进行训练,并根据训练情况决定是否要调整训练参数,已得到满足误差性能指标的神经网络,然后存储
以 sim 对训练后的网络进行仿真
构造测试样本集,加载训练后的网络,调用函数 sim, 以测试样本集进行仿真,查验网络的性能
重要的感知器神经网络函数有: newp, train 和 sim. 除此之外还有 init, trainc, dotprod, netsum, mae, plotpc, plotpv. etc.
示例代码
这高亮TM的什么鬼
1 | %% 初始化感知器网络 |
线性神经网络
以 newlin 创建神经网络
根据问题确定输入输入向量的取值范围和维数,网络层的神经元数目;然后以线性神经网络的创建函数 newlin 创建网络
以 train 训练创建网络,或以 adapt 自适应调整权值和阈值.
构造训练样本集,确定每个样本的输入向量和目标向量,调用函数 train 对网络进行训练(或以 adapt 自适应调整权值和阈值),并根据训练的情况,决定是否调整训练参数,以得到满足误差性能指标的神经网络.
若以 newlind 设计线性神经网络,则不需要训练
用 sim 对训练后的网络仿真
如果问题需要网络的仿真结果,则需要构造测试样本集,加载训练后网络,调用 sim 以得到网络的仿真结果
注意:有些应用中,自适应线性神经网络的输出不是取自线性神经网络的输出,而是目标相应 t 与模拟输出量 a 的误差 e = t - a.
涉及到的线性神经网络函数有, newlin, newlind, adapt, train, sim. 除此之外还有 init, mse. etc
示例代码
难道 rouge 不能设置纯文本吗
1 | %% 与逻辑实现 matlab 仿真 |
BP 神经网络
网络设计的几大方面
BP 网络的设计主要包括 输入层,隐层,输出层及各层之间的传输函数几方面,
网络的层数,两层的 BP 可以实现任意非线性映射,一般不超过两层
输入层的节点数,取决于输入向量的维数
输出层的节点数,取决于数据类型和表示该类型所需的数据大小,使用二进制数表示时,可以用 n 位二进制数表示,编码可以用 $$\log_{2}{n}$$表示
隐层的节点数,根据前人经验,可以参照以下公式设计
$$n = \sqrt{n_i + n_o} + a$$
$$n$$ 为隐层节点数;$$n_i$$ 为输入节点数,$$n_o$$ 为输出节点数;$$a$$ 为 1 到 10 的常数传递函数,通常采用 S(sigmoid)型函数
$$f(x) = \frac{1}{1 + e^{-x}}$$
训练方法及参数选择
BP 神经网络用到的函数
- newff 创建 BP 神经网络
- train 训练
- sim 仿真
示例代码
算了,至少有颜色
1 | %%% 两类模式的分类 |