在IT技術飛速發展的今天,云計算、人工智能、大數據和云原生應用等新興技術的發展為我們帶來一波又一波的浪潮,也對軟件開發者提出了更高的要求,特別是人工智能開發領域,應運而生的新概念讓人目不暇接。
作為一個.NET開發者的你,可能很難立即進入機器學習。主要原因之一就是我們的觀念之中認為C# 不是適合該工作的編程語言,例如Python和R所占據,這個更準確的來說是機器學習的前期數據分析階段。
不知道各位有沒有思考一下為什么 Microsoft 要在 .NET 平臺上引入機器學習以及我們為什么要關心機器學習。
首先是機器學習這項技術正在跨越鴻溝。事實上這個鴻溝是非常難以跨越的,之所以那么多的高科技產品只是在小眾范圍內流傳,而并沒有被主流市場接受,原因就是這些技術沒有能夠跨越這個鴻溝。最早的機器學習算法可以追溯到20世紀初,到今天為止,已經過去了100多年。從1980年機器學習稱為一個獨立的方向開始算起,到現在也已經過去了近40年。在這100多年中,經過一代又一代人的努力,最近這幾年終于跨越了鴻溝。 跨越鴻溝意味著機器學習正在從僅有少數人掌握的時代過渡到民主化、平民化。微軟的CEO 薩提亞·納德拉在他的書《刷新:重新發現商業與未來》 之中就有提出“民主化”的人工智能,ML.NET 正是要完成這項使命的載體之一。如何實現人工智能全民化,讓它惠及每個人?如何讓每個人打造自己的人工智能?在醫療、教育和零售機構當中,如何打造一個相適應的人工智能是至關重要的。當我們談人工智能的時候,不能空談任何一個人工智能公司,而是要“民主化”人工智能,讓人工智能真正落地應用到個人。
您應該開始探索這個機器學習領域的另一個原因是,作為一個人類,我們會產生大量數據。單獨地,我們無法處理那么多的數據,甚至無法處理全部數據。從技術上講,我們面臨著無法從數據中提取信息的問題。但是,機器學習模型卻可以幫助我們處理海量的數據。
在 .NET 生態上在人工智能領域有一個開源團隊 SciSharp STACK ,他們為TensorFlow提供了 .NET Standard binding,旨在以C#實現完整的Tensorflow API,允許 .NET開發人員使用跨平臺的.NET Standard框架開發、訓練和部署機器學習模型。 打造一個完全屬于.NET開發者自己的機器學習平臺,特別對于C#開發人員來說,是一個“0”學習成本的機器學習平臺,該平臺集成了大量API和底層封裝,力圖使TensorFlow的Python代碼風格和編程習慣可以無縫移植到.NET平臺。
雖然有大量的Tensorflow 的文檔,但是對于初學者來說, 這些知識難免晦澀,特別是對于 .NET的開發人員來說,缺少便于上手的指南,以及來自于生產實踐中的案例總結。因此有一本能夠系統的介紹 TF.NET的圖書就很有必要了,讓更多的 .NET開發者可以把人工智能應用于生產實踐之中。
這也正式這本書應運而生的目的和價值,同時本書采用 .NET 5.0進行實踐,可能本書發布的時候 .NET 6已經發布,代碼從 .NET 5升級到 .NET 6 也是很平滑的。請務必一邊實際地運行代碼,一邊閱讀本書。