当前位置: 首页 > news >正文

flash网站后台网站建设方案概述

flash网站后台,网站建设方案概述,服务营销7p理论,上饶市网站建设公司文 | shine-lee源 | CSDN本文解读了一项数据预处理中的重要技术——特征归一化#xff0c;提出并解答了5个相关问题#xff0c;同时分析了相关方法和适用场景。写在前面Feature scaling#xff0c;常见的提法有“特征归一化”、“标准化”#xff0c;是数据预处理中的重要技… 文 | shine-lee源 | CSDN本文解读了一项数据预处理中的重要技术——特征归一化提出并解答了5个相关问题同时分析了相关方法和适用场景。写在前面Feature scaling常见的提法有“特征归一化”、“标准化”是数据预处理中的重要技术有时甚至决定了算法能不能work以及work得好不好。谈到feature scaling的必要性最常用的2个例子可能是特征间的单位尺度可能不同比如身高和体重比如摄氏度和华氏度比如房屋面积和房间数一个特征的变化范围可能是[1000, 10000]另一个特征的变化范围可能是[−0.1,0.2]在进行距离有关的计算时单位的不同会导致计算结果的不同尺度大的特征会起决定性作用而尺度小的特征其作用可能会被忽略为了消除特征间单位和尺度差异的影响以对每维特征同等看待需要对特征进行归一化。原始特征下因尺度差异其损失函数的等高线图可能是椭圆形梯度方向垂直于等高线下降会走zigzag路线而不是指向local minimum。通过对特征进行zero-mean and unit-variance变换后其损失函数的等高线图更接近圆形梯度下降的方向震荡更小收敛更快如下图所示图片来自Andrew Ng。对于feature scaling中最常使用的Standardization似乎“无脑上”就行了本文想多探究一些为什么常用的feature scaling方法都有哪些什么情况下该使用什么feature scaling方法有没有一些指导思想所有的机器学习算法都需要feature scaling吗有没有例外损失函数的等高线图都是椭圆或同心圆吗能用椭圆和圆来简单解释feature scaling的作用吗如果损失函数的等高线图很复杂feature scaling还有其他直观解释吗根据查阅到的资料本文将尝试回答上面的问题。但笔者能力有限空有困惑能讲到哪算哪吧微笑。常用feature scaling方法在问为什么前先看是什么。给定数据集令特征向量为x维数为D样本数量为R可构成D×R的矩阵一列为一个样本一行为一维特征如下图所示图片来自Hung-yi Lee pdf-Gradient Descentfeature scaling的方法可以分成2类逐行进行和逐列进行。逐行是对每一维特征操作逐列是对每个样本操作上图为逐行操作中特征标准化的示例。具体地常用feature scaling方法如下来自wikiRescaling (min-max normalization、range scaling)将每一维特征线性映射到目标范围[a,b]即将最小值映射为a最大值映射为b常用目标范围为[0,1]和[−1,1]特别地映射到[0,1]计算方式为Mean normalization将均值映射为0同时用最大值最小值的差对特征进行归一化一种更常见的做法是用标准差进行归一化如下。Standardization (Z-score Normalization)每维特征0均值1方差zero-mean and unit-variance。Scaling to unit length将每个样本的特征向量除以其长度即对样本特征向量的长度进行归一化长度的度量常使用的是L2 norm欧氏距离有时也会采用L1 norm不同度量方式的一种对比可以参见论文“CVPR2005-Histograms of Oriented Gradients for Human Detection”。上述4种feature scaling方式前3种为逐行操作最后1种为逐列操作。容易让人困惑的一点是指代混淆Standardization指代比较清晰但是单说Normalization有时会指代min-max normalization有时会指代Standardization有时会指代Scaling to unit length。计算方式上对比分析前3种feature scaling的计算方式为减一个统计量再除以一个统计量最后1种为除以向量自身的长度。减一个统计量可以看成选哪个值作为原点是最小值还是均值并将整个数据集平移到这个新的原点位置。如果特征间偏置不同对后续过程有负面影响则该操作是有益的可以看成是某种偏置无关操作如果原始特征值有特殊意义比如稀疏性该操作可能会破坏其稀疏性。除以一个统计量可以看成在坐标轴方向上对特征进行缩放用于降低特征尺度的影响可以看成是某种尺度无关操作。缩放可以使用最大值最小值间的跨度也可以使用标准差到中心点的平均距离前者对outliers敏感outliers对后者影响与outliers数量和数据集大小有关outliers越少数据集越大影响越小。除以长度相当于把长度归一化把所有样本映射到单位球上可以看成是某种长度无关操作比如词频特征要移除文章长度的影响图像处理中某些特征要移除光照强度的影响以及方便计算余弦距离或内积相似度等。稀疏数据、outliers相关的更多数据预处理内容可以参见scikit learn-5.3. Preprocessing data。从几何上观察上述方法的作用图片来自CS231n-Neural Networks Part 2: Setting up the Data and the Losszero-mean将数据集平移到原点unit-variance使每维特征上的跨度相当图中可以明显看出两维特征间存在线性相关性Standardization操作并没有消除这种相关性。▲Standardization可通过PCA方法移除线性相关性decorrelation即引入旋转找到新的坐标轴方向在新坐标轴方向上用“标准差”进行缩放如下图所示图片来自链接图中同时描述了unit length的作用——将所有样本映射到单位球上。▲Effect of the operations of standardization and length normalization当特征维数更多时对比如下图片来自youtube总的来说归一化/标准化的目的是为了获得某种“无关性”——偏置无关、尺度无关、长度无关……当归一化/标准化方法背后的物理意义和几何含义与当前问题的需要相契合时其对解决该问题就有正向作用反之就会起反作用。所以“何时选择何种方法”取决于待解决的问题即problem-dependent。feature scaling 是否需要下图来自data school-Comparing supervised learning algorithms对比了几个监督学习算法最右侧两列为是否需要feature scaling。▲Comparing supervised learning algorithms下面具体分析一下。什么时候需要feature scaling涉及或隐含距离计算的算法比如K-means、KNN、PCA、SVM等一般需要feature scaling因为zero-mean一般可以增加样本间余弦距离或者内积结果的差异区分力更强假设数据集集中分布在第一象限遥远的右上角将其平移到原点处可以想象样本间余弦距离的差异被放大了。在模版匹配中zero-mean可以明显提高响应结果的区分度。就欧式距离而言增大某个特征的尺度相当于增加了其在距离计算中的权重如果有明确的先验知识表明某个特征很重要那么适当增加其权重可能有正向效果但如果没有这样的先验或者目的就是想知道哪些特征更重要那么就需要先feature scaling对各维特征等而视之。增大尺度的同时也增大了该特征维度上的方差PCA算法倾向于关注方差较大的特征所在的坐标轴方向其他特征可能会被忽视因此在PCA前做Standardization效果可能更好如下图所示图片来自scikit learn-Importance of Feature Scaling▲PCA and Standardization损失函数中含有正则项时一般需要feature scaling对于线性模型ywxb而言x的任何线性变换平移、放缩都可以被w和b“吸收”掉理论上不会影响模型的拟合能力。但是如果损失函数中含有正则项如λ∣∣w∣∣^2λ为超参数其对w的每一个参数施加同样的惩罚但对于某一维特征xi而言其scale越大系数wi越小其在正则项中的比重就会变小相当于对wi惩罚变小即损失函数会相对忽视那些scale增大的特征这并不合理所以需要feature scaling使损失函数平等看待每一维特征。梯度下降算法需要feature scaling。梯度下降的参数更新公式如下E(W)为损失函数收敛速度取决于参数的初始位置到local minima的距离以及学习率η的大小。一维情况下在local minima附近不同学习率对梯度下降的影响如下图所示▲Gradient descent for different learning rates多维情况下可以分解成多个上图每个维度上分别下降参数W为向量但学习率只有1个即所有参数维度共用同一个学习率暂不考虑为每个维度都分配单独学习率的算法。收敛意味着在每个参数维度上都取得极小值每个参数维度上的偏导数都为0但是每个参数维度上的下降速度是不同的为了每个维度上都能收敛学习率应取所有维度在当前位置合适步长中最小的那个。下面讨论feature scaling对gradient descent的作用zero center与参数初始化相配合缩短初始参数位置与local minimum间的距离加快收敛。模型的最终参数是未知的所以一般随机初始化比如从0均值的均匀分布或高斯分布中采样得到对线性模型而言其分界面初始位置大致在原点附近bias经常初始化为0则分界面直接通过原点。同时为了收敛学习率不会很大。而每个数据集的特征分布是不一样的如果其分布集中且距离原点较远比如位于第一象限遥远的右上角分界面可能需要花费很多步骤才能“爬到”数据集所在的位置。所以无论什么数据集先平移到原点再配合参数初始化可以保证分界面一定会穿过数据集。此外outliers常分布在数据集的外围与分界面从外部向内挪动相比从中心区域开始挪动可能受outliers的影响更小。对于采用均方误差损失LMS的线性模型损失函数恰为二阶如下图所示不同方向上的下降速度变化不同二阶导不同曲率不同恰由输入的协方差矩阵决定通过scaling改变了损失函数的形状减小不同方向上的曲率差异。将每个维度上的下降分解来看给定一个下降步长如果不够小有的维度下降的多有的下降的少有的还可能在上升损失函数的整体表现可能是上升也可能是下降就会不稳定。scaling后不同方向上的曲率相对更接近更容易选择到合适的学习率使下降过程相对更稳定。另有从Hessian矩阵特征值以及condition number角度的理解详见Lecun paper-Efficient BackProp中的Convergence of Gradient Descent一节有清晰的数学描述同时还介绍了白化的作用——解除特征间的线性相关性使每个维度上的梯度下降可独立看待。文章开篇的椭圆形和圆形等高线图仅在采用均方误差的线性模型上适用其他损失函数或更复杂的模型如深度神经网络损失函数的error surface可能很复杂并不能简单地用椭圆和圆来刻画所以用它来解释feature scaling对所有损失函数的梯度下降的作用似乎过于简化见Hinton vedio-3.2 The error surface for a linear neuron。对于损失函数不是均方误差的情况只要权重w与输入特征x间是相乘关系损失函数对w的偏导必然含有因子xw的梯度下降速度就会受到特征x尺度的影响。理论上为每个参数都设置上自适应的学习率可以吸收掉x尺度的影响但在实践中出于计算量的考虑往往还是所有参数共用一个学习率此时x尺度不同可能会导致不同方向上的下降速度悬殊较大学习率不容易选择下降过程也可能不稳定通过scaling可对不同方向上的下降速度有所控制使下降过程相对更稳定。对于传统的神经网络对输入做feature scaling也很重要因为采用sigmoid等有饱和区的激活函数如果输入分布范围很广参数初始化时没有适配好很容易直接陷入饱和区导致梯度消失所以需要对输入做Standardization或映射到[0,1]、[−1,1]配合精心设计的参数初始化方法对值域进行控制。但自从有了Batch Normalization每次线性变换改变特征分布后都会重新进行Normalization似乎可以不太需要对网络的输入进行feature scaling了但习惯上还是会做feature scaling。什么时候不需要Feature Scaling与距离计算无关的概率模型不需要feature scaling比如Naive Bayes与距离计算无关的基于树的模型不需要feature scaling比如决策树、随机森林等树中节点的选择只关注当前特征在哪里切分对分类更好即只在意特征内部的相对大小而与特征间的相对大小无关。小结这篇文章写得十分艰难一开始以为蛮简单直接但随着探索的深入冒出的问号越来越多打破了很多原来的“理所当然”所以在写的过程中不停地做加法很多地方想解释得尽量直观又不想照搬太多公式但自己的理解又不够深刻导致现在叙述这么冗长希望以后在写文时能更专注更精炼。后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集 [1] wiki-Feature scaling[2] wiki-Backpropagation[3] Hung-yi Lee pdf-Gradient Descent:http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/Gradient Descent (v2).pdf[4] quora-Why does mean normalization help in gradient descent?[5] scikit learn-Importance of Feature Scaling[6] scikit learn-5.3. Preprocessing data[7] scikit learn-Compare the effect of different scalers on data with outliers[8] data school-Comparing supervised learning algorithms[9] Lecun paper-Efficient BackProp[10] Hinton vedio-3.2 The error surface for a linear neuron[11] CS231n-Neural Networks Part 2: Setting up the Data and the Loss[12] ftp-Should I normalize/standardize/rescale the data?[13] medium-Understand Data Normalization in Machine Learning[14] Normalization and Standardization[15] How and why do normalization and feature scaling work?[16] Is it a good practice to always scale/normalize data for machine learning?[17] When conducting multiple regression, when should you center your predictor variables when should you standardize them?
http://wiki.neutronadmin.com/news/95655/

相关文章:

  • 中国建设招聘信息网站如何优化网站信息架构
  • 建站公司兴田德润好不好临沂网站建设有哪些
  • 天津建设注册执业中心网站效果图制作步骤
  • 国外美容网站设计一套企业网站设计报价
  • html在线记账网站模板湖北专业网站建设产品介绍
  • 合肥做网站的企业做网站需要先学什么
  • 西安淘宝网站建设公司排名栾川有做网站的吗
  • 做淘宝网站需要多少钱个人网站做音乐网要备文化
  • 上海做网站的公司电话上海买二手房做哪个网站好
  • 彩票网站开发制作平台软件wordpress head文件夹
  • 郓城网站建设费用织梦做中英文网站详细步骤
  • 深圳市城乡住房和建设局网站首页建设信息网的网站或平台登陆
  • 百度有哪些网站可免费做软件推广wordpress内存高
  • 青岛网站建设莫道网络wordpress 首页
  • jq网站登录记住密码怎么做宁波商城网站建设
  • 网站同时做竞价和优化可以建行网站用户名是什么
  • 企业营销型网站推广方法昆明做公司官网的公司
  • 网站购买流程动画片是怎么制作出来的
  • 珠海营销营网站建设射击官网
  • 网站开发搭建成都网站建设服务
  • 哪个网站能买到做披萨的芝士正宗wild合成版是哪个网站做的
  • 奖券世界推广网站wordpress edd支付宝
  • 西安自助建站系统别人用我的备案信息做网站
  • 微信支付 网站备案票务网站做酒店推荐的目的
  • 烟台免费做网站dw制作电商网页
  • 网站设计说明范文北京软件开发年薪
  • 做网站域名备案需要多久wordpress 谷歌地图
  • php做视频分享网站成都百度百科推广
  • js网站效果东莞建站网站
  • 鲜花网站建设文档网站缩略图制作