范数

深度学习之数学基础(线性代数篇)

空扰寡人 提交于 2019-12-06 01:53:09
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/z4909801/article/details/78359952 2-1、标量 一个标量就是一个单独的数,一般用小写的的变量名称表示。 2-2、向量 一个向量就是一列数,这些数是有序排列的。用过次序中的索引,我们可以确定每个单独的数。通常会赋予向量粗体的小写名称。当我们需要明确表示向量中的元素时,我们会将元素排 列成一个方括号包围的纵柱: 我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标。 2-3、矩阵 矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如A。 如果一个实数矩阵高度为m,宽度为n,那么我们说 。 2-4、张量 几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。 例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分别是图片的高度、宽度和色彩数据。将这张图用张量表示出来,就是最下方的那张表格: 其中表的横轴表示图片的宽度值,这里只截取0~319;表的纵轴表示图片的高度值,这里只截取0~4;表格中每个方格代表一个像素点,比如第一行第一列的表格数据为[1.0,1.0,1

深入浅出深度学习(三)线性代数基础

半世苍凉 提交于 2019-12-06 01:53:05
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/jiaoyangwm/article/details/79284644 一、标量、向量、矩阵、张量 标量(scalar) 一个数值,最小的计算单元 向量(vector) 由多个标量组成的一维数组 矩阵(matrix) 由标量数据构成的二维数组 张量(tensor) 深度学习领域,很多时候数据都是高于二维的,所以需要一种能够表示任意维度的数据类型——张量。 二、向量范数 衡量向量大小的一种度量方式,几何意义上是度量从原点到点x的距离。范数是正则化的主要手段,用来衡量模型的复杂度。 1. 0范数——表示向量中非0元素的个数 2. 1范数——绝对值范数,表示向量中所有元素的绝对值之和。 3. 2范数——欧几里得范数,也就是通常意义上的模值。 4. 范数——向量中每个元素绝对值的最大值 来源: https://www.cnblogs.com/php-linux/p/11955692.html

正则化

狂风中的少年 提交于 2019-12-05 11:32:20
正则化 解释 L1正则化在尖角处更大概率发生碰撞,此时的解 \(w_1 = 0\) L2正则化:使得模型的解偏向于范数较小的 \(W\) ,通过限制 \(W\) 范数的大小实现了对模型空间的限制,从而在一定程度上避免了过拟合。不过岭回归并不具有产生稀疏解的能力,得到的系数仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观 L1正则化:能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性” L0正则化的值是模型参数中非零参数的个数,但难以求解。L1正则是L0正则的最优凸近似 约束解释 带正则项和带约束条件是等价的。为了约束 \(w\) 的可能取值空间防止过拟合,加上约束(这里的限制条件是2范数,对应于L2正则化)的优化问题变为: \[\begin{aligned} \begin{cases} \mathop{\min} \sum \limits_{i=1}^N (y_i - w^Tx_i)^2 \\ s.t. ||w||^2_2 \leq m \end{cases} \end{aligned}​\] 对应拉格朗日函数 \(\sum \limits_{i=1}^N(y_i - w^Tx_i)^2 + \lambda (||w||_2^2 - m)\) 若 \(w^*\) 和 \(\lambda^*\)

深度 | 生成对抗网络初学入门:一文读懂GAN的基本原理(附资源)

断了今生、忘了曾经 提交于 2019-12-05 09:57:24
文章来源 机器之心公众号 http://mp.weixin.qq.com/s/4CypEZscTfmUzOk-p_rZog 2017-09-10 Roman Trusov 机器之心 选自 Sigmoidal 作者:Roman Trusov 机器之心编译 参与:Panda 生成对抗网络是现在人工智能领域的当红技术之一。近日,Sigmoidal.io 的博客发表了一篇入门级介绍文章,对 GAN 的原理进行了解释说明。另外,在该文章的最后还附带了一些能帮助初学者自己上手开发实验的资源(包含演讲、教程、代码和论文),其中部分资源机器之心也曾有过报道或解读,读者可访问对应链接查阅。 你怎么教一台从未见过人脸的机器学会绘出人脸?计算机可以存储拍字节级的照片,但它却不知道怎样一堆像素组合才具有与人类外表相关的含义。 多年以来,已经出现了很多各种各样旨在解决这一问题的生成模型。它们使用了各种不同的假设来建模数据的基本分布,有的假设太强,以至于根本不实用。 对于我们目前的大多数任务来说,这些方法的结果仅仅是次优的。使用隐马尔可夫模型生成的文本显得很笨拙,而且可以预料;变分自编码器生成的图像很模糊,而且尽管这种方法的名字里面有「变」,但生成的图像却缺乏变化。所有这些缺陷都需要一种全新的方法来解决,而这样的方法最近已经诞生了。 在这篇文章中,我们将对生成对抗网络(GAN)背后的一般思想进行全面的介绍

numpy.linalg.norm() 求范数

白昼怎懂夜的黑 提交于 2019-12-05 09:10:49
1、linalg=linear(线性)+algebra(代数),norm则表示范数。 2、函数参数 x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False) ①x: 表示矩阵(也可以是一维) ②ord:范数类型 向量的范数: 矩阵的范数: ord=1:列和的最大值 ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算术平方根( matlab在线版 ,计算ans=ATA,[x,y]=eig(ans),sqrt(y),x是特征向量,y是特征值) ord=∞:行和的最大值 ord=None:默认情况下,是求整体的矩阵元素平方和,再开根号。(没仔细看,以为默认情况下就是矩阵的二范数,修正一下,默认情况下是求整个矩阵元素平方和再开根号) ③axis:处理类型 axis=1表示按行向量处理,求多个行向量的范数 axis=0表示按列向量处理,求多个列向量的范数 axis=None表示矩阵范数。 ④keepding:是否保持矩阵的二维特性 True表示保持矩阵的二维特性,False相反 3、代码实现 import numpy as npx = np.array([ [0, 3, 4], [1, 6, 4]])#默认参数ord=None,axis=None,keepdims=Falseprint "默认参数

Rubost PCA 优化

你说的曾经没有我的故事 提交于 2019-12-04 19:51:59
Rubost PCA 优化 2017-09-03 13:08:08 YongqiangGao 阅读数 2284 更多 分类专栏: 背景建模 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u010510350/article/details/77803572 最近一直在看Robust PCA做背景建模的paper, 顺便总结了一下了Robust PCA.前面一篇博客介绍了 PCA与Robust PCA区别 ,本篇博客总结Robust PCA 常见的优化方法,欢迎交流学习。在这里强烈推荐一篇博客 Rachel Zhang的Robust PCA 学习笔记 。 1.预备知识 2.问题描述 许多实际应用中已知的数据矩阵D往往是低秩或近似低秩的,但存在随机幅值任意大且分布稀疏的误差破坏了原有数据的低秩性,为了恢复矩阵D的低秩结构,可将矩阵D分解为两个矩阵之和,即D=A+E,其中矩阵A和E未知,但A是低秩的,E是稀疏的。 当矩阵E的元素服从独立同分布的高斯分布时,可用经典的PCA来获得最优的矩阵A,即转换为如下最优化问题: 当E为稀疏的大噪声矩阵时,同时引入折中因此,此问题可转化为如下优化问题: 上式中秩函数、0范数均非凸,变成了NP-hard问题,需要对其松弛,方可进行优化

L0、L1、L2范数正则化

无人久伴 提交于 2019-12-04 10:46:46
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1). https://zhuanlan.zhihu.com/p/74874291 (2). 逻辑回归与交叉熵 (3). https://www.cnblogs.com/pinard/p/6029432.html (4). https://zhuanlan.zhihu.com/p/76563562 (5). https://www.cnblogs.com/ModifyRong/p/7739955.html 一、逻辑回归介绍   逻辑回归(Logistic Regression)是一种广义线性回归。线性回归解决的是回归问题,预测值是实数范围,逻辑回归则相反,解决的是分类问题,预测值是[0,1]范围。所以逻辑回归名为回归,实为分类。接下来让我们用一句话来概括逻辑回归(LR): 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。 这句话包含了五点,接下来一一介绍: 逻辑回归的假设 逻辑回归的损失函数 逻辑回归的求解方法 逻辑回归的目的 逻辑回归如何分类 二、逻辑回归的假设 任何的模型都是有自己的假设,在这个假设下模型才是适用的。 逻辑回归的第一个基本假设是假设数据服从伯努利分布。 伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败

过拟合解决方案之正则化

﹥>﹥吖頭↗ 提交于 2019-12-04 08:12:37
1.过拟合问题 对于过拟合问题,通常原因是模型选择太过复杂,也有可能是训练数据太少。对于模型太复杂的情况,我们一般有如下考虑:一是通过分析删除部分特征(比如重复多余的特征或者对输出值贡献不太大的特征),但是这样有可能会损失一部分信息。所以,我们可以通过正则化的方法来降低参数值,从而避免过拟合问题。对于过拟合问题的详细描述,可以查看我的另一篇博客 机器学习之欠拟合与过拟合 。 2.正则化 回顾一下,在回归问题中,在确定模型之后,要根据该损失函数找出使得损失函数最小的参数矩阵。在整个回归过程中,最为重要的一步是确定回归模型。通常情况下,如果选择的模型太简单,就会欠拟合。如果模型选择太复杂,就会过拟合。正则化可以很好地解决之一问题,通过对某些参数进行“惩罚”,就可以达到降低参数值的目的。正则化的方法有很多,这里仅介绍L1正则化和L2正则化,对应的分别是Lasson回归和Ridge回归。正则化就是在损失函数中加入正则项(用 \(\Omega(\theta)\) 表示),L1正则对应的正则项为: \(L1 = \lambda\sum_{i=1}^n|\theta_i|\) ,L2对应的正则项是: \(L2 = \lambda\sum_{i=1}^n\theta_i^2\) 。例如线性回归的正则化损失函数为: \[J(\theta)={1\over 2m} \sum_{i=1}^m (h_

Scikit-learn Preprocessing 预处理

偶尔善良 提交于 2019-12-03 02:51:50
本文主要是对照 scikit-learn的preprocessing 章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化、数据最大最小缩放处理、正则化、特征二值化和数据缺失值处理。 数学基础 均值公式: $$\bar{x}=\frac{1}{n} \sum_{i=1}^{n} x_{i}$$ 方差公式: $$s^{2}=\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}$$ 0-范数,向量中非零元素的个数。 1-范数: $$\|X\|=\sum_{i=1}^{n}\left|x_{i}\right|$$ 2-范数: $$\|X\|_{2}=\left(\sum_{i=1}^{n} x_{i}^{2}\right)^{\frac{1}{2}}$$ p-范数的计算公式: $$\|X\|_{p}=\left(|x 1|^{p}+|x 2|^{p}+\ldots+|x n|^{p}\right)^{\frac{1}{p}}$$ 一、标准化(Standardization) 实际操作中,经常忽略特征数据的分布形状,移除每个特征均值,划分离散特征的标准差,从而等级化,进而实现数据中心化。(做概率论的题经常用这招啊) 但是,当单个特征的样本取值相差甚大或明显不遵从高斯正态分布时,标准化表现的效果较差。 公式为:(X-X

L0、L1、L2范数正则化

微笑、不失礼 提交于 2019-12-03 02:27:54
一、范数的概念 向量范数是定义了向量的类似于长度的性质,满足正定,齐次,三角不等式的关系就称作范数。 一般分为L0、L1、L2与L_infinity范数。 二、范数正则化背景 1. 监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。 2 .  因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来实现的。另外,规则项的使用还可以约束我们的模型的特性 。 这样就可以将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。要知道,有时候人的先验是非常重要的。前人的经验会让你少走很多弯路,这就是为什么我们平时学习最好找个大牛带带的原因。一句点拨可以为我们拨开眼前乌云,还我们一片晴空万里,醍醐灌顶。对机器学习也是一样,如果被我们人稍微点拨一下