深度学习
文章平均质量分 82
极客Array
这个作者很懒,什么都没留下…
展开
-
吴恩达深度学习笔记(70)-何时需要端到端的深度学习?
是否要使用端到端的深度学习?(Whether to use end-to-end learning?)假设你正在搭建一个机器学习系统,你要决定是否使用端对端方法,我们来看看端到端深度学习的一些优缺点,这样你就可以根据一些准则,判断你的应用程序是否有希望使用端到端方法。这里是应用端到端学习的一些好处,首先端到端学习真的只是让数据说话。所以如果你有足够多的(x,y)数据,那么不管从x到y最适合...原创 2021-07-26 10:38:46 · 337 阅读 · 0 评论 -
吴恩达深度学习笔记(69)-端到端的深度学习
什么是端到端的深度学习?(What is end-to-end deep learning?)深度学习中最令人振奋的最新动态之一就是端到端深度学习的兴起,那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理。那么端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它。我们来看一些例子,以语音识别为例,你的目标是输入x,比如说一段音频,然后...原创 2021-07-26 10:38:30 · 441 阅读 · 0 评论 -
吴恩达深度学习笔记(68)-多任务学习
多任务学习(Multi-task learning)在迁移学习中,你的步骤是串行的,你从任务A里学习只是然后迁移到任务B。在多任务学习中,你是同时开始学习的,试图让单个神经网络同时做几件事情,然后希望这里每个任务都能帮到其他所有任务。我们来看一个例子,假设你在研发无人驾驶车辆,那么你的无人驾驶车可能需要同时检测不同的物体,比如检测行人、车辆、停车标志,还有交通灯各种其他东西。比如在左边这个例...原创 2021-07-26 10:38:09 · 547 阅读 · 0 评论 -
吴恩达深度学习笔记(67)-迁移学习(Transfer learning)
迁移学习(Transfer learning)深度学习中,最强大的理念之一就是迁移学习,有的时候神经网络可以从一个任务中习得知识,并将这些知识应用到另一个独立的任务中。所以例如,也许你已经训练好一个神经网络,能够识别像猫这样的对象,然后使用那些知识,或者部分习得的知识去帮助您更好地阅读x射线扫描图,这就是所谓的迁移学习。我们来看看,假设你已经训练好一个图像识别神经网络,所以你首先用一个神经网...原创 2021-07-26 10:37:56 · 452 阅读 · 0 评论 -
吴恩达深度学习笔记(66)-清除标注错误的数据
清除标注错误的数据(Cleaning up Incorrectly labeled data)你的监督学习问题的数据由输入x和输出标签 y 构成,如果你观察一下你的数据,并发现有些输出标签 y 是错的,这些输出标签 y 是错的,你的数据有些标签是错的,是否值得花时间去修正这些标签呢?我们看看在猫分类问题中,图片是猫,y=1;不是猫,y=0。所以假设你看了一些数据样本,发现这(倒数第二张图片...原创 2021-07-26 10:37:31 · 703 阅读 · 0 评论 -
吴恩达深度学习笔记(65)-误差分析Carrying out error analysis
标题进行误差分析(Carrying out error analysis)你希望让学习算法能够胜任人类能做的任务,但你的学习算法还没有达到人类的表现,那么人工检查一下你的算法犯的错误也许可以让你了解接下来应该做什么。这个过程称为错误分析,我们从一个例子开始讲吧。假设你正在调试猫分类器,然后你取得了90%准确率,相当于10%错误,在你的开发集上做到这样,这离你希望的目标还有很远。也许你的队...原创 2021-07-26 10:37:11 · 442 阅读 · 0 评论 -
吴恩达深度学习笔记(64)-开发集和测试集的大小分配
标题开发集和测试集的大小(Size of dev and test sets)在上一个笔记中你们知道了你的开发集和测试集为什么必须来自同一分布,但它们规模应该多大?在深度学习时代,设立开发集和测试集的方针也在变化,我们来看看一些最佳做法。你可能听说过一条经验法则,在机器学习中,把你取得的全部数据用70/30比例分成训练集和测试集。或者如果你必须设立训练集、开发集和测试集,你会这么分60%训...原创 2021-07-26 10:36:59 · 490 阅读 · 0 评论 -
吴恩达深度学习笔记(63)-如何进行训练/开发/测试集划分
训练/开发/测试集划分(Train/dev/test distributions)设立训练集,开发集和测试集的方式大大影响了你或者你的团队在建立机器学习应用方面取得进展的速度。同样的团队,即使是大公司里的团队,在设立这些数据集的方式,真的会让团队的进展变慢而不是加快,我们看看应该如何设立这些数据集,让你的团队效率最大化。我想集中讨论如何设立开发集和测试集,开发(dev)集也叫做**(deve...原创 2021-07-26 10:36:39 · 417 阅读 · 0 评论 -
吴恩达深度学习笔记(62)-模型的满足和优化指标讲解
标题满足和优化指标(Satisficing and optimizing metrics)要把你顾及到的所有事情组合成单实数评估指标有时并不容易,在那些情况里,我发现有时候设立满足和优化指标是很重要的,让我告诉你是什么意思吧。**假设你已经决定你很看重猫分类器的分类准确度,这可以是F_1分数或者用其他衡量准确度的指标。**但除了准确度之外,我们还需要考虑,就是需要多长时间来分类一张图。分类器...原创 2021-07-26 10:35:59 · 328 阅读 · 0 评论 -
吴恩达深度学习笔记(54)-测试时的 Batch Norm
测试时的 Batch Norm(Batch Norm at test time)Batch归一化将你的数据以mini-batch的形式逐一处理,但在测试时,你可能需要对每个样本逐一处理,我们来看一下怎样调整你的网络来做到这一点。回想一下,在训练时,这些就是用来执行Batch归一化的等式。在一个mini-batch中,你将mini-batch的z((i))值求和,计算均值,所以这里你只把一个...原创 2019-01-23 22:26:17 · 1603 阅读 · 0 评论 -
吴恩达深度学习笔记(50)-超参数训练的实践
超参数训练的实践:Pandas VS Caviar(Hyperparameters tuning in practice: Pandas vs. Caviar)到现在为止,你已经听了许多关于如何搜索最优超参数的内容,在结束我们关于超参数搜索的讨论之前,我想最后和你分享一些建议和技巧,关于如何组织你的超参数搜索过程。如今的深度学习已经应用到许多不同的领域,某个应用领域的超参数设定,有可能通用于...原创 2019-01-17 21:56:51 · 530 阅读 · 0 评论 -
吴恩达深度学习笔记(39)-更进一步理解mini-batch梯度下降法
理解mini-batch梯度下降法(Understanding mini-batch gradient descent)在上一个笔记中,你知道了如何利用mini-batch梯度下降法来开始处理训练集和开始梯度下降,即使你只处理了部分训练集,即使你是第一次处理,本笔记中,我们将进一步学习如何执行梯度下降法,更好地理解其作用和原理。使用batch梯度下降法时,每次迭代你都需要历遍整个训练集,可以...原创 2018-12-25 19:56:35 · 703 阅读 · 1 评论 -
吴恩达深度学习笔记(45)-Adam 优化算法(Adam optimization)
Adam 优化算法(Adam optimization algorithm)在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多少有些质疑全新的优化算法,很多人都觉得动量(Momentum)梯度下降法很好用,很难再想出更好的优化算法。所以RMSprop以及Adam优化...原创 2018-12-29 21:51:53 · 6264 阅读 · 1 评论 -
吴恩达深度学习笔记(44)-RMSprop
RMSprop你们知道了动量(Momentum)可以加快梯度下降,还有一个叫做RMSprop的算法,全称是root mean square prop算法,它也可以加速梯度下降,我们来看看它是如何运作的。回忆一下我们之前的例子,如果你执行梯度下降,虽然横轴方向正在推进,但纵轴方向会有大幅度摆动,为了分析这个例子,假设纵轴代表参数b,横轴代表参数W,可能有W_1,W_2或者其它重要的参数,为了便...原创 2018-12-29 21:49:51 · 1291 阅读 · 1 评论 -
吴恩达深度学习笔记(43)-动量梯度下降法(Momentum)
动量梯度下降法(Gradient descent with Momentum)还有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新你的权重,在本笔记中,我们要一起拆解单句描述,看看你到底如何计算。例如,如果你要优化成本函数,函数形状如图,红点代表最小值的位置,假设你从这里(蓝色点)...原创 2018-12-29 21:47:14 · 3363 阅读 · 2 评论 -
吴恩达深度学习笔记(42)-指数加权平均的偏差修正
指数加权平均的偏差修正(Bias correction in exponentially weighted averages)你学过了如何计算指数加权平均数,有一个技术名词叫做偏差修正,可以让平均数运算更加准确,来看看它是怎么运行的。v_t=βv_(t-1)+(1-β)θ_t在上一个笔记中,这个(红色)曲线对应β的值为0.9,这个(绿色)曲线对应的β=0.98,如果你执行写在这里的公式,在...原创 2018-12-29 21:45:26 · 1466 阅读 · 3 评论 -
吴恩达深度学习笔记(32)-Dropout正则化Dropout Regularization
dropout 正则化(Dropout Regularization)除了L2正则化,还有一个非常实用的正则化方法——“Dropout(随机失活)”,我们来看看它的工作原理。假设你在训练上图这样的神经网络,它存在过拟合,这就是dropout所要处理的,我们复制这个神经网络,dropout会遍历网络的每一层,并设置消除神经网络中节点的概率。假设网络中的每一层,每个节点都以抛硬币的方式设置概率,...原创 2018-12-18 22:45:28 · 743 阅读 · 0 评论 -
吴恩达深度学习笔记(37)-神经网络的权重初始化再解析
神经网络的权重初始化(Weight Initialization for Deep NetworksVanishing / Exploding gradients)上节课,我们学习了深度神经网络如何产生梯度消失和梯度爆炸问题,最终针对该问题,我们想出了一个不完整的解决方案,虽然不能彻底解决问题,却很有用,有助于我们为神经网络更谨慎地选择随机初始化参数,为了更好地理解它,我们先举一个神经单元初始化...原创 2018-12-23 23:21:17 · 870 阅读 · 0 评论 -
吴恩达深度学习笔记(25)-如何搭建神经网络模块?如何运算?
搭建神经网络块(Building blocks of deep neural networks)你已经看到过正向反向传播的基础组成部分了,它们也是深度神经网络的重要组成部分,现在我们来用它们建一个深度神经网络。这是一个层数较少的神经网络,我们选择其中一层(方框部分),从这一层的计算着手。在第l层你有参数W([l])和b([l]),正向传播里有输入的激活函数,输入是前一层a([l-1]),输...原创 2018-12-11 22:08:57 · 381 阅读 · 0 评论 -
Python MTCNN(人脸检测)项目附代码讲解(2)-NMS/IOU工具介绍
对于MTCNN中使用的原理工具,这一节分为代码的三部分(NMS,IOU,框的改变),对于图像金字塔、三个网络(R、P、ONET)和数据集的处理部分放在模型搭建中来讲,要不突然讲起来感觉太虚空,没办法很好的理解,当然也可以先去读下论文,了解下,那个也是不错的。做MTCNN前。先看看我们会使用到什么工具~IOU(交并比)本来想先写NMS的,写着写着突然发现还是需要先讲解下IOU会好一点,这样理解...原创 2018-12-17 23:22:07 · 2425 阅读 · 4 评论 -
吴恩达深度学习笔记(31)-为什么正则化可以防止过拟合
为什么正则化有利于预防过拟合呢?(Why regularization reduces overfitting?)为什么正则化有利于预防过拟合呢?为什么它可以减少方差问题?我们通过两个例子来直观体会一下。左图是高偏差,右图是高方差,中间是Just Right,这几张图我们在前面课程中看到过。现在我们来看下这个庞大的深度拟合神经网络。我知道这张图不够大,深度也不够,但你可以想象这是一个过...原创 2018-12-17 23:21:36 · 687 阅读 · 1 评论 -
吴恩达深度学习笔记(46)-学习率衰减优化(Learning rate decay)
学习率衰减(Learning rate decay)加快学习算法的一个办法就是随时间慢慢减少学习率,我们将之称为学习率衰减,我们来看看如何做到,首先通过一个例子看看,为什么要计算学习率衰减。假设你要使用mini-batch梯度下降法,mini-batch数量不大,大概64或者128个样本,在迭代过程中会有噪音(蓝色线),下降朝向这里的最小值,但是不会精确地收敛,所以你的算法最后在附近摆动,...原创 2019-01-13 20:30:56 · 1798 阅读 · 2 评论 -
吴恩达深度学习笔记(51)-归一化网络的激活函数(重要!)
归一化网络的激活函数(Normalizing activations in a network)在深度学习兴起后,最重要的一个思想是它的一种算法,叫做Batch归一化,由Sergey loffe和Christian Szegedy两位研究者创造。Batch归一化会使你的参数搜索问题变得很容易,使神经网络对超参数的选择更加稳定,超参数的范围会更加庞大,工作效果也很好,也会使你的训练更加容易,甚至...原创 2019-01-18 21:55:12 · 1392 阅读 · 0 评论 -
吴恩达深度学习笔记(47)-神经网络局部最优的问题
局部最优的问题(The problem of local optima)在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。我向你展示一下现在我们怎么看待局部最优以及深度学习中的优化问题。这是曾经人们在想到局部最优时脑海里会出现的图,也许你想优化一些参数,我们把它们称之为W_1和W_2,平面的高度就是损失函数。在图中...原创 2019-01-14 22:47:35 · 8814 阅读 · 1 评论 -
吴恩达深度学习笔记(61)-训练调参中的准确率和召回率
单一数字评估指标(Single number evaluation metric)无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估指标,你的进展会快得多,它可以快速告诉你,新尝试的手段比之前的手段好还是差。所以当团队开始进行机器学习项目时,我经常推荐他们为问题设置一个单实数评估指标。我们来看一个例子,你之前听过我说过,应用...原创 2019-02-19 22:18:05 · 1602 阅读 · 0 评论 -
吴恩达深度学习笔记(58)-深度学习框架Tensorflow
TensorFlow有很多很棒的深度学习编程框架,其中一个是TensorFlow,很期待帮助你开始学习使用TensorFlow,我想在这个笔记中向你展示TensorFlow程序的基本结构,然后让你自己练习,学习更多细节先提一个启发性的问题,假设你有一个损失函数J需要最小化,在本例中,我将使用这个高度简化的损失函数,Jw=w2-10w+25,这就是损失函数,也许你已经注意到该函数其实就是(w-5...原创 2019-02-11 17:16:03 · 894 阅读 · 0 评论 -
吴恩达深度学习笔记(60)-深度学习中的正交化
正交化(Orthogonalization)搭建建立机器学习系统的挑战之一是,你可以尝试和改变的东西太多太多了。包括,比如说,有那么多的超参数可以调。我留意到,那些效率很高的机器学习专家有个特点,他们思维清晰,对于要调整什么来达到某个效果,非常清楚,这个步骤我们称之为正交化,让我告诉你是什么意思吧。这是一张老式电视图片,有很多旋钮可以用来调整图像的各种性质,所以对于这些旧式电视,可能有一...原创 2019-02-15 13:59:13 · 2285 阅读 · 1 评论 -
吴恩达深度学习笔记(59)-什么是机器学习策略?
什么是ML策略?(Why ML Strategy?)如何构建你的机器学习项目也就是说机器学习的策略。我希望通过这门课程你们能够学到如何更快速高效地优化你的机器学习系统。那么,什么是机器学习策略呢?我们从一个启发性的例子开始讲,假设你正在调试你的猫分类器,经过一段时间的调整,你的系统达到了90%准确率,但对你的应用程序来说还不够好。你可能有很多想法去改善你的系统,比如,你可能想我们去收集更多...原创 2019-02-15 13:58:57 · 487 阅读 · 0 评论 -
吴恩达深度学习笔记(56)-训练一个 Softmax 分类器
训练一个 Softmax 分类器(Training a Softmax classifier)上一个笔记中我们学习了Softmax层和Softmax激活函数,在这个笔记中,你将更深入地了解Softmax分类,并学习如何训练一个使用了Softmax层的模型。回忆一下我们之前举的的例子,输出层计算出的z^([l])如下,我们有四个分类C=4,z^([l])可以是4×1维向量,我们计算了临时变...原创 2019-01-29 11:53:02 · 618 阅读 · 0 评论 -
吴恩达深度学习笔记(53)-Batch Norm 为什么奏效
Batch Norm 为什么奏效?(Why does Batch Norm work?)为什么Batch归一化会起作用呢?一个原因是,你已经看到如何归一化输入特征值x,使其均值为0,方差1.它又是怎样加速学习的,有一些从0到1而不是从1到1000的特征值,通过归一化所有的输入特征值x,以获得类似范围的值,可以加速学习。所以Batch归一化起的作用的原因,直观的一点就是,它在做类似的工作,但...原创 2019-01-22 21:32:29 · 868 阅读 · 0 评论 -
吴恩达深度学习笔记(49)-为超参数选择合适的范围
为超参数选择合适的范围(Using an appropriate scale to pick hyperparameters)在上一个笔记中,你已经看到了在超参数范围中,随机取值可以提升你的搜索效率。但随机取值并不是在有效范围内的随机均匀取值,而是选择合适的标尺,用于探究这些超参数,这很重要。在这个笔记中,会教你怎么做。假设你要选取隐藏单元的数量n^([l]),假设你选取的取值范围是从50...原创 2019-01-16 22:29:28 · 1254 阅读 · 0 评论 -
吴恩达深度学习笔记(57)-深度学习框架Deep Learning frameworks
深度学习框架(Deep Learning frameworks)如果你已经差不多从零开始学习了使用Python和NumPy实现深度学习算法,很高兴你这样做了。但你会发现,除非应用更复杂的模型,例如卷积神经网络,或者循环神经网络,或者当你开始应用很大的模型,否则它就越来越不实用了,至少对大多数人而言,从零开始全部靠自己实现并不现实。幸运的是,现在有很多好的深度学习软件框架,可以帮助你实现这些模型...原创 2019-02-01 11:31:58 · 434 阅读 · 0 评论 -
吴恩达深度学习笔记(52)-将 Batch Norm 拟合进神经网络
Batch Norm 拟合进神经网络(Fitting Batch Norm into a neural network)你已经看到那些等式,它可以在单一隐藏层进行Batch归一化,接下来,让我们看看它是怎样在深度网络训练中拟合的吧。假设你有一个这样的神经网络,我之前说过,你可以认为每个单元负责计算两件事。第一,它先计算z,然后应用其到激活函数中再计算a,所以我可以认为,每个圆圈代表着两步的...原创 2019-01-21 21:04:09 · 563 阅读 · 0 评论 -
吴恩达深度学习笔记(48)-教你如何调参
从今天开始,我们进入超参数调试、Batch正则化和程序框架(Hyperparameter tuning)这个模块了,这个主要关注调参的方法和数据处理的相关东西,如何你真的对神经网络感兴趣,那么这个对你来说,无疑是一个很好的学习机会!调试处理(Tuning process)目前为止,你已经了解到,神经网络的改变会涉及到许多不同超参数的设置。现在,对于超参数而言,你要如何找到一套好的设定呢?在...原创 2019-01-15 22:09:42 · 964 阅读 · 0 评论 -
吴恩达深度学习笔记(55)-Softmax 回归(Softmax regression)
Softmax 回归(Softmax regression)到目前为止,我们讲到过的分类的例子都使用了二分分类,这种分类只有两种可能的标记0或1,这是一只猫或者不是一只猫,如果我们有多种可能的类型的话呢?有一种logistic回归的一般形式,叫做Softmax回归,能让你在试图识别某一分类时做出预测,或者说是多种分类中的一个,不只是识别两个分类,我们来一起看一下。假设你不单需要识别猫,而是...原创 2019-01-25 20:27:47 · 765 阅读 · 0 评论 -
吴恩达深度学习笔记(38)-优化算法(Optimization algorithms)
Mini-batch 梯度下降(Mini-batch gradient descent)本周将学习优化算法,这能让你的神经网络运行得更快。机器学习的应用是一个高度依赖经验的过程,伴随着大量迭代的过程,你需要训练诸多模型,才能找到合适的那一个,所以,优化算法能够帮助你快速训练模型。其中一个难点在于,深度学习没有在大数据领域发挥最大的效果,我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数...原创 2018-12-24 22:22:07 · 939 阅读 · 0 评论 -
吴恩达深度学习笔记(36)-神经网络的梯度消失/梯度爆炸
梯度消失/梯度爆炸(Vanishing / Exploding gradients)训练神经网络,尤其是深度神经所面临的一个问题就是梯度消失或梯度爆炸,也就是你训练神经网络的时候,导数或坡度有时会变得非常大,或者非常小,甚至于以指数方式变小,这加大了训练的难度。这节课,你将会了解梯度消失或梯度爆炸的真正含义,以及如何更明智地选择随机初始化权重,从而避免这个问题。假设你正在训练这样一个极深的神...原创 2018-12-22 23:40:30 · 1018 阅读 · 0 评论 -
吴恩达深度学习笔记(41)-深度解析指数加权平均数
理解指数加权平均数(Understanding exponentially weighted averages)上个笔记中,我们讲到了指数加权平均数,这是几个优化算法中的关键一环,而这几个优化算法能帮助你训练神经网络。本笔记中,我希望进一步探讨算法的本质作用。回忆一下这个计算指数加权平均数的关键方程。v_t=βv_(t-1)+(1-β)θ_t比如β=0.9的时候,得到的结果是红线,如果它更...原创 2018-12-27 22:57:33 · 1041 阅读 · 1 评论 -
吴恩达深度学习笔记(19)-非线性激活函数的作用
为什么需要非线性激活函数?(why need a nonlinear activation function?)事实证明:要让你的神经网络能够计算出有趣的函数,你必须使用非线性激活函数,证明如下:这是神经网络正向传播的方程(看图中公式)现在我们去掉函数g,然后令a([1])=z([1]),或者我们也可以令g(z)=z,这个有时被叫做线性激活函数(更学术点的名字是恒等激励函数,因为它们就是把输...原创 2018-12-04 22:55:08 · 1390 阅读 · 0 评论 -
吴恩达深度学习笔记(17)-神经网络中的多样本向量化实现再理解
多样本向量化(Vectorizing across multiple examples)在上一个笔记中,了解到如何针对于单一的训练样本,在神经网络上计算出预测值。在这篇笔记中,将会了解到如何向量化多个训练样本,并计算出结果。该过程与你在逻辑回归中所做类似(看过的是否还记得??)逻辑回归是将各个训练样本组合成矩阵,对矩阵的各列进行计算。神经网络是通过对逻辑回归中的等式简单的变形,让神经网络计...原创 2018-12-02 22:16:52 · 1575 阅读 · 0 评论