机器学习(十五)——loss function比较、独立成分分析
来源:互联网 发布:大容量文件上传php 编辑:程序博客网 时间:2024/04/28 00:36
http://antkillerfarm.github.io/
PCA算法推导(续)
对u求导可得:
这里的矩阵求导步骤,参见《机器学习(九)》中的公式5.12的推导过程。
令导数为0可得,当
注:这里的推导过程,求解的是1维的PCA,但结论对于k维的PCA也是成立的。
一个n阶矩阵有n个特征值,这些特征值可按绝对值大小排序,绝对值越大的,越重要。其中最大的k个特征值,被称作k principal components,这就是主成分分析(Principal components analysis,PCA)算法的命名来历。
我们以最大的k个特征值所对应的特征向量,构建样本空间Y:
可以看出PCA算法实际上是个降维(dimensionality reduction)算法。
PCA的用途
为了便于理解PCA算法,我们以如下图片的处理过程为例,进行说明。
第一排从左往右依次为:原图(450*333)、k=1、k=5;第二排从左往右依次为:k=20、k=50。
从中可以看出,k=50时,图像的效果已经和原图相差无几。而原图是个450*333的高阶矩阵。
在图像处理领域,奇异值不仅可以应用在数据压缩上,还可以对图像去噪。如果一副图像包含噪声,我们有理由相信那些较小的奇异值就是由于噪声引起的。当我们强行令这些较小的奇异值为0时,就可以去除图片中的噪声。
PCA的一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
但是,这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
PCA和ALS的联系与区别
令:
则由公式1可得:
变换可得:
由于PCA是个降维算法,因此这个变换实际上也是个近似变换。
从上面可以看出,PCA和ALS实际上都是矩阵的降维分解算法。它们的差别在于:
1.PCA的U矩阵是单位正交矩阵,而ALS的分解矩阵则没有这个限制。
2.ALS从原理上虽然也是矩阵的奇异值或特征值的应用,然而其求解过程,却并不涉及矩阵的奇异值或特征值的运算,因此运算效率非常高。
3.ALS是个迭代算法,容易掉入局部最优陷阱中。
PCA和特征选择的区别
两者虽然都是降维算法,但特征选择是在原有的n个特征中选择k个特征,而PCA是重建k个新的特征。
loss function比较
这里m代表了置信度,越靠近右边置信度越高。
其中蓝色的阶跃函数又被称为Gold Standard,黄金标准,因为这是最准确无误的分类器loss function了。分对了loss为0,分错了loss为1,且loss不随到分界面的距离的增加而增加,也就是说这个分类器非常鲁棒。但可惜的是,它不连续,求解这个问题是NP-hard的,所以才有了各种我们熟知的分类器。
其中红色线条就是SVM了,由于它在m=1处有个不可导的转折点,右边都是0,所以分类正确的置信度超过一定的数之后,对分界面的确定就没有一点贡献了。
黄色线条是Logistic Regression的损失函数,与SVM不同的是,它非常平滑,但本质跟SVM差别不大。
绿色线条是boost算法使用的损失函数。
黑色线条是ELM(Extreme learning machine)算法的损失函数。它的优点是有解析解,不必使用梯度下降等迭代方法,可直接计算得到最优解。但缺点是随着分类的置信度的增加,loss不降反升,因此,最终准确率有限。此外,解析算法相比迭代算法,对于大数据的适应较差,这也是该方法的局限所在。
参见:
https://www.zhihu.com/question/28810567
独立成分分析
这一节我们将讲述独立成分分析(Independent Components Analysis,ICA)算法。
首先,我们介绍一下经典的鸡尾酒宴会问题(cocktail party problem)。
假设在party中有n个人,他们可以同时说话,我们也在房间中放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了m组数据
为了更为正式的描述这个问题,我们假设数据
我们把
ICA的不确定性
不幸的是,在没有源和混合矩阵的先验知识的情况下,仅凭
置换矩阵(permutation matrix)是一种元素只由0和1组成的方块矩阵。置换矩阵的每一行和每一列都恰好只有一个1,其余的系数都是0。它的例子如下:
在线性代数中,每个n阶的置换矩阵都代表了一个对n个元素(n维空间的基)的置换。当一个矩阵乘上一个置换矩阵时,所得到的是原来矩阵的横行(置换矩阵在左)或纵列(置换矩阵在右)经过置换后得到的矩阵。
ICA的不确定性(ICA ambiguities)包括以下几种情形:
1.无法区分W和WP。比如改变说话人的编号,会改变
2.无法确定W的尺度。比如
3.信号不能是高斯分布的。
假设两个人发出的声音信号符合多值正态分布
假设R是正交矩阵,
可见,无论是A还是A’,观测值x都是一个
密度函数和线性变换
在讨论ICA的具体算法之前,我们先来回顾一下概率和线性代数里的知识。
假设我们的随机变量s有概率密度(probability density)函数
令
这里以均匀分布(Uniform)为例讨论一下。令
累积分布函数
累积分布函数(cumulative distribution function,CDF)是概率论中的一个基本概念。它的定义如下:
可以看出:
ICA算法
ICA算法归功于Bell 和 Sejnowski,这里使用最大似然估计来解释算法。(原始论文中使用的是一个复杂的方法Infomax principal,这在最新的推导中已经不需要了。)
注:Terrence (Terry) Joseph Sejnowski,1947年生,美国科学家。普林斯顿大学博士,导师是神经网络界的大神John Hopfield。ICA算法和Boltzmann machine的发现人。
Tony Bell的个人主页:
http://cnl.salk.edu/~tony/index.html
我们假定每个
因此:
为了确定
我们发现sigmoid函数很适合,它的定义域负无穷到正无穷,值域0到1,缓慢递增。因此,可以假定s的累积分布函数符合sigmoid函数:
求导,可得:
这里的推导参见《机器学习(一)》的公式7。
注:如果有其他先验信息的话,这里的
g(s) 也可以使用其他函数。否则的话,sigmoid函数能够在大多数问题上取得不错的效果。
公式2的对数似然估计函数为:
因为:
又因为《机器学习(九)》的公式5.11,可得公式3的导数为:
最后,用通常的随机梯度上升算法,求得
注意:我们计算最大似然估计时,假设了
x(i) 和x(j) 之间是独立的,然而对于语音信号或者其他具有时间连续依赖特性(比如温度)上,这个假设不能成立。但是在数据足够多时,假设独立对效果影响不大。
- 机器学习(十五)——loss function比较、独立成分分析
- 机器学习系列之——独立成分分析
- 机器学习系列之独立成分分析
- 因子分析、主成分分析(PCA)、独立成分分析(ICA)——斯坦福CS229机器学习个人总结(六)
- 机器学习——特征工程之独立成分分析ICA
- 机器学习——PCA(主成分分析)
- 机器学习基础——PCA(主成分分析)
- 机器学习算法(降维)—主成分分析(PCA)
- 机器学习教程 之 独立成分分析:PCA的高阶版
- 机器学习(十九)——PageRank算法, KNN, loss function详解
- 机器学习中的Loss function
- 【机器学习-斯坦福】学习笔记16 独立成分分析(Independent Component Analysis)
- 机器学习系列之———主成分分析
- 机器学习之—主成分分析(PCA)
- 机器学习实战学习笔记5——主成分分析(PCA)
- 机器学习(十四)——协同过滤的ALS算法(2)、主成分分析
- 机器学习中的数学——主成分分析(PCA)、线性判别分析(LDA)
- 机器学习练习(七)—— K-均值聚类与主成分分析
- 1622-5 孔富晨 总结《2016年12月22日》 【连续第83天总结】
- 黑洞数
- 查看处于被锁状态的表:v$locked_object dba_objects v$session all_objects v$sqlarea v$lock
- 2017年5月21、22日r-u-a-n-k-a-o整理
- ZGHKLMJD,电信诈骗犯,海南人
- 机器学习(十五)——loss function比较、独立成分分析
- 查看当前分支,创建并切换分支
- 使用WebRTC搭建前端视频聊天室——信令篇
- VS2010 简单ATL COM开发(上)
- 代码编辑器Sublime Text 3使用教程及简体中文汉化包
- MAC 下NetBeans 无法正确部署Tomcat的问题
- 继承的理解与应用的方法
- php从数据库读取数据,并以json格式返回数据
- 源码之ListView分析