神经网络和深度学习 Week 1-2 神经网络基础 Week 3 浅层神经网络 Week 4 深层神经网络 改善深层神经网络 Week 1 深度学习的实用层面 Week 2 优化算法 Week 3 超参数调试.Batch正则化和程序框架 卷积神经网络 Week 1 卷积神经网络基础 Week 2 深度卷积网络:实例探究 Week 3 目标检测 Week 4 人脸识别和风格转换…
吴恩达深度学习课程的课堂笔记以及课后作业 代码下载:https://github.com/douzujun/Deep-Learning-Coursera 吴恩达推荐笔记:https://mp.weixin.qq.com/s/cX9_DiqofPhdXrY_0oTEAw 课程1 - 神经网络和深度学习 周数 名称 类型 地址 week1 深度学习简介 测验 略 week2 神经网络基础 笔记 逻辑回归 逻辑回归推导 具有神经网络思维的Logistic回归 编程作业 识别猫 week3 浅层神经网络…
学习了吴恩达老师深度学习工程师第一门课,受益匪浅,尤其是吴老师所用的符号系统,准确且易区分. 遵循吴老师的符号系统,我对任意层神经网络模型进行了详细的推导,形成笔记. 有人说推导任意层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…
参考:https://blog.csdn.net/u013733326/article/details/79847918 希望大家直接到上面的网址去查看代码,下面是本人的笔记 初始化.正则化.梯度校验 1. 初始化参数:    1.1:使用0来初始化参数.    1.2:使用随机数来初始化参数.    1.3:使用抑梯度异常初始化参数(参见视频中的梯度消失和梯度爆炸).2. 正则化模型:    2.1:使用二范数对二分类模型正则化——L2正则化方法,尝试避免过拟合.    2.2:使用随机删除节…
参考:https://blog.csdn.net/u013733326/article/details/79767169 希望大家直接到上面的网址去查看代码,下面是本人的笔记 两层神经网络,和吴恩达课后作业学习1-week3-homework-one-hidden-layer——不发布不同之处在于使用的函数不同线性->ReLU->线性->sigmod函数,训练的数据也不同,这里训练的是之前吴恩达课后作业学习1-week2-homework-logistic中的数据,判断是否为猫,查看使用…
参考:https://blog.csdn.net/u013733326/article/details/79767169 希望大家直接到上面的网址去查看代码,下面是本人的笔记 实现多层神经网络 1.准备软件包 import numpy as np import h5py import matplotlib.pyplot as plt import testCases #参见资料包,或者在文章底部copy from dnn_utils import sigmoid, sigmoid_backwar…
参考:https://blog.csdn.net/u013733326/article/details/79847918 希望大家直接到上面的网址去查看代码,下面是本人的笔记 4.正则化 1)加载数据 仍是问题: 'c' argument has 1 elements, which is not acceptable for use with 'x' with s 解决——直接导入函数: import scipy.io as sio def load_2D_dataset(is_plot=Tru…
博主 撸的  该节 代码 地址 :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)是这部分的重点,但是当时看的比较匆忙,有些公式的推导理解的不深刻,现在重新回顾一下,一是帮助自己梳理思路加深理解,二是记…
之前经学长推荐,开始在B站上看Andrew Ng的机器学习课程.其实已经看了1/3了吧,今天把学习笔记补上吧. 吴恩达老师的Machine learning课程共有113节(B站上的版本https://www.bilibili.com/video/av9912938).这篇学习笔记是结合第一.二部分(我所理解的): 第一部分:概览机器学习,介绍其中的一些专业名词及定义.Section 1-26 第二部分:如何使用Octave实现机器学习中的基本算法(Ocatave就是开源版的Matlab).Se…
(很好的博客:残差网络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的长度为…
    主要内容: 一.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来加速梯度下…
主要内容: 一.Batch Norm简介 二.归一化网络的激活函数 三.Batch Norm拟合进神经网络 四.测试时的Batch Norm 一.Batch Norm简介 1.在机器学习中,我们一般会对输入数据进行归一化处理,使得各个特征的数值规模处于同一个量级,有助于加速梯度下降的收敛过程. 2.在深层神经网络中,容易出现梯度小时或者梯度爆炸的情况,导致训练速度慢.那么,除了对输入数据X进行归一化之外,我们是否还可以对隐藏层的输出值进行归一化,从而加速梯度下降的收敛速度呢?答案是可以的. 3.…
Week 1 机器学习笔记(一)基本概念与单变量线性回归 Week 2   机器学习笔记(二)多元线性回归 机器学习作业(一)线性回归——Matlab实现 机器学习作业(一)线性回归——Python(numpy)实现 Week 3   机器学习笔记(三)逻辑回归 机器学习作业(二)逻辑回归——Matlab实现 机器学习作业(二)逻辑回归——Python(numpy)实现 Week 4   机器学习笔记(四)神经网络的基本概念 机器学习作业(三)多类别分类与神经网络——Matlab实现 机器学习作…
一:二分类(Binary Classification) 逻辑回归是一个用于二分类(binary classification)的算法.在二分类问题中,我们的目标就是习得一个分类器,它以对象的特征向量作为输入,然后预测输出结果…
主要内容: 一.dropout正则化的思想 二.dropout算法流程 三.dropout的优缺点 一.dropout正则化的思想 在神经网络中,dropout是一种“玄学”的正则化方法,以减少过拟合的现象.它的主要思想就是:在训练神经网络的每一轮迭代中,随机地关闭一些神经元,以此降低神经网络的复杂程度:  二.dropout算法流程 1)对于第k层的结点,选择一个范围在(0,1]的数keep_prob,表明每一个结点的存在几率为keep_prob 2)在每一轮迭代中,为第k层的所有结点随机分配…
主要内容: 一.FaceNet人脸识别简介 二.使用神经网络对人脸进行编码 三.代价函数triple loss 四.人脸库 五.人脸认证与人脸识别 一.FaceNet简介 1.FaceNet是一个深层神经网络,它将人脸编码成一个含有128个数的向量.通过比较两张人脸编码后的向量,可以判定两张人脸是否属于同一个人. 2.FaceNet的代价函数叫做“triplet loss function”,就是在训练的时候,一条训练数据包含三张人脸,第一张是本人(这张是主的),第二张也是本人的(需与第一张有差…
主要内容: 一.Mini-Batch Gradient descent 二.Momentum 四.RMSprop 五.Adam 六.优化算法性能比较 七.学习率衰减 一.Mini-Batch Gradient descent 1.一般地,有三种梯度下降算法: 1)(Batch )Gradient Descent,即我们平常所用的.它在每次求梯度的时候用上所有数据集,此种方式适合用在数据集规模不大的情况下. X = data_input Y = labels parameters = initia…
监督学习(supervised learning) 假设我们有一个数据集(dataset),给出居住面积和房价的关系如下: 我们以居住面积为横坐标,房价为纵坐标,组成数据点,如(2104, 400),并把这些数据点描到坐标系中,如下: 由这些数据,我们怎么才能预测(predict)其他房价呢?其中房价作为居住面积的函数. 为了方便描述,我们用x(i)表示输入变量(即居住面积),也叫做输入特征(features):同时,用y(i)表示输出(即房价),也叫做目标(target)变量.有序对   (x…
1.用梯度下降算法来训练或者学习训练集上的参数w和b,如下所示,第一行是logistic回归算法,第二行是成本函数J,它被定义为1/m的损失函数之和,损失函数可以衡量你的算法的效果,每一个训练样例都输出y,把它和基本真值标签y进行比较 右边展示了完整的公式,成本函数衡量了参数w和b在训练集上的效果.要找到合适的w和b,就很自然的想到,使得成本函数J(w,b)尽可能小的w和b 2.接下来看看梯度下降算法,下图中的横轴表示空间参数w和b,在实践中,w可以是更高维的,但是为了绘图的方便,我们让w是一个…
1.Logistic Regression是一个二元分类问题 (1)已知输入的特征向量x可能是一张图,你希望把它识别出来,这是不是猫图,你需要一个算法,可以给出预测值,更正式的y是一个概率,当输入特征x满足条件的时候y就是1.换句话说,如果x是图片,那就需要拿到一张猫图的概率. (2)Sigmoid函数.这里就不多说了,关于sigmoid自己百度,很简单 (3)为了训练logistic回归模型的参数w和b,需要定义一个代价函数,接下来看看用logistic regression来训练的代价函数…
回归任务 多变量线性回归 公式 h为假设,theta为模型参数(代表了特征的权重),x为特征的值 参数更新 梯度下降算法 影响梯度下降算法的因素 (1)加速梯度下降:通过让每一个输入值大致在相同的范围可以加速梯度下降,因为theta在x的范围比较小的时候收敛更快, x的范围不平整时收敛慢且会发生震荡.即对变量进行标准化处理,方法为减均值,除标准差 (2)学习速率:alpha太小,能收敛但速度太慢:alpha太大不能保证每一步都会使代价函数下降,且可能会导致不收敛 改善特征和假设函数的方法--多项…
机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. 某类任务T(task)具有性能度量P(performance),计算机程序可以从任务T…
可能因为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_…