# 神经网络和深度学习
## 1. 激活函数
1. tanh(z)的效果大多数时候都**好于**sigmoid(z),因为tanh(z)的中间值为0,方便下一层迅速计算而sigmoid的中间为0.5,不方便下一层迭代
2. sigmoid的输出值为0到1,如果是二项分类建议在输出层使用,以为他能使一个线性函数输出至0到1
## 2. 为什么需要非线性激活函数
1. 没有激活函数或者线性激活函数,输出不过是输入的线性组合,再多层数也是一样的,隐藏层就一点用都没有了。
2. 只有一个地方可以用线性激活函数,在回归问题中,预测房地产价格。
3. 隐藏层不能用非线性激活函数,唯一能用的就是输出层,用线性激活函数的非常少见。可能在压缩的时候。
## 3. 激活函数的导数
  sigmoid(z)
  igmoid的导数=g(z)(1-g(z))
## 4. 神经网络的梯度下降
## 5. 随机初始化
1. 神经网络的隐藏层参数W不能为0,因为每次计算结果都是一样的 全为0.
2. 用不同的参数去计算不同的单元,随机初始化所有参数
w[1]=np.random.randn((2,2)) *0.01
b[1]=np.zeros((2,1))
3. 0.01是需要尽可能减少权重,权重太大,会导致算出的sigmoid的值接近饱和,导致梯度下降的很慢,减低了学习速度。如果没有sigmoid和tanh函数,这个影响不是很大。
## 1. 激活函数
1. tanh(z)的效果大多数时候都**好于**sigmoid(z),因为tanh(z)的中间值为0,方便下一层迅速计算而sigmoid的中间为0.5,不方便下一层迭代
2. sigmoid的输出值为0到1,如果是二项分类建议在输出层使用,以为他能使一个线性函数输出至0到1
## 2. 为什么需要非线性激活函数
1. 没有激活函数或者线性激活函数,输出不过是输入的线性组合,再多层数也是一样的,隐藏层就一点用都没有了。
2. 只有一个地方可以用线性激活函数,在回归问题中,预测房地产价格。
3. 隐藏层不能用非线性激活函数,唯一能用的就是输出层,用线性激活函数的非常少见。可能在压缩的时候。
## 3. 激活函数的导数
  sigmoid(z)
  igmoid的导数=g(z)(1-g(z))
## 4. 神经网络的梯度下降
## 5. 随机初始化
1. 神经网络的隐藏层参数W不能为0,因为每次计算结果都是一样的 全为0.
2. 用不同的参数去计算不同的单元,随机初始化所有参数
w[1]=np.random.randn((2,2)) *0.01
b[1]=np.zeros((2,1))
3. 0.01是需要尽可能减少权重,权重太大,会导致算出的sigmoid的值接近饱和,导致梯度下降的很慢,减低了学习速度。如果没有sigmoid和tanh函数,这个影响不是很大。