在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 也是很平滑的。请务必一边实际地运行代码,一边阅读本书。