今天開始學習Coursera上的Machine learning by deeplearning.AI。拖了許久,之前總是東一塊西一塊的學,沒有系統性的從頭學起,又好像懂一點點,所以對從最基礎開始學有些排斥。而且老實說,一開始看到課程內容時還是有些緊張 - 特別是那些數學公式,總是會讓我不自覺地想要退縮。然而,這次的學習經驗卻帶給我一些意外的發現。
課程從監督式學習(Supervised Learning)和非監督式學習(Unsupervised Learning)的概念開始講起。監督式學習就像是給模型一個標準答案,讓它從中學習 - 比如用過去幾個月的便利商店銷售數據來訓練模型,預測未來的銷售額。而非監督式學習則是讓模型自己從數據中發現規律,不需要事先給定答案。
接著課程介紹了迴歸(Regression)和分類(Classification)這兩種模型類型。迴歸模型輸出連續的數值,像是預測房價;分類模型則是輸出有限的類別,比如辨識一張圖片是貓還是狗。在理解線性和非線性模型的差異時,線性模型就像是只能畫直線,而非線性模型則能繪製出各種曲線來擬合數據。
當講到成本函數(Cost Function)時,那些數學符號原本看起來很嚇人,但當我試著一步一步理解每個部分的含義,事情就沒那麼可怕了。雖然還是有些概念沒完全理解(比如為什麼要將誤差平方),但至少不再像以前那樣一看到數學公式就想逃跑。
這讓我意識到一件很有趣的事:這幾年寫程式的經驗,某種程度上改變了我面對複雜問題的態度。就像面對一段複雜的程式碼,與其被表面的複雜度嚇到,不如靜下心來一步一步地理解每個函數的作用。這種思維模式似乎也適用於學習數學 - 當我放慢腳步,試著理解每個概念的實際含義,那些看似艱深的數學概念也變得沒那麼遙不可及。
這種轉變讓我想起之前在開發撲克機器人時的經驗。當時面對複雜的程式架構,我也是學會了將大問題拆解成小問題來處理。現在回過頭來看,或許這就是所謂的成長 - 不是變得更聰明或更有天賦,而是學會了更好的學習方式。
回想起來,過去總是希望能一次就完全理解所有概念,稍微跟不上進度就容易焦慮。但現在我明白了,學習是一個漸進的過程,有時候需要放慢腳步,給自己時間去消化和理解。就像寫程式一樣,與其追求一次寫出完美的程式,不如先專注在讓程式能夠運作,然後再一步步優化。