文/IT可達鴨
圖/IT可達鴨、網絡
著名的物理學家霍金曾經說過:「每增加一個數學公式,讀者就會減少一半。」
前言
寫了近兩個月科技類的文章,我發現一個問題,就是公式越多,讀者越少,描述越通俗易懂、配圖越精緻,點讚率越高。好多明白而且會運用的技術點,到了寫文章的時候,明明很簡單的一個東西,我卻不知該如何表達出來。
就像,如何去表達和理解一個公式呢?為何同樣一個公式,不同的人理解起來卻不一樣?
如何看待公式
為了更好地說明這個問題,我們可以試試逆向思維。公式是怎麼來的?生活中的哪些淺而易見,可以抽象成為數學公式?
一個特殊的案例:通過姓名,去猜測一個人的性別。(這是一個機器學習算法入門必學的一個算法。)
小明,一看這個名字很容易就猜到他是男的。
小紅,很明顯的標誌,就是女的。
還有,~傑、~勇、~強,這些名字都是男的
還有,~瑩、~姍、~妮,這些名字都是女的
為何,大家一眼就能看出來這個名字是男生還是女生呢?很多會說:「這很簡單呀,我一眼就看出來了,沒有什麼難度。」
但是,如果讓你去教一個剛學會中文的外國人,讓他來識別這些名字的性別,你該怎麼做?你如何把你的經驗傳授給他?
總結規則
答案是總結規則,把規則告訴他。
名字裡,偏旁是女字旁的,大概率是女生。
名字裡,含有:偉、傑、勇、國…這樣的,大概率是男生。
這就是對單字進行分析,總結規則。
那為何我們沒有去總結,也能做到瞬間通過名字識別性別?答案就是,日常生活的經驗。
從幼兒園、小學、初中、高中,你一定有很多同學吧。在你的記憶中有幾百號人名字以及對應的性別,大腦會不自覺地總結出經驗。
而這些經驗,就構成了我們學習到的知識。但是,"知識"和"經驗"是非常具象化的東西。必須通過某種媒介,才能在人與人之間傳遞。像文字、圖片、音頻、視頻,當然,還有公式這些媒介。
抽象成公式
另一個可以更好理解公式的維度,就是舉一個例子。
舉個例子
樸素貝葉斯公式
訓練集,也就是日常中常見的人名以及對應性別
現在有個名字: 「小玲」,請問Ta是女的概率有多大?根據貝葉斯公式可得:
假定「小」,「玲」,這兩個特徵是獨立的,因此,上面的等式就變成:
由訓練集可得:
代入公式可得:
因此,這個叫「小玲」的人,在這個訓練集中,有100% 的概率是女的。同理,大家可以試著求下面式子的概率,它一定是0。
有了公式之後,代碼的實現就簡單很多了,下面是程序運行的結果:
知識的遷移
抽象成公式後,就可以對知識進行遷移,也就是舉一反三。
上面通過名字進行性別分類,抽象出貝葉斯分類器,也可以將其應用在其他分類任務上。
比如:垃圾郵件分類;電商產品評論的情感分類等等。
樸素貝葉斯公式想必很多做機器學習算法的人都應該很熟悉,但是,對於第一次看到這個公式的人來說,它僅僅是一個公式。
所以,公式正確的打開方式是: 場景 --> 背後的故事(畫面) --> 公式的物理意義 --> 抽象的公式 --> 知識的遷移(公式的靈活運用)
結語
文章的表達,需要通俗易懂且輔以精美配圖,技術的表達,需要嚴謹且輔以精簡公式。
反過來,公式的理解,就得從最通俗易懂的例子開始,到場景畫面,再到公式的物理意義。
如果你對新學的公式不太理解,那就去尋找它的物理意義。
由於小編知識有限,文中難免有錯誤的地方,歡迎大家指出。如果你有更好的想法,歡迎在下方評論。
如果有疑問想獲取源碼,可以關注後,在後臺私信我,回覆:python性別預測。 我把源碼發你。持續關注"IT可達鴨",每天除了分享有趣Python源碼,還會介紹NLP算法。最後,感謝大家的閱讀,祝大家工作生活愉快!