从本部分开始Luis Quintanilla介绍AI和机器学习,需要学习的一些东西是什么是AI和ML?作为一名.net开发人员如何学习使用AI和ML。
1、首先什么是AI 和 ML?
你可以把它看作是基本相同事物的不同层次。
在顶层的是AI(人工智能),它可以自动化执行之前由人来手动执行的任务。举个例子:你让AI做一个邮件过滤的工作,在设定好过滤规则之后。在一天要结束时AI会作为自治代理,按照你设置的过滤规则帮你完成邮件整理这个操作。
在下一层的是ML(机器学习),它基本上是使用算法和数据来推断模式的系统。还是举邮箱的例子:当规则变得非常繁多,以至于很难从这些规则中提炼出任何意义并进行管理时,就到了机器学习发挥作用的时候了。通过使用数据和算法,它能够学习这些规则并推断出这些模式。
再下一层是deep learning(深度学习),它是一种机器学习技术,使用被称为神经网络的专门算法。
最后是(Generative Al生成式AI),比如GPT和ChatGPT等模型中使用的那种。
Artificial Intelligence (AI) 人工智能(AI)
Agents automating tasks typically performed manually by humans
智能体自动化通常由人类手动执行的任务
Machine Learning (ML) 机器学习(ML)
Systems that use algorithms and data to infer patterns.
利用算法和数据来推断模式的系统。
Deep Learning 深度学习
ML technique that uses algorithms known as neural networks.
一种使用被称为神经网络的算法的机器学习技术。
Generative AI 生成式人工智能
Use of deep learning algorithms to generate new content (text, images, etc.).
利用深度学习算法生成新内容(文本、图像等)。
课程外补充内容:
一、人工智能(Artificial Intelligence,AI)
人工智能是指以仿效人类智能的思维和行为为目标,研究、设计、实现用于理解和掌握复杂的知识、推理、学习、交流、感知和创造等一系列智能活动的理论、方法、技术、应用系统及其开发的支撑环境。它是计算机科学的一个重要分支,旨在使机器能够胜任一些通常需要人类智能才能完成的复杂工作。人工智能包括多个子领域,如机器学习、深度学习、图像识别、自然语言处理等,可以被应用在各种领域中,如医疗、金融、交通、农业、教育等。
二、自动化任务的智能体(Agents)
在现代软件产品设计中,越来越多的功能需要具备智能化和自动化能力,这些功能的核心往往是“Agents”,即能够感知环境、做出决策并执行行动的智能实体。Agents是具有自主性、目标导向和环境感知能力的软件实体,它们能够根据环境信息和自身目标,自主地做出决策并执行行动。在自动化任务中,Agents能够执行原本需要人类手动完成的任务,从而提高工作效率和准确性。
三、机器学习(Machine Learning,ML)
机器学习是人工智能的一个子集,它通常使用统计学方法,借助数据,赋予计算机“学习”的能力,而不需要明确编写学习过程。机器学习的目标是让计算机通过数据学习和改进其性能,从而能够在未来更好地完成类似的任务。机器学习包括多种类型,如监督学习、无监督学习、强化学习等。其中,监督学习是指通过标记的训练数据来训练模型,使其能够预测新数据的标签;无监督学习则是指在没有标签的情况下,从数据中提取有用的信息和结构;强化学习则是通过让模型在环境中进行试错学习,以最大化某种累积奖励为目标。
四、深度学习(Deep Learning,DL)
深度学习是机器学习的一个分支,它使用被称为神经网络的算法来构建和训练深层模型,从数据中学习和提取特征,以实现复杂任务的自动化处理和决策。深度学习模拟人脑神经网络的工作原理,通过多层神经元之间的连接和权重调整来提取数据的特征,并用于预测和分类等任务。由于深度学习能够处理大规模数据和复杂模型,因此在许多领域都取得了显著的成果,如图像识别、语音识别、自然语言处理等。
五、生成式人工智能(Generative AI)
生成式人工智能是人工智能的一个分支,它使用生成模型来生成文本、图像、视频或其他形式的数据。这些模型通常根据特定的提示生成输出,并从训练数据中学习潜在的模式和结构,从而能够创造新的数据。生成式人工智能在内容创作领域有着广泛的应用,如自动写作、自动绘画、自动音乐创作等。通过深度学习算法,生成式人工智能能够生成高质量的内容,为创作者提供新的灵感和工具。
2、可以用AI 和 ML做些什么?
那么你能用AI和机器学习(ML)做什么呢?从高层次上讲,你基本上可以用AI和ML提取关键见解并总结信息。一些例子包括语言处理。所以,例如,你可以分析客户评价的情感,你可以构建虚拟代理或聊天机器人,就像这里展示的那样,比如Bing Chat。你可以翻译文本或代码,甚至可以使用这些模型来解释代码。
在计算机视觉方面,你可以使用这些模型来识别图像或视频中的对象。类似地,对于分类任务,如果你需要对事物进行打标签,也可以利用这些技术。
还可以执行异常检测任务,比如预测性维护,即预测某台设备何时会出现故障。所以,如果你正在查看季度销售额或你想要预测的某种目标数字,你可以使用AI和ML来完成。
以下是一个不完整的列表,但这只是一个关于可以用AI和ML做什么的相对全面的概述。
既然已经知道AI和ML是什么以及可以用它们做什么,那么应该如何开始呢?作为一名.NET开发者,有几种方法,我们将在整个系列中详细讨论其中的一些方法。
- 首先,有像Azure OpenAI这样的服务来与生成式AI模型一起工作,然后还有Azure认知服务或AI服务。这些服务允许利用AI的力量执行特定的任务和工作流。
- 还有像Samantha Kernel这样的框架和库来与生成式AI模型一起工作,以及用于训练自定义机器学习模型的.NET框架。
- .NET有用于训练自定义机器学习模型的库,比如Auto ML、Torch Sharp和C#,这些库可以帮助训练自定义的机器学习和深度学习模型。
- 还有开放神经网络交换(ONNX),它可以帮助你在进行推理时将其他平台训练的模型迁移到.NET上。
- 还有其他库,比如Polyglot.NET,它可以帮助绘制和可视化数据。
- 除此之外,至少还有一系列工具可以帮助你完成这些工作流,比如Model Builder和DML .NET CLI。
- 当涉及到训练自定义机器学习模型或深度学习模型时,还有Polyglot Notebooks,它有助于实验过程和一般代码编写。