
深度学习
文章平均质量分 64
ZEKEGU1997
温故而知新,多看多写
展开
-
深度学习(十)卷积神经网络
课程链接原创 2021-05-08 18:46:17 · 1279 阅读 · 1 评论 -
最优化理论归纳
什么是最优化问题通俗地说,就是求一个函数在可行域上的极值。若函数无约束条件则称为无约束优化;若约束条件为等式则称为等式约束优化;若约束条件为不等式则称为不等式约束优化。最优性条件最优性条件即极值点满足的条件。无约束问题最优性条件一阶必要条件:一阶导数等于0二阶必要条件:二阶导数大于等于零一般约束优化问题的最优性条件无约束优化问题的算法框架step0 给定初始化参数及初始迭代点X0,置k=0;step1 若Xk满足终止准则,停止迭代,以Xk作为近似极小点;step原创 2021-03-13 20:37:32 · 1999 阅读 · 0 评论 -
深度学习(五)全连接前馈网络
全连接前馈网络在知道w和b参数的情况下输入输出的情况这样建立起了多层的网络,输入称为输入层,输出的前一层称为输出层,中间的部分称为隐藏层。所谓深度,指的就是有很多层隐藏层。神经网络可以将函数运算转化成矩阵的运算,而矩阵运算可以通过GPU进行加速。多层网络则进行多次矩阵运算的迭代。在分类问题中隐藏层充当一个特征提取的角色,在输出层带入softmax函数输出结果神经网络要有多少层,每层多少个节点是要视情况而定的。也有可以自动生成结构的神经网络(EANN)。自己设计神经网络的连接情况的是卷原创 2021-04-26 16:41:45 · 1920 阅读 · 0 评论 -
深度学习(三)梯度下降法
课程链接梯度下降法中的几个问题学习率如果过大会导致损失函数卡住无法下降,甚至上升,学习率如果过小则会导致收敛过慢。AdagradAdagrad是选择学习率的一种常用方法。具体公式如下对于这个公式的直观解释,是为了强调梯度的变化,突出反差从数学上进行解释,如果我们拿一段二次函数作为例子,可以发现最好的学习率(从X0一步走到最低点)是一阶导数/二阶导数。由此我们推测其他情况下也是如此。不过在模型较为复杂的情况下,计算二阶导数是很困难的。我们发现当二阶导数较大时,一阶导数比较陡峭,在上面采样原创 2021-04-22 11:17:19 · 489 阅读 · 0 评论 -
深度学习(九) 常用的小方法
课程链接RMSProp之前介绍了Adagrad方法,就是根据当前梯度来决定学习率的大小。当函数模型比较复杂扭曲时,仅根据当前梯度是不够的,可能还要参考之前的梯度大小。RMSProp就是这样一种方法,它的公式如下公式中的α是自己设定的参数。局部极小点的问题在梯度下降的过程中可能会最终停在鞍点或局部极小点的问题。实际上,在复杂模型中出现局部极小点的概率是比较低的,因为局部极小点要求在每一维上都是局部极小。动量法也可以解决这一问题。momentum动量法就是在当前梯度方向上加上上一次原创 2021-04-30 16:26:24 · 177 阅读 · 0 评论 -
深度学习(六)反向传播算法
课程链接chain rule由chain rule,就可以吧损失函数对w的微分,拆成两个部分来分别计算。第一部分是z对w的微分。这个计算是比较简单的。第二个部分是损失函数对z的微分,无法求解。我们继续用chain rule拆分,拆成a对z的微分乘损失函数对a的微分。a是z带入sigmoid函数的结果,所以它的微分也就是sigmoid函数的导数。再把损失函数对a的微分继续拆,假设下一层有两个节点z’和z’’。则z’和z’‘对a的微分是容易求的。剩下要求的就是损失函数对z’z’'的微分。原创 2021-04-26 20:33:42 · 438 阅读 · 1 评论 -
深度学习(二)bias和variance
本节课程链接机器学习中的误差主要来源有两种:bias和variance当模型复杂度低时,bias大variance小当模型复杂度高时,bias小variance大这也是欠拟合与过拟合的一种表现形式进行非常大量的实验后,得到了模型的平均值(蓝线),真值为黑线,可以看到五次的模型bias明显小于一次模型。bias大怎么办引入更多的特征因素,重新构造更复杂的模型variance大怎么办可以使用更多的训练数据,但是训练数据有时并不容易获取,这时可以进行正则化。不过正则化会一程度上增大b原创 2021-04-20 20:37:36 · 344 阅读 · 0 评论 -
深度学习(八)梯度消失与激活函数
课程链接只有当在训练数据上准确率高,而在测试数据上准确率很低时才是出现了过拟合现象。解决过拟合需要从模型上下手。如果在训练数据上就表现的不好,那么应当是在模型训练上出了问题。梯度消失在网络sigmoid...原创 2021-04-28 21:05:32 · 445 阅读 · 0 评论 -
最大似然估计和最大后验估计
概率与统计概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。回到这个函数P(x∣θ),其中x表示数据,θ表示参数,已知x求θ就是统计问题,已知θ求x就是概率问题。如果θ 是已知确定的,x是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点x,其出现概率是多少。如果x是已知确定的,θ是变量,这个函数叫做似然函数(likelihood functi原创 2021-03-15 19:51:49 · 1123 阅读 · 0 评论 -
深度学习(四)分类
课程链接之前我们已经介绍了线性回归问题,分类问题是不适用线性回归方法的。理想情况下的分类问题的解决模型是一个布尔函数,损失函数是分类错误的次数,这样的损失函数显然是不能用最优化方法求解的。不过它也可以用感知机和支持向量机来解决,本节不作介绍。因此我们在这里采用概率统计的方法进行求解,算出某一项数据落入某一类的最大可能性。比较简单和常用的分布是高斯分布。建立高斯分布只需要数据的均值和方差。在课程中我们待解决的问题是通过宝可梦的攻击防御等属性对宝可梦分类。输入7种属性分别计算均值方差的情况下分原创 2021-04-25 20:09:34 · 4176 阅读 · 0 评论 -
深度学习(七) Why Deep
课程链接曾经有人证明了,用一层隐藏层的神经网络就可以表示任何函数。那么多层的深度网络是否还有必要呢?要回答这个问题,实际上也就是要阐述深度学习的意义和优势。模组化假如我们要分类长发女,长发男,短发女,短发男。直接训练这四类的数据来分类可能是比较困难的,因为长发男的数据相对较少。但是如果将这个问题拆分成两个模组,一个分辨性别,一个分辨头发的长短,问题就迎刃而解了。实际上深度学习中多层网络就是将解决方案模组化,这样一来,不仅使问题的解决变得简单,需要的训练数据也更少。端到端学习在解决一原创 2021-04-27 21:25:11 · 332 阅读 · 6 评论 -
机器学习笔记(一)
机器学习三要素:模型学习准则优化模型广义线性方法:学习准则利用模型进行预测将预测值与真值带入损失函数将损失函数的结果进行某种计算(比如平均),得到风险函数这样一来,问题就转化成了风险函数的最优化问题,只要调整参数使得风险函数最小即可。但是这里的风险实际上是经验风险,并不是理想的期望风险,如果只是求得最小经验风险,可能导致过拟合的问题。优化最优化方法:梯度下降法、牛顿法、共轭梯度法等等泛化误差:期望风险与经验风险的差异过拟合就是泛化误差过大的表现减少泛化误差原创 2021-03-10 23:12:54 · 174 阅读 · 0 评论 -
深度学习(一)
B站深度学习课程:https://www.bilibili.com/video/BV1JE411g7XF?p=3回归regression:输出数据分类classification:输出类型生成generation:输出图形,音乐…Meta learning: learn to learnregression这里我们选择了预测宝可梦进化后的CP值作为问题。第一步,建立模型,找到合适的参数(权重和偏差)第二步,建立损失函数。损失函数是衡量模型函数有多差的函数,它的输出是模型函数,实际上也就原创 2021-04-20 15:40:21 · 303 阅读 · 0 评论 -
深度学习(十一)RNN
课程链接RNN的基本特点RNN的基本特点就是拥有储存上一次节点的输出结果的能力。这样一来,网络的循环迭代之间就是有关系的,即便是同样的输入集合,只要改变其输入序列,输出结果就会完全不一样。因为这个特点,RNN可以处理文字序列(理解一段话的意思)。如下图所示,我们可以把两句话里的每个单词分别按次序输入一个RNN中,RNN可以理解这两句话不同的意思。以上这种把每个结点的值存下来的称为Elamn Network,如果是把整个网络的输出存下来的称为Jordan network。还有一种双向RNN,它原创 2021-05-12 17:00:20 · 501 阅读 · 0 评论 -
深度学习(十二)semi-supervised
课程链接半监督学习的原理跟我们自己学习辨认物体是很接近的,小时候可能父母长辈会在某次见到猫狗时告诉你这个是猫,这个是狗。但是之后就不会每次都告诉了,而实际上猫狗的形态多种多样,我们之后每次看到不同形态的猫狗时,即使没有人告诉,也能自己完成分类。用少部分的带标签的数据,和大部分无标签的数据进行训练,这就是半监督学习。半监督生成模型如果把有标签和无标签的数据画在同一张图上,再根据他们画出概率分布,显然概率分布会受无标签的数据的影响。训练的时候,先用有标签的数据训练出一个先验概率分布,然后逐个加入无原创 2021-05-16 16:10:00 · 519 阅读 · 0 评论 -
深度学习(十三)explainable ML
李宏毅老师课程链接深度学习的网络往往是一个黑盒子,就是说我们并不知道里面发生了什么,怎么发生的,只知道结果如何。所以我们要想一些办法来了解深度学习的网络究竟是怎么运作的。在计算机视觉的领域,这似乎是比较直觉且容易做到的。比如图像识别,我们就可以通过某种办法改变图像的某些部分,然后观察其结果。比如说我们在图像上遮盖一个灰色方块,观察它是否会对图像辨识的结果产生影响,如下图,红色区域代表遮盖无影响,蓝色区域代表遮盖影响很大。这样一来,我们就知道了机器确实是从图中狗的部分识别出了狗,而不是把图中的人脸认原创 2021-05-17 20:13:47 · 288 阅读 · 1 评论 -
深度学习(十四)network compression
李宏毅老师课程链接为能够把神经网络放到移动端设备或者能进行实时计算,就需要压缩网络的大小提高效率。本节介绍几种压缩网络的办法network pruning一个庞大的网络中,其实有很多节点和权重几乎是没有作用的,那么压缩网络最直接的方式当然就是把这些没用的剪掉。网络剪枝的大概步骤如下:首先要训练好一个较大的网络,然后评估网络中每个节点或者每个权重的重要性,去除那些不重要的部分。最后再次训练恢复网络的功能。一次去除可能是不够的,一般需要多次迭代剪枝。...原创 2021-05-18 20:12:35 · 291 阅读 · 5 评论 -
深度学习(十五)self-attention
李宏毅老师课程链接对于seq2seq的问题,可以选择用RNN或者CNN来解决,但是RNN无法做到平行的处理一个序列,也很难处理一个很长的序列。而CNN则需要多层才能看到比较多的信息。而self-attention可以解决这些问题。构建self-attention,首先将输入x转化成a,再把a分别转化成q,k,v,分别是匹配项,被匹配项和提炼信息。将1个q和每个k一次做attention计算(点乘除以维数的根)得到a1i然后把所有a1i做一次softmax。把每个结果乘上vi,再把所有乘积原创 2021-05-25 16:21:35 · 529 阅读 · 0 评论 -
深度学习(十六)unsupervised learning
李宏毅老师课程链接unsupervised learning最常见的两个用途,分别是clustering和generation。clustering的一种方法是k等分,具体方法如下图。还有一种方法是层次聚类。大概方法是把找到所有数据中最接近的两个,算出它们的平均数并用它替代原来的两数据,循环迭代直到根节点。这样建立了一个多层的树,根据不同的标准可以分出不的类。比如用红线分割,则123为一类,45为另一类;用蓝线分割,则12,3,45各为一类。...原创 2021-11-27 15:37:52 · 384 阅读 · 0 评论