主要内容: 一.Normalizing activations in a network 二.Fitting Batch Norm in a neural network 三.Why does Batch Norm work? 四.Batch Norm at test time       一.Normalizing activations in a network  1.在浅层机器学习算法中,如logistics regression,我们通常使用normalization来加速梯度下…
吴恩达深度学习课程的课堂笔记以及课后作业 代码下载:https://github.com/douzujun/Deep-Learning-Coursera 吴恩达推荐笔记:https://mp.weixin.qq.com/s/cX9_DiqofPhdXrY_0oTEAw 课程1 - 神经网络和深度学习 周数 名称 类型 地址 week1 深度学习简介 测验 略 week2 神经网络基础 笔记 逻辑回归 逻辑回归推导 具有神经网络思维的Logistic回归 编程作业 识别猫 week3 浅层神经网络…
主要内容: 一.Mini-Batch Gradient descent 二.Momentum 四.RMSprop 五.Adam 六.优化算法性能比较 七.学习率衰减 一.Mini-Batch Gradient descent 1.一般地,有三种梯度下降算法: 1)(Batch )Gradient Descent,即我们平常所用的.它在每次求梯度的时候用上所有数据集,此种方式适合用在数据集规模不大的情况下. X = data_input Y = labels parameters = initia…
(很好的博客:残差网络ResNet笔记) 主要内容: 一.深层神经网络的优点和缺陷 二.残差网络的引入 三.残差网络的可行性 四.identity block 和 convolutional block 一.深层神经网络的优点和缺陷 1.深度神经网络很大的一个优点就是能够表示一个复杂的功能.网络的层数越多,意味着能够提取到不同level的特征越丰富.并且,越深的网络提取的特征越抽象,越具有语义信息.但其有一个巨大的缺陷,那就是:如果简单地增加深度,会导致梯度弥散或梯度爆炸.使得训练速度十分缓慢:…
经典网络 LeNet-5 AlexNet VGG Ng介绍了上述三个在计算机视觉中的经典网络.网络深度逐渐增加,训练的参数数量也骤增.AlexNet大约6000万参数,VGG大约上亿参数. 从中我们可以学习到随着网络深度增加,模型的效果能够提升.另外,VGG网络虽然很深,但是其结构比较规整.每经过一次池化层(过滤器大小为2,步长为2),图像的长度和宽度折半:每经过一次卷积层,输出数据的channel数量加倍,即卷积层中过滤器(filter)的数量. 残差网络(ResNet) 由于存在梯度消失与梯…
作者:szx_spark 1. Padding 在卷积操作中,过滤器(又称核)的大小通常为奇数,如3x3,5x5.这样的好处有两点: 在特征图(二维卷积)中就会存在一个中心像素点.有一个中心像素点会十分方便,便于指出过滤器的位置. 在没有padding的情况下,经过卷积操作,输出的数据维度会减少.以二维卷积为例,输入大小 \(n\times n\),过滤器大小\(f\times f\),卷积后输出的大小为\((n-f+1)\times(n-f+1)\). 为了避免这种情况发生,可以采取paddi…
1. 导读 本节内容介绍普通RNN的弊端,从而引入各种变体RNN,主要讲述GRU与LSTM的工作原理. 事先声明,本人采用ng在课堂上所使用的符号系统,与某些学术文献上的命名有所不同,不过核心思想都是相同的. 2. 普通RNN的弊端 在NLP中,句子内部以及句子之间可能存在很长的依赖关系(long-term dependecies),最前边的单词对句子后面的单词产生影响.但是普通RNN不擅长捕获这种长期依赖关系.因为RNN相当于很深的权重共享的神经网络,因此在反向传播的过程中存在很严重的梯度消失…
Padding 在卷积操作中,过滤器(又称核)的大小通常为奇数,如3x3,5x5.这样的好处有两点: 在特征图(二维卷积)中就会存在一个中心像素点.有一个中心像素点会十分方便,便于指出过滤器的位置. 在没有padding的情况下,经过卷积操作,输出的数据维度会减少.以二维卷积为例,输入大小 \(n\times n\),过滤器大小\(f\times f\),卷积后输出的大小为\((n-f+1)\times(n-f+1)\). 为了避免这种情况发生,可以采取padding操作,padding的长度为…
主要内容: 一.FaceNet人脸识别简介 二.使用神经网络对人脸进行编码 三.代价函数triple loss 四.人脸库 五.人脸认证与人脸识别 一.FaceNet简介 1.FaceNet是一个深层神经网络,它将人脸编码成一个含有128个数的向量.通过比较两张人脸编码后的向量,可以判定两张人脸是否属于同一个人. 2.FaceNet的代价函数叫做“triplet loss function”,就是在训练的时候,一条训练数据包含三张人脸,第一张是本人(这张是主的),第二张也是本人的(需与第一张有差…
主要内容: 一.Batch Norm简介 二.归一化网络的激活函数 三.Batch Norm拟合进神经网络 四.测试时的Batch Norm 一.Batch Norm简介 1.在机器学习中,我们一般会对输入数据进行归一化处理,使得各个特征的数值规模处于同一个量级,有助于加速梯度下降的收敛过程. 2.在深层神经网络中,容易出现梯度小时或者梯度爆炸的情况,导致训练速度慢.那么,除了对输入数据X进行归一化之外,我们是否还可以对隐藏层的输出值进行归一化,从而加速梯度下降的收敛速度呢?答案是可以的. 3.…
一:二分类(Binary Classification) 逻辑回归是一个用于二分类(binary classification)的算法.在二分类问题中,我们的目标就是习得一个分类器,它以对象的特征向量作为输入,然后预测输出结果…
主要内容: 一.dropout正则化的思想 二.dropout算法流程 三.dropout的优缺点 一.dropout正则化的思想 在神经网络中,dropout是一种“玄学”的正则化方法,以减少过拟合的现象.它的主要思想就是:在训练神经网络的每一轮迭代中,随机地关闭一些神经元,以此降低神经网络的复杂程度:  二.dropout算法流程 1)对于第k层的结点,选择一个范围在(0,1]的数keep_prob,表明每一个结点的存在几率为keep_prob 2)在每一轮迭代中,为第k层的所有结点随机分配…
学习了吴恩达老师深度学习工程师第一门课,受益匪浅,尤其是吴老师所用的符号系统,准确且易区分. 遵循吴老师的符号系统,我对任意层神经网络模型进行了详细的推导,形成笔记. 有人说推导任意层MLP很容易,我表示怀疑啊.难道又是我智商的问题嘛╮(╯_╰)╭. 推导神经网络, 我用了一天.最后完成了,我就放心了,可以进行下一部分学习了:) 推这玩意是个脏活累活,直接记住向量化表示(结果)也是极好的. 顺便说一下,本文的图片若看不清,可以另存为本地文件放大看(scan的时候我定了较高的精度),更清楚^^ 该…
问题描述: 做吴恩达深度学习第4课第3周编程作业时导入PIL包报错. 我的环境: 已经安装了Tensorflow GPU 版本 Python3 Anaconda 解决办法: 安装pillow模块,而不是PIL模块.原因是PIL模块不支持python3, 只支持python2. Python3下应安装pillow模块代, 替PIL即可. 下面内容是根据自己环境的记录: Ubuntu下我用Anaconda已经搭建好了Tensorflow GPU环境,环境名字是tf. 命令行下输入(下面命令不加sud…
我python2.7, 做吴恩达深度学习第2课第2周编程作业 Optimization Methods 时有2个坑: 第一坑 需将辅助文件 opt_utils.py 的 nitialize_parameters(layer_dims) 函数中的 2 改成 2.0 , 保存后再重启jupyter notebook. 第二坑 需将辅助文件 opt_utils.py 的 plot_decision_boundary(model, X, y) 函数中的 c=y 改成 c=y[0], 保存后再重启jupy…
深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam) 深度学习笔记(一):logistic分类 深度学习笔记(二):简单神经网络,后向传播算法及实现 深度学习笔记(三):激活函数和损失函数 深度学习笔记:优化方法总结 深度学习笔记(四):循环神经网络的概念,结构和代码注释 深度学习笔记(五):LSTM 深度学习笔记(六):Encoder-Decoder模型和Attention模型…
博主 撸的  该节 代码 地址 :https://github.com/LemonTree1994/machine-learning/blob/master/%E5%90%B4%E6%81%A9%E8%BE%BE%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/Untitled%20Folder%202/Untitled%20Folder%203/tf_tutorial.ipynb 博主参考的大牛(CSDN  何宽)的实践 :https://blog.csdn.net/u…
由于之前看的深度学习的知识都比较零散,补一下吴老师的课程希望能对这块有一个比较完整的认识.课程分为5个部分(粗体部分为已经看过的): 神经网络和深度学习 改善深层神经网络:超参数调试.正则化以及优化 结构化机器学习项目 卷积神经网络 序列模型 第 1 部分讲的是神经网络的基础,从逻辑回归到浅层神经网络再到深层神经网络. 一直感觉反向传播(Back Propagation,BP)是这部分的重点,但是当时看的比较匆忙,有些公式的推导理解的不深刻,现在重新回顾一下,一是帮助自己梳理思路加深理解,二是记…
神经网络和深度学习 Week 1-2 神经网络基础 Week 3 浅层神经网络 Week 4 深层神经网络 改善深层神经网络 Week 1 深度学习的实用层面 Week 2 优化算法 Week 3 超参数调试.Batch正则化和程序框架 卷积神经网络 Week 1 卷积神经网络基础 Week 2 深度卷积网络:实例探究 Week 3 目标检测 Week 4 人脸识别和风格转换…
Week 1 机器学习笔记(一)基本概念与单变量线性回归 Week 2   机器学习笔记(二)多元线性回归 机器学习作业(一)线性回归——Matlab实现 机器学习作业(一)线性回归——Python(numpy)实现 Week 3   机器学习笔记(三)逻辑回归 机器学习作业(二)逻辑回归——Matlab实现 机器学习作业(二)逻辑回归——Python(numpy)实现 Week 4   机器学习笔记(四)神经网络的基本概念 机器学习作业(三)多类别分类与神经网络——Matlab实现 机器学习作…
1.Logistic Regression是一个二元分类问题 (1)已知输入的特征向量x可能是一张图,你希望把它识别出来,这是不是猫图,你需要一个算法,可以给出预测值,更正式的y是一个概率,当输入特征x满足条件的时候y就是1.换句话说,如果x是图片,那就需要拿到一张猫图的概率. (2)Sigmoid函数.这里就不多说了,关于sigmoid自己百度,很简单 (3)为了训练logistic回归模型的参数w和b,需要定义一个代价函数,接下来看看用logistic regression来训练的代价函数…
1.用梯度下降算法来训练或者学习训练集上的参数w和b,如下所示,第一行是logistic回归算法,第二行是成本函数J,它被定义为1/m的损失函数之和,损失函数可以衡量你的算法的效果,每一个训练样例都输出y,把它和基本真值标签y进行比较 右边展示了完整的公式,成本函数衡量了参数w和b在训练集上的效果.要找到合适的w和b,就很自然的想到,使得成本函数J(w,b)尽可能小的w和b 2.接下来看看梯度下降算法,下图中的横轴表示空间参数w和b,在实践中,w可以是更高维的,但是为了绘图的方便,我们让w是一个…
可能因为Andrew Ng用的是python3,而我是python2.7的缘故,我发现了坑.如下: 在辅助文件tf_utils.py中的random_mini_batches(X, Y, mini_batch_size = 64, seed = 0)函数中,把 math.floor(m/mini_batch_size) 改成 int(math.floor(m/mini_batch_size))就ok了. 就是下面的这个函数: def random_mini_batches(X, Y, mini_…
2分类1隐层nn, 作业默认设置: 1个输出单元, sigmoid激活函数. (因为二分类); 4个隐层单元, tanh激活函数. (除作为输出单元且为二分类任务外, 几乎不选用 sigmoid 做激活函数); n_x个输入单元, n_x为训练数据维度; 总的来说共三层: 输入层(n_x = X.shape[0]), 隐层(n_h = 4), 输出层(n_y = 1). import 和预设置 # Package imports import numpy as np import matplot…
上图是课上的编程作业运行10000次迭代后,输出每一百次迭代 训练准确度和测试准确度的走势图,可以看到在600代左右测试准确度为最大的,74%左右, 然后掉到70%左右,再掉到68%左右,然后升到70%,然后是68%, 然后稳定在70% , 这个设置的 学习率为 0.005  . 这个是学习率设置为0.01的情况,在900代左右达到72%准确度的测试准确度, 7500代以后测试准确度也达到最大值 72% 根据这个小测试,一个小想法就是 在训练最早到达最高值以后就可以停止训练了,但是什么时候到达的…
1.Broadcasting example (1)下面矩阵描述了来自四种不同的100克碳水化合物,蛋白质和脂肪的卡路里数量 比如说100g苹果所含的热量有56克来自碳水化合物,相比之下来自蛋白质和脂肪的卡路里数就很少了.相反,100g的牛肉,有104卡路里来自蛋白质,135克来自脂肪,没有卡路里来自碳水化合物.现在我们来计算一下四种食物中,有多少卡路里的百分比来自碳水化合物.蛋白质和脂肪.比如apple这一列,100g苹果有56+1.2+1.8=59卡路里,然后苹果中来自碳水化合物的卡路里百分…
1.python中的广播: (1)广播是一种手段,可以让python代码执行得更快,我们来看看python实际如何执行. 下面矩阵列出了100克苹果.牛肉.鸡蛋和蛋白质中含有的碳水化合物.蛋白质和脂肪的数量 比如说我们的目标是四种食物中卡路里有多少百分比.比如100克苹果中有56+1.2+1.8卡路里,然后苹果中来自碳水化合物的卡路里占比是百分之56/59=94.4%,所以苹果中大部分的热量都来自碳水化合物.我们要做的计算就是对上面四列数据求和,得到100g上面食物中卡路里的总量,这些食物分别是…
1.不使用任何for循环用梯度下降实现整个训练集的一步迭代. (0)我们已经讨论过向量化如何显著加速代码,在这次视频中我们会设计向量化是如何实现logistic回归,这样酒桶同时处理m个训练集,来实现梯度下降算法的一步迭代,不需要使用任何显式的for循环 (1)logistic回归正向传播的步骤:如果有m个训练样本,对一个样本进行预测,需要通过下面的方式计算出z值和激活函数a值,然后用同样的方法计算第二个和第三个样本...........以此类推,如果有m个样本的话,这样可能需要做上m次. 可以…
1.回顾logistic回归,下式中a是逻辑回归的输出,y是样本的真值标签值 . (1)现在写出该样本的偏导数流程图.假设这个样本只有两个特征x1和x2, 为了计算z,我们需要输入参数w1.w2和b还有样本的特征值x1和x2,用这个来计算偏导数的计算公式,然后我们可以计算y^就是a,即,最后计算L(a,y),在逻辑回归中,我们要做的就是变换参数w和b的值,来最小化损失函数l(a,y).现在看看怎样向后传播计算偏导数: 要计算损失函数L的导数,首先要向前一步,计算损失函数的导数: 接下来再向后一步…