深度學習算法 做算法需要哪些數學知識?
做算法需要哪些數學知識?這是什么樣的算法。例如,大數據需要概率論和數理統(tǒng)計的知識。機器學習:線性代數、數值分析、優(yōu)化、概率論、隨機過程等密碼學:線性代數、抽象代數、代數幾何等圖形和圖像處理、視覺分析、
做算法需要哪些數學知識?
這是什么樣的算法。例如,大數據需要概率論和數理統(tǒng)計的知識。
機器學習:線性代數、數值分析、優(yōu)化、概率論、隨機過程等
密碼學:線性代數、抽象代數、代數幾何等
圖形和圖像處理、視覺分析、游戲引擎:將使用線性代數和空間幾何知識。
許多其他算法可分為離散數學,包括圖論、組合數學和其他雜項方法。這一類很有代表性。很多工程問題不涉及具體的數學知識,而是依靠邏輯分析影響問題的因素和環(huán)節(jié),根據實際情況做有針對性的處理。通常有必要列出所有可能的場景類別,分別檢查它們,或者進行一些權衡。典型的是運籌學中的排隊論和其他調度優(yōu)化算法。
要成為算法工程師需要學哪些專業(yè)?
學哪個專業(yè)太容易了
如果數學和英語好一點,我就不麻煩了。這是最基本的
對于阿里這樣的大公司來說,你至少需要985或者211所名牌大學
你可以問我關于電腦的問題
我會定期更新視頻科學
數學對于電腦算法編程非常重要。我將主要從以下兩個方面來解釋為什么它如此重要
數學和算法編程需要很強的邏輯思維能力。程序代碼的邏輯結構、連接方式和處理方式需要較強的邏輯思維能力。如果你學好數學,有很強的邏輯思維能力,你通常會對算法編程有更深的理解。
這應該是為什么數學和算法編程更相關的一個重要原因。無論是計算機的底層還是底層,數學知識都處處體現。例如,計算機底層的二進制、機器學習和深度學習的梯度求導、SVD分解、張量分解、PCA特征值、優(yōu)化問題、密碼學的大數分解、概率圖模型等都與數學有著密切的關系。我舉兩個例子來實現
代碼實現如下
代碼比(float)(1.0/sqrt(x))快4倍,計算性能有了質的飛躍。為此,專門有一篇論文《快速平方根逆》來解釋這段代碼的數學原理。感興趣的同學可以找這篇文章學習。
如果不直接使用數學知識和搜索,時間復雜度為O(n),效率較低,很難按照目前的計算機水平進行計算。如果我們知道Brahmagupta–Fibonacci恒等式、Pollard-Rho分解法、二次同余方程的解、歐氏除法等數學知識,那么求解這個問題的時間復雜度就大大降低,結果保證在0.2秒之內。
如果工作是算法崗位,數學更重要,因為機器學習、數據挖掘、NLP等方向的基本原理基本上都離不開數學。