与第一课线性回归(linear regression)不同,softmax回归针对的是多分类的情况,即labels不再仅有0,1两个分类。
softmax通过指数运算将最后的分类转为0~1间的概率,在终于类别概率中,数值大的为预测概率。
与线性回归损失不同,softmax函数计算损失采用的是交叉熵损失(Cross Entropy),原理和公式推导可参考:https://zhuanlan.zhihu.com/p/27223959
softmax函数简单实现代码如下:
from mxnet import autograd,nd
import gluonbook as gb
%matplotlib inline
import time
import matplotlib.pyplot as plt
import sys
#读取数据
batch_size = 256
train_iter,test_iter = gb.load_data_fashion_mnist(batch_size)
#参数初始化
num_inputs = 784
num_outputs = 10
w = nd.random.normal(scale = 1,shape = (num_inputs,num_outputs))
b = nd.random.normal(num_outputs)
w.attach_grad()
b.attach_grad()
#正向传播,实现softmax运算
def softmax(x):
return nd.exp(x) / nd.exp(x).sum(axis = 1,keepdims = True)
def net(x):
return softmax(nd.dot(x.reshape((-1,num_inputs)),w) + b) #对求得的yhat执行softmax运算
def cross_entropy(y_hat,y):

本文介绍了softmax回归在多分类问题中的应用,不同于线性回归的二分类。softmax通过指数运算得到每个类别的概率,并使用交叉熵损失函数计算损失。文章提供了softmax函数的简单实现代码,以及在Gluon中的nn模块实现方式,讲解了Sequential容器和全连接层的概念。
最低0.47元/天 解锁文章
2611

被折叠的 条评论
为什么被折叠?



