天天看點

《Arduino家居安全系統建構實戰》——第1章 256級灰階

本節書摘來異步社群《機器學習項目開發實戰》一書中的第1章,作者:【美】mathias brandewinder(馬蒂亞斯·布蘭德溫德爾),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

機器學習項目開發實戰

建構自動識别數字圖像的程式

如果你打算建立一個目前技術熱點的清單,機器學習當然會名列前茅。然而,雖然這個術語到處出現,但是它的真實含義往往含混不清。它是和“大資料”或者“資料科學”一樣的東西嗎?它和統計學有何不同之處?表面上,機器學習似乎是一種奇特、令人畏懼的專業,使用令人眼花缭亂的數學知識和算法,和軟體工程師的日常活動沒有多少共同之處。

在本章以及本書餘下的部分中,我的目标是和大家一起完成實際項目,以此闡明機器學習的原理。我們将循序漸進地解決問題,主要是從頭開始編寫代碼。通過講述這種方法,我們可以了解工作原理的細節,逐漸說明廣泛适用的核心思路和方法,并幫助你為以後建構專用程式庫打下堅實的基礎。在第1章中,我們将深入探讨一個經典問題——手寫數字識别,同時完成以下幾件工作:

建立适用于大部分機器學習問題的方法論。機器學習模型的開發與标準業務線應用程式有微妙的不同,将帶來特殊的挑戰。學到本章的最後,你将會了解交叉驗證的概念、重要性以及使用方法。

幫助你了解如何“考慮機器學習”,以及如何看待機器學習問題。我們将讨論相似性和距離之類的思路,這些思路是大部分算法的核心。我們還将說明,雖然數學是機器學習的重要組成部分,但是這個方面可能被過分強調了,有些核心思路實際上相當簡單。我們将從比較簡單的算法開始,你會看到,這些算法實際上工作得很好!

了解如何用c#和f#解決問題。我們将從實作c#解決方案開始,然後提供f#的等價解決方案。f#是一種特别适合于機器學習和資料科學的.net語言。

在第1章就碰上這樣的問題,似乎會令人畏縮——但是不要被吓住!從表面上看這個問題很難,但是你将會發現,我們僅用相當簡單的方法,就能夠建立相當有效的解決方案。再說,解決小兒科的問題有什麼意思?

繼續閱讀