本文概述
在此, 我们简要介绍了如何实现基于机器学习的算法, 以训练线性模型来拟合一组数据点。
为此, 无需具备任何深度学习的先验知识。我们将从讨论监督学习开始。我们将讨论监督学习的概念及其与之的关系。
机器学习
机器学习是AI的一种应用。机器学习(ML)使系统能够借助经验自动学习和改进。 ML专注于计算机程序的开发, 该程序可以访问数据并将其用于自身学习。
学习的过程始于数据或观察, 例如示例, 说明或直接经验, 以便根据我们提供的示例查找数据模式并在将来做出更好的决策。其目的是允许计算机在没有人工干预的情况下自动学习并相应地调整操作。
监督学习
顾名思义, 主管是在担任教师。在监督学习中, 我们使用标记良好的数据来训练或教导机器。标记正确的意味着几乎没有数据已被正确答案标记。之后, 机器将获得一组新的数据。监督学习算法会分析训练数据并从标记数据中得出正确的结果。
监督学习分为两大类算法:
- 分类:当输出变量或简单输出是诸如”红色”或”蓝色”或”疾病或无疾病”之类的类别时, 分类问题就是一个问题。
- 回归:当输出变量或简单输出是实数或连续值(例如”工资”或”权重”)时, 回归问题就是一个问题。
无监督学习
在无监督学习中, 机器会使用既未分类也未标记的信息进行训练, 并使算法无需指导即可对信息进行操作。在无监督学习中, 任务是根据相似性, 差异和模式对未分类的信息进行分组, 而无需事先对数据进行训练。
没有主管, 这意味着不会对机器进行培训。因此, 机器仅限于自行查找隐藏的结构。
无监督学习分为两大类算法:
- 聚类:聚类问题是我们必须发现数据中固有分组的问题。例如按课程或年龄行为对学生进行分组。
- 关联:关联问题是一个问题, 我们必须发现描述大部分数据的规则, 例如购买苹果的人也想购买香蕉。
进行预测(创建数据模型)
进行预测是建立线性回归模型的第一步。在线性回归模型中, 我们使用监督学习, 因为回归是其第二大类。因此, 对学习者进行了培训, 并利用了与标记特征相关联的数据集, 这些特征定义了我们训练数据的含义。
学习者能够在将新输入的数据提供给机器之前预测相应的输出。
查找预测的步骤
- 第一步是安装手电筒, 然后将其导入使用。
- 下一步是初始化变量c和c以了解直线方程。
- 初始化线方程, 使y = w * x + b, 这里w是斜率, b是偏置项, y是预测。
- 预测是在forward()方法内部计算的。
让我们看一个例子, 以了解如何在线性回归中进行预测。
对于单个数据
import torch
b=torch.tensor(3.0, requires_grad=True)
c=torch.tensor(1.0, requires_grad=True)
def forward(x):
y=b*x+c
return y
x=torch.tensor([4.0])
forward(x)
输出
tensor([13.], grad_fn=<AddBackward0>)
对于多个数据
import torch
b=torch.tensor(3.0, requires_grad=True)
c=torch.tensor(1.0, requires_grad=True)
def forward(x):
y=b*x+c
return y
x=torch.tensor([[4.0], [5.0], [6.0]])
forward(x)
输出
tensor([[13.], [16.], [19.]], grad_fn=<AddBackward0>)
使用线性类进行预测
绑定预测还有另一种标准方法。为此, 我们必须导入torch.nn包的线性类。在此, 我们使用manual_seed()方法生成随机数。当我们创建具有线性类的模型时, 将为线性类提供随机数值, 这自召回以来就很有意义。
让我们看一个如何使用model和manual_seed()方法进行预测的示例。
对于单个数据
import torch
from torch.nn import Linear
torch.manual_seed(1)
model=Linear(in_features=1, out_features=1)
print(model.bias, model.weight)
x=torch.tensor([2.0])
print(model(x))
输出
<torch._C.Generator object at 0x000001FA018DB2B0>
Parameter containing:
tensor([-0.4414], requires_grad=True) Parameter containing:
tensor([[0.5153]], requires_grad=True)
tensor([0.5891], grad_fn=<AddBackward0>)
对于多个数据
import torch
from torch.nn import Linear
torch.manual_seed(1)
model=Linear(in_features=1, out_features=1)
print(model.bias, model.weight)
x=torch.tensor([[2.0], [4.0], [6.0]])
print(model(x))
输出
<torch._C.Generator object at 0x00000210A74ED2B0>
Parameter containing:
tensor([-0.4414], requires_grad=True) Parameter containing:
tensor([[0.5153]], requires_grad=True)
tensor([[0.5891], [1.6197], [2.6502]], grad_fn=<AddmmBackward>)
评论前必须登录!
注册