實際學科的從業人員可能會羨慕數學。
在這裡,他們認為數學家比他們更聰明,並且他們只有在「知道數學」之後才能在學科上脫穎而出。
我已經看過第一手資料,也看到它阻止了人們入門。
在本文中,我想說服您,您可以在不精通數學的前提下開始並在機器學習中取得長足進步。
如果我不擅長數學
邊做邊學
在開始編程之前,我沒有學習布爾邏輯。
我剛開始編程,而您可能這樣做了。
我遵循的經驗路徑涉及反覆試驗。它很慢,我編寫了很多錯誤的代碼,但是我非常感興趣,並且可以看到進展。
當我構建更大,更複雜的軟體程序時,我很喜歡教科書,因為它們使我可以更好地構建程序。我搜尋了可以用來克服實際遇到的限制的概念和實用工具。
這是一個強大的學習工具。如果我是通過被迫學習布爾邏輯或多態性等概念而開始編程的,那麼我的熱情就永遠不會被點燃。
危險地帶
當我的程序不起作用時,我喜歡它。這意味著我必須捲起袖子,真正了解發生了什麼。
通過複製和粘貼代碼,您可能會走很長一段路而無需真正理解它。您只需要將代碼塊理解為可以完成需要完成的功能的功能單元即可。將它們足夠粘在一起,您就有一個程序可以解決您需要解決的問題。
這種經驗式黑客是快速學習的好方法,但是卻是構建生產系統的可怕方法。這是一個重要的區別。通常所說的「危險地帶」是指通過經驗學習建立的系統投入運行時,作者並不真正知道其工作原理或結果的實際含義。
這是一個非常現實的問題。例如,看一下適合於這種工作水平的一些IT系統和小型企業的網頁。
在我看來,原型是一團用複製粘貼的泥漿和膠帶粘在一起的球,可以勾勒出解決方案的外觀。
作業系統或產生可操作性使用的結果或決策的系統不會令人驚訝。您可以整天進行代碼審查,而團隊會挑選每一行代碼,您會感到很自在。
技術員
根據經驗,您可以立即開始機器學習。您可以使用的三個選項是:
學習驅動scikit-learn,R或WEKA之類的工具。使用提供算法並編寫少量程序的庫自己從教程和書籍中實現算法。除了選擇之外,這還可以是技術人員從初學者到中級人員的即時學習技術的途徑。
定義小問題,有條不紊地解決它們,並在博客上展示您學到的結果。在此過程之後,您將開始積累一些動力。
您將需要了解一些有趣的算法,例如更改某個特定參數時實際執行的操作或如何從特定算法中獲得更好的結果。
這將促使您想要(需要)了解該技術的真正作用及其作用。您可能會繪製數據流和轉換的圖片,但是最終,您將需要內部化正在發生的矢量或矩陣表示和轉換,這僅是因為它是我們可以清楚地描述正在發生的事情的最佳工具。
您可以保留經驗主義者。我稱此為技術人員的路徑。
您可以建立使用哪種方法以及如何使用它們的經驗直覺。您還可以學習足夠的代數,以便能夠閱讀算法描述並將其轉換為代碼。
熟練的技術人員在這裡有一條創建使用機器學習的工具,插件甚至作業系統的途徑。
技術人員與量表另一端的理論家形成對比。理論家可以:
內部化現有方法。提出對現有方法的擴展。設計全新的方法。理論家也許能夠抽象地證明一種方法的能力,但可能不夠熟練,無法將這些方法轉換為原型演示系統之外的最佳代碼。
您可以及時學習儘可能少的數學知識。專注於自己的優勢,對自己的局限性誠實。
數學至關重要,以後
如果您必須及時學習線性代數,為什麼不從頭開始更全面地學習它,並從一開始就深入了解機器學習方法呢?
這當然是一種選擇,也許是最有效的選擇,這就是為什麼它是大學教學的途徑。這不是唯一可用的選項。
就像從邏輯和抽象概念開始學習編程一樣,內部化機器學習理論可能不是您入門的最有效方法。
在本文中,您了解到技術人員和理論家有一條獨立的道路。
您了解到,技術人員可以實時學習機器學習算法的數學表示形式和描述。您還了解到,技術人員的危險區域是過分自信,而將系統投入生產的風險卻鮮為人知。
從技術人員的路線開始,在非常密集的ML課程中奮鬥和學習,並隨我所學。數學肯定是令人生畏的,但是隨著時間的流逝,我在數學上變得更好了。在成為理論家之前,我還有一段路要走,但我做得越多,我就越有直覺。此外,一旦對為什麼需要理論有所了解,學習理論就會變得更加有趣。學習簡單黑客的局限性是進行更多數學和CS方面工作的強大動力。
喜歡點下關注,你的關注是我寫作的最大支持