统计流形的对偶性研究--《湖北大学》2014年硕士论文
by 陈三龙 - 2014
统计流形微分流形散度指数族对偶联络. ... 4, 胡宏昌;半参数模型的估计方法及其应用[D];武汉大学;2004年. 5, 刘文军;基于粗糙集的数据挖掘算法研究[D];北京师范大
香农的信息论基础就是根据概率可以计算出信息量,给了信息一个定量的表示,也是所有通信类学科的基础。而信息几何就是从几何的角度研究概率统计分布。这里面流形和统计流形是个很重要的概念,流形其实就是一个光滑的曲线或者曲面,也可以看成数据点的集合;统计流形上的点则是另外一个含义,即参数化的概率密度函数,这些参数是统计流形的坐标。
在非线性数据分析、数据分类领域,流形学习得到了广泛的应用,主要是从2000年Science上连续发表了3篇流形学习的论文开始。现在的数据分析,数据一般是高维数据,如果看成一个向量的话,那么它就是高维欧氏空间中的一个点。一个高维数据集中,数据之间往往有许多隐含的联系,这些关联可能是以某种流形形式存在,找到了这种流形,就可以进行非线性降维或者聚类这样的操作了。
统计流形上的点主要是参数化的概率密度函数,一般来讲,直方图是概率密度分布的最大似然估计,那么统计流形上的点就可以看成是直方图向量。最重要的一点,统计流形上给出了两个点之间的距离,也是两个点之间的信息量,这个距离叫做Fisher信息度量,它等于流形上两个点之间的最小距离(也叫测地距离),而不是两个点之间的欧氏距离
微分几何
来源: 崔江涛的日志
最近研究工作中涉及到一个新的数学方向,微分几何-》信息几何-》统计流形,而数学界华人的骄傲陈省身和丘成桐在此领域都很有建树,网上能够查到微分几何与广义相对论的关系。但现在我们应用的领域却是计算机视觉和数据库。香农的信息论基础就是根据概率可以计算出信息量,给了信息一个定量的表示,也是所有通信类学科的基础。而信息几何就是从几何的角度研究概率统计分布。这里面流形和统计流形是个很重要的概念,流形其实就是一个光滑的曲线或者曲面,也可以看成数据点的集合;统计流形上的点则是另外一个含义,即参数化的概率密度函数,这些参数是统计流形的坐标。
在非线性数据分析、数据分类领域,流形学习得到了广泛的应用,主要是从2000年Science上连续发表了3篇流形学习的论文开始。现在的数据分析,数据一般是高维数据,如果看成一个向量的话,那么它就是高维欧氏空间中的一个点。一个高维数据集中,数据之间往往有许多隐含的联系,这些关联可能是以某种流形形式存在,找到了这种流形,就可以进行非线性降维或者聚类这样的操作了。
统计流形上的点主要是参数化的概率密度函数,一般来讲,直方图是概率密度分布的最大似然估计,那么统计流形上的点就可以看成是直方图向量。最重要的一点,统计流形上给出了两个点之间的距离,也是两个点之间的信息量,这个距离叫做Fisher信息度量,它等于流形上两个点之间的最小距离(也叫测地距离),而不是两个点之间的欧氏距离。
前几天见了北大的徐进老师,他的关于四色定理的证明据说快要在美国的顶级数学杂志上发表了,这也是他几十年研究的成果。静下心来做研究,做的多了发现数学真是大多数工程应用学科的基础,要解决新的问题,没有坚实的数学基础是
統計的主要重點是在屬於歐氏空間中的數據,是很常見
數據會對非歐幾里得幾何空間的支持。或許最簡單的例子是
雙向數據,它趴在圓或球體。定向統計追溯到R.A.費舍爾的
在分析地球磁極的方向,與主要的開創性論文(費舍爾,1953)
後來的發展沃森(1983年),Mardia和朱佩(2000年),費舍爾等人。
(1987)等。
在科學和工程技術的進步導致了更複雜的日常收集
幾何數據。例如,彌散張量成像(DTI)獲得本地信息
通過在每個像素(3×3正定矩陣Alexander等神經活動的指示。,
2007年)。在機器視覺中,數字圖像可以由一組K-的地標來表示,集合
其中形成基於里程碑式的造型空間(肯德爾,1984)。在工程和機器學習,
圖像通常預處理或減少到子空間的集合,與每個數據點(一個
圖像)在一個子空間所代表的樣本數據。人們也可能會遇到存儲數據
作為正交幀(丘陵等,1971),表面,曲線,和網絡。
數據集,其基本要素是幾何對象的統計分析需要精確的數學
底層空間和推理的表徵是依賴於幾何形狀
空間。在許多情況下(例如,正定矩陣,球體,形狀的空間等的空間),該
底層空間對應的歧管。歧管裝備一般拓撲空間
用微/光滑結構導致的幾何形狀一般不堅持
通常的歐幾里得幾何。因此,新的統計理論和模型已經被開發
對於歧管值數據的統計推斷。已經有上推論一些發展
基於i.i.d(獨立同分佈)上的已知歧意見。這樣
方法主要是根據獲得的統計估計為位置的適當觀念
和散佈在所述歧管。例如,人們可以在分佈的中心為基礎的推斷
在Fr'echet的意思是,用獲得的樣本估計的漸近分佈(巴特查亞
和Patrangenaru,2003年,2005年;巴塔查亞和Lin,2013年)。同時也出現了一些考慮
對歧管(巴特查亞和Dunson,2010非參數密度估計;
Lin等,
2013;佩爾蒂埃,2005)。巴塔查亞和巴特查亞(2012)提供了一個最近的這種概述
發展。
1
的arXiv:1508.02201v1 [math.ST] 2015年8月10日
同時也出現了在建模之間的關係的興趣越來越大的歧管值
響應Y和歐幾里得預測X.例如,許多研究都致力於調查
如何塑造大腦隨著年齡的增長,人口因素,智商和其他變量的變化。它是必不可少
考慮到所述歧管為正確推理的基本幾何形狀。方法
忽視數據的幾何形狀有可能導致很大的誤導性的預測和
推論。某些幾何方法已經開發了在文獻中。例如,弗萊徹
(2011)開發的黎曼流形測地回歸模型,其可以被看作是一個
流形上的線性回歸和欣克爾等後續工作的對口。 (2012)推廣
多項式回歸模型到歧管。這些參數和半參數模型
優雅,但可能缺乏在某些應用中足夠的靈活性。 Shi等。 (2009)提出了一種半參數
內在的回歸模型流形上的,和戴維斯等人。 (2007)概括的本徵
在黎曼流形核回歸方法,在造型變化考慮應用
腦塑造隨著時間的推移。元等。 (2012)開發的一個內在局部多項式模型
對稱正定矩陣的空間,這在擴散張量成像應用。一個
固有模式的缺點是通過最小化複雜招致沉重的計算負擔
沿測地線目標函數,通常需要昂貴的梯度的評價在
迭代算法。目標函數通常具有多種模式,導致大的靈敏度
啟動點。此外,人口回歸函數的存在性和唯一僅持有
相對嚴格的條件下。因此,在估計中使用通常的血統算法
不能保證收斂到全局最優解。
隨著開發的通用計算效率的積極性,從理論上聽起來
和歧管值響應數據實際有用的回歸分析框架,我們建議
非參數外在回歸模型首先嵌入歧管,其中反應
駐留到一些高維歐氏空間。我們使用等變嵌入,從而保護
幾何結構的大量的圖像。本地回歸估計(如局部多項式
回歸函數的估計)被嵌入,然後將其投射返回到後得到
歧管的圖像。外回歸設定中,內在的和外在的方法
已經提出了用於歧管值數據的建模和數學研究
歧管的特性。然而,就我們所知,我們的工作是在採取一個外在的第一
在回歸建模方面的做法。我們的做法是一般,擁有典雅的漸近
理論和優於內在模型的計算效率方面。此外,還有
基本上沒有在推理與考慮的例子差異。
如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗?
26
个回答
“仅是以应用为目的”有点含糊。。乍一看题主好像想说是在公司里用,但后面又出来一大票高大上课程,看起来又好像偏学界。。前面的大大们提到的感觉更偏学界。我补充一些工业界的情况。
总的来说我偏向匿名用户的回答。如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗? - 匿名用户的回答
在思考这个问题之前,要先搞清楚公司花钱雇你来干啥的。我的经验是,这有两种情况。一是公司原来没有一项业务,现在要把一些机器学习这个东西跑起来(从无到有)。二是在你接手的时候公司已经有一定基础了,现在要把性能调上去(从差到优)。前者完全不用任何数学,先用别人有的模块/代码把系统撸起来是王道。后者看具体问题,大多数情况不用数学。
从无到有的情况,比如我原来在facebook做place deduplication,大概就是说非死不可上面超多可以签到的地点,要判断里面有哪些是重复的地点。类似知乎上面有很多重复的问题,如何鉴别和重定向这些问题。这个问题从机器学习的角度来看并不难,有很多已有工作。但公司更关心的其实是怎么把随便一个系统在fb数十TB的数据上日起来。所以我们的绝大多数时间根本不是花在评估哪个机器学习模型更好,这个流形有什么性质,那个系统有什么下限,而是——撸hadoop用几千个核先把feature抽出来。有了feature以后后台分类器是特妈随便找的这种事我会乱说?这种情况跟数学完全没鸟关系好吗。
从有到优的情况,我也参与了这个项目的调优。基本经验是——分类器啊模型啊再复杂精巧数学性质再好没吊用,关键还是看feature。弄一个有效的feature出来精度呼呼的往上涨,各种分类器瞎JB换啊调啊基本没差别。。(当然deep learning这种模型的质变除外,但这个和不搞科研的人就没啥关系了)所以你要问数学有没有用,我说有用,根据数学才能提出有效的模型——但这特妈是学界人家十年磨一剑的人用的。放公司里用数学拱KPI分分钟被nen死。隔壁王二狗整俩新feature奖金拿得多多的,这边你要死磕泛函产品狗咬死你。。
当然在偏研究的地方比如Google X的某些部门还是有用的,但我觉得这还是偏学界。
总的来说,我的建议是,如果想去公司的话就不要纠结逼格过高的事情了。学好线性代数,统计和凸优化就出门打怪吧,攒系统经验和dirty trick才是王道。当然我也不是说就不要搞数学,只是如果你去公司的话,在学好线代统计凸优化的前提下,同样的时间花在学计算机系统的构建和系统性的思考方法上,比学习数学更划算。
总的来说我偏向匿名用户的回答。如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗? - 匿名用户的回答
在思考这个问题之前,要先搞清楚公司花钱雇你来干啥的。我的经验是,这有两种情况。一是公司原来没有一项业务,现在要把一些机器学习这个东西跑起来(从无到有)。二是在你接手的时候公司已经有一定基础了,现在要把性能调上去(从差到优)。前者完全不用任何数学,先用别人有的模块/代码把系统撸起来是王道。后者看具体问题,大多数情况不用数学。
从无到有的情况,比如我原来在facebook做place deduplication,大概就是说非死不可上面超多可以签到的地点,要判断里面有哪些是重复的地点。类似知乎上面有很多重复的问题,如何鉴别和重定向这些问题。这个问题从机器学习的角度来看并不难,有很多已有工作。但公司更关心的其实是怎么把随便一个系统在fb数十TB的数据上日起来。所以我们的绝大多数时间根本不是花在评估哪个机器学习模型更好,这个流形有什么性质,那个系统有什么下限,而是——撸hadoop用几千个核先把feature抽出来。有了feature以后后台分类器是特妈随便找的这种事我会乱说?这种情况跟数学完全没鸟关系好吗。
从有到优的情况,我也参与了这个项目的调优。基本经验是——分类器啊模型啊再复杂精巧数学性质再好没吊用,关键还是看feature。弄一个有效的feature出来精度呼呼的往上涨,各种分类器瞎JB换啊调啊基本没差别。。(当然deep learning这种模型的质变除外,但这个和不搞科研的人就没啥关系了)所以你要问数学有没有用,我说有用,根据数学才能提出有效的模型——但这特妈是学界人家十年磨一剑的人用的。放公司里用数学拱KPI分分钟被nen死。隔壁王二狗整俩新feature奖金拿得多多的,这边你要死磕泛函产品狗咬死你。。
当然在偏研究的地方比如Google X的某些部门还是有用的,但我觉得这还是偏学界。
总的来说,我的建议是,如果想去公司的话就不要纠结逼格过高的事情了。学好线性代数,统计和凸优化就出门打怪吧,攒系统经验和dirty trick才是王道。当然我也不是说就不要搞数学,只是如果你去公司的话,在学好线代统计凸优化的前提下,同样的时间花在学计算机系统的构建和系统性的思考方法上,比学习数学更划算。
我就是从数学转ML的。我就知道,肯定有人要扯很多纯数学的“基础背景”。我说一些实在的,微分几何,流形,代数拓扑这些知识,只要你去找相关的研究论文,总能找得到和Ml有交集的地方。但是,不代表你必须掌握它们。在大部分的ML研究里,还是微积分和线性代数、概率统计的功底最重要。不要太小看微积分和线性代数,很多时候做研究时要用的推导还是需要很多熟练的技巧才可以胜任。至于其他知识,可以用到时再补充。
不请自来,我本人就是从数学转到数据科学上来的,是完全以应用为目的学的机器学习。本科加PHD九年中,数学方面的课程大概学过:数学分析(微积分),线性代数,概率论,统计,应用统计,数值分析,常微分方程,偏微分方程,数值偏微分方程,运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析等等
从我个人的学习过程中,觉得对机器学习的应用有帮助的数学学科有(重要性从高到低):
1, 线性代数(或叫高等代数):必需,所有的算法最后都会向量化表示,线性代数不熟的话,算法都看不懂啊
2,微积分:这个是所有高等数学的基础,不细说了
3,统计:这里包括统计理论基础,和应用统计(主要就是线性模型)。很多机器学习内容的前身就是统计啊。
3.5, 凸优化: 经 @徐文浩 补充,原因跟6相似
前三个感觉是想要学好机器学习所必需的,后面的虽然不必需,但是适当了解之后,帮助也很大:
4,概率论:基础概率论就够了,以测度为基础的高级概率论对机器学习帮助不大
5,数值分析:数值分析的一部分包括了插值,拟合,数值求解各种方程,数值积分,这些小技术虽然没有跟机器学习直接扯上关系,但是可能在你处理复杂问题时的一些小地方起到奇效。数值分析的另一大块就是数值线性代数了,包括怎么矩阵求逆了,矩阵的各种分解了,矩阵特征根奇异值什么了,这里面很多算法都会被机器学习的书法直接使用的。比如SVD就被Principal Component Analysis直接调用了啊。
6,运筹学:运筹就是做优化,说白了就是把问题表示成数学公式和限制条件,然后求最大值或最小值。所以不少机器学习里面先进的优化算法,最先都是在运筹里面出现的
暂时就想到这么多,至于题主说的泛函,微分流形,代数拓扑啥的,完全不需要了解啊。
从我个人的学习过程中,觉得对机器学习的应用有帮助的数学学科有(重要性从高到低):
1, 线性代数(或叫高等代数):必需,所有的算法最后都会向量化表示,线性代数不熟的话,算法都看不懂啊
2,微积分:这个是所有高等数学的基础,不细说了
3,统计:这里包括统计理论基础,和应用统计(主要就是线性模型)。很多机器学习内容的前身就是统计啊。
3.5, 凸优化: 经 @徐文浩 补充,原因跟6相似
前三个感觉是想要学好机器学习所必需的,后面的虽然不必需,但是适当了解之后,帮助也很大:
4,概率论:基础概率论就够了,以测度为基础的高级概率论对机器学习帮助不大
5,数值分析:数值分析的一部分包括了插值,拟合,数值求解各种方程,数值积分,这些小技术虽然没有跟机器学习直接扯上关系,但是可能在你处理复杂问题时的一些小地方起到奇效。数值分析的另一大块就是数值线性代数了,包括怎么矩阵求逆了,矩阵的各种分解了,矩阵特征根奇异值什么了,这里面很多算法都会被机器学习的书法直接使用的。比如SVD就被Principal Component Analysis直接调用了啊。
6,运筹学:运筹就是做优化,说白了就是把问题表示成数学公式和限制条件,然后求最大值或最小值。所以不少机器学习里面先进的优化算法,最先都是在运筹里面出现的
暂时就想到这么多,至于题主说的泛函,微分流形,代数拓扑啥的,完全不需要了解啊。
这里有个80-20原则的应用。
只要20%的机器学习知识,其实已经可以在80%的商业应用里取得满意的效果。
但,如果公司精益求精,或者说是专注于机器学习算法的公司,可能要投入指数级别的努力来达到性能的提升。
只要20%的机器学习知识,其实已经可以在80%的商业应用里取得满意的效果。
但,如果公司精益求精,或者说是专注于机器学习算法的公司,可能要投入指数级别的努力来达到性能的提升。
被邀请了。
应用的话,需要对自己用的模型有清晰的了解。首先要搞清楚模型的假设,看它能否适用于自己的业务;然后是里面涉及的数学以及具体实现,方便将来按需要作修改。一般机器学习的课本都对经典的模型有很详细的介绍,涉及的数学也就是你看到的那些,其他答案也提到了一部分,我再加个信息论。
如果题主场景是“想读读最新的时髦 paper,然后在自己的数据上试一试”这种意义下的应用的话,那么就首先需要看懂最近的论文,之后试了不理想的话可能需要找出不够好的原因,甚至还要魔改(而不是换一个模型接着套),这时候了解数学上的细节就更重要些。
我借这个机会列一些跟题主提到的现代数学有关的(道听途说的)研究方向或者具体 paper,题主可以感受一下。
(下面是跑题部分,随便看看。被邀请的,必须多写点,对不对。)
1. 泛函分析。相关知识点:线性空间、空间、RKHS……
我们在有限维线性空间中处理数据,大家已经在线性代数中知道了。无限维线性空间的理论则帮助刻画了函数空间的性质,为 additive modeling 之类的东西提供了理论模型。如果你需要学习 Fourier 分析和小波分析(比如说设计合适的小波基来提取当前数据的特征),你还要了解 空间的知识,以及一些测度论的结果(积分的定义、各种收敛性/阶)。
RKHS,再生核 Hilbert 空间,则是核方法、Tikhonov 正则化理论、以及(部分地)高斯过程的基础。还有个挺好玩的方向,利用 kernel embedding,即把一个概率分布映射成 RHKS 的一个点后,在无穷维的 RKHS 上做 inference(图模型或者 Bayesian inference),好处是(它说的)能放宽对数据的假定,处理结构更复杂的数据等等,因为无穷维空间肯定能比有限维空间容纳更多甚至是全部的信息。代表人物:Kenji Fukumizu。
2. 微分几何。相关知识点:切空间、向量场、联络、黎曼几何、测地线……
a) 矩阵优化。假设你需要找一个正交矩阵或者对称矩阵或者别的什么矩阵,使得它最小化某个误差函数,那么你就需要在相应的矩阵流形上做优化。这个基本上就是把上的梯度下降、牛顿法什么的推广到矩阵所在的黎曼流形上去。应用的话,就是你自己的目标函数和你自己的矩阵类型。另外最近 Zoubin Ghahramani 组有人证明了相当一部分的线性降维算法都能归入矩阵优化的框架:Unifying linear dimensionality reduction。
参考书籍:Optimization Algorithms on Matrix Manifolds
工具包:Manopt
b) 信息几何。这个主要研究统计流形:对于某个参数分布族,把其中的每个分布看成一个点,再加上 Fisher information metric 后形成的黎曼流形。这个跟指数分布族联系得比较紧。比如说建立了指数分布族跟各种散度(如KL-Divergence)之间的几何联系,以及一些渐近性质。
应用方面,2014年的 NIPS paper Distributed Estimation, Information Loss and Exponential Families 考虑了这么一个问题:用 maximum likelihood 估计模型参数的时候,跟用所有数据一起训练(速度慢)得到的全局估计相比,把数据分几份分别训练(分布式,速度快,时髦)得出若干个局部估计后,再综合起来有什么损失?怎样综合最好?结果可能有点出乎大家意料,把局部估计的算术平均作为全局估计并不是最好的,基于KL-Divergence平均的综合方法“损失”最小。如果数据分布是属于标准指数分布族的话,这样综合之后没有“损失”(有兴趣的同学可以进一步看看里面的“损失”是指什么)。
参考书籍:Methods of Information Geometry
c) 当然还有直接考虑数据空间本身的流形。不过经典的流形学习着重数据的形状和内禀维数,跟微分几何并没有很大的关系。有人进一步认为全局的线性操作在数据空间上不一定有意义(比如说两个图像相加的结果不一定是有意义的图像,一个文档的特征乘以一个标量之后不一定是有意义的文档特征),所以不应该把数据盲目嵌入到中,应该找别的更有意义的流形来嵌入。这种想法自然地跟微分几何产生了联系,具体可以看看 Guy Lebanon 博士论文的第七章。
3. 代数几何。相关知识点:代数簇
a) 矩阵分解。假设我们想把矩阵分解成,其中低秩,稀疏。这里在不同目标下有不同的做法,如果想尽量低秩,尽量稀疏,那么就是 Robust PCA(RPCA)。但如果希望关于的秩(=隐变量的个数)的估计尽量准,可能就不太好弄。Latent variable graphical model selection via convex optimization 这个文,从带隐变量的高斯图模型出发,说明了估计隐变量个数的重要性,然后比较好地解决了这个问题。出发点就是把秩不大于某个值的矩阵集合看成一个代数簇,把非零元个数不大于某个值的矩阵集合看成另一个代数簇,然后再(看不懂了,大概用代数几何的某些工具去日吧,但我觉得出发点挺重要的……)
(再提一下 RPCA。RPCA 的求解可以转化为如下凸优化问题的求解:
其中是的奇异值的和,叫 nuclear norm,你可以想象成某种针对奇异值“向量”的范数:奇异值“稀疏”了,自然就低秩了。基于 RPCA 的推荐系统曾经赢得过 Netflix Prize,应用性高到爆。)
b) 其他。我去年选了数学系的 Real Algebraic Geometry and Optimization,嗯其实就是讲非负多项式的优化。主要讲了两样东西:1. 多项式平方和这个集合是一个锥;2. 这个锥上能建立一堆类似于凸优化算法的优化方法。所以优化非负多项式时,先 relax 成多项式的平方和,再用非常类似于SDP的方法来求数值解。内容还是比较开眼的(闲话)。
这个课快结束时恰好他们系举办了个叫 Applications of Real Algebraic Geometry 的小会议,里面有篇文章我觉得挺有趣:Dual-to-kernel learning with ideals,大意是 kernel method 很好,但是对应的特征空间是 implicit 的,我们不清楚它的结构。要弄清楚它的结构,最简单的方法是把它的基写出来。在这个目的下且不考虑无穷维情况的话,多项式核是比较好的,但是多项式核对应的特征空间的维数还是很大,怎么办?他们发现(先回家,到家写/到家了,可是不想写,反正没有人看代数几何。)
4. 代数拓扑。关于代数拓扑我只了解基本群的概念。至于机器学习方面的应用,只知道看到有人写了篇 Topological Data Analysis 后就做了个叫 AYASDI 的产品,有兴趣可以……看看。我又搜了一下,在处理音乐数据和计算机视觉方面都有人提出过基于代数拓扑的方法,可能代数拓扑研究的不变关系(比如同伦)比较容易用计算机表示吧。
5. 微分方程。我想到的只有半监督学习中的经典论文 Semi-Supervised Learning Using Gaussian Fields and Harmonic Functions:把有标签的数据点看成是“热源”,然后通过最近邻域图上的“热扩散”把标签传播到没有标签的数据点上。相关知识点是热扩散方程以及图上的 Laplacian 算子。
我觉得数学应该是学得越多越好的,只是后期边际效应不一定大。最后放一下 Michael I. Jordan 建议的一个书单。
应用的话,需要对自己用的模型有清晰的了解。首先要搞清楚模型的假设,看它能否适用于自己的业务;然后是里面涉及的数学以及具体实现,方便将来按需要作修改。一般机器学习的课本都对经典的模型有很详细的介绍,涉及的数学也就是你看到的那些,其他答案也提到了一部分,我再加个信息论。
如果题主场景是“想读读最新的时髦 paper,然后在自己的数据上试一试”这种意义下的应用的话,那么就首先需要看懂最近的论文,之后试了不理想的话可能需要找出不够好的原因,甚至还要魔改(而不是换一个模型接着套),这时候了解数学上的细节就更重要些。
我借这个机会列一些跟题主提到的现代数学有关的(道听途说的)研究方向或者具体 paper,题主可以感受一下。
(下面是跑题部分,随便看看。被邀请的,必须多写点,对不对。)
1. 泛函分析。相关知识点:线性空间、空间、RKHS……
我们在有限维线性空间中处理数据,大家已经在线性代数中知道了。无限维线性空间的理论则帮助刻画了函数空间的性质,为 additive modeling 之类的东西提供了理论模型。如果你需要学习 Fourier 分析和小波分析(比如说设计合适的小波基来提取当前数据的特征),你还要了解 空间的知识,以及一些测度论的结果(积分的定义、各种收敛性/阶)。
RKHS,再生核 Hilbert 空间,则是核方法、Tikhonov 正则化理论、以及(部分地)高斯过程的基础。还有个挺好玩的方向,利用 kernel embedding,即把一个概率分布映射成 RHKS 的一个点后,在无穷维的 RKHS 上做 inference(图模型或者 Bayesian inference),好处是(它说的)能放宽对数据的假定,处理结构更复杂的数据等等,因为无穷维空间肯定能比有限维空间容纳更多甚至是全部的信息。代表人物:Kenji Fukumizu。
2. 微分几何。相关知识点:切空间、向量场、联络、黎曼几何、测地线……
a) 矩阵优化。假设你需要找一个正交矩阵或者对称矩阵或者别的什么矩阵,使得它最小化某个误差函数,那么你就需要在相应的矩阵流形上做优化。这个基本上就是把上的梯度下降、牛顿法什么的推广到矩阵所在的黎曼流形上去。应用的话,就是你自己的目标函数和你自己的矩阵类型。另外最近 Zoubin Ghahramani 组有人证明了相当一部分的线性降维算法都能归入矩阵优化的框架:Unifying linear dimensionality reduction。
参考书籍:Optimization Algorithms on Matrix Manifolds
工具包:Manopt
b) 信息几何。这个主要研究统计流形:对于某个参数分布族,把其中的每个分布看成一个点,再加上 Fisher information metric 后形成的黎曼流形。这个跟指数分布族联系得比较紧。比如说建立了指数分布族跟各种散度(如KL-Divergence)之间的几何联系,以及一些渐近性质。
应用方面,2014年的 NIPS paper Distributed Estimation, Information Loss and Exponential Families 考虑了这么一个问题:用 maximum likelihood 估计模型参数的时候,跟用所有数据一起训练(速度慢)得到的全局估计相比,把数据分几份分别训练(分布式,速度快,时髦)得出若干个局部估计后,再综合起来有什么损失?怎样综合最好?结果可能有点出乎大家意料,把局部估计的算术平均作为全局估计并不是最好的,基于KL-Divergence平均的综合方法“损失”最小。如果数据分布是属于标准指数分布族的话,这样综合之后没有“损失”(有兴趣的同学可以进一步看看里面的“损失”是指什么)。
参考书籍:Methods of Information Geometry
c) 当然还有直接考虑数据空间本身的流形。不过经典的流形学习着重数据的形状和内禀维数,跟微分几何并没有很大的关系。有人进一步认为全局的线性操作在数据空间上不一定有意义(比如说两个图像相加的结果不一定是有意义的图像,一个文档的特征乘以一个标量之后不一定是有意义的文档特征),所以不应该把数据盲目嵌入到中,应该找别的更有意义的流形来嵌入。这种想法自然地跟微分几何产生了联系,具体可以看看 Guy Lebanon 博士论文的第七章。
3. 代数几何。相关知识点:代数簇
a) 矩阵分解。假设我们想把矩阵分解成,其中低秩,稀疏。这里在不同目标下有不同的做法,如果想尽量低秩,尽量稀疏,那么就是 Robust PCA(RPCA)。但如果希望关于的秩(=隐变量的个数)的估计尽量准,可能就不太好弄。Latent variable graphical model selection via convex optimization 这个文,从带隐变量的高斯图模型出发,说明了估计隐变量个数的重要性,然后比较好地解决了这个问题。出发点就是把秩不大于某个值的矩阵集合看成一个代数簇,把非零元个数不大于某个值的矩阵集合看成另一个代数簇,然后再(看不懂了,大概用代数几何的某些工具去日吧,但我觉得出发点挺重要的……)
(再提一下 RPCA。RPCA 的求解可以转化为如下凸优化问题的求解:
其中是的奇异值的和,叫 nuclear norm,你可以想象成某种针对奇异值“向量”的范数:奇异值“稀疏”了,自然就低秩了。基于 RPCA 的推荐系统曾经赢得过 Netflix Prize,应用性高到爆。)
b) 其他。我去年选了数学系的 Real Algebraic Geometry and Optimization,嗯其实就是讲非负多项式的优化。主要讲了两样东西:1. 多项式平方和这个集合是一个锥;2. 这个锥上能建立一堆类似于凸优化算法的优化方法。所以优化非负多项式时,先 relax 成多项式的平方和,再用非常类似于SDP的方法来求数值解。内容还是比较开眼的(闲话)。
这个课快结束时恰好他们系举办了个叫 Applications of Real Algebraic Geometry 的小会议,里面有篇文章我觉得挺有趣:Dual-to-kernel learning with ideals,大意是 kernel method 很好,但是对应的特征空间是 implicit 的,我们不清楚它的结构。要弄清楚它的结构,最简单的方法是把它的基写出来。在这个目的下且不考虑无穷维情况的话,多项式核是比较好的,但是多项式核对应的特征空间的维数还是很大,怎么办?他们发现(先回家,到家写/到家了,可是不想写,反正没有人看代数几何。)
4. 代数拓扑。关于代数拓扑我只了解基本群的概念。至于机器学习方面的应用,只知道看到有人写了篇 Topological Data Analysis 后就做了个叫 AYASDI 的产品,有兴趣可以……看看。我又搜了一下,在处理音乐数据和计算机视觉方面都有人提出过基于代数拓扑的方法,可能代数拓扑研究的不变关系(比如同伦)比较容易用计算机表示吧。
5. 微分方程。我想到的只有半监督学习中的经典论文 Semi-Supervised Learning Using Gaussian Fields and Harmonic Functions:把有标签的数据点看成是“热源”,然后通过最近邻域图上的“热扩散”把标签传播到没有标签的数据点上。相关知识点是热扩散方程以及图上的 Laplacian 算子。
我觉得数学应该是学得越多越好的,只是后期边际效应不一定大。最后放一下 Michael I. Jordan 建议的一个书单。
匿名用户
应用的话懂凸优化 和 数值方法处理矩阵基本够了,是有人会用些比较精巧的数学去modeling,不过这些方法出来局限性都很大,假设的结构很容易被破坏,测度没啥用写论文装b用的,懂泛函可以帮你玩转核方法,实际收益么… 呵呵 … 不过拓扑方法最近说效果还可以,不过懂得人少,这行毕竟大多cs出生. 弄懂流形学习不需要懂多少拉普拉斯算子,连怎么在上面积分都不用鸟… 其实简单,即便要也是需要一这些数学里面粗浅的一部分而已,你有一定的数学基础完全可以用到再去看,多去实践才是正道…我的意见呢,数学基础不能没有,至少万一你需要接触的时候不至于太茫然,但是太多时间花在上面是不划算的:
我觉得呢如果题主时间非常充裕的并且非常执着于数学的话 看掉本讲度量空间和differential form 的分析和讲了多线性的线性代数吧,这逼格总够高吧,实在还想看的话就把就看看抽代(其实真没啥必要)… 好吧,是在还是满足不了题主的逼格在搞几本给学物理生看的书摆在书架上应急(就是尼玛定理自己会证明自己那种)然后真的真的不用在nen了…这样逼格够高么
我觉得呢如果题主时间非常充裕的并且非常执着于数学的话 看掉本讲度量空间和differential form 的分析和讲了多线性的线性代数吧,这逼格总够高吧,实在还想看的话就把就看看抽代(其实真没啥必要)… 好吧,是在还是满足不了题主的逼格在搞几本给学物理生看的书摆在书架上应急(就是尼玛定理自己会证明自己那种)然后真的真的不用在nen了…这样逼格够高么
简单的说是看你做的方向。这个领域大部分高中数学就能看懂算法,但是进一步推衍需要大量的数学知识储备。我做统计的,从偏统计的角度举个例子,SVM/LASSO。
svm的最简单解释就是l2空间最大化分离平面的距离。数学推衍几乎也就个初高中水平吧?但这仅仅是开始。核函数的引入和性质不可避免的要讨论vc维和RKHS。后面那个玩意儿什么说呢,可就不那么直白好懂了。这还仅仅是分类器的性质。算法层面上,写个简单的“可以算”的也不费事,但要“做得好”,最优化怎么做,能不能处理海量数据或着并行等…呵呵,不那么简单啊…
lasso也差不多。无非就是回归加个限制解空间的约束。单纯论九十年代jasa上提出来的那篇文章,基本高中生就能看懂。但是之后的衍生讨论扩展应用…有多复杂就不说了。到后面还有个什么压缩感知。同学,那里面的证明一则不一定能看懂,二则不一定能看下去。虽然结论可能看起来简单,但是怎么推广应用验证条件,你不明了还真是不好办的:比如把那套理论搬到survival analysis乃至time series里面可以不?
svm的最简单解释就是l2空间最大化分离平面的距离。数学推衍几乎也就个初高中水平吧?但这仅仅是开始。核函数的引入和性质不可避免的要讨论vc维和RKHS。后面那个玩意儿什么说呢,可就不那么直白好懂了。这还仅仅是分类器的性质。算法层面上,写个简单的“可以算”的也不费事,但要“做得好”,最优化怎么做,能不能处理海量数据或着并行等…呵呵,不那么简单啊…
lasso也差不多。无非就是回归加个限制解空间的约束。单纯论九十年代jasa上提出来的那篇文章,基本高中生就能看懂。但是之后的衍生讨论扩展应用…有多复杂就不说了。到后面还有个什么压缩感知。同学,那里面的证明一则不一定能看懂,二则不一定能看下去。虽然结论可能看起来简单,但是怎么推广应用验证条件,你不明了还真是不好办的:比如把那套理论搬到survival analysis乃至time series里面可以不?
在这个问题和类似问题里,用不用package、是不是自己实现模型,和理解模型、原理没有冲突。
因此我觉得这种题目需要双修的同学来回答,其他任何会引起争议的,我觉得真没必要。
因此我觉得这种题目需要双修的同学来回答,其他任何会引起争议的,我觉得真没必要。
大一高数学完即可, 高数上。 哦,对, 线性代数和概率也要学完。
@grapeot已给出很精彩的答案!其实机器学习要精通,能把计算机算法与数据结构弄得滚瓜烂熟就够了,什么劳什子泛函分析、流形分析之类的,在实务中基本上没什么卵用,实际上,也有很多研究机器学习算法的论文会用到这些高深的数学,但所幸所有这些文献都给出了具体的算法实现步骤,所以,你不懂这些高深数学基本上不影响你对机器学习出神入化的应用,真正决定你机器学习水平的关键因素还是:你预处理数据的能力、你对业务洞察及抽取特征属性的能力、你阅读前沿文献的耐心、以及你反复测试各类算法有效性的毅力。
其实不明白机器学习和提到的这几门课程有啥关系。
不需要。
题主觉得学了这些会高大上吧?可惜用不到。
大部分ML只需要应用数学的知识,特别是线代、数值优化之类。
本人专业物理。
即使对于物理学的来说,微分几何代数拓扑之类的也不是到处用得上。因为就算是领域内的差别也非常大。
题主觉得学了这些会高大上吧?可惜用不到。
大部分ML只需要应用数学的知识,特别是线代、数值优化之类。
本人专业物理。
即使对于物理学的来说,微分几何代数拓扑之类的也不是到处用得上。因为就算是领域内的差别也非常大。
匿名用户
我认为多学点计算机的东西比较好,不管是工具类的hadoop、spark、pig、hive,还是理论类的算法、数据结构、操作系统、编译原理,这些都有用。多实践,参与实际项目和实现已有模型都是很好的,从这些上面得到的理解一样会很深刻,而且更实用
这是在搞理论物理吗-_-
匿名用户
调参党表示,学好统计线代,熟悉下什么data用什么feature套什么模型。。。剩下的都是代码的干活,scikit learn大法好。。。
去aws开个xlarge computing instance,然后开干cross validation就是了。。。
去aws开个xlarge computing instance,然后开干cross validation就是了。。。
把韩爷爷那本《数据挖掘概念与技术》看一遍,李航的《统计学习方法》也可以看一下,看完你会大惊一声:原来没什么数学背景也可以看懂的。
看了上面那么多回答,大部分的观点都是学点偏应用偏技巧的数学知识就行了,学什么高深的数学,真的觉得挺悲哀的。你搞机器学习是为了什么?如果是为了赚钱,你还不如去卖烧烤,开火锅店,虽然辛苦点,但你只需要会加减乘除就行了,连微积分都不用学;如果是因为喜欢,那你不学习一些所谓高深的数学,你就领略不到机器学习真正的美。俄罗斯,美国,日本,这些国家为什么科技强大,因为数学强。一元微积分已经是日本高中生必学的内容了。
数学其实就是从古至今的数学家将自然界客观规律抽象出来的一套理论,所谓科学的尽头是数学,数学的尽头是哲学,不懂数学,你就体会不到自然界的很多美好。你所说的那些高深的数学分支,不过是把你以前学过的理论抽象到一个更高的高度,从而提供一种更普适的解决问题的方法,站在更高的角度才能够看得更清楚,才能够看到问题的本质(推荐你看下《高观点下的初等数学》的序言)。
归根结底,我们国家的年轻人还是太浮躁了,经常问学这个有用吗,潜在的意思就是学这个能赚钱吗。如果你是为了赚钱去学一样东西,那它永远不会带给你你想要的那么多钱;如果你是为了兴趣去学一样东西,那它带给你的会远超你的想象。
我是计算机系的,以前本科的时候数学学得很差(虽然不想给自己找借口,但不得不说那些老师只是在例行公事,根本不管怎样讲才能让学生更容易理解),觉得C++,操作系统才是最重要的,数学没有用。后来在读研究生时做很多事情都力不从心,开始自学算法和数据结构,计算理论等,这才发现计算机的所有理论的基础都是数学,你在一块芯片上布线都要用组合数学的理论,更不用说算法分析,编译原理了。计算机科学的两个奠基者图灵和冯诺依曼都是数学家,计算机科学本身就是数学的孩子。
说了这么多,一方面是对中国现在的风气感到很失望,考研读博都只是为了找个好工作,这根本就是浪费国家的教育资源和科研经费。另一方面是怕你走我当年的弯路。如果你真的喜欢机器学习,建议你业余时间可以多看看数学,算法,机器学习方面的经典书籍,虽说实践很重要,但经典书籍中的内容也是前人摸索了好多年把自己实践的心得总结出来的,这比你一个人再从头自己实践摸索要省时得多。
数学其实就是从古至今的数学家将自然界客观规律抽象出来的一套理论,所谓科学的尽头是数学,数学的尽头是哲学,不懂数学,你就体会不到自然界的很多美好。你所说的那些高深的数学分支,不过是把你以前学过的理论抽象到一个更高的高度,从而提供一种更普适的解决问题的方法,站在更高的角度才能够看得更清楚,才能够看到问题的本质(推荐你看下《高观点下的初等数学》的序言)。
归根结底,我们国家的年轻人还是太浮躁了,经常问学这个有用吗,潜在的意思就是学这个能赚钱吗。如果你是为了赚钱去学一样东西,那它永远不会带给你你想要的那么多钱;如果你是为了兴趣去学一样东西,那它带给你的会远超你的想象。
我是计算机系的,以前本科的时候数学学得很差(虽然不想给自己找借口,但不得不说那些老师只是在例行公事,根本不管怎样讲才能让学生更容易理解),觉得C++,操作系统才是最重要的,数学没有用。后来在读研究生时做很多事情都力不从心,开始自学算法和数据结构,计算理论等,这才发现计算机的所有理论的基础都是数学,你在一块芯片上布线都要用组合数学的理论,更不用说算法分析,编译原理了。计算机科学的两个奠基者图灵和冯诺依曼都是数学家,计算机科学本身就是数学的孩子。
说了这么多,一方面是对中国现在的风气感到很失望,考研读博都只是为了找个好工作,这根本就是浪费国家的教育资源和科研经费。另一方面是怕你走我当年的弯路。如果你真的喜欢机器学习,建议你业余时间可以多看看数学,算法,机器学习方面的经典书籍,虽说实践很重要,但经典书籍中的内容也是前人摸索了好多年把自己实践的心得总结出来的,这比你一个人再从头自己实践摸索要省时得多。
统计流形的对偶性研究--《湖北大学》2014年硕士论文
by 陈三龙 - 2014
统计流形微分流形散度指数族对偶联络. ... 4, 胡宏昌;半参数模型的估计方法及其应用[D];武汉大学;2004年. 5, 刘文军;基于粗糙集的数据挖掘算法研究[D];北京师范大
香农的信息论基础就是根据概率可以计算出信息量,给了信息一个定量的表示,也是所有通信类学科的基础。而信息几何就是从几何的角度研究概率统计分布。这里面流形和统计流形是个很重要的概念,流形其实就是一个光滑的曲线或者曲面,也可以看成数据点的集合;统计流形上的点则是另外一个含义,即参数化的概率密度函数,这些参数是统计流形的坐标。
在非线性数据分析、数据分类领域,流形学习得到了广泛的应用,主要是从2000年Science上连续发表了3篇流形学习的论文开始。现在的数据分析,数据一般是高维数据,如果看成一个向量的话,那么它就是高维欧氏空间中的一个点。一个高维数据集中,数据之间往往有许多隐含的联系,这些关联可能是以某种流形形式存在,找到了这种流形,就可以进行非线性降维或者聚类这样的操作了。
统计流形上的点主要是参数化的概率密度函数,一般来讲,直方图是概率密度分布的最大似然估计,那么统计流形上的点就可以看成是直方图向量。最重要的一点,统计流形上给出了两个点之间的距离,也是两个点之间的信息量,这个距离叫做Fisher信息度量,它等于流形上两个点之间的最小距离(也叫测地距离),而不是两个点之间的欧氏距离
微分几何
来源: 崔江涛的日志
最近研究工作中涉及到一个新的数学方向,微分几何-》信息几何-》统计流形,而数学界华人的骄傲陈省身和丘成桐在此领域都很有建树,网上能够查到微分几何与广义相对论的关系。但现在我们应用的领域却是计算机视觉和数据库。香农的信息论基础就是根据概率可以计算出信息量,给了信息一个定量的表示,也是所有通信类学科的基础。而信息几何就是从几何的角度研究概率统计分布。这里面流形和统计流形是个很重要的概念,流形其实就是一个光滑的曲线或者曲面,也可以看成数据点的集合;统计流形上的点则是另外一个含义,即参数化的概率密度函数,这些参数是统计流形的坐标。
在非线性数据分析、数据分类领域,流形学习得到了广泛的应用,主要是从2000年Science上连续发表了3篇流形学习的论文开始。现在的数据分析,数据一般是高维数据,如果看成一个向量的话,那么它就是高维欧氏空间中的一个点。一个高维数据集中,数据之间往往有许多隐含的联系,这些关联可能是以某种流形形式存在,找到了这种流形,就可以进行非线性降维或者聚类这样的操作了。
统计流形上的点主要是参数化的概率密度函数,一般来讲,直方图是概率密度分布的最大似然估计,那么统计流形上的点就可以看成是直方图向量。最重要的一点,统计流形上给出了两个点之间的距离,也是两个点之间的信息量,这个距离叫做Fisher信息度量,它等于流形上两个点之间的最小距离(也叫测地距离),而不是两个点之间的欧氏距离。
前几天见了北大的徐进老师,他的关于四色定理的证明据说快要在美国的顶级数学杂志上发表了,这也是他几十年研究的成果。静下心来做研究,做的多了发现数学真是大多数工程应用学科的基础,要解决新的问题,没有坚实的数学基础是
統計的主要重點是在屬於歐氏空間中的數據,是很常見
數據會對非歐幾里得幾何空間的支持。或許最簡單的例子是
雙向數據,它趴在圓或球體。定向統計追溯到R.A.費舍爾的
在分析地球磁極的方向,與主要的開創性論文(費舍爾,1953)
後來的發展沃森(1983年),Mardia和朱佩(2000年),費舍爾等人。
(1987)等。
在科學和工程技術的進步導致了更複雜的日常收集
幾何數據。例如,彌散張量成像(DTI)獲得本地信息
通過在每個像素(3×3正定矩陣Alexander等神經活動的指示。,
2007年)。在機器視覺中,數字圖像可以由一組K-的地標來表示,集合
其中形成基於里程碑式的造型空間(肯德爾,1984)。在工程和機器學習,
圖像通常預處理或減少到子空間的集合,與每個數據點(一個
圖像)在一個子空間所代表的樣本數據。人們也可能會遇到存儲數據
作為正交幀(丘陵等,1971),表面,曲線,和網絡。
數據集,其基本要素是幾何對象的統計分析需要精確的數學
底層空間和推理的表徵是依賴於幾何形狀
空間。在許多情況下(例如,正定矩陣,球體,形狀的空間等的空間),該
底層空間對應的歧管。歧管裝備一般拓撲空間
用微/光滑結構導致的幾何形狀一般不堅持
通常的歐幾里得幾何。因此,新的統計理論和模型已經被開發
對於歧管值數據的統計推斷。已經有上推論一些發展
基於i.i.d(獨立同分佈)上的已知歧意見。這樣
方法主要是根據獲得的統計估計為位置的適當觀念
和散佈在所述歧管。例如,人們可以在分佈的中心為基礎的推斷
在Fr'echet的意思是,用獲得的樣本估計的漸近分佈(巴特查亞
和Patrangenaru,2003年,2005年;巴塔查亞和Lin,2013年)。同時也出現了一些考慮
對歧管(巴特查亞和Dunson,2010非參數密度估計;
Lin等,
2013;佩爾蒂埃,2005)。巴塔查亞和巴特查亞(2012)提供了一個最近的這種概述
發展。
1
的arXiv:1508.02201v1 [math.ST] 2015年8月10日
同時也出現了在建模之間的關係的興趣越來越大的歧管值
響應Y和歐幾里得預測X.例如,許多研究都致力於調查
如何塑造大腦隨著年齡的增長,人口因素,智商和其他變量的變化。它是必不可少
考慮到所述歧管為正確推理的基本幾何形狀。方法
忽視數據的幾何形狀有可能導致很大的誤導性的預測和
推論。某些幾何方法已經開發了在文獻中。例如,弗萊徹
(2011)開發的黎曼流形測地回歸模型,其可以被看作是一個
流形上的線性回歸和欣克爾等後續工作的對口。 (2012)推廣
多項式回歸模型到歧管。這些參數和半參數模型
優雅,但可能缺乏在某些應用中足夠的靈活性。 Shi等。 (2009)提出了一種半參數
內在的回歸模型流形上的,和戴維斯等人。 (2007)概括的本徵
在黎曼流形核回歸方法,在造型變化考慮應用
腦塑造隨著時間的推移。元等。 (2012)開發的一個內在局部多項式模型
對稱正定矩陣的空間,這在擴散張量成像應用。一個
固有模式的缺點是通過最小化複雜招致沉重的計算負擔
沿測地線目標函數,通常需要昂貴的梯度的評價在
迭代算法。目標函數通常具有多種模式,導致大的靈敏度
啟動點。此外,人口回歸函數的存在性和唯一僅持有
相對嚴格的條件下。因此,在估計中使用通常的血統算法
不能保證收斂到全局最優解。
隨著開發的通用計算效率的積極性,從理論上聽起來
和歧管值響應數據實際有用的回歸分析框架,我們建議
非參數外在回歸模型首先嵌入歧管,其中反應
駐留到一些高維歐氏空間。我們使用等變嵌入,從而保護
幾何結構的大量的圖像。本地回歸估計(如局部多項式
回歸函數的估計)被嵌入,然後將其投射返回到後得到
歧管的圖像。外回歸設定中,內在的和外在的方法
已經提出了用於歧管值數據的建模和數學研究
歧管的特性。然而,就我們所知,我們的工作是在採取一個外在的第一
在回歸建模方面的做法。我們的做法是一般,擁有典雅的漸近
理論和優於內在模型的計算效率方面。此外,還有
基本上沒有在推理與考慮的例子差異。
如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗?
26
个回答
“仅是以应用为目的”有点含糊。。乍一看题主好像想说是在公司里用,但后面又出来一大票高大上课程,看起来又好像偏学界。。前面的大大们提到的感觉更偏学界。我补充一些工业界的情况。
总的来说我偏向匿名用户的回答。如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗? - 匿名用户的回答
在思考这个问题之前,要先搞清楚公司花钱雇你来干啥的。我的经验是,这有两种情况。一是公司原来没有一项业务,现在要把一些机器学习这个东西跑起来(从无到有)。二是在你接手的时候公司已经有一定基础了,现在要把性能调上去(从差到优)。前者完全不用任何数学,先用别人有的模块/代码把系统撸起来是王道。后者看具体问题,大多数情况不用数学。
从无到有的情况,比如我原来在facebook做place deduplication,大概就是说非死不可上面超多可以签到的地点,要判断里面有哪些是重复的地点。类似知乎上面有很多重复的问题,如何鉴别和重定向这些问题。这个问题从机器学习的角度来看并不难,有很多已有工作。但公司更关心的其实是怎么把随便一个系统在fb数十TB的数据上日起来。所以我们的绝大多数时间根本不是花在评估哪个机器学习模型更好,这个流形有什么性质,那个系统有什么下限,而是——撸hadoop用几千个核先把feature抽出来。有了feature以后后台分类器是特妈随便找的这种事我会乱说?这种情况跟数学完全没鸟关系好吗。
从有到优的情况,我也参与了这个项目的调优。基本经验是——分类器啊模型啊再复杂精巧数学性质再好没吊用,关键还是看feature。弄一个有效的feature出来精度呼呼的往上涨,各种分类器瞎JB换啊调啊基本没差别。。(当然deep learning这种模型的质变除外,但这个和不搞科研的人就没啥关系了)所以你要问数学有没有用,我说有用,根据数学才能提出有效的模型——但这特妈是学界人家十年磨一剑的人用的。放公司里用数学拱KPI分分钟被nen死。隔壁王二狗整俩新feature奖金拿得多多的,这边你要死磕泛函产品狗咬死你。。
当然在偏研究的地方比如Google X的某些部门还是有用的,但我觉得这还是偏学界。
总的来说,我的建议是,如果想去公司的话就不要纠结逼格过高的事情了。学好线性代数,统计和凸优化就出门打怪吧,攒系统经验和dirty trick才是王道。当然我也不是说就不要搞数学,只是如果你去公司的话,在学好线代统计凸优化的前提下,同样的时间花在学计算机系统的构建和系统性的思考方法上,比学习数学更划算。
总的来说我偏向匿名用户的回答。如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗? - 匿名用户的回答
在思考这个问题之前,要先搞清楚公司花钱雇你来干啥的。我的经验是,这有两种情况。一是公司原来没有一项业务,现在要把一些机器学习这个东西跑起来(从无到有)。二是在你接手的时候公司已经有一定基础了,现在要把性能调上去(从差到优)。前者完全不用任何数学,先用别人有的模块/代码把系统撸起来是王道。后者看具体问题,大多数情况不用数学。
从无到有的情况,比如我原来在facebook做place deduplication,大概就是说非死不可上面超多可以签到的地点,要判断里面有哪些是重复的地点。类似知乎上面有很多重复的问题,如何鉴别和重定向这些问题。这个问题从机器学习的角度来看并不难,有很多已有工作。但公司更关心的其实是怎么把随便一个系统在fb数十TB的数据上日起来。所以我们的绝大多数时间根本不是花在评估哪个机器学习模型更好,这个流形有什么性质,那个系统有什么下限,而是——撸hadoop用几千个核先把feature抽出来。有了feature以后后台分类器是特妈随便找的这种事我会乱说?这种情况跟数学完全没鸟关系好吗。
从有到优的情况,我也参与了这个项目的调优。基本经验是——分类器啊模型啊再复杂精巧数学性质再好没吊用,关键还是看feature。弄一个有效的feature出来精度呼呼的往上涨,各种分类器瞎JB换啊调啊基本没差别。。(当然deep learning这种模型的质变除外,但这个和不搞科研的人就没啥关系了)所以你要问数学有没有用,我说有用,根据数学才能提出有效的模型——但这特妈是学界人家十年磨一剑的人用的。放公司里用数学拱KPI分分钟被nen死。隔壁王二狗整俩新feature奖金拿得多多的,这边你要死磕泛函产品狗咬死你。。
当然在偏研究的地方比如Google X的某些部门还是有用的,但我觉得这还是偏学界。
总的来说,我的建议是,如果想去公司的话就不要纠结逼格过高的事情了。学好线性代数,统计和凸优化就出门打怪吧,攒系统经验和dirty trick才是王道。当然我也不是说就不要搞数学,只是如果你去公司的话,在学好线代统计凸优化的前提下,同样的时间花在学计算机系统的构建和系统性的思考方法上,比学习数学更划算。
我就是从数学转ML的。我就知道,肯定有人要扯很多纯数学的“基础背景”。我说一些实在的,微分几何,流形,代数拓扑这些知识,只要你去找相关的研究论文,总能找得到和Ml有交集的地方。但是,不代表你必须掌握它们。在大部分的ML研究里,还是微积分和线性代数、概率统计的功底最重要。不要太小看微积分和线性代数,很多时候做研究时要用的推导还是需要很多熟练的技巧才可以胜任。至于其他知识,可以用到时再补充。
不请自来,我本人就是从数学转到数据科学上来的,是完全以应用为目的学的机器学习。本科加PHD九年中,数学方面的课程大概学过:数学分析(微积分),线性代数,概率论,统计,应用统计,数值分析,常微分方程,偏微分方程,数值偏微分方程,运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析等等
从我个人的学习过程中,觉得对机器学习的应用有帮助的数学学科有(重要性从高到低):
1, 线性代数(或叫高等代数):必需,所有的算法最后都会向量化表示,线性代数不熟的话,算法都看不懂啊
2,微积分:这个是所有高等数学的基础,不细说了
3,统计:这里包括统计理论基础,和应用统计(主要就是线性模型)。很多机器学习内容的前身就是统计啊。
3.5, 凸优化: 经 @徐文浩 补充,原因跟6相似
前三个感觉是想要学好机器学习所必需的,后面的虽然不必需,但是适当了解之后,帮助也很大:
4,概率论:基础概率论就够了,以测度为基础的高级概率论对机器学习帮助不大
5,数值分析:数值分析的一部分包括了插值,拟合,数值求解各种方程,数值积分,这些小技术虽然没有跟机器学习直接扯上关系,但是可能在你处理复杂问题时的一些小地方起到奇效。数值分析的另一大块就是数值线性代数了,包括怎么矩阵求逆了,矩阵的各种分解了,矩阵特征根奇异值什么了,这里面很多算法都会被机器学习的书法直接使用的。比如SVD就被Principal Component Analysis直接调用了啊。
6,运筹学:运筹就是做优化,说白了就是把问题表示成数学公式和限制条件,然后求最大值或最小值。所以不少机器学习里面先进的优化算法,最先都是在运筹里面出现的
暂时就想到这么多,至于题主说的泛函,微分流形,代数拓扑啥的,完全不需要了解啊。
从我个人的学习过程中,觉得对机器学习的应用有帮助的数学学科有(重要性从高到低):
1, 线性代数(或叫高等代数):必需,所有的算法最后都会向量化表示,线性代数不熟的话,算法都看不懂啊
2,微积分:这个是所有高等数学的基础,不细说了
3,统计:这里包括统计理论基础,和应用统计(主要就是线性模型)。很多机器学习内容的前身就是统计啊。
3.5, 凸优化: 经 @徐文浩 补充,原因跟6相似
前三个感觉是想要学好机器学习所必需的,后面的虽然不必需,但是适当了解之后,帮助也很大:
4,概率论:基础概率论就够了,以测度为基础的高级概率论对机器学习帮助不大
5,数值分析:数值分析的一部分包括了插值,拟合,数值求解各种方程,数值积分,这些小技术虽然没有跟机器学习直接扯上关系,但是可能在你处理复杂问题时的一些小地方起到奇效。数值分析的另一大块就是数值线性代数了,包括怎么矩阵求逆了,矩阵的各种分解了,矩阵特征根奇异值什么了,这里面很多算法都会被机器学习的书法直接使用的。比如SVD就被Principal Component Analysis直接调用了啊。
6,运筹学:运筹就是做优化,说白了就是把问题表示成数学公式和限制条件,然后求最大值或最小值。所以不少机器学习里面先进的优化算法,最先都是在运筹里面出现的
暂时就想到这么多,至于题主说的泛函,微分流形,代数拓扑啥的,完全不需要了解啊。
这里有个80-20原则的应用。
只要20%的机器学习知识,其实已经可以在80%的商业应用里取得满意的效果。
但,如果公司精益求精,或者说是专注于机器学习算法的公司,可能要投入指数级别的努力来达到性能的提升。
只要20%的机器学习知识,其实已经可以在80%的商业应用里取得满意的效果。
但,如果公司精益求精,或者说是专注于机器学习算法的公司,可能要投入指数级别的努力来达到性能的提升。
被邀请了。
应用的话,需要对自己用的模型有清晰的了解。首先要搞清楚模型的假设,看它能否适用于自己的业务;然后是里面涉及的数学以及具体实现,方便将来按需要作修改。一般机器学习的课本都对经典的模型有很详细的介绍,涉及的数学也就是你看到的那些,其他答案也提到了一部分,我再加个信息论。
如果题主场景是“想读读最新的时髦 paper,然后在自己的数据上试一试”这种意义下的应用的话,那么就首先需要看懂最近的论文,之后试了不理想的话可能需要找出不够好的原因,甚至还要魔改(而不是换一个模型接着套),这时候了解数学上的细节就更重要些。
我借这个机会列一些跟题主提到的现代数学有关的(道听途说的)研究方向或者具体 paper,题主可以感受一下。
(下面是跑题部分,随便看看。被邀请的,必须多写点,对不对。)
1. 泛函分析。相关知识点:线性空间、空间、RKHS……
我们在有限维线性空间中处理数据,大家已经在线性代数中知道了。无限维线性空间的理论则帮助刻画了函数空间的性质,为 additive modeling 之类的东西提供了理论模型。如果你需要学习 Fourier 分析和小波分析(比如说设计合适的小波基来提取当前数据的特征),你还要了解 空间的知识,以及一些测度论的结果(积分的定义、各种收敛性/阶)。
RKHS,再生核 Hilbert 空间,则是核方法、Tikhonov 正则化理论、以及(部分地)高斯过程的基础。还有个挺好玩的方向,利用 kernel embedding,即把一个概率分布映射成 RHKS 的一个点后,在无穷维的 RKHS 上做 inference(图模型或者 Bayesian inference),好处是(它说的)能放宽对数据的假定,处理结构更复杂的数据等等,因为无穷维空间肯定能比有限维空间容纳更多甚至是全部的信息。代表人物:Kenji Fukumizu。
2. 微分几何。相关知识点:切空间、向量场、联络、黎曼几何、测地线……
a) 矩阵优化。假设你需要找一个正交矩阵或者对称矩阵或者别的什么矩阵,使得它最小化某个误差函数,那么你就需要在相应的矩阵流形上做优化。这个基本上就是把上的梯度下降、牛顿法什么的推广到矩阵所在的黎曼流形上去。应用的话,就是你自己的目标函数和你自己的矩阵类型。另外最近 Zoubin Ghahramani 组有人证明了相当一部分的线性降维算法都能归入矩阵优化的框架:Unifying linear dimensionality reduction。
参考书籍:Optimization Algorithms on Matrix Manifolds
工具包:Manopt
b) 信息几何。这个主要研究统计流形:对于某个参数分布族,把其中的每个分布看成一个点,再加上 Fisher information metric 后形成的黎曼流形。这个跟指数分布族联系得比较紧。比如说建立了指数分布族跟各种散度(如KL-Divergence)之间的几何联系,以及一些渐近性质。
应用方面,2014年的 NIPS paper Distributed Estimation, Information Loss and Exponential Families 考虑了这么一个问题:用 maximum likelihood 估计模型参数的时候,跟用所有数据一起训练(速度慢)得到的全局估计相比,把数据分几份分别训练(分布式,速度快,时髦)得出若干个局部估计后,再综合起来有什么损失?怎样综合最好?结果可能有点出乎大家意料,把局部估计的算术平均作为全局估计并不是最好的,基于KL-Divergence平均的综合方法“损失”最小。如果数据分布是属于标准指数分布族的话,这样综合之后没有“损失”(有兴趣的同学可以进一步看看里面的“损失”是指什么)。
参考书籍:Methods of Information Geometry
c) 当然还有直接考虑数据空间本身的流形。不过经典的流形学习着重数据的形状和内禀维数,跟微分几何并没有很大的关系。有人进一步认为全局的线性操作在数据空间上不一定有意义(比如说两个图像相加的结果不一定是有意义的图像,一个文档的特征乘以一个标量之后不一定是有意义的文档特征),所以不应该把数据盲目嵌入到中,应该找别的更有意义的流形来嵌入。这种想法自然地跟微分几何产生了联系,具体可以看看 Guy Lebanon 博士论文的第七章。
3. 代数几何。相关知识点:代数簇
a) 矩阵分解。假设我们想把矩阵分解成,其中低秩,稀疏。这里在不同目标下有不同的做法,如果想尽量低秩,尽量稀疏,那么就是 Robust PCA(RPCA)。但如果希望关于的秩(=隐变量的个数)的估计尽量准,可能就不太好弄。Latent variable graphical model selection via convex optimization 这个文,从带隐变量的高斯图模型出发,说明了估计隐变量个数的重要性,然后比较好地解决了这个问题。出发点就是把秩不大于某个值的矩阵集合看成一个代数簇,把非零元个数不大于某个值的矩阵集合看成另一个代数簇,然后再(看不懂了,大概用代数几何的某些工具去日吧,但我觉得出发点挺重要的……)
(再提一下 RPCA。RPCA 的求解可以转化为如下凸优化问题的求解:
其中是的奇异值的和,叫 nuclear norm,你可以想象成某种针对奇异值“向量”的范数:奇异值“稀疏”了,自然就低秩了。基于 RPCA 的推荐系统曾经赢得过 Netflix Prize,应用性高到爆。)
b) 其他。我去年选了数学系的 Real Algebraic Geometry and Optimization,嗯其实就是讲非负多项式的优化。主要讲了两样东西:1. 多项式平方和这个集合是一个锥;2. 这个锥上能建立一堆类似于凸优化算法的优化方法。所以优化非负多项式时,先 relax 成多项式的平方和,再用非常类似于SDP的方法来求数值解。内容还是比较开眼的(闲话)。
这个课快结束时恰好他们系举办了个叫 Applications of Real Algebraic Geometry 的小会议,里面有篇文章我觉得挺有趣:Dual-to-kernel learning with ideals,大意是 kernel method 很好,但是对应的特征空间是 implicit 的,我们不清楚它的结构。要弄清楚它的结构,最简单的方法是把它的基写出来。在这个目的下且不考虑无穷维情况的话,多项式核是比较好的,但是多项式核对应的特征空间的维数还是很大,怎么办?他们发现(先回家,到家写/到家了,可是不想写,反正没有人看代数几何。)
4. 代数拓扑。关于代数拓扑我只了解基本群的概念。至于机器学习方面的应用,只知道看到有人写了篇 Topological Data Analysis 后就做了个叫 AYASDI 的产品,有兴趣可以……看看。我又搜了一下,在处理音乐数据和计算机视觉方面都有人提出过基于代数拓扑的方法,可能代数拓扑研究的不变关系(比如同伦)比较容易用计算机表示吧。
5. 微分方程。我想到的只有半监督学习中的经典论文 Semi-Supervised Learning Using Gaussian Fields and Harmonic Functions:把有标签的数据点看成是“热源”,然后通过最近邻域图上的“热扩散”把标签传播到没有标签的数据点上。相关知识点是热扩散方程以及图上的 Laplacian 算子。
我觉得数学应该是学得越多越好的,只是后期边际效应不一定大。最后放一下 Michael I. Jordan 建议的一个书单。
应用的话,需要对自己用的模型有清晰的了解。首先要搞清楚模型的假设,看它能否适用于自己的业务;然后是里面涉及的数学以及具体实现,方便将来按需要作修改。一般机器学习的课本都对经典的模型有很详细的介绍,涉及的数学也就是你看到的那些,其他答案也提到了一部分,我再加个信息论。
如果题主场景是“想读读最新的时髦 paper,然后在自己的数据上试一试”这种意义下的应用的话,那么就首先需要看懂最近的论文,之后试了不理想的话可能需要找出不够好的原因,甚至还要魔改(而不是换一个模型接着套),这时候了解数学上的细节就更重要些。
我借这个机会列一些跟题主提到的现代数学有关的(道听途说的)研究方向或者具体 paper,题主可以感受一下。
(下面是跑题部分,随便看看。被邀请的,必须多写点,对不对。)
1. 泛函分析。相关知识点:线性空间、空间、RKHS……
我们在有限维线性空间中处理数据,大家已经在线性代数中知道了。无限维线性空间的理论则帮助刻画了函数空间的性质,为 additive modeling 之类的东西提供了理论模型。如果你需要学习 Fourier 分析和小波分析(比如说设计合适的小波基来提取当前数据的特征),你还要了解 空间的知识,以及一些测度论的结果(积分的定义、各种收敛性/阶)。
RKHS,再生核 Hilbert 空间,则是核方法、Tikhonov 正则化理论、以及(部分地)高斯过程的基础。还有个挺好玩的方向,利用 kernel embedding,即把一个概率分布映射成 RHKS 的一个点后,在无穷维的 RKHS 上做 inference(图模型或者 Bayesian inference),好处是(它说的)能放宽对数据的假定,处理结构更复杂的数据等等,因为无穷维空间肯定能比有限维空间容纳更多甚至是全部的信息。代表人物:Kenji Fukumizu。
2. 微分几何。相关知识点:切空间、向量场、联络、黎曼几何、测地线……
a) 矩阵优化。假设你需要找一个正交矩阵或者对称矩阵或者别的什么矩阵,使得它最小化某个误差函数,那么你就需要在相应的矩阵流形上做优化。这个基本上就是把上的梯度下降、牛顿法什么的推广到矩阵所在的黎曼流形上去。应用的话,就是你自己的目标函数和你自己的矩阵类型。另外最近 Zoubin Ghahramani 组有人证明了相当一部分的线性降维算法都能归入矩阵优化的框架:Unifying linear dimensionality reduction。
参考书籍:Optimization Algorithms on Matrix Manifolds
工具包:Manopt
b) 信息几何。这个主要研究统计流形:对于某个参数分布族,把其中的每个分布看成一个点,再加上 Fisher information metric 后形成的黎曼流形。这个跟指数分布族联系得比较紧。比如说建立了指数分布族跟各种散度(如KL-Divergence)之间的几何联系,以及一些渐近性质。
应用方面,2014年的 NIPS paper Distributed Estimation, Information Loss and Exponential Families 考虑了这么一个问题:用 maximum likelihood 估计模型参数的时候,跟用所有数据一起训练(速度慢)得到的全局估计相比,把数据分几份分别训练(分布式,速度快,时髦)得出若干个局部估计后,再综合起来有什么损失?怎样综合最好?结果可能有点出乎大家意料,把局部估计的算术平均作为全局估计并不是最好的,基于KL-Divergence平均的综合方法“损失”最小。如果数据分布是属于标准指数分布族的话,这样综合之后没有“损失”(有兴趣的同学可以进一步看看里面的“损失”是指什么)。
参考书籍:Methods of Information Geometry
c) 当然还有直接考虑数据空间本身的流形。不过经典的流形学习着重数据的形状和内禀维数,跟微分几何并没有很大的关系。有人进一步认为全局的线性操作在数据空间上不一定有意义(比如说两个图像相加的结果不一定是有意义的图像,一个文档的特征乘以一个标量之后不一定是有意义的文档特征),所以不应该把数据盲目嵌入到中,应该找别的更有意义的流形来嵌入。这种想法自然地跟微分几何产生了联系,具体可以看看 Guy Lebanon 博士论文的第七章。
3. 代数几何。相关知识点:代数簇
a) 矩阵分解。假设我们想把矩阵分解成,其中低秩,稀疏。这里在不同目标下有不同的做法,如果想尽量低秩,尽量稀疏,那么就是 Robust PCA(RPCA)。但如果希望关于的秩(=隐变量的个数)的估计尽量准,可能就不太好弄。Latent variable graphical model selection via convex optimization 这个文,从带隐变量的高斯图模型出发,说明了估计隐变量个数的重要性,然后比较好地解决了这个问题。出发点就是把秩不大于某个值的矩阵集合看成一个代数簇,把非零元个数不大于某个值的矩阵集合看成另一个代数簇,然后再(看不懂了,大概用代数几何的某些工具去日吧,但我觉得出发点挺重要的……)
(再提一下 RPCA。RPCA 的求解可以转化为如下凸优化问题的求解:
其中是的奇异值的和,叫 nuclear norm,你可以想象成某种针对奇异值“向量”的范数:奇异值“稀疏”了,自然就低秩了。基于 RPCA 的推荐系统曾经赢得过 Netflix Prize,应用性高到爆。)
b) 其他。我去年选了数学系的 Real Algebraic Geometry and Optimization,嗯其实就是讲非负多项式的优化。主要讲了两样东西:1. 多项式平方和这个集合是一个锥;2. 这个锥上能建立一堆类似于凸优化算法的优化方法。所以优化非负多项式时,先 relax 成多项式的平方和,再用非常类似于SDP的方法来求数值解。内容还是比较开眼的(闲话)。
这个课快结束时恰好他们系举办了个叫 Applications of Real Algebraic Geometry 的小会议,里面有篇文章我觉得挺有趣:Dual-to-kernel learning with ideals,大意是 kernel method 很好,但是对应的特征空间是 implicit 的,我们不清楚它的结构。要弄清楚它的结构,最简单的方法是把它的基写出来。在这个目的下且不考虑无穷维情况的话,多项式核是比较好的,但是多项式核对应的特征空间的维数还是很大,怎么办?他们发现(先回家,到家写/到家了,可是不想写,反正没有人看代数几何。)
4. 代数拓扑。关于代数拓扑我只了解基本群的概念。至于机器学习方面的应用,只知道看到有人写了篇 Topological Data Analysis 后就做了个叫 AYASDI 的产品,有兴趣可以……看看。我又搜了一下,在处理音乐数据和计算机视觉方面都有人提出过基于代数拓扑的方法,可能代数拓扑研究的不变关系(比如同伦)比较容易用计算机表示吧。
5. 微分方程。我想到的只有半监督学习中的经典论文 Semi-Supervised Learning Using Gaussian Fields and Harmonic Functions:把有标签的数据点看成是“热源”,然后通过最近邻域图上的“热扩散”把标签传播到没有标签的数据点上。相关知识点是热扩散方程以及图上的 Laplacian 算子。
我觉得数学应该是学得越多越好的,只是后期边际效应不一定大。最后放一下 Michael I. Jordan 建议的一个书单。
匿名用户
应用的话懂凸优化 和 数值方法处理矩阵基本够了,是有人会用些比较精巧的数学去modeling,不过这些方法出来局限性都很大,假设的结构很容易被破坏,测度没啥用写论文装b用的,懂泛函可以帮你玩转核方法,实际收益么… 呵呵 … 不过拓扑方法最近说效果还可以,不过懂得人少,这行毕竟大多cs出生. 弄懂流形学习不需要懂多少拉普拉斯算子,连怎么在上面积分都不用鸟… 其实简单,即便要也是需要一这些数学里面粗浅的一部分而已,你有一定的数学基础完全可以用到再去看,多去实践才是正道…我的意见呢,数学基础不能没有,至少万一你需要接触的时候不至于太茫然,但是太多时间花在上面是不划算的:
我觉得呢如果题主时间非常充裕的并且非常执着于数学的话 看掉本讲度量空间和differential form 的分析和讲了多线性的线性代数吧,这逼格总够高吧,实在还想看的话就把就看看抽代(其实真没啥必要)… 好吧,是在还是满足不了题主的逼格在搞几本给学物理生看的书摆在书架上应急(就是尼玛定理自己会证明自己那种)然后真的真的不用在nen了…这样逼格够高么
我觉得呢如果题主时间非常充裕的并且非常执着于数学的话 看掉本讲度量空间和differential form 的分析和讲了多线性的线性代数吧,这逼格总够高吧,实在还想看的话就把就看看抽代(其实真没啥必要)… 好吧,是在还是满足不了题主的逼格在搞几本给学物理生看的书摆在书架上应急(就是尼玛定理自己会证明自己那种)然后真的真的不用在nen了…这样逼格够高么
简单的说是看你做的方向。这个领域大部分高中数学就能看懂算法,但是进一步推衍需要大量的数学知识储备。我做统计的,从偏统计的角度举个例子,SVM/LASSO。
svm的最简单解释就是l2空间最大化分离平面的距离。数学推衍几乎也就个初高中水平吧?但这仅仅是开始。核函数的引入和性质不可避免的要讨论vc维和RKHS。后面那个玩意儿什么说呢,可就不那么直白好懂了。这还仅仅是分类器的性质。算法层面上,写个简单的“可以算”的也不费事,但要“做得好”,最优化怎么做,能不能处理海量数据或着并行等…呵呵,不那么简单啊…
lasso也差不多。无非就是回归加个限制解空间的约束。单纯论九十年代jasa上提出来的那篇文章,基本高中生就能看懂。但是之后的衍生讨论扩展应用…有多复杂就不说了。到后面还有个什么压缩感知。同学,那里面的证明一则不一定能看懂,二则不一定能看下去。虽然结论可能看起来简单,但是怎么推广应用验证条件,你不明了还真是不好办的:比如把那套理论搬到survival analysis乃至time series里面可以不?
svm的最简单解释就是l2空间最大化分离平面的距离。数学推衍几乎也就个初高中水平吧?但这仅仅是开始。核函数的引入和性质不可避免的要讨论vc维和RKHS。后面那个玩意儿什么说呢,可就不那么直白好懂了。这还仅仅是分类器的性质。算法层面上,写个简单的“可以算”的也不费事,但要“做得好”,最优化怎么做,能不能处理海量数据或着并行等…呵呵,不那么简单啊…
lasso也差不多。无非就是回归加个限制解空间的约束。单纯论九十年代jasa上提出来的那篇文章,基本高中生就能看懂。但是之后的衍生讨论扩展应用…有多复杂就不说了。到后面还有个什么压缩感知。同学,那里面的证明一则不一定能看懂,二则不一定能看下去。虽然结论可能看起来简单,但是怎么推广应用验证条件,你不明了还真是不好办的:比如把那套理论搬到survival analysis乃至time series里面可以不?
在这个问题和类似问题里,用不用package、是不是自己实现模型,和理解模型、原理没有冲突。
因此我觉得这种题目需要双修的同学来回答,其他任何会引起争议的,我觉得真没必要。
因此我觉得这种题目需要双修的同学来回答,其他任何会引起争议的,我觉得真没必要。
大一高数学完即可, 高数上。 哦,对, 线性代数和概率也要学完。
@grapeot已给出很精彩的答案!其实机器学习要精通,能把计算机算法与数据结构弄得滚瓜烂熟就够了,什么劳什子泛函分析、流形分析之类的,在实务中基本上没什么卵用,实际上,也有很多研究机器学习算法的论文会用到这些高深的数学,但所幸所有这些文献都给出了具体的算法实现步骤,所以,你不懂这些高深数学基本上不影响你对机器学习出神入化的应用,真正决定你机器学习水平的关键因素还是:你预处理数据的能力、你对业务洞察及抽取特征属性的能力、你阅读前沿文献的耐心、以及你反复测试各类算法有效性的毅力。
其实不明白机器学习和提到的这几门课程有啥关系。
不需要。
题主觉得学了这些会高大上吧?可惜用不到。
大部分ML只需要应用数学的知识,特别是线代、数值优化之类。
本人专业物理。
即使对于物理学的来说,微分几何代数拓扑之类的也不是到处用得上。因为就算是领域内的差别也非常大。
题主觉得学了这些会高大上吧?可惜用不到。
大部分ML只需要应用数学的知识,特别是线代、数值优化之类。
本人专业物理。
即使对于物理学的来说,微分几何代数拓扑之类的也不是到处用得上。因为就算是领域内的差别也非常大。
匿名用户
我认为多学点计算机的东西比较好,不管是工具类的hadoop、spark、pig、hive,还是理论类的算法、数据结构、操作系统、编译原理,这些都有用。多实践,参与实际项目和实现已有模型都是很好的,从这些上面得到的理解一样会很深刻,而且更实用
这是在搞理论物理吗-_-
匿名用户
调参党表示,学好统计线代,熟悉下什么data用什么feature套什么模型。。。剩下的都是代码的干活,scikit learn大法好。。。
去aws开个xlarge computing instance,然后开干cross validation就是了。。。
去aws开个xlarge computing instance,然后开干cross validation就是了。。。
把韩爷爷那本《数据挖掘概念与技术》看一遍,李航的《统计学习方法》也可以看一下,看完你会大惊一声:原来没什么数学背景也可以看懂的。
看了上面那么多回答,大部分的观点都是学点偏应用偏技巧的数学知识就行了,学什么高深的数学,真的觉得挺悲哀的。你搞机器学习是为了什么?如果是为了赚钱,你还不如去卖烧烤,开火锅店,虽然辛苦点,但你只需要会加减乘除就行了,连微积分都不用学;如果是因为喜欢,那你不学习一些所谓高深的数学,你就领略不到机器学习真正的美。俄罗斯,美国,日本,这些国家为什么科技强大,因为数学强。一元微积分已经是日本高中生必学的内容了。
数学其实就是从古至今的数学家将自然界客观规律抽象出来的一套理论,所谓科学的尽头是数学,数学的尽头是哲学,不懂数学,你就体会不到自然界的很多美好。你所说的那些高深的数学分支,不过是把你以前学过的理论抽象到一个更高的高度,从而提供一种更普适的解决问题的方法,站在更高的角度才能够看得更清楚,才能够看到问题的本质(推荐你看下《高观点下的初等数学》的序言)。
归根结底,我们国家的年轻人还是太浮躁了,经常问学这个有用吗,潜在的意思就是学这个能赚钱吗。如果你是为了赚钱去学一样东西,那它永远不会带给你你想要的那么多钱;如果你是为了兴趣去学一样东西,那它带给你的会远超你的想象。
我是计算机系的,以前本科的时候数学学得很差(虽然不想给自己找借口,但不得不说那些老师只是在例行公事,根本不管怎样讲才能让学生更容易理解),觉得C++,操作系统才是最重要的,数学没有用。后来在读研究生时做很多事情都力不从心,开始自学算法和数据结构,计算理论等,这才发现计算机的所有理论的基础都是数学,你在一块芯片上布线都要用组合数学的理论,更不用说算法分析,编译原理了。计算机科学的两个奠基者图灵和冯诺依曼都是数学家,计算机科学本身就是数学的孩子。
说了这么多,一方面是对中国现在的风气感到很失望,考研读博都只是为了找个好工作,这根本就是浪费国家的教育资源和科研经费。另一方面是怕你走我当年的弯路。如果你真的喜欢机器学习,建议你业余时间可以多看看数学,算法,机器学习方面的经典书籍,虽说实践很重要,但经典书籍中的内容也是前人摸索了好多年把自己实践的心得总结出来的,这比你一个人再从头自己实践摸索要省时得多。
数学其实就是从古至今的数学家将自然界客观规律抽象出来的一套理论,所谓科学的尽头是数学,数学的尽头是哲学,不懂数学,你就体会不到自然界的很多美好。你所说的那些高深的数学分支,不过是把你以前学过的理论抽象到一个更高的高度,从而提供一种更普适的解决问题的方法,站在更高的角度才能够看得更清楚,才能够看到问题的本质(推荐你看下《高观点下的初等数学》的序言)。
归根结底,我们国家的年轻人还是太浮躁了,经常问学这个有用吗,潜在的意思就是学这个能赚钱吗。如果你是为了赚钱去学一样东西,那它永远不会带给你你想要的那么多钱;如果你是为了兴趣去学一样东西,那它带给你的会远超你的想象。
我是计算机系的,以前本科的时候数学学得很差(虽然不想给自己找借口,但不得不说那些老师只是在例行公事,根本不管怎样讲才能让学生更容易理解),觉得C++,操作系统才是最重要的,数学没有用。后来在读研究生时做很多事情都力不从心,开始自学算法和数据结构,计算理论等,这才发现计算机的所有理论的基础都是数学,你在一块芯片上布线都要用组合数学的理论,更不用说算法分析,编译原理了。计算机科学的两个奠基者图灵和冯诺依曼都是数学家,计算机科学本身就是数学的孩子。
说了这么多,一方面是对中国现在的风气感到很失望,考研读博都只是为了找个好工作,这根本就是浪费国家的教育资源和科研经费。另一方面是怕你走我当年的弯路。如果你真的喜欢机器学习,建议你业余时间可以多看看数学,算法,机器学习方面的经典书籍,虽说实践很重要,但经典书籍中的内容也是前人摸索了好多年把自己实践的心得总结出来的,这比你一个人再从头自己实践摸索要省时得多。
匿名用户
代数、微积分、数理统计、随机过程、凸分析、概率论等这些很重要,尤其是线性代数。
但是对于泛函分析、测度论、实变函数等课最后能掌握,能够大大提升一个人的抽象思维!
但是对于泛函分析、测度论、实变函数等课最后能掌握,能够大大提升一个人的抽象思维!
如果你能把Bishop的书读懂 那么泛函 微分流型啥的都是小菜了
匿名用户
做应用的话这些是不需要的,但高数是必须的,其实上过大学就可以了,或者被大学上过也可以
匿名用户
代数、微积分、数理统计、随机过程、凸分析、概率论等这些很重要,尤其是线性代数。
但是对于泛函分析、测度论、实变函数等课最后能掌握,能够大大提升一个人的抽象思维!
但是对于泛函分析、测度论、实变函数等课最后能掌握,能够大大提升一个人的抽象思维!
如果你能把Bishop的书读懂 那么泛函 微分流型啥的都是小菜了
匿名用户
做应用的话这些是不需要的,但高数是必须的,其实上过大学就可以了,或者被大学上过也可以
No comments:
Post a Comment