关于Kernel的思考

学习播客_KLDA(推导得很通俗,下面的推导就是源于此篇博客)


第一部分:按照自己的理解,模仿抄!学习播客来完成一下KLDA的推导。
第二部分:对于Kernel的思考


KLDA:顾名思义,就是把Kernel运用到了LDA上,下面直接推导公式。(原始空间数据$x$,映射之后数据$\phi(x)$)


(1)$J(w) = \frac{w^TS_bw}{s^TS_ww}$ ( we will calculate the $w$ to maximum this formula, and then we finished LDA )
(2)$S_b = (\mu_1-\mu_2)(\mu_1-\mu_2)^T$
(3)$S_w = \sum\limits_{i=1}^{2} \sum\limits_{j=1}^{n_i}x_{ij}$ ( $x_{ij}$ means $x$$\in$$X_i$, and it's the jth element )
(4)$\mu_i = \frac{1}{n} \sum\limits_{i=1}^{n} x_i$
(5)$w=\sum\limits_{i=1}^{n} \alpha\phi(x_i)$
Kernel:$K(x,x_i) = (\phi(x)·\phi(x_i))$ ( which has a specific formula )


问题出现了,我们需要的是最大化(1)来完成LDA,那么就涉及到$w$的计算,而在线性的LDA中,我们已经得出了$w$的结果,即:$S_w^{-1}S_b$。现在,我们希望通过核函数来解决,将线性不可分(可以非线性可分)的低维数据,映射到高维空间从而实现线性可分。那么核函数有什么用?我们观察一下核函数:
Kernel:$K(x,x_i) = (\phi(x)·\phi(x_i))$,这个式子的本质不就是计算$\phi(x)$·$\phi(x_i)$么?那么只要求出映射变化$\phi$,就可以轻松解决这个问题。紧接着出现了新的问题,如何求出$\phi$?答案是——很难,或者说没有价值。因为我们是将低维的数据升维,而很多数据的维度本来就远远高于3维,然后再生个维,$\phi$的维度可以说是非常的高,计算将会耗费大量的时间,而我们回顾我们定义的核函数,我们发现它是显示的,你套用哪个,公式就是哪个,而$\phi$是隐式的。那我们是不是可以通过避开求解$\phi$,而只求$K(x,x_i)$的值,来做同样的事情?答案是肯定的。
那么,如何求解?我们知道$K(x,x_i)$求的是内积,观察(1)至(5),想要凑出形如$x·x_i$的项,只有结合(4)(5)了,结合之后:
$$w^T\mu = \sum\limits_{i=1}^{n} \alpha\phi(x_i) * \frac{1}{n} \sum\limits_{i=1}^{n} x_i = \alpha^TM_i$$ ( where $M=K(x,x_i)$, means $M_i$ is a matrix which has the elements of caculation after K )
接下来呢?看看我们的目标)$J(w) = \frac{w^TS_bw}{s^TS_ww}$,再观察$\mu_i = \frac{1}{n} \sum\limits_{i=1}^{n} x_i$,是不是乘进去就有了我们上一步得到的$w^T\mu$?那我们的目标,就可以进一步表示成:分子/分母!
分子部分:$w^TS_bw$ -> $\alpha^TM\alpha$,为什么就剩下一个$\alpha$?因为两个隐式映射$\phi$被我们揉进了核函数K,这里的M和上面的M意思相同。
分母部分:分母就是暴力乘进去,乘开在这里仅看其中一个类
$$ w^T \sum\limits_{i=1}^{n} \phi(x_i)-\mu w $$ $\Longrightarrow$
$$\sum\limits_{i=1}^{n} (w^T\phi(x_i)w-w^T \mu w)$$ $\Longrightarrow$
$$\sum\limits_{i=1}^{n} w^T\phi(x_i)w-w^T \frac{1}{n} \sum\limits_{i=1}^{n} \phi(x_i) w$$ ( where $w = \sum\limits_{i=1}^{n} \alpha\phi(x_i)$)
然后剩下的就可以用核函数的形式表示了,以便看得较为简洁(同理,揉进去),分母即为:$\alpha^TN\alpha$,这里的N就是把除了$\alpha$的部分做一个变量代换,保持美观整洁。
此时,我们发现,映射变化$\phi$,早就不出现在式子中了,取而代之的是有着明确公式的核函数K(M,N中都含有K),这就是为何说求$\phi$其实没有价值的原因,因为它难算还会被替代,如果好算肯定就算它了。那么我们的目标呢?
$$J(w)=\frac{w^TS_bw}{w^TS_ww}$$ $\Longrightarrow$
$$J(\alpha)=\frac{\alpha^T M \alpha}{\alpha^T N \alpha}$$ ( the answer $\alpha=$ the eig_vector of $N^{-1}M$ who has the maximum eig_value )

关于核函数的思考:核函数,我更喜欢它的另一个名字:核技巧,感觉这个更像核做的事情。因为函数的映射其实不是核做的,是隐式的$\phi$做的,而又因为$\phi$的维数可以巨高,导致我们没有办法或者不值得去计算它,从而我们考虑将目标求值变形,构造出$(\phi(x)·\phi(x_i))$项,进而运用核技巧完成操作。现在疑惑在于,核技巧之多,如何选择?将在思考后补上。

转载于:https://www.cnblogs.com/FormerAutumn/p/10946840.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在elementUI中使用 el-autocomplete 实现远程搜索的下拉框

1. 在template加入如下标签 <el-form-item label"文章库" :label-width"formLabelWidth" ><el-autocompletev-model"addTopic.name":fetch-suggestions"querySearchAsync"placeholder"请输入文章标题"select"…

如何用一个例子彻底解释白盒测试中语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖?

白盒测试 白盒测试把测试对象看作一个打开的盒子&#xff0c;测试人员依据程序内部逻辑结构相关信息&#xff0c;设计或选择测试用例&#xff0c;对程序所有逻辑路径进行测试&#xff0c;通过在不同点检查程序的状态&#xff0c;确定实际的状态是否与预期的状态一致。 语句覆…

thinkPHP5.0数据查询表达式生成技巧

thinkPHP的查询表达式大揭秘 主要使用where(条件表达式)方法 语法一&#xff1a;where(字段,条件,值)&#xff1b; 等于&#xff1a;EQ 解析为"" 不等于&#xff1a;NEQ 解析为"<>" 小于&#xff1a;LT 解析为"<" 小于等于&#xff1a;…

简易的实现对象内存池

简易的实现对象内存池MemoryNode结构体是保存每一个申请的内存节点&#xff0c;然后构成一个单链表。MemoryNodeList 结构体是保存的是每一块内存&#xff0c;当上一个内存块用完时&#xff0c;再次创建一个内存块。numofMemoryNode&#xff1a;一个内存块的内存节点数量 numof…

连接符合赋值运算符

字符串运算符 以.的形式来连接如&#xff1a;$a.$b; $aacb; $a.efg $aabcefg .相当与$a$a.efg mt_rand()&#xff1b;随机函数 <?php // mt_rand(int $min,int $max) 产生随机数函数 $min ,$max $str"请输入验证码&#xff1a;"; $str.<span style"…

Linux关机操作

转载于:https://www.cnblogs.com/hlc-123/p/10958108.html

JAVA:贪吃蛇源代码

嘿嘿 新手来 表现了&#xff01;&#xff01;&#xff01; 2019年结束 游戏截图&#xff1a; 文件布局&#xff1a; 代码分享 用到的一些全局变量 //全局变量 public class Global {public static final int RECT_WIDTH20;//每个小方格的长宽public static final int WIDTH…

结构

结构 值类型中除了枚举类型都是结构类型的派生类型 由于结构是值类型&#xff0c;并且直接存储数据&#xff0c;因此&#xff0c;在一个对象的主要成员为数据且数据量不大的情况下&#xff0c;使用结构会带来更好的性能。 public struct Address {public string Name;public st…

10 字符串相关操作

# ### 字符串的相关操作 #(1)字符串的拼接 str1 "我爱你" str2 "美丽的祖国" res str1 str2 print(res) str1 str2 # str1 str1 str2 print(str1)# (2)字符串的重复 * str1 "重要的事情说三遍" res str1 * 3 print(res)# (3)字符串跨…

hbase-1.3.2安装

上传安装包hbase-1.3.2-bin.tar.gz解压安装包tar -zxvf /root/hbase-1.3.2-bin.tar.gz -C /usr/local/ 修改配置文件修改hbase-env.shvi hbase-env.sh 修改为以下内容&#xff1a; export JAVA_HOME/usr/local/jdk1.8.0_102 export HBASE_MANAGES_ZKfalse 表示不引用 hbase 自带…

深拷贝的三种方式

JSON方法 var obj2 JSON.parse&#xff08;JSON.stringify(obj1)&#xff09;//深拷贝递归(自己调用自己)方法 判断第一层属性的类型&#xff0c;多层拷贝对象的属性 var obj1 { name: zs, age: 18, dog: { name: 金毛, age: 2 }, friends: [ww, lil] } var obj2 {}; functio…

AppiumForWin安装

尝试安装Windows版本的Appium参考&#xff1a;http://www.cnblogs.com/fnng/p/4540731.html第一步&#xff1a;安装nodehttps://nodejs.org/en/安装成功后使用&#xff1a;node -v&#xff0c;进行验证第二步&#xff1a;安装Appium下面的方法失败&#xff1a;原因下载不成功&a…

剑指offer-二进制中1的个数

题目描述 输入一个整数&#xff0c;输出该数二进制表示中1的个数。其中负数用补码表示。1 class Solution {2 public:3 int NumberOf1(int n) {4 int count 0;5 while(n)6 {7 count ;8 n (n - 1) & n;9 …

activiti5第一弹-----基本的activiti示例

建立一个普通的javaSE工程&#xff0c;工程的目录结构如下&#xff1a;需要的jar包如下&#xff1a; 在config文件夹下创建log4j.properties用来输入日志&#xff0c;内容如下&#xff1a; log4j.rootLoggerINFO, CA # ConsoleAppender log4j.appender.CAorg.apache.log4j.Cons…

activiti5第二弹----使用activiti5提供的测试类进行测试

在前文的基础上改变测试方式 package activiti_001;import org.activiti.engine.impl.test.PluggableActivitiTestCase; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.test.Deployment; import org…

Android在布局XML中的空格转义符(占位符)

普通的英文半角空格 &#xA0; no-break space &#xff08;普通的英文半角空格但不换行&#xff09; 中文全角空格 &#xff08;一个中文宽度&#xff09; &ensp; en空格 &#xff08;半个中文宽度&#xff09; &emsp; em空格 &#xff08;一个中文宽…

activiti5第三弹-----------脚本任务

首先是流程定义图&#xff1a; 重点关注一下流程节点中 Script Task 节点的 properties中的Main config 这里可以选择不同的脚本语言&#xff0c;由于其他的部怎么会就用javascript来吧。 从图中可以看出只是定义了一个变量x&#xff0c;它的值为 a; 很多人都说这样定义了这个…

Jmeter之性能测试类型

Jmeter之性能测试类型 pipe-clean test在测试环境预先跑确定脚本准确性单用户跑获取baseline容量测试经典的性能测试类型获取系统稳定运行时最大的吞吐量/并发数/响应时间时尽量模拟真实情况&#xff0c;比如加入用户思考时间等压力测试把系统弄挂除非系统无响应&#xff0c;响…

activiti5第四弹----serviceTask中的java服务任务

activiti.cfg.xml内容&#xff1a; <?xml version"1.0"?> <beans default-lazy-init"false"xsi:schemaLocation" http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://ww…

1 ~ express ~ 初始化。安装第三方模块express。中间件

一&#xff0c;初始化 二&#xff0c;安装第三方模块express 三&#xff0c;安装中间件 1&#xff0c;bodyParser : 解析 post 请求数据 2&#xff0c;cookies : 读写 cookie 3&#xff0c;swig &#xff1a;模板解析引擎 4&#xff0c;mongoose &#xff1a; 操作 mongodb 数据…