为了用向量表示这些像素矩阵,我们将把这些矩阵中的像素值展开为一个向量x作为算法的输入
1.vectorlzation向量化
速度快
Whenever possible, avoid explicit for-loops 尽量少使用for循环,使用numpy的内置函数来避免for循环
逻辑回归的向量化实现(Vectorizing Logistic Regression)
通过向量化同时实现所有训练样本的前向传播,同时计算出整个训练集的激活值
Z=np.dot(w,T,X)+b
使用向量化计算全部m个训练样本的梯度
Python的广播机制
2.神经网络
二分类问题
权重参数一般*0.01
矩阵维数
3.优化
学习率确定,看损失函数是不是下降并且接近一个小值
数据量小于100万时按照 60% 20% 20%分配训练集,验证集,测试集
数据在100万左右时按照 98% 1% 1%
数据量更大时按照 99.5% 0.25% 0.25%
确保开发集和测试集中的数据分布相同,有的是爬取的数据,有的是网上的高质量图片
训练集表现很好,验证集错误较多 高方差
效果都不好 高偏差(过拟合)
效果都不好但验证集更差 高偏差 高方差
高偏差(训练集不能良好拟合)------>选一个新的网络或延长训练时间或换算法
高方差(泛化能力)------>更多的数据以及正则化
dropout
每个结点有多少的概率被丢弃,按照随机的编码决定这些节点的去留
这个表达式表示这个随机数有0.8的几率取值为1或为真(True)20%或0.2的几率取值为非(False)或0