TensorFlow的一些基本概念

分类问题和回归问题

在实际生活中,人们面临的问题无非就是离散的和连续的。

比方区分出某个人属于男性还是女性,比方衣服是什么颜色的,什么种类的,这些都是在有限数量的结果中寻找答案,也就是最终结果只能是N个里面的某一个,这种问题就是分类问题 。分类问题预测的是类别,每个结果都是平等的,不存在好坏的区分。

另一种问题,结果可以有无限多的可能,比方玩游戏有个得分,最终是要让这个分数越高越好,而且结果有很多可能,但最终结果只有一个分数,每个结果并不是平等的,有个好坏差别,分数越高越好,这种问题就是回归问题

在机器学习中,分类问题输出的是一个概率分布,比方一个三分类的问题,最终输出的结果可能是

0.1,0.7,0.2,每个值表示的是所属分类的概率,因此0.1,0.7,0.2表示的是这次预测的结果是第二个分类的可能性最高,概率为70%。而回归问题输出的是一个值,比方FlappyBird,最后得分是23。

不同的问题,我们所用的TensorFlow模型是不一样的,后面实战中会讲到。

目标函数概念

首先,为什么需要目标函数?来看这么一个三分类的问题。

如果A模型预测一件衣服是T恤,衬衫,毛衣的最终概率输出是0.1,0.7,0.2,而B模型预测的概率输出是0.3,0.5,0.2,显然这两个模型预测的结果都是这件衣服是个衬衫,如果实际这件衣服就是个衬衫,那么很显然,A模型预测是要比B模型的好,因为A模型预测它是衬衫的概率比B模型的高。那么在模型的预测结果都是衬衫的情况下,怎么去评估哪个模型更加准确以实现帮助我们评估和优化模型的目的呢,这就需要目标函数了。

比方上面A、B两个模型,实际最正确的概率分布应该是0,1,0,那么A模型的目标函数可以这么定义f(x)=1n∑x,y(y−model(x))2f(x) = \frac{1}{n} \displaystyle\sum_{x,y} (y-model(x))^{2}f(x)=n1x,y∑(y−model(x))2

上面的 y 表示实际的概率,model(x)表示模型预测的概率。套用到上面A0.1,0.7,0.2、B0.3,0.5,0.2两个模型的预测结果上,就可以分别得出他们的目标函数是:
A=((0−0.1)2+(1−0.7))2+(0−0.2)2)/3=0.14A=((0-0.1)^{2}+(1-0.7))^{2}+(0-0.2)^{2})/3=0.14A=((0−0.1)2+(1−0.7))2+(0−0.2)2)/3=0.14
B=((0−0.3)2+(1−0.5))2+(0−0.2)2)/3=0.38B=((0-0.3)^{2}+(1-0.5))^{2}+(0-0.2)^{2})/3=0.38B=((0−0.3)2+(1−0.5))2+(0−0.2)2)/3=0.38

由公式可以很容易看出平方差损失函数评估的是实际预测结果离正确结果的误差,也就是说f(x)越小表示预测的结果越准确,所以,上面可以看出A的目标函数小于B的,A的模型预测效果更好。如果有个C模型预测结果是0,1,0那么得到的目标函数损失自然是0了,也就是完美命中。

目标函数有哪些

分类问题:

上面介绍的是取各个值之间的差值做平方差来作为目标函数,也即:

平方差损失: f(x)=1n∑x,y(y−model(x))2f(x) = \frac{1}{n} \displaystyle\sum_{x,y} (y-model(x))^{2}f(x)=n1x,y∑(y−model(x))2

除了平方差损失,还有交叉熵损失,也是描述模型好坏的一个函数:

交叉熵损失: f(x)=1n∑x,yy.ln(model(x))f(x) = \frac{1}{n} \displaystyle\sum_{x,y} y.ln(model(x))f(x)=n1x,y∑y.ln(model(x))

根据平方差损失,很容易联想到其实,绝对值也可以用于描述误差:

绝对值损失: f(x)=1n∑x,y∣y−model(x))∣f(x) = \frac{1}{n} \displaystyle\sum_{x,y} \mid y-model(x)) \midf(x)=n1x,y∑∣y−model(x))∣

这些都可以用于分类问题的目标函数计算。

回归问题:

由于回归问题最终输出是一个值,因此,它的目标函数是比较简单的,就是和真实值平方差计算,或者取差值的绝对值,最终得到它离真实的值的误差,用这个误差来评估预测的好坏。

平方差损失: f(x)=(y−model(x))2f(x) = (y-model(x))^{2}f(x)=(y−model(x))2

绝对值损失: f(x)=∣y−model(x))∣f(x) =\mid y-model(x)) \midf(x)=∣y−model(x))∣

TensorFlow的训练过程其实就是不断的喂数据,然后通过目标函数的值来进行参数的调整,最终使目标函数趋于目标值的过程。

相关推荐
苦猿的大模型日记2 小时前
Day25 | 模型量化横评 GPTQ vs AWQ vs GGUF vs INT8——同一个 Qwen3-8B 压四遍,谁还活着
人工智能
benchmark_cc2 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
深海鱼肝油ya2 小时前
小说自动生成系统(二)
人工智能·大模型·agent·智能体·自动化编程·小说生成系统
通问AI2 小时前
Apple Intelligence 国行备案深度技术解析:阿里千问如何被集成到苹果端侧AI架构
人工智能·架构
视***间3 小时前
算力赋能零售与创意新生态:视程空间Pandora,解锁线下场景智能化无限可能
人工智能·边缘计算·智慧零售·ai算力·视程空间·创意开发
冬奇Lab3 小时前
MCP 系列(08):企业治理——Registry、路由与可观测性
人工智能·llm·mcp
冬奇Lab3 小时前
每日一个开源项目(第161篇):Open Interpreter - 开源 AI 编程 Agent,用 Rust 重写,支持 Kimi、Qwen、DeepSeek
人工智能·开源·资讯
renhongxia13 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
天上路人3 小时前
AU-48双麦多功能语音处理模组:100dB AEC + 波束定向拾音,会议与监控全场景覆盖
人工智能·ai降噪·语音处理·ai语音·麦克风·回音消除
甲维斯3 小时前
Codex定制皮肤,Windows一键切换已经搞定!
人工智能