第五讲_多分类回归
多分类问题
Softmax regression
如手写字体识别等
数据
x可以多维,一个y(不同的类用不同的数值表示)
首先需要将y
的标签转换为one-hot
向量
三种类别的空间距离是相等的,消除了数值之间的差异带来的影响1
2
3
4
5
6
7
8
9
10
11
12import torch
# 创建原始张量
y = torch.tensor([0, 1, 2])
# 创建一个全零的 one - hot 编码张量
y_onehot = torch.zeros(len(y), 3)
# 执行 scatter 操作来进行 one - hot 编码
y_onehot.scatter_(1, y.unsqueeze(1), 1)
print(y_onehot)
# tensor([[1., 0., 0.],
# [0., 1., 0.],
# [0., 0., 1.]])
模型
使用三个线性模型来实现(有几个类型就用几个线性模型)
公式:
对于每个模型来说,实现的功能都是判断是否属于对应的一类(属于/不属于),是一个二分类问题
很多个二分类合在一起构成一个多分类问题
Softmax Function---激活函数
使用Sotfmax函数
,把线性模型的输出
转化为概率
需要将输出的z转为正数,但是不能改变数值之间的大小关系,所以使用 \[e^z\] 来表示
同时要注意概率求和结果为 1
softmax函数---可以理解为激活函数
损失函数
交叉熵损失函数 Cross entropy
公式
损失函数:
代价函数:
优化算法
优化算法还是跟之前一样,使用梯度下降
计算梯度
总结一下:
第五讲补充
K Nearest Neighbors
K近邻算法
是一种分类
算法,其基本思想是:
- 找出距离待测数据最近的K个样本点;
- 统计这K个样本点中属于不同类别的样本点个数;
- 将待测数据分配到距离最近的K个样本点中
类别数最多
的那个类别中。 - K的选取:
- K的选取一般取奇数,因为偶数个样本点中,类别数相同的概率较小---这句话没搞懂,老师也没说,不具有科学性
算法的缺点是计算量比较大,比较费时间
第五讲_多分类回归
http://jrhu0048.github.io/2024/09/25/ji-qi-xue-xi/di-wu-jiang-duo-fen-lei-hui-gui/