一、Softmax Regression 基础
Softmax Regression 相当于 Logistic Regression 的升级版,泛化版。将二分类问题提升为多分类问题。
概率表示为
代价函数为
其中里面那一项为概率
梯度为
这里表示的是一个向量。
为了去除参数的冗余性,一般的,我们将最后一个 θ 置为0向量.
二、代码部分
除了利用bsxfun外,还有一些技巧。
1.sub2ind()
I=sub2ind(size(A), 1:size(A,1), y);
values = A(I);
如果y为行向量,且表示每一行中要提取的元素的列坐标,则 I 能够提取到A中每 i 行中的第y(i)个元素。values 则能提取到相应的值,values 为行向量。
2.sparse和full
利用sparse和full有助于我们建立关于的矩阵。
利用sparse可以建立稀疏矩阵,并以 sparse 类型记录数据,包括坐标和值.
再利用full可以建立完全矩阵。
以下为例子,其中y为各个点的行坐标,1:3表示列坐标,1则为对应点的值。
>> y=[2,3,1]
y =
2 3 1
>> sparse(y,1:3,1)
ans =
(2,1) 1
(3,2) 1
(1,3) 1
>> full(sparse(y,1:3,1))
ans =
0 0 1
1 0 0
0 1 0