- 博客(2801)
- 收藏
- 关注
原创 深度学习学习笔记——C2W3-12——TensorFlow
现在我来定义成本函数,尽量保持之前的一样,只是现在我要写x的0次方乘w加上x的1次方乘w加上x的2次方。这种语法,optimizer.minimize成本函数,然后是变量列表w,这是更简单的语法,是上面用gradient tape和apply gradients的等效语法。训练,x,w优化器,定义该函数范围内的成本函数,然后在范围1000内循环运行一千步,然后打印w。希望这能让你了解TensorFlow可以做什么,它的强大之处在于,你只需指定如何计算成本函数,它会自动求导数,并能用几行代码应用优化器。
2025-01-09 15:17:14
706
原创 深度学习学习笔记——C2W3-11——深度学习框架
但至少在短期内,根据你对语言的偏好,如你是更喜欢Python、Java还是C++,以及你正在从事的应用程序,如计算机视觉、自然语言处理、在线广告等不同应用,我认为多个框架都可能是一个好选择。举个例子,希望你理解如何进行矩阵乘法,并且应该能够自己实现代码来完成矩阵乘法,但当你构建非常大的应用程序时,你可能不想自己实现矩阵乘法函数,而是希望调用一个可以更高效地为你完成任务的数值线性代数库。此外,由于这些框架经常在逐月发展和改进,如果你想了解这些框架的一些优缺点,可以自己做一些互联网搜索。
2025-01-09 15:08:03
569
原创 深度学习学习笔记——C2W3-10——训练Softmax分类器
在这个视频中我不会证明这一点,但大致的证明轮廓是,如果C=2并且你应用Softmax,那么输出层a[L]将输出两个数字,如果C=2,所以也许它输出0.842和0.158,对吧?这两个数字总是和为1。事实证明你需要初始化反向传播的关键步骤或关键方程是这个表达式,即对于损失层中的z的导数,事实证明,你可以计算这个y hat,4 x 1向量,减去y,4 x 1向量。所以比如说,如果上面的这个示例是你的第一个训练示例,那么这个矩阵Y的第一列将是0 1 0 0,然后可能第二个示例是一只狗,第三个示例是其它类,等等。
2025-01-09 15:01:08
808
原创 深度学习学习笔记——C2W3-9——Softmax回归
所以t将是e的5次方,e的2次方,e的-1次方,e的3次方。e的5次方是1484,e的2次方大约是7.4,e的-1次方是0.4,e的3次方是20.1。所以这里的第一个节点应该输出,或者我们希望它输出概率是其它类,给定输入x,这将输出是猫的概率。给定x,这将输出机会。猫是类别1,狗是类别2,我猜你那是考拉,所以那是其它类,所以那是类别0,类别3,等等。所以这显示了Softmax交叉层可以在没有隐藏层的情况下所做的类型,而这些类型甚至可以用更深的神经网络进行,其X和一些隐藏单元,然后更多的隐藏单元,依此类推。
2025-01-09 14:58:48
739
原创 深度学习学习笔记——C2W3-8——为什么批量规范化有效?
所以t将是e的5次方,e的2次方,e的-1次方,e的3次方。e的5次方是1484,e的2次方大约是7.4,e的-1次方是0.4,e的3次方是20.1。所以这里的第一个节点应该输出,或者我们希望它输出概率是其它类,给定输入x,这将输出是猫的概率。给定x,这将输出机会。猫是类别1,狗是类别2,我猜你那是考拉,所以那是其它类,所以那是类别0,类别3,等等。所以这显示了Softmax交叉层可以在没有隐藏层的情况下所做的类型,而这些类型甚至可以用更深的神经网络进行,其X和一些隐藏单元,然后更多的隐藏单元,依此类推。
2025-01-07 16:36:12
662
原创 深度学习学习笔记——C2W3-7——测试时的批量规范化
但实际上,通常使用的实现是指数加权平均,你只是跟踪你在训练过程中看到的mu和sigma平方值,使用指数加权平均,也有时称为运行平均,来获得mu和sigma平方的大致估计值,然后你在测试时使用这些mu和sigma平方的值进行缩放和需要的激活单元值Z。那么实际是怎么做的呢?所以,注意到mu和sigma平方,这些是你需要进行缩放计算的,是在整个小批量上计算的。最后,在测试时,你所做的是,用这个等式中的替代,这个等式中,你会使用Z值,并使用mu和sigma平方的指数加权平均来进行缩放,这里使用你拥有的最新值。
2025-01-07 16:34:45
883
原创 深度学习学习笔记——C2W3-6——为什么批量规范化有效?
所以你可以想像进行梯度下降,使这些参数W_3,B_3,以及可能的W_4,B_4,甚至W_5,B_5,试图学习这些参数,使网络能够很好地将左边绘制的黑色值映射到输出值Y-hat。但假设你训练的数据集上的所有图像都是黑猫的图像。所以在图中,如果你的训练集看起来像这样,你有正例在这里和负例在这里,但你试图将其泛化为一个数据集,其中的正例在这里,负例在这里,那么你可能不指望训练左边数据的模型在右边的数据上表现得很好。从第三隐藏层的角度来看,它获得了一些值,称之为A_2_1,A_2_2,A_2_3,和A_2_4。
2025-01-07 16:16:01
750
原创 深度学习学习笔记——C2W3-5——将批量规范化融入神经网络
因此,你的网络参数将是W1,B1。B1,WL,BL,以及我们添加到这个新网络中的额外参数Beta1,Gamma1,Beta2,Gamma2,等等,对于每层你应用批量规范化的情况。与我们在前一张幻灯片中做的一样,使用参数W1,B1,然后你只取这个小批量并计算Z1的均值和方差,仅在这个小批量上,然后批量规范化会减去均值并除以标准差,接着由Beta1,Gamma1重新缩放,给你Z1,这些都发生在第一小批量上,然后你应用激活函数得到A1,然后你使用W2,B2计算Z2,依此类推。
2025-01-07 15:28:08
793
原创 深度学习学习笔记——C2W3-2——使用适当的尺度选择超参数
在更一般的情况下,如果你试图在对数尺度上采样介于10的a次方到10的b次方之间的值。所以使用我们在上一张幻灯片中找到的方法,这是10的-1次方,这是10的-3次方。所以如果你想学习更多关于我们为什么这样做的正式数学依据,为什么在线性尺度上采样是个坏主意,因为当β接近1时,结果的敏感性随β的微小变化而变化。在这种情况下,如果你在50到100的数轴上选择一些随机数值,这是一个合理的搜索这个特定超参数的方法。因为我们有的这个公式,1/1-β,当β接近1时,这对β的微小变化非常敏感。
2025-01-07 15:03:58
597
原创 深度学习学习笔记——C2W3-4——在网络中规范化激活
因此我们使用梯度下降,或其他算法,如带动量的梯度下降,或RMSprop,或Adam,你会更新参数gamma和beta,就像更新神经网络的权重一样。因此你将其融入到神经网络中的方法是,原本使用这些z(例如z1,z2,等等)的地方,你现在将使用ztildei,而不是zi用于神经网络中的稍后计算。那么这里的问题是,对于任何隐藏层,我们能规范值a,例如a2,在这个例子中,但实际上是任何隐藏层,以加速w3b3的训练,对吧?你不仅有输入特征x,在这一层你有激活a1,在另一层你有激活a2,依此类推。
2025-01-07 14:58:16
959
原创 深度学习学习笔记——C2W3-3——实践中的超参数调优:熊猫法和鱼子酱法
你的第二个模型可能生成不同的学习曲线,可能看起来像这样。同时,你可能训练第三个模型,生成这样的学习曲线,还有另一个,也许这个发散了,看起来像这样,等等。因此即使你只在一个问题上工作,例如物流学,你可能找到了一个好的超参数设置并继续开发你的算法,或者看到你的数据在几个月内逐渐变化,或者也许只是升级了数据中心中的服务器。尽管如此,即使是熊猫方法,训练一个模型并看到其效果或不效果后,也许在第二周或第三周,你可能会初始化一个不同的模型,然后照顾它就像熊猫在一生中也可以有多个孩子,即使一次只有一个或少数几个孩子。
2025-01-07 14:40:23
901
原创 深度学习学习笔记——C2W3-1——超参数调优
但希望这能给你一种粗略的感觉,哪些超参数可能比其他更重要,α是最重要的,紧随其后的是我用橙色圈出的那些,然后是我用紫色圈出的那些。实际上,你可能在更多超参数上进行搜索,所以如果你有三个超参数,我猜你不是在二维空间上搜索,而是在立方体中搜索,其中第三个维度是超参数三,然后通过在这个三维立方体中采样,你可以尝试更多每个三个超参数的值。假设在这个二维例子中,你采样了这些点,也许你发现这个点效果最好,也许周围的一些点也效果很好,那么在粗到细的方案中,你可能会放大超参数的一个较小区域,然后在这个空间内更密集地采样。
2025-01-07 14:19:57
756
原创 深度学习学习笔记——C2W2-9——局部最优问题
由于你的网络是在如此高维的空间中解决优化问题,坦率说,我认为没有人能够很好地直观理解这些空间实际上是什么样的,我们对它们的理解仍在不断发展。但我希望这能给你一些更好的直觉,了解优化算法可能面临的挑战。恭喜你完成本周的内容。请查看本周的测验和练习。我希望你喜欢练习这些本周的想法,并期待在下周的视频开始时见到你。
2025-01-06 15:27:04
468
原创 深度学习学习笔记——C2W2-8——学习率衰减
如果你有如下的训练集,可能会将其分成不同的小批量。如果你进行多个epoch,即对数据进行多次遍历,如果Alpha 0等于0.2且衰减率等于1,那么在第一个epoch期间,Alpha将是1除以1加1乘以Alpha 0,因此你的学习率将是0.1。设置一个固定值的Alpha并进行良好调优的影响很大,学习率衰减确实有帮助,有时真的能加快训练,但在我尝试的方法列表中排在较低的位置。有时你还会看到人们使用递减的学习率,一段时间内有某个学习率,然后过一段时间降低一半,再过一段时间再降低一半,如此形成一个离散的阶梯形状。
2025-01-06 15:19:52
623
原创 深度学习学习笔记——C2W2-7——Adam优化算法
你会有V修正后的,修正后的意思是经过偏差校正,dw等于V_dw,除以(1-β_1的t次方),如果你已经进行了t次迭代,同样地,V_db修正后等于V_db除以(1-β_1的t次方),然后类似地你对S也实现偏差校正,所以有S_dw,除以(1-β_2的t次方),和S_db修正后等于S_db除以(1-β_2的t次方)。这与我们实现动量时完全相同,只是我们现在称超参数为β_1而不是β,同样你有如下V_db,加上(1-β_1)乘以db,然后你也进行RMSprop的更新。对β_2,Adam论文的作者建议使用0.999。
2025-01-06 15:10:42
726
原创 深度学习学习笔记——C2W2-7——均方根传播
而在水平方向的更新被除以一个较小的数。所以这就是RMSprop,类似于动量法能够抑制梯度下降中的振荡,在小批量梯度下降中也能抑制振荡,并且可以使用更大的学习率α,显著加快算法的学习速度。ε的值并不重要,10的-8次方是一个合理的默认值,但这可以确保稍大的数值稳定性,以防因为数值舍入等原因不至于除以一个非常小的数。在实践中,dW是一个非常高维度的参数向量,db也是一个非常高维度的参数向量,但你的直觉是,在那些你得到振荡的维度中,你最终计算得到了较大的平方和导数的加权平均值,从而抑制了那些有振荡的方向。
2025-01-06 15:01:11
897
原创 深度学习学习笔记——C2W2-6——带动量的梯度下降
这就是为什么使用这个算法,经过几次迭代后,你会发现带动量的梯度下降最终只是在垂直方向上进行小幅振荡,但在水平方向上更快速地移动。在实践中,人们通常不这样做,因为在进行10次迭代之后,你的移动平均值就已稳定,不再是偏倚估计了。最后提一点,如果你研究带动量的梯度下降的文献,你经常会看到这个术语被省略,即省去1-β 这个项。那么,如果你实现带动量的梯度下降,可以这样做。在每次迭代,或者更具体地说,在第 t 次迭代中,你将计算通常的导数 dw,db。例如,假设你最近计算的几个导数是这样,这样,这样,这样,这样。
2025-01-06 14:52:44
590
原创 深度学习学习笔记——C2W2-5——指数加权平均中的偏差校正
这就是为什么如果第一天的温度是,比如说40华氏度,那么V_1将是0.02乘以40,即0.8,所以在这里你得到一个非常低的值。这不是第一天温度的一个很好的估计。如果你带入V_1的值,并将其展开,那么你会发现V_2实际上等于0.98乘以0.02乘以θ1加上0.02乘以θ2,即0.0196乘以θ1加上0.02乘以θ2。当你计算这个值时,V_2将远小于θ1或θ2,因此V_2不是全年前两天温度的很好的估计。但如果你关心在初始阶段的偏差,而你的指数加权移动平均还在暖机中,偏差校正可以帮助你在早期获得更好的估计。
2025-01-06 14:42:04
965
原创 深度学习学习笔记——C2W2-4——理解指数加权平均
并且,如果你继续展开这个公式,你会发现这是0.1乘以0.9的三次方,乘以θ97,加上0.1乘以0.9的四次方,乘以θ96,依此类推。一般来说,如果你有1减去ε,在这个例子中,ε是0.1,所以如果这是0.9,那么1减ε的一次方约等于1/E,大约是0.34或0.35。所以你取这个值,θ100乘以0.1,再取θ99乘以0.1乘以0.9,那是第二项,依此类推。因此,重新说一遍但换成新的格式,你将Vθ初始化为0,然后反复,每一天获取下一个θT,并将Vθ更新为β乘以旧的Vθ,加上一减β乘以当前值的θ。
2025-01-06 14:35:03
922
原创 深度学习学习笔记——C2W2-3——指数加权平均
一年有365天,大约在一年中间,也就是第180天,大约在5月下旬,温度是60华氏度,相当于15摄氏度。绘制这些数据后,你会得到这样的图形,其中1月1日是年初,中间是接近夏季的时刻,年末则是12月下旬的数据。事实证明,稍后我们将看到的原因,当你计算这个值时,你可以认为VT大约是最近(1/1-β)天的温度平均值。然后,每一天,我们用0.9的权重乘以前一日的值,加上0.1乘当日的温度进行平均。现在让我们尝试另一个极端值,将β设为0.5,根据右边的公式,这相当于仅最近两天的温度平均值,绘制出的黄线。
2025-01-06 14:20:03
603
原创 深度学习学习笔记——C2W2-2——理解小批量梯度下降
具体来说,在每次迭代中,你处理的是一些 XT,YT,如果你绘制代价函数 J{T}(这是仅使用 XT,YT 的计算结果),它就像是每次迭代中你在不同的训练集上进行训练,实际上是在不同的小批量 mini-batch 上训练。所以你在这种情况下做的是处理第一个小批量,X{1},Y{1},但当小批量大小是 1 时,这就只包含你的第一个训练样本,随后你处理第二个小批量,即第二个训练样本,进行梯度下降步骤,然后依次处理第三个训练样本等等,每次只看一个单一的训练样本。如果你有一个小训练集,那么批量梯度下降是可以的。
2025-01-06 14:08:31
739
原创 深度学习学习笔记——C2W2-1——小批量梯度下降
然后你会有 A1 等于 G1(Z1),写大写的Z因为这是一个向量化实现,直到你得到 AL,我猜是 GL(ZL),然后这是你的预测。接下来你实现反向传播来计算关于JT的梯度,你仍然只使用XT和YT,然后你更新权重W,实际上是WL,更新为WL减去 alpha 乘以D WL,对B也是类似。这就像你有一个大小为1000个样本的小训练集,而你只是对这个M等于1000的小训练集实现你已经熟悉的算法,而不是对500万样本的整个训练集显示地进行循环,而是使用向量化来同时处理所有这1000个样本。解释这个算法的名字,
2025-01-06 13:58:30
736
原创 深度学习学习笔记——C2W1-15——吴恩达与约书亚·本吉奥的访谈
当我开始思考大脑如何实现类似反向传播的功能时,促使我考虑反向传播背后的更一般的概念,这使得我们可以高效地使用它,从而可能存在一系列的方法来进行信用分配,这与强化学习中的一些问题相联系。[约书亚] 是的,那就是让我非常兴奋的事情之一,其实在90年代后期,我和我的兄弟Samy研究了用神经网络来解决维度灾难的问题,这被认为是统计学习的核心问题之一。当我在1985年开始研究生学习时,我开始阅读神经网络的论文,那是让我非常兴奋的地方,并且它真的成为了我的一个热情所在。但结果证明,它的效果更好,而我以为它会更难训练。
2025-01-06 12:35:53
342
原创 深度学习学习笔记——C2W1-14——梯度检查实现注意事项
因此,如果你的代价函数是J(theta)等于1/m乘以损失之和,然后加上正则化项,即l的所有w平方和,那么这就是J的定义。所以我的建议是关闭dropout,使用梯度检查双重检查你的算法至少在没有dropout的情况下是正确的,然后再打开dropout。我的意思是,如果dθ近似与dθ相差很远,我会查看不同的i值,看看哪些dθ近似的值与dθ的值确实非常不同。所以你可以做的一件事,我不经常这样做,但你可以做的一件事是在随机初始化时进行梯度检查,然后训练网络一段时间,以便w和b有时间从0开始变化。
2025-01-03 11:10:32
817
原创 深度学习学习笔记——C2W1-13——梯度检查
我的方法如下:计算这两个向量之间的距离,即dθ近似 - dθ的欧几里得距离(没有平方项,而是元素差的平方和,然后取平方根)。在这个范围内,如果公式给出的值小于或等于10^-7,这意味着你的导数近似可能是正确的。也许这是可以接受的。同样地,使用相同的顺序,你也可以取dW[1]、db[1]等,并将它们初始化为与θ维度相同的大向量dθ。因此,展开为j是关于θ1、θ2、θ3等的函数,取决于这个大参数向量θ的维度。为了实现grad check,我们将实现一个循环,对于θ的每一个分量i,计算Dθ近似i到b。
2025-01-03 11:04:47
899
原创 深度学习学习笔记——C2W1-12——梯度的数值近似
因此,这给了你更大的信心,g(θ)可能是F的导数的正确实现。结果表明,对于非零的ε值,你可以证明这个近似的误差是ε平方的阶数,记住ε是一个非常小的数字。所以这是1,这是1.01,这是0.99,其中,再一次,ε与之前相同,它是0.01。事实证明,与其取这个小三角形并计算高度除以宽度,如果你取这个点f(θ - ε)和这个点,然后你计算这个更大三角形的高度除以宽度,你可以得到一个更好的梯度估计。再次,当ε是一个小于1的数字时,ε实际上比ε平方大得多,这就是为什么这里的公式实际上比左边的公式更不准确的原因。
2025-01-03 10:51:48
721
原创 深度学习学习笔记——C2W1-11——深度网络的权重初始化
我们设定b=0,所以现在先忽略b。实际上,你可以将某层的权重矩阵W设置为np.random.randn,然后根据矩阵的形状以及我输入到第l层每个神经元的特征数量的平方根来计算。另外几个变体,如果你使用的是TanH激活函数,有一篇论文显示,与其使用常数2,不如使用常数1更好,因此用这个代替2。另一个版本是由Yoshua Bengio和他的同事提出的,你可能在一些论文中看到过,但这是使用这个公式,它有一些其他的理论依据,但我会说如果你使用ReLu激活函数,这是最常见的激活函数,我会使用这个公式。
2025-01-03 10:45:32
853
原创 深度学习学习笔记——C2W1-10——梯度消失/爆炸问题
因此 Y-hat 实际上是 1.5 的 L-1 次与 X 的乘积,如果 L 很大,对于非常深的神经网络,Y-hat 将非常大。反过来,如果我们将其替换为 0.5,也就是小于 1 的值,这个矩阵变成 0.5 的 L 次,与 X 的乘积,再次忽略 WL。如果你的矩阵都小于1,比如 X1 和 X2 是 1,激活值将是 1/2,1/2,1/4,1/4,1/8,1/8,依次类推,直到变为 1/(2 的 L 次方)。如果 W 略小于单位矩阵,比如 0.9,0.9,对于非常深的网络,激活值将呈指数下降。
2025-01-03 10:34:29
453
原创 深度学习学习笔记——C2W1-9——输入归一化
在一些图中,现在 x_1 和 x_2 的方差都等于 1。实践中,如果一个特征 x_1 的范围是 0-1,x_2 的范围是 -1-1,而 x_3 的范围是 1-2,这些范围相对类似,因此这工作得很好。但如果你的特征在非常不同的尺度上,比如特征 x_1 的范围是 1-1000,而特征 x_2 的范围是 0-1,那结果是,参数 w_1 和 w_2 的取值范围会非常不同。不过,大致的直觉是,当你的特征在相似尺度时,你的代价函数将更圆更易于优化,而不是从1-1000、0-1,而是大多在-1-1范围内或方差彼此接近。
2025-01-02 14:10:28
622
原创 深度学习学习笔记——C2W1-8——其他正则化方法
而早期停止的优势是一旦运行梯度下降,你可以尝试不同的w值(小w、中等w、大w),不用尝试很多不同的L2正则化参数λ的值。早期停止的做法是,你除了绘制训练误差,还要绘制开发集误差(这可以是开发集上的分类误差或类似于对开发集的代价函数,比如逻辑损失或对数损失)。在进行了一段时间的训练后,w逐渐变大,直到你拥有一组很大的网络参数w。同样,这些额外的虚拟训练样本添加的信息量不如增加全新独立的猫的样本多,但由于几乎没有费用(除了计算成本),这可以成为为你的算法提供更多数据并因而正则化它并减少过拟合的低成本方法。
2025-01-02 14:00:05
638
原创 深度学习学习笔记——C2W1-7——理解“丢弃法”
技术上,你也可以对输入层应用 Dropout,有一定的概率淘汰一个或多个输入特征,尽管在实践中通常不这样做。因此,输入层的保留概率 1.0 是很常见的,你也可以使用一个很高的值,比如 0.9,但很多情况下你不会希望淘汰一半的输入特征,因此在输入层应用 Dropout 时,保留概率通常接近 1。这是第二层,你可能会设置一个相对较低的保留概率,比如 0.5,而对于不太担心过拟合的其他层,你可以有一个较高的保留概率,可能是 0.7,而对于完全不担心过拟合的层,你可以设置保留概率为 1.0。为什么它会起作用呢?
2025-01-02 12:27:33
520
原创 深度学习学习笔记——C2W1-6——“丢弃法”正则化
因此,这行代码被称为反向 dropout 技术和作用是,无论你将 keep.prob 设置为多少,无论是 0.8、0.9 还是 1(如果设置为 1,则没有 dropout,因为保留所有),反向 dropout 技术通过除以 keep.prob ,确保 a3 的期望值保持不变。因此,对于一个示例,你不会一直零出相同的隐藏单元,而是在梯度下降的第一次迭代零出某些隐藏单元,在第二次迭代中零出不同的隐藏单元。假设对于每一层的每个节点,我们抛硬币,有 0.5 的几率保留每个节点,有 0.5 的几率移除每个节点。
2025-01-02 12:18:15
792
原创 深度学习学习笔记——C2W1-5——为什么正则化可以减少过拟合?
总结一下,如果正则化参数非常大,参数W会非常小,所以z会相对较小,暂时忽略b的影响,但z会相对较小,或者说它取一个小范围的值。在我们结束关于正则化的讨论之前,我只想给你一个实现上的提示,那就是在实现正则化时,我们修改了成本函数J的定义,通过添加一个额外的项来惩罚权重过大。就好像每一层都是大致线性的,就好像它是线性回归。所以,如果情况是这样,注意到只要z很小,比如z只取一个小范围的值,大约在这里,那么你只是在使用tanh函数的线性部分,只有当z可以漂移到更大或更小的值时,激活函数才开始变得不那么线性。
2025-01-02 11:57:58
742
原创 深度学习学习笔记——C2W1-4——神经网络的正则化
回顾一下,对于逻辑回归,你试图最小化代价函数 J,这个代价函数被定义为不同样本中各个预测的损失之和,其中 w 和 b 是逻辑回归中的参数,所以 w 是一个 x 维的参数向量,b 是一个实数。在神经网络中,你的代价函数是所有参数 w[1], b[1] 到 w[大写的 L], b[大写的 L] 的函数,其中大写的 L 是神经网络中的层数。因为如果你看一下你的参数,w 通常是一个高维参数向量,尤其是在高方差问题中,w 可能有很多参数,所以你不能很好地拟合所有参数,而 b 几乎只是一个单一的数。
2025-01-02 11:48:12
888
原创 深度学习学习笔记——C2W1-3——机器学习的基本方法
(把这一点放在括号里,因为你知道,这只是你必须尝试的事情之一,也许你能让它工作,也许不能。但在现代深度学习和大数据时代,只要你能持续训练更大的网络,并且只要你能持续获取更多数据(这两者并不总是能做到,但如果能做到),那么获取更大的网络几乎总是会减少你的偏差,而不会必然增加你的方差,只要你适当地进行正则化。如果确实存在高偏差,甚至无法很好地拟合训练集,你可以尝试选择更多隐藏层或隐藏单元的网络,或者可以训练更长时间,比如运行更长时间的训练或尝试一些更先进的优化算法,我们将在后面的课程中讨论这些内容。
2025-01-02 11:33:14
463
原创 深度学习学习笔记——C2W1-2——偏差和方差
还有一个最后的例子,如果你有0.5%的训练集错误和1%的开发集错误。现在,在前面的幻灯片中你看到了什么是高偏差、高方差的样子,我想你对一个好的分类器是什么样子有了感觉。另一方面,如果你拟合一个非常复杂的分类器,可能是深度神经网络,或者一个有很多隐藏单元的新网络,你可能会完美地拟合数据。这看起来更适合数据。所以让我们说你的交易量错误是1%,你的开发集错误,为了论证,让我们说是11%。总结一下,通过查看你的算法在训练集和开发集上的错误,你可以试着诊断它是否存在高偏差或高方差的问题,或者两者都有,或者都没有。
2025-01-02 11:30:23
662
原创 深度学习学习笔记——C2W1-1——训练、开发、测试数据集
在深度学习专业化课程的第二部分,你将打开深度学习的黑箱,理解推动性能并系统地产生良好结果的过程。到课程结束时,你将学习训练和开发测试集的最佳实践,分析偏差方差以构建深度学习应用;能够使用标准的神经网络技术,如初始化、L2和dropout正则化、超参数调优、批量归一化和梯度检查;实现和应用各种优化算法,如小批量梯度下降、动量、RMSprop和Adam,并检查它们的收敛性;并在TensorFlow中实现一个神经网络。
2025-01-02 11:25:26
583
原创 深度学习学习笔记——C1W4-8——深度学习和大脑有什么关系?
在这个生物神经元的图片中,这个神经元,也就是你大脑中的一个细胞,从其他神经元接收电信号,X1, X2, X3,或者从其他神经元A1, A2, A3,进行一个简单的阈值计算,然后如果这个神经元被激活,它会沿着轴突发送一个电脉冲,沿着这条长线,也许到其他神经元。当我想深度学习时,我认为它非常擅长学习非常灵活的功能,非常复杂的功能,学习X到Y的映射,学习监督学习中的输入输出映射。而这可能是大脑类比曾经有用的地方,我认为这个领域已经发展到这个类比正在瓦解的地步,我倾向于不再使用这个类比。这就是这个视频的内容。
2025-01-02 11:20:24
491
原创 深度学习学习笔记——C1W4-7——参数与超参数
例如,你可能对学习率的最佳值有一个想法。我知道这可能看起来像深度学习的一个不满意的部分,你必须尝试所有超参数的值,但这也许是深度学习研究仍在推进的一个领域,也许随着时间的推移,我们能够提供更好的最佳超参数使用的指导。你的模型的参数是W和B,还有其他一些你需要告诉你的学习算法的东西,例如学习率alpha,因为我们需要设置alpha,而这将决定你的参数如何演变,或者你执行的梯度下降的迭代次数。你的学习算法还有一些你需要设置的数字,比如隐藏层的数量,我们称之为大写的L,或者隐藏单元的数量,如0、1、2等。
2025-01-02 11:16:24
673
原创 深度学习学习笔记——C1W4-6——前向传播和反向传播
这是你应该用于最终层L的da的公式。我不想详细推导这个,但结果你会发现,如果你取da的这种定义并在这里插入,你就会得到与我们之前相同的公式,用于计算dz^l作为前一个dz^l的函数。我们发现我们写的方程只是用于计算导数的微积分方程,特别是在反向传播中,但再次强调,如果这感觉有点抽象,有点神秘,我的建议是当你完成编程练习后,它会感觉更具体一些。然而,当你喂入大量数据时,即使你已经从事机器学习很长时间,有时你的学习算法仍然会让你感到惊讶,因为它的复杂性很大程度上来自于数据,而不是你编写成千上万行代码。
2025-01-02 11:11:54
582
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人