大數(shù)據(jù)文摘出品 來源:medium 編譯:木槿 如果你決定開始學(xué)機(jī)器學(xué)習(xí),并且按照常規(guī)的方式開始學(xué)習(xí),那么很可能出現(xiàn)這樣的情況:學(xué)習(xí)線性代數(shù)和多變量微積分兩周后就選擇放棄。 原因在于,大多數(shù)機(jī)器學(xué)習(xí)的入門材料不是面向開發(fā)者的,而是面向機(jī)器學(xué)習(xí)研究人員開發(fā)的,而對于只想使用機(jī)器學(xué)習(xí)來構(gòu)建產(chǎn)品的開發(fā)者來說,這些材料未免太難了。 你是想只想做產(chǎn)品還是想做研究? 在20年代末,機(jī)器學(xué)習(xí)或多或少只是一個(gè)學(xué)術(shù)研究問題,在實(shí)際產(chǎn)品中使用機(jī)器學(xué)習(xí)的公司并不多。 因此,很多機(jī)器學(xué)習(xí)的入門資料都是從這個(gè)學(xué)術(shù)研究的角度出發(fā),它首先從數(shù)學(xué)的角度解釋了神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)背后的理論知識、反向傳播和對抗性網(wǎng)絡(luò)等等。 即使不是屬于大學(xué)課程的學(xué)習(xí)資料也是沿用了這個(gè)模式,例如,這句直接摘自Tensor Flow的《初學(xué)者快速入門》中的一句話: 很顯然,如果你已經(jīng)掌握了機(jī)器學(xué)習(xí)背后的數(shù)學(xué)知識或者你對學(xué)習(xí)機(jī)器學(xué)習(xí)本來充滿了興趣,那么這種學(xué)習(xí)方法對你來說會(huì)是可行的。但是,如果你主要是想在構(gòu)建產(chǎn)品加入機(jī)器學(xué)習(xí),那么這可能不是你需要的。 就好比你想學(xué)習(xí)程序設(shè)計(jì),這種方法就像先學(xué)習(xí)匯編代碼,然后學(xué)習(xí)寫代碼,事實(shí)是幾乎沒有面向產(chǎn)品的開發(fā)者是這樣學(xué)習(xí)的。 當(dāng)你學(xué)習(xí)代碼時(shí),你很可能時(shí)通過使用高級語言寫“hello world”來入門的,然后,當(dāng)項(xiàng)目變得稍微復(fù)雜了些,你會(huì)按照需求學(xué)習(xí)越來越多的低級編程。 如果你在構(gòu)建自動(dòng)推薦引擎和發(fā)表論文,那么你就應(yīng)該去學(xué)習(xí)機(jī)器學(xué)習(xí)本身,如果只是想構(gòu)建產(chǎn)品,那么你需要通過構(gòu)建軟件來學(xué)習(xí)機(jī)器學(xué)習(xí)。 如何通過構(gòu)建軟件來學(xué)習(xí)機(jī)器學(xué)習(xí) 如果你喜歡通過線上課程來學(xué)習(xí),那么最好的資源或許就是的Practial Deep Learning For Coders,是最有發(fā)言權(quán)的機(jī)器學(xué)習(xí)倡導(dǎo)者,它推薦使用自上而下、理論實(shí)踐相結(jié)合的學(xué)習(xí)方法來學(xué)習(xí)機(jī)器學(xué)習(xí)。 課程鏈接: https://course./ 當(dāng)然,這篇文章的目的不是為做廣告,只是想說的創(chuàng)始人Jeremy Howard和Rachel Thomas成功地把幾門課程整合在一起,這些課程讓開發(fā)者構(gòu)建產(chǎn)品、深入了解項(xiàng)目相關(guān)的底層邏輯。 另外,如果你是那種通過深入了解并且自己構(gòu)建知識體系,以此可以達(dá)到最大的學(xué)習(xí)效果的人,那么學(xué)習(xí)機(jī)器學(xué)習(xí)就和你學(xué)過的編程語言一樣。挑選一個(gè)聽起來讓你感興趣的項(xiàng)目,并深入其中學(xué)習(xí)就可以了。 這里推薦一種熟悉機(jī)器學(xué)習(xí)的好方法:
通過這種學(xué)習(xí)方法,可以促使你了解到不同流行的模型構(gòu)架和機(jī)器學(xué)習(xí)的方法,以及它們的使用場景。同樣重要的是,你將學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)構(gòu)架,這對構(gòu)建真實(shí)的產(chǎn)品至關(guān)重要。 學(xué)會(huì)構(gòu)建產(chǎn)品后可以回頭再學(xué)習(xí)理論 如果你是一名工程師,你可能已經(jīng)學(xué)習(xí)過實(shí)現(xiàn)了某種形式的身份驗(yàn)證,這意味著你很可能用過散列密碼。 那么當(dāng)你設(shè)置散列密碼時(shí),你是否有自定義散列算法?你花了幾周時(shí)間去研究密碼學(xué)?還是說你只是使用內(nèi)置的加密算法bcrypt。 同樣,當(dāng)你構(gòu)建你的第一個(gè)Web應(yīng)用程序時(shí),你是否花了幾周時(shí)間去學(xué)習(xí)數(shù)據(jù)庫?你是否從頭開始編寫自己的數(shù)據(jù)庫?還是說使用了你最喜歡的框架所附帶的ORM? 這些問題的邏輯同樣也適用于機(jī)器學(xué)習(xí),如果你是那種喜歡構(gòu)建軟件的人,那就從構(gòu)建軟件開始,從工具、預(yù)訓(xùn)練模型和機(jī)器學(xué)習(xí)框架中抽象出底層的機(jī)器學(xué)習(xí)理論。如果你依然很好奇或者你的項(xiàng)目需要更高的復(fù)雜度,那就深入進(jìn)去,看看這一切是如何運(yùn)作的。 相關(guān)報(bào)道: https:///dont-learn-machine-learning-8af3cf946214 |
|