特征的非线性变换(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 . ...
随机推荐
- SpringBootServletInitializer报错
1. 现象 从Springboot 1.5.1.RELEASE 升级到Springboot 2.1.2.RELEASE 后SpringBootServletInitializer报错. 2.解决方法 ...
- (1)ASP.NET Core 应用启动Startup类简介
1.前言 Core与早期版本的 ASP.NET 对比,配置应用程序的方式的 Global.asax.FilterConfig.cs和RouteConfig.cs 都被Program.cs 和 Star ...
- docker容器入门最佳教程
为什么要写这个 简单回答是:容器技术非常热门,但门槛高. 容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行. 对 IT 行业来说,这是一项非常有价值的技术.而对 I ...
- pandas.to_datetime() 只保留【年-月-日】
Outline pandas.to_datetime() 生成的日期会默认带有 [2019-07-03 00:00:00]的分钟精度:但有时并不需要这些分钟精度: 去掉分钟精度 可以通过pandas ...
- 2019 欢聚时代java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.欢聚时代等公司offer,岗位是Java后端开发,因为发展原因最终选择去了 欢聚时代,入职一年时间了,也成为了 ...
- Java visualvm
简介 VisualVM是一个集成多个JDK命令行工具的可视化工具.可以作为Java应用程序性能分析和运行监控的工具.开发人员可以利用它来监控.分 析线程信息,浏览内存堆数据.系统管理员可以利用它来监测 ...
- 【转载】C#中使用float.TryParse方法将字符串转换为Float类型
在C#编程过程中,将字符串string转换为单精度float类型过程中,时常使用float.Parse方法,但float.Parse在无法转换的时候,会抛出程序异常,其实还有个float.TryPar ...
- JAVA项目之增删改查
public class ProductDao { // 查询所有商品 // BeanListHandler查询所有商品 public List<Product> getAll() thr ...
- 如何统一管理单个任务下所有API的同步情况?
1. 一分钟完成单个API配置 单个API的配置包含:API名称.URL地址.请求方式.参数设置.自定义高级设置. 参数允许用户填写:Text.WebService.Timestamp.DependO ...
- Android选项卡TabHost功能和用法
1.布局文件 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...