特征的非线性变换(Feature Non-linear Transformation)
有时候特征x和目标y不呈线性关系,线性模型y=wx+b不能很好地反映事物的规律或者无法对事物进行有效分类,因此此时我们需要使用非线性模型。
(x=([x1,x2,...,xn])T,w=([w1,w2,...,wn])T)
比如说下图的分类问题,显然无论用什么样的直线都很难把圈圈和叉叉很好地分隔开来,但是用一个大圆圈却能很好地进行分隔。

这个大圆圈就是使用了非线性模型拟合的结果,以往线性模型中的分类超平面(这里是直线)变成了圆:−x12−x22+0.6=0。
可以看到,此时假设函数的特征不是线性模型的(x1,x2),而是变成了(x1^2,x2^2)。我们通过映射关系z=x2,就可以把特征变为(z1,z2)。此时就相当于把x域中的二次式转换为z域中的一次式,得到线性组合
。
我们把xn→zn这个转换过程称之为特征变换(Feature Transform)(这里是非线性变换)。通过特征的非线性变换,可以将非线性模型转换为另一个域中的线性模型来求解。具体过程如下:把原始x值通过映射关系转换成z值,数据由(xn,yn)变为(zn,yn);在z域中用线性算法对转换后的数据进行训练,得到最佳w值;训练好线性模型之后,再将z替换为x的映射关系。
需要注意的是:特征变换只是得到新特征的一种方式,可以和任何线性模型结合使用。将线性模型变为非线性模型,并不需要改变模型本身,只需要改变特征输入即可。比如原本线性模型有一个特征x1,其有两个输入值:
[[2]
[3]]
变换为二次模型(quadratic model)后,新的特征输入就变为:
[[4]
[9]]
上面的例子是将原始特征x转变为二次式x2,也可以将x转变为其他形式,例如:可以将特征x变为log(x),exp(x),x0.5,sin(x),cos(x),等等。
下面再来说一下结构化的变换方式:多项式变换(Polynomial Transformation)。
如果原本的特征x是2维的,即有2个特征:(x1,x2),那么它的二次多项式为:(x1,x2,x1^2,x1x2,x2^2,1),一共有6项。
如果原本的特征x是d维的,即有d个特征:(x1,x2,…,xd),那么做一个完全的二次变换(其包含所有的二次项、一次项和常数项,此时得到非线性组合:C*d^1+C*d^2+1)后得到的特征维度是:d(d+3)/2+1。
如果变换的阶数更高呢?推广上面的结论,假设阶数为Q,那么对于d维的特征x,将其变换为Q次多项式后,对应的z域的特征维度大约为:
。


由上图可以看到,将特征x进行多项式变换后,计算和储存新特征的时间复杂度和空间复杂度是O(Qd)---Q的d次方。随着Q和d的增大,计算量和储存量都会变得很大。这就是线性模型变为多项式非线性模型所要付出的代价。
另一个所要付出的代价则更严重,那就是模型复杂度会变高(假设空间的VC维近似等于特征的个数)。我们知道,模型复杂度越高,我们所需要的训练数据也就越多,否则将很容易发生过拟合现象。因此,应先从阶数低的变换开始做起,以防止过拟合问题的发生。
附注:如果特征输入值很小,那么应变换为勒让德多项式(Legendre polynomials)。
特征的非线性变换(Feature Non-linear Transformation)的更多相关文章
- 第三讲_图像特征与描述Image Feature Descriptor
第三讲_图像特征与描述Image Feature Descriptor 概要 特征提取方法 直方图 对图片数据/特征分布的一种统计:对不同量进行直方图统计:可以表示灰度,颜色,梯度,边缘,形状,纹理, ...
- RBF神经网络——直接看公式,本质上就是非线性变换后的线性变化(RBF神经网络的思想是将低维空间非线性不可分问题转换成高维空间线性可分问题)
Deeplearning Algorithms tutorial 谷歌的人工智能位于全球前列,在图像识别.语音识别.无人驾驶等技术上都已经落地.而百度实质意义上扛起了国内的人工智能的大旗,覆盖无人驾驶 ...
- 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)
title: [线性代数]7-2:线性变化的矩阵(The Matrix of a Linear Transformation) categories: Mathematic Linear Algebr ...
- 为什么我们喜欢用 sigmoid 这类 S 型非线性变换?
本文整理自 @老师木 的一条图片新浪微博,从另一个角度给出为何采用 sigmoid 函数作非线性变换的解释. 为什么我们喜欢用 sigmoid 这类 S 型非线性变换?
- CNN卷积神经网络_深度残差网络 ResNet——解决神经网络过深反而引起误差增加的根本问题,Highway NetWork 则允许保留一定比例的原始输入 x。(这种思想在inception模型也有,例如卷积是concat并行,而不是串行)这样前面一层的信息,有一定比例可以不经过矩阵乘法和非线性变换,直接传输到下一层,仿佛一条信息高速公路,因此得名Highway Network
from:https://blog.csdn.net/diamonjoy_zone/article/details/70904212 环境:Win8.1 TensorFlow1.0.1 软件:Anac ...
- 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换
自动编码器是一种有三层的神经网络:输入层.隐藏层(编码层)和解码层.该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标 ...
- 【线性代数】7-1:线性变换思想(The Idea of a Linear Transformation)
title: [线性代数]7-1:线性变换思想(The Idea of a Linear Transformation) categories: Mathematic Linear Algebra k ...
- OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 下面 ...
- 跟我学Python图像处理丨何为图像的灰度非线性变换
摘要:本文主要讲解灰度线性变换,基础性知识希望对您有所帮助. 本文分享自华为云社区<[Python图像处理] 十六.图像的灰度非线性变换之对数变换.伽马变换>,作者:eastmount . ...
随机推荐
- MongoDB和Java(3):Java操作MongoB
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- 30个关于Shell脚本的经典案例(上)
对于初学者而言,因为没有实战经验,写不出来Shell脚本很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验.针对以上问题,总结了30个生产环境中经典的Shell脚本, ...
- 使用vue-router在页面之间传值及接收值
第一页 点击去第二页的时候进行传值直接贴代码看: <template> <div id="app"> <div><router-link ...
- Oracle 用户与模式的关系
一.用户登录 Oracle 数据库的安全保护流程分为3个步骤. 1.用户向数据库提供身份识别信息,即提供一个数据库账号 2.证明身份识别信息是否有效,通过密码来实现 3.用户输入的密码经过数据库的核对 ...
- Android为TV端助力之解析序列话的JSON
解析json时报错default constructor not found. class............. 比如 public class MediaRepBean implements P ...
- (摘录笔记)JAVA学习笔记SSH整合搭建项目
1:当然是导jar包啦: struts2: spring: hibernate: 至于这些jar包是什么作用,我想就不必我解释了,大家都懂得,ssh2基本的jar包: 还有一些其他jar包:strut ...
- 直播知识-推流&拉流
推流,指的是把采集阶段封包好的内容传输到服务器的过程.其实就是将现场的视频信号传到网络的过程.“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是 ...
- Web开发基础知识
综述 最近开始Java Web方面的工作,千里之行始于足下,我们在开发过程中要善于总结自己遇到的问题.善于管理一些优秀的代码片段.本文的主要内容是Web开发的基础知识,对于大牛来说可以忽略,对于初入W ...
- Linux一些服务的启动命令
http:服务service httpd start 启动 service httpd restart 重新启动 service httpd stop 停止服务 启动ssh服务 # /etc/init ...
- 从输入 URL 到页面展示到底发生了什么?
1.输入地址 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全ur ...