采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,学习梯度上升法处理PCA后,有几个疑惑点想向您请教:
与 求均值再求协方差的PCA求解方法 相比,使用梯度上升/下降方法 求解PCA的优势在哪里?(会更快吗?)
SGD可以用来求解PCA,那么 (1)Adam, RMSprop之类自适应学习率的算法可以求解PCA吗?(会不会有些杀鸡用牛刀?) (2)如果输入数据高维且稀疏,与SGD算法相比,这些自适应学习率的算法求解PCA有优势吗?
谢谢老师!期待您的回复!
1)
使用梯度上升法求解PCA问题完全没有优势。我在这个课程中选择梯度上升法求解PCA,完全是因为这个思路不需要引入过多的数学概念,大家就可以理解PCA。不然的话,需要讲协方差矩阵,特征值和特征向量,以及为什么能达到降维的目的,对一般同学来说太难了。通常,完整的推导PCA的这个数学解,也是研究生课堂上的事情。鉴于我这个课程是机器学习的入门课程,我不想用太多数学知识让大家劝退,所以决定使用梯度上升发求解PCA问题。
PCA的标准解法是通过求解协方差矩阵的特征值和特征向量完成。通常一个问题有完美的数学解的时候,使用数学方式解决,无论是从性能还是精度,都远远高于搜索算法。
2)
由于PCA问题可以用搜索算法求解。所以,你说的算法都ok。但关键还是在于PCA问题有标准的数学解,毕竟它本身就是一个线性问题。所以,数学解是最好的解法:)
继续加油!:)
谢谢老师!辛苦您了!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14