随机取值而不是网格取值表明,你探究了更多重要的超参数的潜在值
在对数坐标下取值,取最小的对数就得到a的值,取最大的对数就得到b值。在a,b间随意均匀的选取r值,再设置为\(10^r\)即可。
鱼子酱模式:繁殖的时候会产生很多卵
把隐藏层的z值标准化,化为平均值为0和标准单位方差的值
可以看到,当满足:\(\gamma=sqrt(\sigma^2+\epsilon), \beta=\mu\)时,就是上面的均值为0,标准方差的归一化了
z
和a
之间的:
比如第10层的权重相比第1层的权重更能经受住变化(分布的变化等)
covariate shift:如果已经学习了x到y的映射,如果x的分布改变了,那么可能需要重新训练你的学习算法
import numpy as np
import tensorflow as tf
w = tf.Variable(0,dtype = tf.float32)
#接下来,让我们定义参数w,在TensorFlow中,你要用tf.Variable()来定义参数
#定义损失函数:
cost = tf.add(tf.add(w**2,tf.multiply(- 10.,w)),25)
# 使用梯度下降进行训练
#(让我们用0.01的学习率,目标是最小化损失)。
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
#最后下面的几行是惯用表达式:
init = tf.global_variables_initializer()
session = tf.Session() #这样就开启了一个TensorFlow session。
session.run(init) #来初始化全局变量。
#然后让TensorFlow评估一个变量,我们要用到:
session.run(w)
#上面的这一行将w初始化为0,并定义损失函数,我们定义train为学习算法,它用梯度下降法优化器使损失函数最小化,但实际上我们还没有运行学习算法
print(session.run(w))
# 0
session.run(train)
print(session.run(w))
# 0.1
for i in range(1000):
session.run(train)
print(session.run(w))
# 4.9999
# 结果很接近5了