两周来,我一直在通过工作台和 Java 代码修改 Encog 中的标准多层感知器和反向传播算法。我的下一项工作将需要在输入模式中插入噪声,如本文所示: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber= 6033567 (MLP 神经网络训练中的 PCA 和高斯噪声提高了问题的泛化能力小且不平衡的数据集)
基本上,我需要(这是一个二元分类问题): 1 - 使用主成分分析 (PCA) 转换输入模式 2 - 使用反向传播来训练 MLP,有一个技巧:在每个训练模式中插入不同的白噪声每个时代。
使用 Java 版本的 Encog 进行这种噪声注入的更直接的方法是什么?是否有任何可用的训练算法涉及人工噪声注入?
PS.:我引用的论文的完整算法是
1. 应用 PCA 对变量进行去相关
2. 初始化系统架构
3. 设置 k, max number of epochs and min error
4. 开始训练 - While epoch counter 一个。随机绘制一个输入模式(向量 x)而不替换表示
b。将噪声注入输入模式
1。对于输入模式中的每个变量
a。从高斯分布中画出 g。g ~ N(0,1)
b。计算 n = k * g
c。添加 ninto 输入模式 x
c。呈现输入模式
d. 调整系统参数
e.如果已达到训练停止标准,则
1. 停止训练
f。否则
1. 增加历元计数器
2. 转到 4.a