作為一個程序員,你會更傾向于實踐方面,但是,作為一個“技術(shù)人員”,你遲早會碰帶天花板,你會需要學(xué)習(xí)理論來得到有效的提高。你必須閱讀關(guān)于算法的數(shù)學(xué)論文,你必須讀很厚的書。那是在這個領(lǐng)域作出杰出成果必須要做的。但,問題是,那是一個實踐者給初學(xué)者的建議,那過于理想化,適合程序員,所以,對初學(xué)者依然是不合適的。
程序員喜歡強大的工具。
我認(rèn)為,對于一個經(jīng)驗豐富的程序員,把機器學(xué)習(xí)看成是一個高級的編程方法,就像線程(跟上我)。
如果你想掌握線程,你只需寫一些多線程的程序并且了解他能解決哪些問題。你把線程的知識和你原先的知識體系進(jìn)行綁定,你原先的知識體系會起作用,并且你會注意到線程可以解決哪些以前不能解決的問題。如果你確定這是適合你的,你可以閱讀書籍并且挖得更深。
你可以使用現(xiàn)成的多線程庫,你也可以自己寫一個,你可以挖得更深并且學(xué)到更多線程結(jié)構(gòu)背后包含的數(shù)學(xué)知識。你的興趣驅(qū)使著你學(xué)習(xí)并且最終你可以確保完成一段多線程的代碼。這是一個漸變的過程。
顯然,機器學(xué)習(xí)是一個更龐大的更復(fù)雜的領(lǐng)域,我提倡使用循序漸進(jìn)的策略,在未來的文章中我會詳細(xì)說明。
不要讓一個初學(xué)者來學(xué)習(xí)機器學(xué)習(xí),并且把系統(tǒng)上線。這是很危險的。你遲早會得到足夠多的教訓(xùn),并且意識到這是危險的。不過,如果有編程的經(jīng)驗就不一樣了,代碼審查,主從意識,編程常識都會控制那些可能存在的危險性。
就像學(xué)習(xí)編程,學(xué)習(xí)機器學(xué)習(xí)是一個沒有終點的旅途,精通就意味著持續(xù)的學(xué)習(xí)。學(xué)會閱讀公式,用代碼實現(xiàn)公式,如果有興趣的話,接下來就用你自己的代碼來解決問題。
資源
如果你想要持續(xù)研究這個問題,下面有我列出的資源??赡苡幸稽c深,我確定我們會產(chǎn)生很多不錯的討論。
向上翻,看看那些來自StackOverflow的回答。有說程序員不能學(xué)機器學(xué)習(xí),除非他們懂?dāng)?shù)學(xué)的,但也有鼓勵的,給你信心的。
為什么成為一名數(shù)據(jù)科學(xué)家會比你想像的容易?一篇來自Gigaom的報道稱,在同等條件下,從scratch起步的數(shù)據(jù)科學(xué)家可以很快具備國際競爭力。
數(shù)學(xué)對編程是必須的嗎?有趣的是,我認(rèn)為兩方的辯論是十分相關(guān)的,并且這是一個很有用的觀點。
這篇文章可能引發(fā)論戰(zhàn),我很感興趣你們怎嗎看。和你的朋友太論這個話題,我的確聽到很多關(guān)于危險區(qū)和“技術(shù)人員”循序漸進(jìn)學(xué)習(xí)學(xué)習(xí)機器學(xué)習(xí)的觀點。我會在未來的文章中對以上兩個話題進(jìn)行跟進(jìn)。