吴恩达deepAI深度学习第一周课程学习记录
一.loss function & cost function
loss function:一个样本的损失
cost function:将所有样本的值加在一起
在logistic Regression中一般直接使用带log 函数的,不使用均方误差
均方误差容易使得结果变得不收敛(convent function)。
二.导数与梯度下降
slope (斜率)= height / width = derivatives
三.计算图
对应tensorflow中的graph的概念
应用chain rule 链式法则进行求导。
四. 二分算法Back propagation
https://www.jianshu.com/p/498f7bf488a2
- 基础知识
- 利用chain rules 进行一步步求导
- 逻辑回归中的梯度下降法
对单个样本而言,逻辑回归Loss function表达式: \(z=w^Tx+b\)
\[y=a=σ(z)\] \[L(a,y)=−(ylog(a)+(1−y)log(1−a))\]反向传播过程:
前面过程的da、dz求导:
五.激活函数
不要用sigmoid(),除了对与output layer
tanh(z) 比sigmod(z) 函数好
relu() 二分输出比较好
leaky Relu()一般比较好,但是不常用
使用激活函数的原因是因为:这样才会变成非线性。线性的函数意义不大。
六.向量化
对m个样本来说,其Cost function表达式如下:
Cost function 关于w和b的偏导数可以写成所有样本点偏导数和的平均形式:
七.神经网络的梯度下降法
以本节中的浅层神经网络为例,我们给出神经网络的梯度下降法的公式。
八.随机化参数
注意:w不能随机化为0,这样会让神经网络每一次层中对称的神经元变为一样的。
原因:由于两个隐藏神经元的参数设置为相同的大小,那么两个隐藏神经元对输出单元的影响也是相同的,通过反向梯度下降去进行计算的时候,会得到同样的梯度大小,所以在经过多次迭代后,两个隐藏层单位仍然是对称的。无论设置多少个隐藏单元,其最终的影响都是相同的,那么多个隐藏神经元就没有了意义。
1
2
W = np.random.rand((2,2))* 0.01
b = np.zero((2,1))
给其乘以0.01是为了在使用sigmod函数时方便训练,在0处的导数大,训练速度快。
tanh可以不乘。