1. 误差分析(Error analysis) 误差分析的目的是找到不同误差源的比重,从而指引我们接下来往哪个方向努力改进.NG建议手工统计随机100个错误的误差源,比如对于猫分类器,错误的照片可能是1)狗:2)大型猫科动物:3)图像模糊.那么可以建立下面的表格: 在统计过程中发现新的误差源,则添一列(比如这里的Instagram).本例的结果是100张错误图像中,Blurry占61%,Great Cats占43%,所以这两个是最主要的误差源,那么可以把团队分两拨,一拨人主攻一个方向.而Dog.…
这门课是讲一些分析机器学习问题的方法,如何更快速高效的优化机器学习系统,以及NG自己的工程经验和教训. 1. 正交化(Othogonalization) 设计机器学习系统时需要面对一个问题是:可以尝试和改变的东西太多太多了.牛逼的机器学习专家很清楚自己要调什么以达到什么目的,这个调参和效果一一对应的关系就是所谓的正交化,调整一个参数的时候,只调整一个对应的性质.或者说各种性质互相正交,互不影响. 机器学习的一般性步骤: 1)在训练集上表现足够好,如果不够好的话,则尝试更大的神经网络.用更好的优化…
1. 预测房价.广告点击率:典型的神经网络,standard NN. 图像:卷积神经网络,CNN. 一维序列数据,如音频,翻译:循环神经网络,RNN. 无人驾驶,涉及到图像.雷达等更多的数据类型:混合的神经网络. 2. 结构化数据:数据的数据库,每一种特征都有明确的定义,如预测房价.广告点击率.目前主要的营收来源还是处理结构化数据. 非结构化数据:如音频.图像.文本,特征不明显.人类和你擅长处理非结构化数据. 3. 为什么近期神经网络一下子变这么厉害?一个神经网络牛逼的条件:1)神经网络的规模足…
1. 预测房价.广告点击率:典型的神经网络,standard NN. 图像:卷积神经网络,CNN. 一维序列数据,如音频,翻译:循环神经网络,RNN. 无人驾驶,涉及到图像.雷达等更多的数据类型:混合的神经网络. 2. 结构化数据:数据的数据库,每一种特征都有明确的定义,如预测房价.广告点击率.目前主要的营收来源还是处理结构化数据. 非结构化数据:如音频.图像.文本,特征不明显.人类和你擅长处理非结构化数据. 3. 为什么近期神经网络一下子变这么厉害?一个神经网络牛逼的条件:1)神经网络的规模足…
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第i层网络 z[i] = W[i]a[i-1] + b[i], a[i] = f[i](z[i]). 其中,z[i]是n[i]*1,W[i]是n[i]*n[i-1],a[i-1]是n[i-1]*1,b[i]是n[i]*1. 对于向量化后的所有样本,第i层网络 Z[i] = W[i]A[i-1] + b…
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第i层网络 z[i] = W[i]a[i-1] + b[i], a[i] = f[i](z[i]). 其中,z[i]是n[i]*1,W[i]是n[i]*n[i-1],a[i-1]是n[i-1]*1,b[i]是n[i]*1. 对于向量化后的所有样本,第i层网络 Z[i] = W[i]A[i-1] + b…
1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第i-1层的神经元,形状是n[i-1]*p,p是样本数量: B[i]形状是n[i]*p,B[i]的每一列都是一样的,所以其实有效的参数只是n[i]个,python里直接用n[i]*1的b[i]然后boradcasting成n[i]*p方便做加法. A[0]对应输入层,n[0]是单个输入样本的特征数量.…
1. Logistic回归是用于二分分类的算法. 对于m个样本的训练集,我们可能会习惯于使用for循环一个个处理,但在机器学习中,是把每一个样本写成一个列向量x,然后把m个列向量拼成一个矩阵X.这个矩阵是nx*m大小,nx是每个样本的特征数量,m是样本个数,X.shape=(nx,m).也可以把特征写成横向量然后竖着拼成m*n的矩阵,NG说前一种列向量的表示方便运算.输出Y是1*m的向量,Y.shape=(1,m). 把样本表示成矩阵形式后,可以对它进行线性操作wTx+b,由于二分分类的标签为0…
1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第i-1层的神经元,形状是n[i-1]*p,p是样本数量: B[i]形状是n[i]*p,B[i]的每一列都是一样的,所以其实有效的参数只是n[i]个,python里直接用n[i]*1的b[i]然后boradcasting成n[i]*p方便做加法. A[0]对应输入层,n[0]是单个输入样本的特征数量.…
1. Logistic回归是用于二分分类的算法. 对于m个样本的训练集,我们可能会习惯于使用for循环一个个处理,但在机器学习中,是把每一个样本写成一个列向量x,然后把m个列向量拼成一个矩阵X.这个矩阵是nx*m大小,nx是每个样本的特征数量,m是样本个数,X.shape=(nx,m).也可以把特征写成横向量然后竖着拼成m*n的矩阵,NG说前一种列向量的表示方便运算.输出Y是1*m的向量,Y.shape=(1,m). 把样本表示成矩阵形式后,可以对它进行线性操作wTx+b,由于二分分类的标签为0…