- # Hidden layer
- hidden_1 = tf.nn.relu(tf.add(tf.matmul(X, W_hidden_1), bias_hidden_1))
- hidden_2 = tf.nn.relu(tf.add(tf.matmul(hidden_1, W_hidden_2), bias_hidden_2))
- hidden_3 = tf.nn.relu(tf.add(tf.matmul(hidden_2, W_hidden_3), bias_hidden_3))
- hidden_4 = tf.nn.relu(tf.add(tf.matmul(hidden_3, W_hidden_4), bias_hidden_4))
- # Output layer (must be transposed)
- out = tf.transpose(tf.add(tf.matmul(hidden_4, W_out), bias_out))
猜测和实际 S&P 价格的散点图(已缩放)
然而,MSE 的特点在常见的优化问题上很有优势。
- 优化器
优化器处理的是练习过程顶用于适应收集权重和误差变量的须要计算。这些计算调用梯度计算结不雅,指导练习过程中,权重和误差须要改变的偏向,大年夜而最小化收集的价值函数。稳定、快速的优化器的开辟,一向是神经收集和深度进修范畴的重要研究。
- # Optimizer
- opt = tf.train.AdamOptimizer().minimize(mse)
以上是用到了 Adam 优化器,是今朝深度进修中的默认优化器。Adam 表示适应性矩估计,可被算作 AdaGrad 和 RMSProp 这两个优化器的结合。
- 初始化器
TensorFlow 的宣布是深度进修研究的里程碑事宜,其高度的灵活性和强大年夜的机能使研究者能开辟所有种类的复杂神经收集架构以及其它机械进修算法。然而,比拟应用高等 API 如 Keras 或 MxNet,灵活性的价值是更长的建模时光。尽管如斯,我信赖 TensorFlow 将持续成长,并成为神经网路和和深度进修开辟的研究和实际应用的实际标准。我们很多客户都已经在应用 TensorFlow,或正在开辟应用 TensorFlow 模型的项目。我们的 STATWORX 的数据科学参谋(https://www.statworx.com/de/data-science/)根本都是用 TensorFlow 研究课开辟深度进修以及神经收集。
初始化器被用于在练习之前初始化收集的变量。因为神经收集是应用数值优化技巧练习的,优化问题的起点是找稻?锬解决筹划的重点。TensorFlow 中有不合的初始化器,每个都有不合的初始化办法。在这篇文┞仿中,我应用的是 tf.variance_scaling_initializer(),是一种默认的初始化策略。
- # Initializers
- sigma =
- weight_initializer = tf.variance_scaling_initializer(mode="fan_avg", distribution="uniform", scale=sigma)
- bias_initializer = tf.zeros_initializer()
留意,用 TensorFlow 的计算图可以对不合的变量定义多个初始化函数。然而,在大年夜多半情况下,一个同一的初始化函数就够了。
拟合神经收集
完查对收集的┞芳位符、变量、初始化器、价值函数和优化器的定义之后,就可以开端练习模型了,平日会应用小批量练习办法。在小批量练习过程中,会大年夜练习数据随机提取数量为 n=batch_size 的数据样本馈送到收集中。练习数据集将分成 n/batch_size 个批量按次序馈送到收集中。此时占位符 X 和 Y 开端起感化,它们保存输入数据和目标数据,并在收集平分别表示成输入和目标。
X 的一个批量数据会在收集中向前流动直到达到输出层。在输出层,TensorFlow 将会比较当前批量的模型猜测和实际不雅察目标 Y。然后,TensorFlow 会进行优化,使悠揭捉?择的进修筹划更新收集的参数。更新完权重和误差之后,下一?批量被采样并反复以上过程。这个过程将一向进行,直到所有的批量都被馈送到收集中去,即完成了一个 epoch。
当练习达到了 epoch 的最大年夜值或其它的用户自定义的停止标准的时刻,收集的练习就会停止。
在练习过程中,我们在测试集(没有被收集进修过的数据)上评估了收集的猜测才能,每练习 5 个 batch 进行一次,并展示结不雅。此外,这些图像将被导出稻磁逄并组合成一个练习过程的视频动画。模型能敏捷进修到测试数据中的时光序列的地位和外形,并在经由几个 epoch 的练习之后生成精确的猜测。太棒了!
可以看到,收集敏捷地适应了时光序列的根本外形,并能持续进修数据的更精细的模式。这归功于 Adam 进修筹划,它能在模型练习过程中降低进修率,以避免错过最小值。经由 10 个 epoch 之后,我们完美地拟合了测试数据!最后的测试 MSE 等于 0.00078,这异常低,因为目标被缩放过。测试集的猜测的平均百分误差率等于 5.31%,这是很不错的结不雅。
推荐阅读
敏捷框架比较:Scrum vs Kanban vs Lean vs XP
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 在这篇文┞仿中, Alesia Krush将对四种最风行的敏捷开辟办法进行比较,给出了每种办法的优缺点。市场上有>>>详细阅读
地址:http://www.17bianji.com/lsqh/39204.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示