TensorFlow流程图
人工智能神器TensorFlow流程图包括输入层、隐藏层、训练层等
输入层:主要是构建图的节点输入数据,主要是权重(W)和偏差(biases)或者我们输入到神经网络的其他数据
隐藏层:这一层是神经网络的内部结构。 数据经过隐藏层降维后,输出到训练层。 该层的主要算法是神经网络的激活函数。
训练层:该层是神经网络的核心层。 主要是对数据进行训练以达到设计目的。 这一层的主要核心是Optimizer(优化器)。
Activation Function(激励函数):
Activation函数激活函数
我们为什么要用激活函数? 这道题需要讨论高等数学中的线性函数(y=Wx b)和非线性函数y=AF(Wx b)(AF是激活函数),虽然线性函数特别漂亮,但是不符合 实际数据应用。 由于很多因素的存在,实际数据不会像我们想象的那么漂亮。 并且线性函数不能收敛。 在实际应用中,并非所有事物都符合线性关系。
直接构建神经网络的输入输出是线性关系,如下:
线性神经网络
激活函数的本质是一个非线性方程。 Tensorflow的神经网络在处理比较复杂的问题时,会用到激活函数。 通过加入激活函数,可以实现张量计算的非线性,从而提高TensorFlow神经网络模型的泛化能力。 如果不使用激活函数,神经网络的每一层只是线性变换,即使多层输入叠加后,仍然是线性变换。 通过使用激活函数引入非线性因素,神经网络的训练变得更加强大。
常用的激励函数有:
tf.nn.relu
tf.nn.relu6
tf.nn.elu
tf.nn.softplus
tf.nn.softsign
tf.nn.dropout
tf.nn.bias_add
tf. 乙状结肠
tf.tanh
在少量的层结构中,我们可以尝试多种不同的激活函数,但在卷积神经网络CNN中,推荐使用relu。 RNN中推荐使用tanh或者relu,当然你也可以尝试不同的激活函数
TensorFlow optimizer(优化器)
TensorFlow优化器(optimizer)主要用来训练神经网络 (使用不同的算法来优化我们的神经网络)
常用的优化器有:
tf.train.Optimizer
tf.train.GradientDescentOptimizer¶
tf.train.AdadeltaOptimizer¶
tf.train.AdagradOptimizer¶
tf.train.AdagradDAOptimizer¶
tf.train.MomentumOptimizer¶
tf.train.AdamOptimizer¶
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer¶
tf.train.ProximalAdagradOptimizer¶
tf.train.RMSPropOptimizer¶
各个优化器的具体使用方法可以参考官方文档。
下期预告:
通过上面的介绍,我们对TensorFlow如何构建图、启动图、激励函数和优化器的概念有了一个简单的了解。 下一期,我们会通过一个简单的例子,通过代码介绍TensorFlow的流程,(y=Wx b)如何让TensorFlow训练,找到我们的(W, b)
TensorFlow神经网络