关于梯度上升法求解PCA相关衍生问题

来源:7-5 高维数据映射为低维数据

毕设入门学习

2019-04-26

老师您好,学习梯度上升法处理PCA后,有几个疑惑点想向您请教:

  1. 与 求均值再求协方差的PCA求解方法 相比,使用梯度上升/下降方法 求解PCA的优势在哪里?(会更快吗?)

  2. SGD可以用来求解PCA,那么
    (1)Adam, RMSprop之类自适应学习率的算法可以求解PCA吗?(会不会有些杀鸡用牛刀?)
    (2)如果输入数据高维且稀疏,与SGD算法相比,这些自适应学习率的算法求解PCA有优势吗?

    谢谢老师!期待您的回复!

写回答

1回答

liuyubobobo

2019-04-27

1)

使用梯度上升法求解PCA问题完全没有优势。我在这个课程中选择梯度上升法求解PCA,完全是因为这个思路不需要引入过多的数学概念,大家就可以理解PCA。不然的话,需要讲协方差矩阵,特征值和特征向量,以及为什么能达到降维的目的,对一般同学来说太难了。通常,完整的推导PCA的这个数学解,也是研究生课堂上的事情。鉴于我这个课程是机器学习的入门课程,我不想用太多数学知识让大家劝退,所以决定使用梯度上升发求解PCA问题。


PCA的标准解法是通过求解协方差矩阵的特征值和特征向量完成。通常一个问题有完美的数学解的时候,使用数学方式解决,无论是从性能还是精度,都远远高于搜索算法。


2)

由于PCA问题可以用搜索算法求解。所以,你说的算法都ok。但关键还是在于PCA问题有标准的数学解,毕竟它本身就是一个线性问题。所以,数学解是最好的解法:)


继续加油!:)

5
1
毕设入门学习
谢谢老师!辛苦您了!
2019-04-27
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程