版权声明:本文为博主 http://blog.csdn.net/churximi 原创文章,未经允许不得转载,谢谢。 https://blog.csdn.net/churximi/article/details/79543962
毕业以后就没再写过博客,又想起来了。
Ps:本文只是个人笔记总结,没有大段的详细讲解,仅仅是将自己不熟悉和认为重要的东西总结下来,算是一个大纲,用的时候方便回忆和查找。
Ps2:部分笔记内容见图片。
相关课程内容
一、神经网络和深度学习
- 第三周 浅层神经网络
- 第四周 深层网络结构
知识点总结
第三周 浅层神经网络
1. 向量化
m个实例
正向传播:
反向传播:
2. 随机初始化(Random Initialization)
(1)全零初始化
- W权值初始化为0的问题:隐藏层所有的隐藏单元都在做相同的计算。(隐藏单元会是对称的,因而不能起到什么作用)
- 随机初始化时的参数最好比较小,以便一开始的学习速度比较快。
b权值可以初始化为0。
(2)小随机数初始化
随机初始化如果初始值太大会拖慢优化速度。
(3)Xavier初始化
He初始化与Relu搭配效果很好。
将小随机数初始化里的系数0.01改为:
(4)He初始化
Xavier初始化的变种,多乘了√2,与Relu搭配效果好
第四周 深层网络结构
1. 多层网络参数的维度
- 假设网络一共有L层,网络结构为:
LINEAR -> RELU -> LINEAR -> RELU-> … -> LINEAR -> SIGMOID
(最后一层激活函数为Sigmoid,其它层的激活函数都为Relu)
2. 正向传播和反向传播
由于在计算反向传播时,需要用到正向传播计算过程中的W,A值,所以需要将这些要用的值存储下来(cache)。
计算公式:
3. 参数Vs超参数
4. 学习率
(1)好的学习率
(2)坏的学习率
5. 归一化行(Normalizing rows)
- np.linalg.norm()
示例:
6. Softmax()
7. np.dot()与np.multiply()
(1)np.dot():矩阵向量乘法
(2)np.multiply():element-wise乘法
(3)比较:
- 两个一维向量np.dot(),求的是内积(两两元素乘积再求和),结果是一个常量;
两个一维向量np.multiply(),求的是两两对应元素的乘积,结果是一个向量;
两个矩阵np.dot(),矩阵乘法,行列对应np.dot();
- 两个矩阵np.multiply(),两两对应元素相乘。
8. 损失函数L1,L2
(1)L1损失函数:使用绝对值距离,也叫做街区(City-Block)距离(曼哈顿距离);
- 计算:差的绝对值求和。
L1_loss = np.sum(abs(y - yhat))
(2)L2损失函数:使用平方距离,也叫做欧式(Euclidean)距离。
- 计算:差的绝对值的平方再求和。
L2_loss = np.sum(np.dot((y - yhat), (y - yhat)))