學習演算法的意義?
謝謝邀請,簡單的發表一下我的看法吧。
個人覺得,目前大家對演算法的理解可能主要有兩類,一類是傳統的數據結構與演算法,另一類是現在很熱門的機器學習演算法,我就這兩種發表一下我個人的感覺。
對於數據結構和演算法,套用計算機裡面一句說爛了的話:程序=數據結構+演算法。數據結構是數據組織的一種方式,演算法的話可以舉個很簡單的例子:計算1到100之間所有數的和,傳統的最笨的方法就是逐個累加,即1+2=3,3+3=6,6+4=10,……,算到100就需要計算99次;但後來有人發現了規律:1+100=2+99=3+98=……=50+51,那不就是100/2=50個101相加嘛,所以直接等於(1+100)*100/2,即首末相加除以2就可以,是不是省了很多計算量,這在數量量更大時優勢就更明顯了,後面這種處理方式就是採用了某種演算法。怎麼樣,發現演算法的好處了吧?
還有一個例子,好像是以前網上看到有人說的:寫程序就像開一輛車,當你不懂太多數據結構跟演算法的時候,憑藉豐富的實踐經驗你也可以將這輛車開好;但是,當有一天這輛車出問題跑不起來的時候呢?你不懂它內部的運行機制,你要怎麼排除和解決問題?
對於機器學習演算法,準確的說是應該稱作模型而不能直接稱為演算法的。機器學習的作用相信很多人都有了解一些,比如你經常用的淘寶購物猜你喜歡,網易雲音樂推薦你感興趣的歌曲,今日頭條推送你感興趣的新聞,人臉識別,語音識別,阿爾法狗與人下棋等等。其實這些各種各樣強大的模型背後基本都有一個共同點,那就是優化演算法;說白了,機器學習模型大部分時候就是定義一個損失函數,將其轉化為求解損失函數極小值的問題,你採用梯度下降法,牛頓法等各種優化方法,會直接決定模型的優化求解速度和準確度。
【大概就說這麼多吧,總之就是一句廢話總結:演算法真的很神奇,也很有用的,千萬不要排斥它!】
很神秘要回答這問題……
要是抖包袱說:
演算法工程師的收入普遍高於其他人員的話,你會不會覺得有意義?
仔細看了題主的描述,我覺的你的疑惑不是學習演算法有什麼用,而是有沒有必要去研究基礎的演算法理論。其實編程一定伴隨著演算法,只有有些演算法太簡單或太明顯而不易察覺自己使用了某種演算法。
你覺得艱澀難懂的部分應該是牽扯到了數學術語,沒錯演算法的本質是數學。
這麼說吧,在可見的未來里,我夢想的職業是演算法工程師,我現在從事的主要事情就是研究演算法。也是看論文,弄清數學原理,然後與實際結合。現在從事的項目上級對我的要求也是弄清演算法,如果可以的話給出偽碼,具體代碼可以聘請程序員實現。
首先題主應該對自己有個定位,是做一個碼農還是演算法工程師。如果甘願一輩子做程序員,可以不用了解這些演算法。如果想做演算法工程師或是架構師,還是得了解這些演算法。我們實驗室,目前沒有一位博士生還在敲代碼,大部分時間就是在看論文。當然了,碩士生主要還是代碼實現,畢竟將來想去bat的話,編程能力還是最重要的,因為資歷不夠很難直接進這些企業搞演算法。
演算法是計算機的基石。
研究生有大把的時間,可以靜心來研究計算機的基礎東西,不要過於功利。
並且,校招的筆試題大部分是演算法編程題,演算法工程師的工資在 IT 算最前列的,你還不滿意。
沒有發明計算機的話光研究演算法沒有什麼用,而沒有演算法,計算機的一些底層也無法實現或者實現的效率很低。所以計算機有什麼用,演算法就有什麼用。應用層次上自然科學可以利用演算法模擬實驗,數學可以利用計算機配合演算法證明定理,語言學可以用演算法研究研究NLP,例子太多了。
高中數學新課標都在教演算法,你說演算法有什麼用
演算法就像(也可以說是)數學。數學有什麼用?大概只有用到的那一天才知道有什麼用。當然不排除因為需要用而發展新的數學。
首先瀉藥。其次演算法是什麼?(黑人問號臉)我完全不懂啊,為什麼邀請我呢?難道因為我被暗戀了?!(?˙ー˙?)
推薦閱讀:
※研究電壓暫降要讀哪些書?
※如何向別人介紹圖書館學/情報學專業能夠顯得比較有趣?
※如何評價天津大學精儀學院?
※中國信息通信研究院怎麼樣?
※讀研是專業排名重要還是學校排名重要?