稀疏表示

转载:正则化

南楼画角 提交于 2020-03-04 00:14:08
原文链接:https://blog.csdn.net/qq_20412595/article/details/81636105 一、Why & What 正则化 我们总会在各种地方遇到正则化这个看起来很难理解的名词,其实它并没有那么高冷,是很好理解的 首先,从使用正则化解决了一个什么问题的角度来看:正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error),其实就是使用训练数据训练的模型在测试集上的表现(或说性能 performance)好不好 如上图,红色这条“想象力”过于丰富上下横跳的曲线就是过拟合情形。结合上图和正则化的英文 Regularizaiton-Regular-Regularize,直译应该是:规则化(加个“化”字变动词,自豪一下中文还是强)。什么是规则?你妈喊你6点前回家吃饭,这就是规则,一个限制。同理,在这里,规则化就是说给需要训练的目标函数加上一些规则(限制),让他们不要自我膨胀。正则化,看起来,挺不好理解的,追其根源,还是“正则”这两字在中文中实在没有一个直观的对应,如果能翻译成规则化,更好理解。但我们一定要明白,搞学术,概念名词的准确是十分重要,对于一个重要唯一确定的概念,为它安上一个不会产生歧义的名词是必须的,正则化的名称没毛病,只是从如何理解的角度,要灵活和类比。

数据结构篇——数组扩展(稀疏数组)

天大地大妈咪最大 提交于 2020-02-22 16:02:45
其实稀疏数组更多的是一种思想,而不是一种全新独立的数据结构。它本质上也就是一个二维数组。 稀疏数组简介以及应用场景 当一个数组容量很大,但是其中 有效数据很少且是稀疏分布 时,我们就可以使用稀疏数组来减少不必要的内存消耗。 注 :这里的有效数据,也可以理解为与绝大部分数据不同的。加上这个理解后,稀疏数组的应用场景会多很多。 其实思想很简单,构建出来一个二维数组,然后把有效数据的坐标都一一标记出来放进二维数组中。 稀疏数组的结构 稀疏数组本质上也是一个数组。 稀疏数组由(N+1)x3构成。 第一行的三个值依次表示 原数组的行号 原数组的列号 有几个格子有数据 之后的每一行都表示一个特定的值。 有意义值的行号 有意义值的列号 有意义的值 所以我们可以得到假设一个数组有效值数量为N,则他的行数为N+1。 通过稀疏数组的结构,我们又能得到一个信息。 稀疏数组比较适合用来处理规整数组(即矩阵) ,如果不是矩阵但同时又满足稀疏数组应用场景的,可以通过数组补齐的方式,把原数组变成矩阵。 稀疏数组实现 public class SparseArray { /** * 把普通二维规整数组变成稀疏数组 * * @param array 二维规整数组 * @param defaultValue 二维数组中默认的值(大部分坐标的值) * @return 稀疏数组 */ public static int

稀疏表示

萝らか妹 提交于 2020-02-22 14:03:37
稀疏表示: 稀释向量/矩阵 大多数元素为0的向量或者矩阵叫做稀疏向量/矩阵。 字典 m维信号向量y最多被分解到m个正交基上去: 其中,c系数向量,一定是非稀疏的(稀疏的话就铁定不是正交基了) g的集合成为完备正交基。 此时,如果将该m维信号向量分解到n个m维向量上去: 此时,显然a的集合不是完备正交基。此时,由于n超越了向量空间维数m,因此a的集合称为过完备的。 这个过完备的集合组成的一个矩阵 称为字典。 稀疏表示 已准备将y分解到n个m维向量上,现需求得其系数向量x 由于n>m,因此该方程为欠定方程,有自由未知量,不能直接求出确解。 一种方法是求其最小L0范数解。 (1) L0即向量x的非零元素的个数。 这样的解法,解出的一定是一个稀疏向量。 若添加扰动,方程变化为: (2) 此时, 称为信号的稀疏分解 (1)称x为y相对于字典A的稀疏表示 (2)称x为y相对于字典A的稀疏逼近 x最稀疏时,称x为y相对于字典A的最稀疏表示。 来源: CSDN 作者: 数学的花火 链接: https://blog.csdn.net/RSstudent/article/details/104441050

正则化

 ̄綄美尐妖づ 提交于 2020-02-03 01:45:31
文章来源 本文是作者摘抄 且行且安~ 的文章, 当时由于不懂w变化,故留用于以后随时查看,【侵删】 目录 一、Why & What 正则化 1 概念 2、先讨论几个问题: 二、一般正则项 三、深入理解 一、Why & What 正则化 我们总会在各种地方遇到正则化这个看起来很难理解的名词,其实它并没有那么高冷,是很好理解的 首先,从使用正则化解决了一个什么问题的角度来看:正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error),其实就是使用训练数据训练的模型在测试集上的表现(或说性能 performance)好不好 过拟合 如上图,红色这条“想象力”过于丰富上下横跳的曲线就是过拟合情形。结合上图和正则化的英文 Regularizaiton-Regular-Regularize,直译应该是:规则化(加个“化”字变动词,自豪一下中文还是强)。什么是规则?你妈喊你6点前回家吃饭,这就是规则,一个限制。同理,在这里,规则化就是说给需要训练的目标函数加上一些规则(限制),让他们不要自我膨胀。正则化,看起来,挺不好理解的,追其根源,还是“正则”这两字在中文中实在没有一个直观的对应,如果能翻译成规则化,更好理解。但我们一定要明白,搞学术,概念名词的准确是十分重要,对于一个重要唯一确定的概念

算法与数据结构之稀疏数组

半世苍凉 提交于 2020-02-03 00:48:34
欢迎查看我的博客: https://Mr00wang.github.io 学习笔记 算法与数据结构之稀疏数组 稀疏数组 一、介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,也可以理解为压缩数组。 稀疏数组的处理方法: 记录数组一共有几行几列,有多少个不同的值。 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 二、实例 使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等) 把稀疏数组存盘,并且可以从新恢复原来的二维数组数 整体思路分析: 首先需要将二维数组转换为稀疏数组,然后再将稀疏数组写入到磁盘文件中 通过磁盘文件读取稀疏数组,然后再转换为原来数组 二维数组转稀疏数组的思路: 遍历原始的二维数组,得到有效数据的个数sum 根据sum就可以创建稀疏数组 spareArray = int [sum+1] [3] 将二维数组的有效数据存入到稀疏数组 稀疏数组转原始数组的思路: 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二位数组,比如上面的array = int [11] [11] 在读取稀疏数组后几行的数据,并赋给原始的二维数组即可 三、代码实现 public class SparseArray { public static void main ( String [ ] args ) { /

L1和L2:损失函数和正则化

a 夏天 提交于 2020-01-29 16:08:52
作为损失函数 L1范数损失函数    L1 范数损失函数 ,也被称之为最小绝对值误差。总的来说,它把目标值$Y_i$与估计值$f(x_i)$的 绝对差值 的总和最小化。 $$S=\sum_{i=1}^n|Y_i-f(x_i)|$$ L2范数损失函数    L2 范数损失函数 ,也被称为最小平方误差,总的来说,它把目标值$Y_i$与估计值$f(x_i)$的 差值的平方和 最小化。 $$S=\sum_{i=1}^n(Y_i-f(x_i))^2$$ L1损失函数 L2损失函数 鲁棒 不是很鲁棒 不稳定性 稳定解 可能多个解 总是一个解    总结一下 :L2范数loss将误差平均化( 如果误差大于1,则误差会放大很多 ),模型的误差会比L1范数来得大,因此模型会对样本更加敏感,这就需要调整模型来最小化误差。如果有个样本是一个异常值,模型就需要调整以适应单个的异常值,这会牺牲许多其他正常的样本,因为这些正常的样本的误差比这单个的异常值的误差小。 作为正则化   我们经常会看见损失函数后面添加一个额外项,一般为 L1-norm , L2-norm ,中文称作 L1正则化 和 L2正则化 ,或者 L1范数 和 L2函数 。   L1正则化和L2正则化可以看做是损失函数的 惩罚项 。所谓『惩罚』是指对损失函数中的某些参数做一些限制。 防止模型过拟合而加在损失函数后面的一项。 L1正规化  

基于深度学习的图像超分辨率方法 总结 2018.6

不打扰是莪最后的温柔 提交于 2020-01-16 08:24:00
基于深度学习的SR方法 懒得总结,就从一篇综述中选取了一部分基于深度学习的图像超分辨率方法。 原文:基于深度学习的图像超分辨率复原研究进展 作者:孙旭 李晓光 李嘉锋 卓力 北京工业大学信号与信息处理研究室 来源:中国知网 1.基于前馈深度网络的方法 前馈深度网络是典型的深度学习模型之一。网络中各个神经元从输入层开始,接收前一级输入,并输入到下一级, 直至输出层。整个网络中无反馈, 可用一个有向无环图表示。 在深度学习的SR问题中,前馈深度网络能够较好地学习低分辨率图像到高分辨率图像之间的对应关系。在输入层中,它采用卷积的方法提取输入图像的局部特征模式,单向传递给隐含层, 随着隐含层网络层数的加深而学习得到更深层级的特征;最后,由输出层得到重建图像。典型的前馈深度网络包括多层感知器和卷积神经网络(CNN)。 按前馈深度网络的网络类型可以分为以下几类:基于卷积神经网络的方法 (Super resolution using convolution neural network,SRCNN) ;基于极深网络的方法 (Very deep networks for SR,VDSR) ;基于整合先验的卷积神经网络的方法 (SR-CNN with Prior,SRCNN-Pr) ;基于稀疏编码网络的方法(Sparse coding based network,SCN) 和基于卷积稀疏编码的方法

压缩感知理论模型

可紊 提交于 2020-01-14 14:32:02
本文依据压缩感知群中Ammy讲解整理所得 最初的压缩感知是由Candès、Donoho他们提出来的问题。最初压缩感知那几篇文章里的模型 : y = Φ ∗ x ( 模 型 一 ) 都是从纯数学角度来考虑的,问题也是针对稀疏信号x研究的。研究的是:什么样的 Φ ,以怎样的方式,能够从 y 中恢复 x 。 在后续的研究过程中发现很多信号x压根不稀疏,自然也就不满足模型一的要求了。经过研究发现,虽然信号x不稀疏但是可以通过某种正交变换使信号变的稀疏。这也就产生了第二种稀疏模型: y = Φ ∗ Ψ T ∗ x ( 模 型 二 ) θ = Ψ T ∗ x :现将信号 x 进行某种正交变换,得到稀疏信号 θ 。其中 θ 是稀疏的, Ψ T 是 Ψ 的转置,也就是 Ψ 的逆 Ψ ′ 。 y = Φ ∗ θ :通过变换后的信号 θ 满足了模型一的条件。 y = Φ ∗ Ψ T ∗ x :将 θ 代入到模型一也就得到了模型二了。 这种稀疏变换的模型,叫做 a n a l y s i s m o d e l ,将 x 利用 Ψ T 分解成 θ 。例如,小波分解;例如,傅里叶分解。 随着稀疏表示模型的发展,人们发现不仅仅能够通过变换得到稀疏的信号还可以通过一个字典得到稀疏信号 x = D ∗ θ ( θ 是稀疏的,而 D 非正交)。Candès在09年的一篇文章中给出了压缩感知在过完备字典下的表示:

主流CTR预估模型的演化及对比

无人久伴 提交于 2020-01-14 02:26:30
https://zhuanlan.zhihu.com/p/35465875 学习和预测用户的反馈对于个性化推荐、信息检索和在线广告等领域都有着极其重要的作用。在这些领域,用户的反馈行为包括点击、收藏、购买等。本文以点击率(CTR)预估为例,介绍常用的CTR预估模型,试图找出它们之间的关联和演化规律。 数据特点 在电商领域,CTR预估模型的原始特征数据通常包括多个类别,比如[Weekday=Tuesday, Gender=Male, City=London, CategoryId=16],这些原始特征通常以独热编码(one-hot encoding)的方式转化为高维稀疏二值向量,多个域(类别)对应的编码向量链接在一起构成最终的特征向量。 高维、稀疏、多Field是输入给CTR预估模型的特征数据的典型特点。以下介绍的模型都假设特征数据满足上述规律,那些只适用于小规模数据量的模型就不介绍了。 Embedding表示 由于即将要介绍的大部分模型都或多或少使用了特征的embedding表示,这里做一个简单的介绍。 Embedding表示也叫做Distributed representation,起源于神经网络语言模型(NNLM)对语料库中的word的一种表示方法。相对于高维稀疏的one-hot编码表示,embedding-based的方法,学习一个低维稠密实数向量(low

浅谈压缩感知(十):范数与稀疏性

≡放荡痞女 提交于 2020-01-13 22:05:45
问题: 压缩感知中算法会通过L0,L1范数建立的数学模型得到一个稀疏解,那么为什么L0,L1范数会导致一个稀疏解呢? 分析与解释: 1、范数 常见的有 L 0范数、 L 1范数、 L 2范数,经常要将 L 0范数等价为 L 1范数去求解,因为 L 1范数求解是一个凸优化问题,而 L 0范数求解是一个NP难问题。 (关于NP问题:参考阅读 http://www.cnblogs.com/AndyJee/p/5048556.html ) L 0范数指的是x中非零元素的个数,即x的稀疏度,如果x是K稀疏的,则 L 0范数等于K; L 1范数指的是x中所有元素模值的和; L 2范数指的是x中所有元素模值平方的和再开方,它代表着距离的概念; 还有无穷范数,指的是x中元素模的最大值。 2、稀疏性 在压缩感知里经常提到 "K稀疏" 的概念,这个是很容易理解的:也就是对于长度为N的向量(实际上是指一个N维离散离值信号)来说,它的N个元素值只有K个是非零的,其中K<<N,这时我们称这个向量是K稀疏的或者说是严格K稀疏的;实际中要做到严格K稀疏不容易,一般来说,只要除了这K个值其它的值很小很小,我们就认为向量是稀疏的,这时区别于严格K稀疏且就叫它K稀疏吧。 为什么要谈稀疏这个问题呢?因为如果信号是稀疏的,则它是可压缩的,也就是说里面那么多零,我只记录那些非零值及它的位置就好了。 当然