Learning From Data——Kernel PCA
上次说了几个PCA的局限性,其中有一个是它只找各个特征之间的线性关系。如何拓展线性关系到非线性,似乎有点思路,因为之前SVM中说过,可以通过kernel将SVM拓展到非线性的分类。同样通过kernel,我们也可以找到特征之间的非线性关系,从而利用PCA进行数据压缩等操作。
上次说了几个PCA的局限性,其中有一个是它只找各个特征之间的线性关系。如何拓展线性关系到非线性,似乎有点思路,因为之前SVM中说过,可以通过kernel将SVM拓展到非线性的分类。同样通过kernel,我们也可以找到特征之间的非线性关系,从而利用PCA进行数据压缩等操作。
上节课除了介绍了K-Means,更重点介绍了另外一个算法,PCA(Principal Component Analysis)。
转眼间这一个学期已经过了一半了。开始学习非监督学习算法了。第一个介绍的算法,是K-Means聚类算法。
香农虽然提出了香农码,但是香农码很多情况下离最优码还差得不少。比如:K=2,$p(a_1) = 0.9999,p(a_2) = 0.0001$,这种偏差非常大的情况下,香农码给$a_1,a_2$的编码长度分别为:1,14.而实际上两个值,我们可以仅用一个bit就能区分开来。在这里介绍一个大名鼎鼎的最优前缀编码:Huffman编码。
这次的作业是用神经网络来拟合sin曲线。通过实践更能感受到ReLU以及sigmoid,tanh激活函数的区别。
上次lfd的博客讲了神经网络的一些基本内容,包括它的起源,前向传播以及后向传播。实际上,对于一个很重要的部分:activation function,只是简单提到。所以这次着重说一下不同的激活函数之间的区别。
上次介绍了香农无损编码定理以及一些不同类别的编码。这次介绍kraft不等式以及huffman编码,并且说明霍夫曼编码的最优性。
实际上从上次介绍的东西,我们理论上已经知道了SLAM是怎么运作的了。从深度图和颜色图,估计相机位姿,通过相机位姿,以及深度图和颜色图,我们实际上就可以去拼接点云或者三维建模了。不过现实往往没有那么容易,如果这么简单SLAM也没什么好研究的了。
上次图形学的博客中介绍了转换,所以我们可以从世界坐标转换到相机坐标了。不过虽然我们学的是三维模型,不过我们看到的都是二维的。近大远小是小学生都明白的道理,而一个物品的距离等等都会影响它在我们眼中,以及拍摄出来照片的样子。因此这次讲得内容是观察(Viewing)。
SLAM建模的过程中,相机是很重要的一个部分。因此这一讲主要探讨相机的成像模型。
最近出了个幺蛾子:teamviewer疑似被黑客攻击(已经证明是谣言了)。因此直到现在实验室的teamviewer端口依然被封禁。所以就需要使用新的方法,好在宿舍能够学习。
在SLAM中,我们需要对姿态进行估计和优化。但是旋转矩阵自身是有约束的,增加优化难度。因此我们需要引入李群和李代数,可以将位姿估计转换为无约束的优化问题。
这次主要介绍一些刚体运动中需要的数学知识以及Eigen库的基本使用。
不出意外的话,以后我的方向应该就是三维重建方向了,而SLAM是一个逃不开的东西。
上周的数据学习课程布置了一个作业,主要做的是对多维高斯分布下求得协方差矩阵的取值。这个和之前将的Generative Learning Algorithm很相关,但是当时是直接给出了协方差矩阵的取值。结果是异常简单的,但是其中的证明可能要费点功夫。
这周上的数据学习,主要讲了一些神经网络相关的知识。神经网络是目前最流行的机器学习算法了,甚至由它诞生了一个新的学科:deep learning。因此一篇博客,只能浅浅介绍一些神经网络的基本内容。
在我们的生活中,其实大部分使用的都是soft-margin SVM,很少会有人真正去使用hard-margin,因为我们无法避免噪声。现在想想,能否将soft-margin svm与我们之前的losgistic regress结合起来,会得到什么样的学习算法?
信息论算是应用数学,因此我们希望用熵,互信息这些东西来解决一些实际的问题。首先介绍下无失真编码定理,它早已经被广泛用在我们生活当中了。
如何将离散随机变量的这些概念推广到连续随机变量?
从$X$到$Y$到$\hat{X}$,其中$\hat {X}$是对原有的$X$的估计,而Y可以看作是一个中间过程,可以想象类似于编码解码的过程。这之间有什么联系?