在人工智慧這麼火的情況下,做程序開發一定要學習機器學習演算法嗎?

本題已加入知乎圓桌 ?「機器學習 · 學以致用」,更多「機器學習」相關話題討論歡迎關注。

現在AI又是一個風口,作為程序員學東學西的,沒日沒夜,請問如果做人工智慧領域開發,真的要從頭學習機器學習演算法嗎?


演算法開發和使用演算法是兩件事情,就類似於我們今天的APP開發者以及使用者一樣。在機器學習領域,也有這兩類人群:一類是演算法開發者,關注演算法的實現原理,更注重演算法的數學推導,以及並行化及性能上調優。另一類是演算法使用者,這一類人員更多關注如何將演算法與場景結合,解決實際的業務問題。兩種人群因為側重點不同,所以對於技能的要求也略有不同。

對於演算法的開發者要求其實很高的,不僅要懂得演算法的原理,還要熟悉使用的框架,將演算法高效的運行在平台框架上。像今天開源里Spark MLLib,就有很多演算法開發者為其演算法的豐富性做貢獻。今天對於大部分機器學習演算法的從業者,基本上都是演算法的使用者,對於演算法開發並不一定需要非常深的造詣,不需要具備演算法開發的能力,但是需要理解演算法的應用場景。


Interesting question!

你這個問題問得好!

可以從很多角度來解答!

首先解釋下是否需要學習機器學習演算法,然後再解釋一下你為什麼會問這個問題!

你這個問題可以用一個一般的形式的歸納:

在XXX這麼火的情況下,做XXX的一定要學XXX嗎?

  1. 在Java這麼火的情況下,做軟體開發的一定要學Java嗎?
  2. 在安卓這麼火的情況下,做手機APP的一定學安卓嗎?
  3. 九十年代:在建築工地開弔車這麼火的情況下,學駕駛的一定要去學開弔車嗎?

回到問題,學了機器學習無疑會增加你的職業競爭力,但是至於你花時間學了給你帶來效用足不足夠就不一定了。

再回到你為什麼會問這個問題?!

初入行,是不是一開始感覺,哇塞,程序員好高薪哦,坐在office擼自己喜歡的代碼,還有空調咖啡,好棒!

然後,哇塞,今天新出了一門語言,使網頁編輯更有效了呢,趕緊學一下!

又然後,哇,現在大家都在用python,貌似很方便的樣子,趕緊學一下!

哇,大家都在說人工智慧是未來呢,看起來其他人要失業了啊,但是我又不會失業,我到底學不學呢?!

你就不斷的否定自己,肯定自己,陷入循環,迷茫不知所措。

最後:作為底層勞動力,你沒明白財富是如何積累的,你還在幫別人積累財富。所以你始終得學習新的表層的東西來藉以為生,而其他看明白的人,就開始積累基本知識和技能,在原始積累結束後,成功階躍為你可以幫忙積累財富的人。

所以,我不知道你是否應該學習機器學習演算法,但是你能現在做的就是,在你現在的領域做到極致或者至少是行業佼佼者,完成原始積累,自己出來干或者成為合伙人。


突然發現收藏的好多。謝謝大家的支持。

1.

2.

3.

4.

5.

以上幾個問題,很普通,很常見,也很經典。

問題來了,你看懂解法的邏輯了嗎?

----------------------------------------------------------------------------------------------------------------------------------

Python的流行說明了以後的主導實踐是業務專家跟上時代,學會編程解決業務問題。

然而,如果開發專家能夠內嵌一些簡單的演算法解決簡單且常見的問題,說不定在實際業務領域能起到不可小視的作用,畢竟日常面臨的大部分問題都是簡單的。

好處不多說。然而如何分辨問題的解法是否是對的解。這是個世界性教育難題。

所以我的觀點:從實際(賺錢)的角度出發,無論對公司做產品還是個人,與其學會複雜演算法的數學推導,不如學會簡單問題基於複雜數學的簡單解法並用以實踐。

對於大部分單機能解決的問題來說,最佳方法是且僅是畫圖,最多加個Median作為參考!!!

然後人工判斷。

人工+智能

這就是科學論文的未來

原因:


我的觀點是要學習。但這並不難,因為寫程序和做研究還是差別很大的。如果想使用某個深度學習的模型,只需要搜一下github就有很大概率找到代碼,而且基本上是用caffe,tf,torch等寫的,讀起來很容易。說實話,我覺得寫個深度學習的模型,並沒有開發一款軟體難。如果做軟體開發的,框架的介面是遠多於這些深度學習框架的介面的。所以只需要付出少量的時間,就能收穫一門很有用的技能,何樂而不為呢。

雖然說直接用,但可能還是要稍微學習一點機器學習的知識,否則可能用起來不順手。我建議稍微學一下Andrew Ng的課程就可以了。


最好還是學習一下吧

程序員不就是應該終身學習的么


研究型的或者打算寫演算法吃這碗飯你當然要深入學習。

應用型的沒必要,有興趣看兩節視頻讀半本概述就可以了。

在我有限的程序生涯里,還沒聽說哪個牛逼的東西讓你用還不提供SDKAPI。

誰都能抽點時間學學就自己寫演算法了,就沒有專業這個詞兒了。

說起來,很多程序員一聽到人工智慧這種就精神抖擻。

反倒是非常必要的產品思維這種高附加值學習從來都提不上日程。

可能文理科的腦構成真的是不同吧,我現在看到代碼演算法就煩,越牛逼的就越煩。

人生苦短,直接調用吧。


人工智慧並沒有你想像的那麼強大,要得到穩定可用的結果還需要多年的發展。


你說的是應用好是研究?如果只是為了在工作里應用,其實很多模型都是做成了開源插件,可直接使用。這屬於應用型,而且隨著深度學習等的發展,現在很多ml的都開始以來大數據,而非強調優化演算法本身,簡單來說演算法優化本身是有局限性的,而神經網路學習是通過大量數據來train模型,可以無限趨近於100%。我說的這事理論上簡單的方法介紹不同,當然,有一些問題還是要看場景來選擇。畢竟no prefect world, everything is tradeoff.


做演算法,也是學東學西。


這波浪潮能抓住盡量抓住,以後會有越來越多的場景基於機器學習相關演算法,就算人工智慧到達瓶頸發展不動,他還是會留下許多資產


很簡單,你用一天學會的東西,別人也是這麼多時間。你想靠他賺錢?


從賺錢的角度,從應用的角度學習,不要去鑽數學的牛角尖。

當然愛好數學,想鑽數學,那是另外一回事。


新東西為什麼不了解一下呢


推薦閱讀:

機器學習(machine learning)在心理學上可能有哪些運用?
工作後想換機器學習方向,需要學到什麼程度去找工作?
多倫多大學機器學習水平如何?
caffe,theano,torch,mxnet,tensorflow,哪款工具更適合閱讀源代碼學習?
如何評價李開復新書《人工智慧》?

TAG:人工智慧 | 機器學習 | 大規模機器學習 |