范数

LSTM比较RNN

匿名 (未验证) 提交于 2019-12-02 23:43:01
LSTM只能避免RNN的梯度消失(gradient vanishing),但是不能对抗梯度爆炸问题(Exploding Gradient)。 梯度膨胀(gradient explosion)不是个严重的问题,一般靠裁剪后的优化算法即可解决,比如gradient clipping(如果梯度的范数大于某个给定值,将梯度同比收缩)。 梯度剪裁的方法一般有两种: 1.一种是当梯度的某个维度绝对值大于某个上限的时候,就剪裁为上限。 2.另一种是梯度的L2范数大于上限后,让梯度除以范数,避免过大。

[转] L1 && L2范数

匿名 (未验证) 提交于 2019-12-02 23:39:01
作者:Andy Yang 链接:https://www.zhihu.com/question/26485586/answer/616029832 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 理解L1,L2 范数 L1,L2 范数即 L1-norm 和 L2-norm ,自然,有L1、L2便也有L0、L3等等。因为在机器学习领域,L1 和 L2 范数应用比较多,比如作为正则项在回归中的使用 Lasso Regression (L1) 和 Ridge Regression (L2)。 因此,此两者的辨析也总被提及,或是考到。不过在说明两者定义和区别前,先来谈谈什么是范数(Norm)吧。 什么是范数? 在线性代数以及一些数学领域中,norm 的定义是 a function that assigns a strictly positive length or size to each vector in a vector space, except for the zero vector. ――Wikipedia 简单点说,一个向量的 norm 就是将该向量 投影到 [0, ) 范围内的值 ,其中 0 值只有零向量的 norm 取到。看到这样的一个范围,相信大家就能想到其与现实中距离的类比,于是在机器学习中 norm 也就总被拿来 表示距离关系

Lipschitz constraint in deep learning

匿名 (未验证) 提交于 2019-12-02 23:36:01
1. “稳健”模型:满足L约束 (1)对于参数扰动的稳定性 如模型 与 是否有相近的效果。 (2)对于输入扰动的稳定性 如 与 是否有相近的效果。 2. L约束: 当 , 。 存在某个常数C(与参数有关,与输入无关),使下式恒成立 其中, 越小越好,意味着对输入扰动越不敏感。 3. 神经网络中的L约束: 单层全连接 , 为激活函数, 为参数矩阵(向量),则 让 充分接近,则 由于现有激活函数如sigmoid,relu等满足“导数有上下界”,则 (每个元素)的绝对值都不超过某个常数,则 希望C尽可能小,从而给参数带来一个正则化项 。 4. 矩阵范数: F范数(Frobenius Norm):(又称L2范数)――deep中常用的L2正则化就是这种。 通过柯西不等式,有 。 谱范数(Spectral Norm):(又称2范数或谱半径) , Ϊ (Hermite矩阵)的最大特征值 谱范数 等于 的最大特征根(主特征根)的平方根,若 是方阵,则 等于W的最大的特征根的绝对值。 则: Ϊ 提供了一个上界, 是最准确的C,如果不太关心精准度,则C取 也可以。 5. L2正则项: (L2正则化与F范数的关系) 由于谱范数暂时没有计算出来,则先计算一个更大的上界 ,此时神经网络的loss为 表明L2正则化使模型更好地满足L约束,降低模型对输入扰动的敏感性,增强模型的泛化性能。 6. 幂迭代求谱范数:

Python数据预处理(sklearn.preprocessing)―归一化(MinMaxScaler),标准化(StandardScaler),正则化(Normalizer, normalize)

匿名 (未验证) 提交于 2019-12-02 22:51:30
关于数据预处理的几个概念 归一化 (Normalization): 属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现。 常用的最小最大规范化方法(x-min(x))/(max(x)-min(x)) 除了上述介绍的方法之外,另一种常用的方法是将属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现。 使用这种方法的目的包括: 1、对于方差非常小的属性可以增强其稳定性。 2、维持稀疏矩阵中为0的条目 >>> X_train = np.array([[ 1., -1., 2.], ... [ 2., 0., 0.], ... [ 0., 1., -1.]]) ... >>> min_max_scaler = preprocessing.MinMaxScaler() >>> X_train_minmax = min_max_scaler.fit_transform(X_train) >>> X_train_minmax array([[ 0.5 , 0. , 1. ], [ 1. , 0.5 , 0.33333333], [ 0. , 1. , 0. ]]) >>> #将相同的缩放应用到测试集数据中 >>> X_test = np.array([[

PyTorch学习笔记

瘦欲@ 提交于 2019-11-30 12:49:33
【PyTorch深度学习60分钟快速入门 】Part1:PyTorch是什么?来源:https://www.cnblogs.com/leejack/p/8370634.html import torch import numpy as np #用于替代NumPy(torch对象叫张量,带前缀和括号,并用逗号分隔,numpy对象叫数组,用空格分隔),#torch可以使用GPU的计算力,一种深度学习研究平台,可以提供最大的灵活性和速度 x = torch.Tensor(5, 3) #创建一个5x3且未初始化的矩阵,如果将首字母大写的Tensor改成小写tensor,会报错 #print(x) x = torch.rand(5, 3)#创建一个随机初始化的矩阵rand表示0~1之间均匀分布的随机数 #print(x) #print(x.size()) y = torch.rand(5, 3) #print(x + y) #print(torch.add(x, y)) result = torch.Tensor(5, 3) #print(result) torch.add(x, y, out=result) #print(result) y.add_(x) #原地替换,任何原地改变张量值的操作后缀都是固定的_,例如:x.copy_(y)、x.t_(),都将原地改变x的值。 #print(y

Python与线性代数基本概念

牧云@^-^@ 提交于 2019-11-30 08:15:26
在Python中使用Numpy创建向量: x = np.array([1, 2, 3, 4]) 创建3 x 3矩阵 B = np.array([[1, 2],[3, 4],[5, 6]]) Shape形状,也可称为维度,表示矩阵中每个维度的具体数值; B.shape 3 x 2 转置 行向量可转置为列向量,列向量转置为行向量 如为方阵转置后行数列数不变,对于非方阵,2 x 3矩阵转置后为3 x 2矩阵 B_t = A.T 检查转置后形状shape B_t.shape 矩阵加法 矩阵相加为两个矩阵对应的元素相加; A = np.array([1,2],[3,4]) B = np.array([4,5],[5,6]) C = A + B = [[5, 7],[8, 10]] 如标量与矩阵相加规则为:标量与矩阵中对应的每个元素相加; 广播   广播为Numpy的机制,使得Numpy可以处理各个不同形状(shape)之间的操作,较小的阵列将会被扩充以匹配较大的阵列形状;   就如上面使用标量与矩阵做相加元素,实际上Numpy把标量转成了与矩阵相同维度的矩阵与该矩阵进行相加;   比如一个3 x 2 矩阵与一个3 x 1矩阵相加,Numpy会自动把3 x 1矩阵复制一列形成3 x2矩阵与该3 x 2矩阵相加,使得两个矩阵的shape能够匹配; 矩阵乘法   矩阵乘法与矩阵加法规则并不一样

数据挖掘相关算法

人走茶凉 提交于 2019-11-29 20:54:29
数据挖掘算法总结 1.分类算法 所谓分类,简单来说,就是根据文本的特征或属性,划分到已有的类别中。常用的分类算法包括:决策树分类法,朴素的贝叶斯分类算法(native Bayesian classifier)、基于支持向量机(SVM)的分类器,神经网络法,k-最近邻法(k-nearest neighbor,kNN),模糊分类法等等 决策树分类法 机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象。树的叶子节点表示对象所属的预测结果。 朴素的贝叶斯分类算法(native Bayesian classifier) 举例说明,我们想计算含有单词drugs的邮件为垃圾邮件的概率。 在这里,A为“这是封垃圾邮件”。我们先来计算P(A),它也被称为先验概率,计算方法是,统计训练中的垃圾邮件的比例,如果我们的数据集每100封邮件有30封垃圾邮件,P(A)为30/100=0.3。 B表示“该封邮件含有单词drugs”。类似地,我们可以通过计算数据集中含有单词drugs的邮件数P(B)。如果每100封邮件有10封包含有drugs,那么P(B)就为10/100=0.1。 P(B|A)指的是垃圾邮件中含有的单词drugs的概率,计算起来也很容易,如果30封邮件中有6封含有drugs,那么P(B|A)的概率为6/30

最优化理论与方法学习笔记

百般思念 提交于 2019-11-29 17:40:28
最优化理论与方法学习笔记 一、引论 1、范数 Frobenius范数: 加权Frobenius范数和加权l 2 范数(其中M是n x n的对称正定矩阵): 椭圆向量范数: 特别,我们有 关于范数的几个重要不等式是: 二、一维搜索 三、牛顿法 1、最速下降法(梯度下降法,简称梯度法)—— P118 收敛性:线性收敛 2、两点步长梯度法 —— P127 或 其中, 收敛性:R-超线性收敛 来源: https://www.cnblogs.com/lucifer1997/p/11525084.html

机器学习中的线性代数

◇◆丶佛笑我妖孽 提交于 2019-11-29 10:56:49
第二章 机器学习中的线性代数知识 线性代数作为数学中的一个重要的分支,广发应用在科学与工程中。掌握好线性代数对于理解和从事机器学习算法相关的工作是很有必要的,尤其是对于深度学习而言。因此,在开始介绍深度学习之前,先集中探讨一些必备的线性代数知识。 2.1 标量,向量,矩阵和张量 标量(scalar) :一个标量就是一个单独的数。用斜体表示标量,如 s ∈ R //--> . 向量(vector) :一个向量是一列数,我们用粗体的小写名称表示向量。比如 x //--> ,将向量 x //--> 写成方括号包含的纵柱: x = ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ x 1 x 2 ⋮ x n ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ //--> 矩阵(matrix) :矩阵是二维数组,我们通常赋予矩阵粗体大写变量名称,比如 A ​ //--> 。如果一个矩阵高度是 m ​ //--> ,宽度是 n ​ //--> ,那么说 A ∈ R m × n ​ //--> 。一个矩阵可以表示如下: A = [ x 11 x 21 x 12 x 22 ] //--> 张量(tensor) :某些情况下,我们会讨论不止维坐标的数组。如果一组数组中的元素分布在若干维坐标的规则网络中,就将其称为张量。用 A ​ //--> 表示,如张量中坐标为 ( i , j , k ) ​ //--> 的元素记作 A i , j , k ​ //-