2019年9月20日 星期五
Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作
如果「TensorFlow+Keras深度學習人工智慧實務應用」是打開大門讓讀者走進Keras的玄關,那「Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作」就是邀請我們走到Keras的客廳好好地聊天喝茶。本書作者「François Chollet」是Keras的原創者,講解Keras又有誰能比他更權威?初章詳實說明「人工智慧」、「機器學習」以及「深度學習」三者之間的相交關係,替讀者建立扎實的基礎觀念。像是「深度學習」的「深度」指的是神經網路擁有「二層以上」的神經層,有別於最早的單層神經網路。還有數學「微分」當用在多維空間時便稱為「梯度」,而「梯度下降」是反向傳播(Backpropagation)算法的運作原理。
第二章則用來補充神經網路中所需要瞭解的數學概念。對離開學校多年的社會人士而言,這樣的章節設計真的是有打到痛點。閱覽機器學習的書籍時,最怕看到一堆唸不出來的數學符號與公式,讓讀者不求甚解地翻完,卻沒學到有用的知識。相反地「Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作」不羅列複雜的數學方程式,而是只補充對後續討論必須瞭解的數學算法(向量計算)。第三章一開始就讓讀者感受到Keras的威力,就像書封文案所說,透過短短六行程式碼,就已經建好一個能運作的神經網路模型。藉由作者巧思設計的範例,我們不費吹灰之力地使用了深度學習做出機器學習的典型應用「迴歸預測」。
接下來花了一個章節針對機器學習開發時種種的基礎知識進行介紹。包括「如何評估模型」、「資料的預處理」、「特徵工程」以及「過度擬合」等。在原作者以及編譯的高水準創作下,以深入淺出的文字具體而微地把這些觀念說清楚,相較之下市面上不少「機器學習」的教學書藉,在觀念部份都是語意不清地讓讀者摸不著頭緒。
五到八章算是第二篇的「深度學習應用範例」,恰好呈現「深度學習」與傳統「機器學習」最大的差異所在。我們可以說,這幾年的人工智慧浪潮,源自於神經網路在「視覺」、「圖像」以及「語音」辨識能力的驚人成績。而這些領域就是傳統「單純貝氏」、「支持向量機」和「隨機森林」等演算法表現不佳的領域。第五章的圖像處理、第六章的文字序列資料以及第八章的生成式神經網路,都是現今人工智慧運用的重點項目。隨著書中範例的一步步引導,讀者像學徒般已經被師傅領進門,站在這個基礎上再去打造自己的A.I.服務,讓我們面對人工智慧實作,不會再有霧裡看花的焦慮。
若硬要挑這本書的毛病,第七章有關「Keras函數式API」的內容,不像前面章節那樣提供由淺而深的引導式範例。以我個人而言,學到的內容可以說是囫圇吞棗,體會不到「函數式API」的精髓在那裡。另外第八章「生成式神經網路」的內容則是另一種問題。可能因為生成式深度學習的太過雜複,這章的範例不同於前面章節學到的Keras程式風格,程式碼的說明也草草帶過。歸究原因,VAE(變分自編碼器)以及GAN(生成對抗神經網路)原本就是很難理解的進階神經網路演算法。連作者都說光這兩個演算法本身就可以獨自出成一本書,作者嘗試只用一個章節的篇幅來介紹,是很難讓讀者理解演算法的全貌。雪上加霜的是,第八章的翻譯語句恰好變得不太流暢(有幾句怪怪的),添加了該章學習的困難度。
個人因為從事大數據開發,因而開啟了機器學習的研究之路,而近年來研究機器學習,又不得不去摸索深度學習的相關技術。對一位沒有相關學術背景的軟體工程師而言,能藉由Keras框架的簡潔、易用,來避開使用Tensorflow打造神經網路模型的高門檻,是一件幸運的事。隨著A.I.工具發展與普及,未來的人們能更輕鬆地打造出自己心中的人工智慧應用。相信Keras依舊扮演著重要的角色,而「Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作」是當下你不可錯過的工具書。
訂閱:
張貼留言 (Atom)

沒有留言:
張貼留言