范数

常见的距离算法和相似度(相关系数)计算方法

三世轮回 提交于 2020-02-15 15:29:27
背景:数据挖掘/机器学习中的术语较多,而且我的知识有限。之前一直疑惑正则这个概念。所以写了篇博文梳理下 摘要:   1.正则化(Regularization)     1.1 正则化的目的      1.2 结构风险最小化(SRM)理论     1.3 L1范数(lasso),L2范数(ridge),ElasticNet     1.4为什么说L1是稀疏的,L2是平滑的?   2.归一化 (Normalization)     2.1归一化的目的     2.1归一化计算方法       2.2.spark ml中的归一化     2.3 python中skelearn中的归一化 知识总结: 1.正则化(Regularization) 1.1 正则化的目的:我的理解就是平衡训练误差与模型复杂度的一种方式,通过加入正则项来避免过拟合(over-fitting)。(可以引入拟合时候的龙格现象,然后引入正则化及正则化的选取,待添加) 1.2 结构风险最小化(SRM)理论:    经验风险最小化 + 正则化项 = 结构风险最小化   经验风险最小化(ERM),是为了让拟合的误差足够小,即:对训练数据的预测误差很小。但是,我们学习得到的模型,当然是希望对未知数据有很好的预测能力(泛化能力),这样才更有意义。当拟合的误差足够小的时候,可能是模型参数较多,模型比较复杂,此时模型的泛化能力一般

C++ 与OpenCV 学习笔记

♀尐吖头ヾ 提交于 2020-02-11 02:12:03
依赖:指针是一个变量,指向本体;引用只是一个别名(本体的另一个名字),绑定在主体上 可变:引用只能在定义时被初始化一次,且“从一而终”;指针可以修改,“见异思迁”; 可空:引用不能为空;指针可以为空; 大小:sizeof 引用,得到的是所指向变量的大小;sizeof 指针,得到的是指针的大小; 自增:指针 ++,是指指针的地址自增;引用++是指所指变量自增; 类型:引用是类型安全的,引用过程会进行类型检查;指针不会进行安全检查; 联合体:当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union) 1. 联合体是一种结构; 2. 他的所有成员相对于基地址的偏移量均为0; 3. 此结构空间要大到足够容纳最“宽”的成员;   //但是其大小不仅仅由最宽的成员决定,还需要考虑每个成员的自身对齐方式! 4. 其对齐方式要适合其中所有的成员。 const作用: c++编译器会在编译时,把常量优化成立即数,减少内存访问。因此,能够使用const的变量(在运行过程中不会发生变化的变量),尽量使用const去修饰。 特别是处理矩阵以及图像指针运算时。 inline function 内联函数: 函数调用的开销是很大的,如果有一段短小而需要频繁调用的函数,可以写为内联函数。 也就是建议编译器在函数调用点上展开代码后再进行编译。 这里的建议意思是,如果函数较复杂,编译器是不会内联的

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正规化  

pytorch_study

此生再无相见时 提交于 2020-01-28 11:28:56
文章目录 **1 资源汇总 ** 2 常见深度学习框架中的Tensor的通道顺序 **3 常见颜色通道顺序 1 PyTorch Tutorials 1: [入门-1 60分钟闪电战](https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html) 1.1 [什么是PyTorch](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py) 1.1.1 tensor 1.1.2 operations (1) 加法的语法: (2) tensor的索引与NumPy的索引类似 (3) 调整大小:torch.view (4) .item() 1.1.3 NumPy Bridge 1.1.4 Converting NumPy Array to Torch Tensor 将NumPy数组转换为Torch张量 1.1.5 CUDA Tensors 1.2 [Autograd: 自动分化](https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner

tensorflow 2.0 深度学习(第四部分 循环神经网络)

落爺英雄遲暮 提交于 2020-01-26 19:46:23
基础知识 梯度传播相关原理 梯度传播原理 梯度弥散、梯度爆炸 >>> import tensorflow as tf >>> W = tf.ones([2,2]) # 任意创建某矩阵 >>> W <tf.Tensor: id=2, shape=(2, 2), dtype=float32, numpy= array([[1., 1.], [1., 1.]], dtype=float32)> >>> tf.linalg.eigh(W) (<tf.Tensor: id=3, shape=(2,), dtype=float32, numpy=array([0., 2.], dtype=float32)>, <tf.Tensor: id=4, shape=(2, 2), dtype=float32, numpy= array([[-0.70710677, 0.70710677], [ 0.70710677, 0.70710677]], dtype=float32)>) >>> tf.linalg.eigh(W)[0] # 计算特征值:此时的W矩阵的最大特征值为2,那么下面演示的是最大特征值大于1时的矩阵相乘 <tf.Tensor: id=5, shape=(2,), dtype=float32, numpy=array([0., 2.], dtype=float32)> >>> tf

所谓范数及其在机器学习中的作用

断了今生、忘了曾经 提交于 2020-01-26 03:21:09
本文参考: 1、 https://www.jianshu.com/p/4bad38fe07e6 2、 https://zhuanlan.zhihu.com/p/26884695 3、深度学习入门:基于Python的理论与实现 斋藤康毅(作者) 理解范数 - : 在很多机器学习相关书籍中我们经常看到各种各样的距离及范数,如 、 其中, , 分别表示向量和矩阵。 也有其他的欧氏距离、均方差之类,例如,向量 的欧式范数 (Euclidean norm)为 用于表示向量的大小,这个也被叫 -范数。 为方便统一,一般将任意向量 的 -范数定义为 主要有三类: 、 、 范数的定义: 根据 -范数的定义,当p=0时,我们就有了 -范数 表示向量x中非0元素的个数(0的0次方是0,非零的0次方是1,所以所有的零元素全都没了,只剩下非零元素变成的1了) 大佬是这么说的: 在诸多机器学习模型中,比如压缩感知 (compressive sensing),我们很多时候希望最小化向量的 -范数。一个标准的 -范数优化问题往往可以写成如下形式: 然而,由于 -范数仅仅表示向量中非0元素的个数,因此,这个优化模型在数学上被认为是一个NP-hard问题,即直接求解它很复杂、也不可能找到解。 需要注意的是,正是由于该类优化问题难以求解,因此,压缩感知模型是将 -范数最小化问题转换成 -范数最小化问题。 我就看不懂了

tensorflow数据统计

拜拜、爱过 提交于 2020-01-22 22:19:48
本篇内容包括,tf.norm(张量的范数)、tf.reduce_min/max(最大最小值)、tf.argmax/argmin(最大最小值的位置)、tf.equal(张量的比较)、tf.unique(张量的独特值) 1.tf.norm   · 二范数 ||x|| 2 = (Σx k 2 ) 1/2   · 一范数 ||x|| 1 = Σ|x k |   · 无穷范数 ||x|| ∞ = max|x k | # 二范数 a = tf.ones([2,2]) print(tf.norm(a)) print(tf.norm(a,ord=2,axis=0)) print(tf.sqrt(tf.reduce_sum(tf.square(a)))) # 一范数 print(tf.norm(a,ord=1)) print(tf.norm(a,ord=1,axis=0)) print(tf.norm(a,ord=1,axis=1)) 2.reduce_min/max/mean a = tf.random.normal([4,10]) # 全值,即把tensor打平为[40] print(tf.reduce_min(a),tf.reduce_max(a),tf.reduce_mean(a)) # 指定参数轴 print(tf.reduce_min(a,axis=1),tf.reduce_max(a

浅谈矩阵分解在推荐系统中的应用

纵饮孤独 提交于 2020-01-22 21:43:59
  为了方便介绍,假设推荐系统中有用户集合有6个用户,即U={u1,u2,u3,u4,u5,u6},项目(物品)集合有7个项目,即V={v1,v2,v3,v4,v5,v6,v7},用户对项目的评分结合为R,用户对项目的评分范围是[0, 5]。R具体表示如下: 推荐系统的目标就是预测出符号“?”对应位置的分值。推荐系统基于这样一个假设:用户对项目的打分越高,表明用户越喜欢。因此,预测出用户对未评分项目的评分后,根据分值大小排序,把分值高的项目推荐给用户。怎么预测这些评分呢,方法大体上可以分为基于内容的推荐、协同过滤推荐和混合推荐三类,协同过滤算法进一步划分又可分为基于基于内存的推荐(memory-based)和基于模型的推荐(model-based),本文介绍的矩阵分解算法属于基于模型的推荐。 矩阵分解算法的数学理论基础是矩阵的行列变换。在《线性代数》中,我们知道矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为A=PEQ=PQ(E是标准阵)。 矩阵分解目标就是把用户-项目评分矩阵R分解成用户因子矩阵和项目因子矩阵乘的形式,即R=UV,这里R是n×m, n =6, m =7,U是n×k,V是k×m。直观地表示如下: 高维的用户-项目评分矩阵分解成为两个低维的用户因子矩阵和项目因子矩阵,因此矩阵分解和PCA不同,不是为了降维

【花书笔记】第2章 线性代数

久未见 提交于 2020-01-16 02:02:57
本系列博客作为记录花书的一些知识点,一些“显而易见”的,我就不多写了 2.1 标量、向量、矩阵和张量 标量:一个单独的数。 向量:一列数。 矩阵:一个二维数组。 张量:一个数组中的元素分布在若干维坐标的规则网络中,我们称之为张量。 转置:矩阵的转置是以对角线为轴的镜像。 2.2 矩阵和向量相乘 矩阵乘积: 元素对应乘积(Hadamard乘积):两个矩阵的标准乘积不是指两个矩阵中对应元素的乘积。不过,那样的矩阵操作确实是存在的,被称为元素对应乘积(element-wise product)或者Hadamard 乘积(Hadamard product),记为 A ⊙ B。 点积:两个相同维数的向量 x 和 y 的点积(dot product)可看作是矩阵乘积 x ⊤ y。 2.3 单位矩阵和逆矩阵 单位矩阵: 逆矩阵: 2.4 线性相关和生成子空间 线性相关: 线性无关:如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,那么这组向量称为线性无关。 2.5 范数 1. 2.范数是满足下列性质的任意函数: 3.p=2时,L²范数是欧几里得范数,表示从原点出发到向量x确定的点的欧几里得距离。 4.平方L²范数也经常用来衡量向量的大小,可以简单的通过点积 计算。 5.平方L²范数在计算上比L²范数本身方便,但是它在原点附近增长得十分缓慢。在某些机器学习应用中

机器学习相关参考

混江龙づ霸主 提交于 2020-01-14 05:30:23
特征工程相关 特征选择 特证工程学习笔记 Feature-Engineering中文版 缺失值填充方法 机器学习_数据处理及模型评估相关资料 训练模型填充空值(fill null)的几种方法 范数 0范数,1范数,2范数的几何意义 机器学习中的范数规则化之(一)L0、L1与L2范数 矩阵 Matrix calculus(矩阵微积分)关于矩阵求导 如何理解相似矩阵 矩阵求导术(上) 矩阵求导术(下) 孟岩的理解矩阵(一)(二)(三)(辅助理解) https://blog.csdn.net/myan/article/details/647511 https://blog.csdn.net/myan/article/details/649018 https://blog.csdn.net/myan/article/details/1865397 如何理解矩阵特征值 奇异值分解SVD 矩阵求导、几种重要的矩阵及常用的矩阵求导公式 Scalar-by-vector identities 高数&算法 马同学高等数学 牛顿法 逻辑回归 深入理解SVM之对偶问题 EM算法 支持向量机(强烈推荐) others 西瓜书第3,6,10详细讲解 来源: CSDN 作者: whime_sakura 链接: https://blog.csdn.net/whimewcm/article/details