算法
文章平均质量分 76
CtrlZ1
浮天水送无穷树,带雨云埋一半山。
展开
-
雅克比迭代法和高斯-塞德尔迭代法
https://wenku.baidu.com/view/ac6a0d89d0d233d4b04e6905.html另外附上迭代收敛的条件:且越小,收敛的越快。原创 2021-05-27 10:19:16 · 1807 阅读 · 0 评论 -
【转】Lasso回归算法: 坐标轴下降法与最小角回归法小结
原文:https://www.cnblogs.com/pinard/p/6018889.html这里补充一下,一直没想明白,两个向量的角平分线我还可以理解,多个向量的话,共同角分线是啥意思啊?因为只是想了解一下这个算法,暂时没有研读原文的打算,就先放到这里。...转载 2021-05-26 21:21:38 · 211 阅读 · 0 评论 -
关于坐标下降法(Coordinate Descent)你没理解的事情
目录概念原理坐标下降法与全局最小值特点概念见下:其实就是先固定其他相关变量的值,只对某个未知变量进行优化。原理坐标下降法与全局最小值那么问题来了,假如我们寻找到了一个点x使得在所有单个坐标轴上f(x)都最小,是否证明我们找到了全局最小值点?这个问题要分情况来看:a. 若f(x)是可微的凸函数,答案是Yes,因为f(x)在任何坐标方向上求偏导都是0,并且对于凸函数来说,局部极小值就是全局最小值:b. 若f(x)是不可微的凸函数,答案是No,我们可以很容易原创 2021-05-26 16:44:33 · 1506 阅读 · 1 评论 -
关于近端梯度下降法你不知道的事
目录介绍梯度下降法回顾近端梯度下降法加速的近端梯度法介绍近端梯度下降法是众多梯度下降 (gradient descent) 方法中的一种,其英文名称为proximal gradident descent,其中,术语中的proximal一词比较耐人寻味,将proximal翻译成“近端”主要想表达"(物理上的)接近"。与经典的梯度下降法和随机梯度下降法相比,近端梯度下降法的适用范围相对狭窄。对于凸优化问题,当其目标函数存在不可微部分(例如目标函数中有 [公式] -范数或迹范数)时,近端梯度下降法才会派上用原创 2021-05-26 10:29:17 · 1868 阅读 · 1 评论 -
牛顿法介绍
目录牛顿法介绍推导海森矩阵、泰勒公式、梯度下降法牛顿法特点牛顿法介绍首先牛顿法是求解函数值为0时的自变量取值的方法。如果你看不懂这句没关系,继续往下看就好。利用牛顿法求解目标函数的最小值其实是转化成求使目标函数的一阶导为0的参数值。这一转换的理论依据是,函数的极值点处的一阶导数为0。其迭代过程是在当前位置x0求该函数的切线,该切线和x轴的交点x1,作为新的x0,重复这个过程,直到交点和函数的零点重合。此时的参数值就是使得目标函数取得极值的参数值。其迭代过程如下:这里我们通过对上图迭代过程的描原创 2021-05-25 20:11:51 · 1942 阅读 · 0 评论 -
一阶梯度下降法及其弊端
目录什么是一阶梯度下降法推导过程弊端改进什么是一阶梯度下降法这里主要说一下所谓的一阶是什么意思,至于梯度下降法,我觉得点进来的同学们应该都知道它是什么,以及用处。如果不清楚,下面还会讲解。这里所谓的一阶就是指仅考虑一阶导数的梯度下降法(或者说只考虑梯度的梯度下降法,而没考虑曲率,即二阶导数)推导过程用泰勒公式来推导一阶梯度下降法的公式。首先带大家熟悉回顾一下泰勒公式:然后看一下我们的目标函数,以梯度下降法在深度学习中的应用为例,设L(θ)L(θ)L(θ)是损失函数,我们希望随着参数θθθ原创 2021-05-25 17:39:21 · 1284 阅读 · 0 评论 -
【转】LASSO回归与L1正则化 西瓜书
https://blog.csdn.net/BIT_666/article/details/80051737总结,lasso约束相比l2更能促进参数的系数解,然后求解lasso问题可以使用PGD(Proximal Gradient Descent)方法,而PGD方法可以适应软阈值函数(Soft Thresholding)来求解。...转载 2021-05-25 12:03:12 · 375 阅读 · 0 评论 -
【机器学习】一文读懂正则化与LASSO回归,Ridge回归
1.过拟合当样本特征很多,样本数相对较少时,模型容易陷入过拟合。为了缓解过拟合问题,有两种方法: 方法一:减少特征数量(人工选择重要特征来保留,会丢弃部分信息)。 方法二:正则化(减少特征参数的数量级)。2.正则化(Regularization)正则化是结构风险(损失函数+正则化项)最小化策略的体现,是在经验风险(平均损失函数)上加一个正则化项。正则化的作用就是选择经验风险和模型复杂度同时较小的模型。防止过拟合的原理:正则化项一般是模型复杂度的单调递增函数,而...转载 2021-05-25 10:34:47 · 2023 阅读 · 0 评论 -
空洞卷积的超详细解释
目录什么是空洞卷积为什么需要空洞卷积卷积的问题空洞卷积的好处总结空洞卷积存在的问题潜在问题 1:The Gridding Effect什么是空洞卷积Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes 从字面上就很好理解,是在标准的 convolution map 里注入空洞,以此来增加 reception field。相比原来的正常convolution,dilated convolution 多了一个 hy原创 2021-03-10 12:03:08 · 29147 阅读 · 4 评论 -
转置卷积中的棋盘效应
目录举例1举例2解决方法举例1当我们仔细观察由神经网络生成的图像时,我们经常会看到一种奇怪的棋盘图案。在某些情况下,它比其他情况更明显,但最近的大部分模型都表现出这种行为。如下图:造成棋盘效应的原因是转置卷积的「不均匀重叠」(uneven overlap)。这种重叠会造成图像中某个部位的颜色比其他部位更深。在下图中,顶部这层是输入层,底部这层则是操作转置卷积后的输出层。在转置卷积过程中,小的这层映射到大的那层。在案例(a)中,其卷积步长为 1,过滤器大小为 2。正红线所标出的,输入图像上的第原创 2021-03-10 11:13:46 · 2659 阅读 · 0 评论 -
双线性插值实现图像缩放详解
目录双线性插值(Bilinear Interpolation)线性插值双线性插值深入理解双线性插值我的插值理解代码官方插值办法源图像和目标图像几何中心的对齐将浮点运算转换成整数运算代码效果对比再次深入理解引用双线性插值(Bilinear Interpolation)双线性插值是实现上采样的一种手段,关于它的知识其实非常非常简单,但是很多博客写的比较晦涩难懂,这里简单介绍一下双线性插值究竟做了什么。首先双线性插值是用来放大图像的,但是我们都知道既然要放大图像,其实是对图像的像素进行扩充,而双线性插值就原创 2021-03-08 20:03:53 · 13677 阅读 · 5 评论 -
nn.ConvTranspose2d详解
首先,对输入的feature map进行padding操作,得到新的feature map;然后,随机初始化一定尺寸的卷积核;最后,用随机初始化的一定尺寸的卷积核在新的feature map上进行卷积操作。补充一下,卷积核确实是随机初始的,但是后续可以对卷积核进行单独的修改,比如使用双线性卷积核,这样的话卷积核的参数是固定的,不可以进行学习修改。下面对上面的过程进行演示。原创 2021-03-07 21:49:06 · 43615 阅读 · 10 评论 -
感受野详解
这里写目录标题概念举例感受野的计算规律两种计算感受野的方法从前往后从后往前推导VGG16网络的感受野结构从后往前从前往后感受野大于图片概念在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域,如图1所示。在典型CNN结构中,FC层每个输出节点的值都依赖FC层所有输入,而CONV层每个输出节点的值仅依赖CONV层输入的一个区域, 这个区域之外原创 2021-03-06 12:19:24 · 30381 阅读 · 2 评论 -
GRU结构为什么可以防止梯度消失
目录whatwhywhat所谓防止梯度消失,其实就是防止时间距离过大的两层神经元的参数w之间的联系过少,即dWj/dWid_{W_{j}}/d_{W_{i}}dWj/dWi过小,j和i的距离很大。why我们先看原始的RNN结构,从多对多的例子来看:对w进行合并之后就是:再看使用GRU之后的表达式:我们可以看到,差别就是r和z的出现,**r是重置门,决定遗忘先前信息的程度。z是更新门,它决定了要忘记哪些信息以及哪些新信息需要被添加。**在添加这两个门之前,我们是完全接受hth原创 2021-02-16 21:50:24 · 1810 阅读 · 0 评论 -
迁移学习在深度学习中的边缘分布对齐和条件分布对齐
个人理解:边缘分布对齐:源数据和目标数据输入神经网络,经过卷积池化等操作提取特征后,形成的feature map相似。条件分布对齐:不光要feature相似,还得是同类别的feature map相似,比如分类标签为1的源数据的feature map和分类标签为1的目标数据的feature map相似,而不是和分类标签为2或其他的目标数据的feature map相似。注意,迁移学习的目的之一是为少标签的数据添加标签,所以训练的时候不能使用目标数据的标签,这样限制了我们的操作空间、操作手段,高精度还是挺.原创 2021-02-09 12:30:02 · 3679 阅读 · 0 评论 -
关于梯度翻转层GRL的理解
最近在看迁移学习中的DANN算法和DAAN算法,二者都用到了GRL层,是一种梯度翻转层,这里主要想讲一下梯度翻转层为什么有用。以DANN为例,倘若梯度翻转层不存在,那么,算法在迭代过程中,在减少Ly的时候,Gf层的各个卷积层的参数会趋向于减少Ly损失,提高标签分类精度;在减少Lg的时候,Gf层的各个卷积层的参数会趋向于减少Lg损失,也就是使得源数据和目标数据通过Gf层后的区别愈加明显,即提高域分类精度,这不是我们想要的,我们的目标是让区别越来越小,从而达到生成的目标数据特征和源数据特征相似,从而缩小边缘.原创 2021-01-29 11:44:16 · 5247 阅读 · 5 评论 -
torch.nn.Softmax
很多博客对于这个函数讲的并不清晰,我在这里重新梳理一下。话不多说,直接上例子。下面是代码import torchimport mathimport torch.nn as nninput=torch.Tensor([[ 0.5450, -0.6264, 1.0446], [ 0.6324, 1.9069, 0.7158], [ 0.3224, 0.5342, -0.4561]])softmax_inp.原创 2021-01-25 14:44:20 · 3147 阅读 · 0 评论 -
深度网络自适应DCC算法
目录前言正文前言DCC算法是用来解决深度网络自适应问题的算法,属于迁移学习与深度学习结合的产物。从最开始的时候,通过微调(finetune)可以实现一定程度的深度自适应,但是它有一个致命缺点就是无法处理源数据(source)和目标数据(target)分布不一样的情况,然而在现实生活中这种情况的出现是十分频繁的,也就是说,要想进一步拓展迁移学习与深度学习的结合,必须克服这个问题。有人在2014年提出了DaNN,它作为一个引子,后面人们在此基础上进行了很多改进,DCC是继承其思想的一种方法。正文原创 2021-01-22 13:09:32 · 2398 阅读 · 0 评论 -
SVM(六):核函数
目录前言问题背景决策规则核函数困难解决办法几个核函数小结前言我也在学习SVM,边学习边记录学到的东西,特别感谢在学习核函数这一部分时提供帮助的博文,下面的记录也是基于它之上的,并加入了一些个人补充,博文链接:https://blog.csdn.net/v_july_v/article/details/7624837问题背景前几篇讲到的SVM的知识是针对线性问题进行处理的,而对于非线性问题,使用核函数可以较好的解决,我们先来直观的理解一下非线性问题与其解决方法:上图中的一维坐标下的+和-两类原创 2021-01-21 13:31:14 · 308 阅读 · 0 评论 -
SVM(六):带松弛变量的SVM数学模型
目录问题背景加入松弛变量问题背景上一篇我们已经学习了关于SVM模型的基本知识,现在我们就其可能面对的情况进行更深入的分析。之前我们采用的例子是比较规整的数据例子,大家请看下面的数据分布。你觉得上面的分类效果好嘛?我觉得不是特别好,原因就是实际上我们感觉我们宁可错分一个,也不想出现上述这种比较紧凑的情况,再看下面的分法:上图中的实线作为最优的分割线貌似才是我们心中的答案,当然你也可以不认同这一点,然后不加入松弛变量,这样的效果就是第一幅图的效果,如果你更认同后面这幅图的效果,那你就可以采用松弛原创 2021-01-20 12:30:36 · 1957 阅读 · 1 评论 -
SVM(五):SVM的数学模型详细介绍
目录前言内容问题背景得到优化目标前言学习SVM的数学模型,需要对拉格朗日乘数法、KKT条件、对偶问题、超平面这四类问题有充分的了解,所以在写这篇文章之前,我先写了四篇关于上述问题的详细介绍,有需要的同学可以去我的博客中阅览,这里附上四篇文章的链接:https://blog.csdn.net/qq_41076797/article/details/112676195https://blog.csdn.net/qq_41076797/article/details/112763987https://原创 2021-01-19 19:06:39 · 3589 阅读 · 1 评论 -
SVM(四):超平面详细解释
目录背景定义超平面方程推导平面直线方程空间平面方程超平面点到超平面的距离推导点到平面直线的距离点到空间平面的距离超平面判断超平面的正反背景关于超平面的介绍,网上的博客资料太多了,然而真正简洁易懂、切中要害的实在是太少了,我在学习这个问题的过程中遇到了太多坎坷,这里将一些比较直白易懂的讲解和个人理解展示出来。引用的一些图片、公式等来源于:https://www.cnblogs.com/yanghh/p/13617129.html定义见下图我不太想在定义上就用一些很复杂的解释手法,有很多博客原创 2021-01-19 15:17:31 · 2556 阅读 · 1 评论 -
SVM(三):对偶问题最直白解释
目录原问题的转化对偶问题原问题的转化还记得我们求最优解的原始问题嘛?我们之前已经通过KKT算法得到了对于这个问题的最优解的求取办法,那为什么还要继续引出对偶问题呢?因为将原始问题转化为对偶问题是求解带约束优化问题的一种方法,当然这不是唯一的方法,只不过转化为对偶问题后往往更容易求解,因而被广为应用。关于对偶问题的动机说完了,下面我们把注意力集中在minf(x)min f(x)minf(x)上,然后有两条约束条件,其实约束条件相当于将解空间划分为了两块,空间1空间1空间1是符合约束条件,空间2空原创 2021-01-18 16:16:19 · 4597 阅读 · 1 评论 -
SVM(二):KKT条件最直白的解释
目录约束有否有效的问题求解KKT条件约束有否有效的问题在KKT条件的诸多大佬的解释中,都有一个关于约束是否有效的讨论,然而大多数人都没有讲清楚,什么是所谓的约束是否有效,下面我想先针对这个问题进行一个解释。首先给出不等式约束条件,以及其拉格朗日公式。我们称符合g(x)<=0的区域为约束域,称f(x)的取值区域为目标域。然后下图中,左图是约束无效,右图是约束有效的两种情况,红色的是约束域,蓝色等高线是目标域:先看左图,当目标域最小值点(即某点使得f(x)取到最小值,注意,不是极小值,而原创 2021-01-18 11:31:17 · 3553 阅读 · 2 评论 -
SVM(一):拉格朗日乘数法详解
目录what直观理解法高数书上的解法学习SVM的过程中遇到了这个拉格朗日乘数法,之前学高数的时候也学过,不过看到视频里的直观理解法和高数书上的解法有些不同,于是在这里把这两种方法记录下来,也当做是一次理解的过程。what先讲一下无条件极值,它是说没有约束条件下,单纯求一个函数极值的问题。比如我们高中就学过的求一个函数的极大值极小值,通常来说对该函数求导并使其等于0就可以得到该函数的极大值点和极小值点。与无条件极值相对的还有一个叫条件极值问题。首先什么是拉格朗日乘数法,它是解决条件极值问题的方法原创 2021-01-15 22:29:28 · 3382 阅读 · 0 评论 -
求解最大质因数
目录记一道我很喜欢的编程题目知识导入传统的求最大质因数的方法总结记一道我很喜欢的编程题目时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:5819本题知识点: 字符串 数学题目描述对于给定的字符序列,从左至右将所有的数字字符取出拼接成一个无符号整数(字符序列长度小于100,拼接出的整数小于2^31,),计算并输出该整数的最大素因子(如果是素数,则其最大因子为自身)输入描述:有多组数据,输入数据的第一行为一个正整数,表示字符序列的数目,每组数据为一原创 2020-06-24 23:51:03 · 5134 阅读 · 3 评论 -
质因数分解
一道清华的复试题,我先后看了两份代码,收获匪浅,分别摘自下面两个博客:https://blog.csdn.net/Little_Kid_Kang/article/details/88031973https://blog.csdn.net/Zero_979/article/details/105039355第一个博客我可以看懂,意思很明白,第二个博客涉及到知识盲区了,原来还可以这么简单的做出来:第一份博客的代码:#include <iostream>#include <原创 2020-05-16 12:49:16 · 258 阅读 · 0 评论