在人工智慧這麼火的情況下,做程序開發一定要學習機器學習演算法嗎?
本題已加入知乎圓桌 ?「機器學習 · 學以致用」,更多「機器學習」相關話題討論歡迎關注。
現在AI又是一個風口,作為程序員學東學西的,沒日沒夜,請問如果做人工智慧領域開發,真的要從頭學習機器學習演算法嗎?
演算法開發和使用演算法是兩件事情,就類似於我們今天的APP開發者以及使用者一樣。在機器學習領域,也有這兩類人群:一類是演算法開發者,關注演算法的實現原理,更注重演算法的數學推導,以及並行化及性能上調優。另一類是演算法使用者,這一類人員更多關注如何將演算法與場景結合,解決實際的業務問題。兩種人群因為側重點不同,所以對於技能的要求也略有不同。
對於演算法的開發者要求其實很高的,不僅要懂得演算法的原理,還要熟悉使用的框架,將演算法高效的運行在平台框架上。像今天開源里Spark MLLib,就有很多演算法開發者為其演算法的豐富性做貢獻。今天對於大部分機器學習演算法的從業者,基本上都是演算法的使用者,對於演算法開發並不一定需要非常深的造詣,不需要具備演算法開發的能力,但是需要理解演算法的應用場景。
Interesting question!
你這個問題問得好!
可以從很多角度來解答!
首先解釋下是否需要學習機器學習演算法,然後再解釋一下你為什麼會問這個問題!
你這個問題可以用一個一般的形式的歸納:
在XXX這麼火的情況下,做XXX的一定要學XXX嗎?
- 在Java這麼火的情況下,做軟體開發的一定要學Java嗎?
- 在安卓這麼火的情況下,做手機APP的一定學安卓嗎?
- 九十年代:在建築工地開弔車這麼火的情況下,學駕駛的一定要去學開弔車嗎?
回到問題,學了機器學習無疑會增加你的職業競爭力,但是至於你花時間學了給你帶來效用足不足夠就不一定了。
再回到你為什麼會問這個問題?!
初入行,是不是一開始感覺,哇塞,程序員好高薪哦,坐在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,哪款工具更適合閱讀源代碼學習?
※如何評價李開復新書《人工智慧》?