神经网络基础-神经网络补充概念-54-softmax回归

概念

Softmax回归(Softmax Regression)是一种用于多分类任务的机器学习算法,特别是在神经网络中常用于输出层来进行分类。它是Logistic回归在多分类问题上的推广。

原理

Softmax回归的主要思想是将原始的线性分数(得分)转化为类别概率分布,使得模型可以对多个类别进行分类。在Softmax回归中,每个类别都有一个权重向量和偏置项,将输入特征与权重相乘并添加偏置,然后通过Softmax函数将分数转化为概率。

Softmax函数可以将一个K维的向量(K个类别的分数)映射成一个K维的概率分布。假设有K个类别,对于给定的输入向量x,Softmax函数的计算公式如下:

其中, P ( y = i ∣ x ) P(y=i | x) P(y=i∣x) 表示在给定输入x的情况下,样本属于第i个类别的概率, z i z_i zi 是输入x在第i个类别上的得分。Softmax函数的分母是对所有类别的得分进行指数运算后的和。

Softmax回归的训练过程通常使用交叉熵损失函数(Cross-Entropy Loss),用于衡量模型预测的概率分布与真实标签的差距。

代码实现

python 复制代码
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import SGD
from sklearn.preprocessing import OneHotEncoder

# 生成随机数据
np.random.seed(0)
X = np.random.rand(100, 10)
y = np.random.randint(3, size=(100, 1))

# 对标签进行独热编码
encoder = OneHotEncoder(sparse=False)
y_onehot = encoder.fit_transform(y)

# 构建Softmax回归模型
model = Sequential()
model.add(Dense(3, input_dim=10, activation='softmax'))

# 编译模型
model.compile(optimizer=SGD(lr=0.01), loss='categorical_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit(X, y_onehot, epochs=50, batch_size=32)
相关推荐
luckystar513~2 分钟前
Hermes 实战 :系列收官/生产化——安全审计与运维
运维·人工智能·安全·agent·智能体开发·hermes实战·智能体网关
Mickey Q18 分钟前
【深度学习】数值稳定性和模型初始化
人工智能·深度学习
冬奇Lab25 分钟前
Code Agent 解剖(20):从零扩展——给 agent 加一个新工具
人工智能·开源
论文复现现场27 分钟前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力
七牛云行业应用28 分钟前
Harness Engineering 是什么:从“写提示词“到“设计 Agent 边界“的工程方法论
人工智能·agent·ai编程
科技拓维者35 分钟前
短视频配音音效去哪里找比较好?短视频创作者音效指南
人工智能·音视频
cjy00011139 分钟前
2026AI 产品如何从一次性 Demo 变成可重复使用的业务工具?
前端·人工智能·fde
大模型码小白43 分钟前
AI大模型接入SDK:人工智能核心概念与发展史
大数据·运维·人工智能·安全·prompt
杀生丸学AI44 分钟前
【动态重建】Flow4DGS-SLAM:基于光流引导的4DGS-SLAM算法
人工智能·三维重建·扩散模型·4dgs·动态重建
IT_陈寒1 小时前
React的状态更新坑得我差点加班到天亮
前端·人工智能·后端