gpt4 book ai didi

machine-learning - 修正线性函数在基本神经网络中的用途是什么

转载 作者:行者123 更新时间:2023-11-30 09:10:09 26 4
gpt4 key购买 nike

我最近一直在研究神经网络及其在应用程序中的用途。就在最近,我看到一个教程,描述了一个神经网络,该网络将学习如何对 0-9 的手写数字进行分类 (MNIST)。我遇到问题的教程中的代码部分如下( https://pythonprogramming.net/tensorflow-neural-network-session-machine-learning-tutorial/ )

def neural_network_model(data):
hidden_1_layer = {'weights':tf.Variable(tf.random_normal([784, nodes_hl1])),
'biases':tf.Variable(tf.random_normal([nodes_hl1]))}

hidden_2_layer = {'weights':tf.Variable(tf.random_normal([nodes_hl1, nodes_hl2])),
'biases':tf.Variable(tf.random_normal([nodes_hl2]))}

hidden_3_layer = {'weights':tf.Variable(tf.random_normal([nodes_hl2, nodes_hl3])),
'biases':tf.Variable(tf.random_normal([nodes_hl3]))}

output_layer = {'weights':tf.Variable(tf.random_normal([nodes_hl3, n_classes])),
'biases':tf.Variable(tf.random_normal([n_classes])),}


l1 = tf.add(tf.matmul(data,hidden_1_layer['weights']), hidden_1_layer['biases'])
l1 = tf.nn.relu(l1)

l2 = tf.add(tf.matmul(l1,hidden_2_layer['weights']), hidden_2_layer['biases'])
l2 = tf.nn.relu(l2)

l3 = tf.add(tf.matmul(l2,hidden_3_layer['weights']), hidden_3_layer['biases'])
l3 = tf.nn.relu(l3)

output = tf.matmul(l3,output_layer['weights']) + output_layer['biases']

return output

我对正在发生的事情有了基本的了解。 3 个隐藏层各自是一组通过偏差和权重连接的节点。最终的输出层是神经网络的结果。我理解这里的一切,除了包含 tf.nn.relu() 的代码行。查看 TensorFlow 的文档后,它只提到该函数计算特征的校正线性( https://www.tensorflow.org/api_docs/python/nn/activation_functions_#relu )。我很困惑这个函数正在执行什么以及它在神经网络中具有什么意义。

最佳答案

relu的一些优点(整流线性单元是)

  • 计算成本较低(因此性能更好)
  • 其他一些函数(例如 sigmoid)往往会饱和
  • 它们具有易于计算的导数(记住训练过程依赖于导数)

请检查此https://www.quora.com/What-are-the-benefits-of-using-rectified-linear-units-vs-the-typical-sigmoid-activation-function

关于machine-learning - 修正线性函数在基本神经网络中的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41646559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com