吴老师的第一周课程还有其他作业,这篇博客中,我只总结自己认为重要的,并且是自己薄弱的地方
1、tanh激活函数通常比隐藏层单元的sigmoid激活函数效果更好,因为其输出的平均值更接近于零,因此它将数据集中在下一层是更好的选择
2、权重和偏差初始化为零会导致第一个隐藏层中的每个神经元节点将执行相同的计算。 所以即使经过多次梯度下降迭代后,层中的每个神经元节点都会计算出与其他神经元节点相同的东西,而在logistic回归中权重和偏置可以为0
3、前向传播和反向传播中使用的“cache”,用于前向传播中计算的变量到相应的反向传播步骤,它包含用于计算导数的反向传播的有用值
4、参数是w和b,超参数是学习率,隐藏层层数,每个隐藏层的大小、迭代次数
5、 神经网络的更深层通常比前面的层计算更复杂的输入特征
6、假设每一层的维度为layer_dims = [n_x,4,3,2,1],如何初始化w和b
for(i in range(1, len(layer_dims))):
parameter[‘W’ + str(i)] = np.random.randn(layers[i], layers[i - 1])) * 0.01
parameter[‘b’ + str(i)] = np.random.randn(layers[i], 1) * 0.01
7、图片是非结构化的数据
8、增加训练集和增加网络的大小不会影响算法的性能,但会对算法的结果有帮助
9、 使用np.random.randn(..,..)* 1000将权重初始化为相对较大的值、这将导致tanh的输入也很大,因此导致梯度接近于零, 优化算法将因此变得缓慢
10、每一个神经网络的计算单元都要进行两步操作,第一步是计算出Z,第二步是计算出A
11、关于激活函数选择的问题
sigmoid:除了是二分类中输出层会用到它,其他情况不用
tanh:适用于所有场合
relu:最常用的激活函数
其他结论:
如果在隐藏层上使用激活函数,tanh总要优于sigmoid
tanh和sigmoid的缺点是在Z特别大或者特别小的时,导数的斜率会变得特别小,最后就会接近0,导致降低梯度下降的速度。
12、权重和偏置初始化问题
w = np.random.randn(2,3)*0.01
b = np.zeros((n,1))