深度学习:softmax函数
一般回归问题的激活函数用的是恒等函数,二元分类问题用的是sigmoid函数,而多元分类问题可以使用softmax函数作为激活函数。
softmax函数式为:
softamx函数用Python实现:
import numpy as np a = np.array([0.3,2.9,4.0]) exp_a = np.exp(a) print(exp_a) sum_exp_a = np.sum(exp_a) print(sum_exp_a) y = exp_a / sum_exp_a print(y)
打印结果:
实际上为了防止计算溢出,也可以对softmax函数进行改进。
C'可以用任何值来代替,但是为了防止溢出,一般会使用输入信号中的最大值。
import numpy as np def softmax(a): exp_a = np.exp(a) sum_exp_a = np.sum(exp_a) y = exp_a / sum_exp_a return y a = np.array([1010,1000,990]) y = softmax(a) print(y)
上述例子的结果会出现
[nan nan nan]
nan(not a number)
但是改进后的softmax函数则会计算出其正确的值
import numpy as np def softmax(a): c = np.max(a) exp_a = np.exp(a - c) sum_exp_a = np.sum(exp_a) y = exp_a / sum_exp_a return y a = np.array([1010,1000,990]) y = softmax(a) print(y)
结果为:
[9.99954600e-01 4.53978686e-05 2.06106005e-09]
softmax函数的特征:
1、softmax输出的值是0.0到1.0之间的实数。并且,softmax函数的输出值的和是1。输出综合是1是softmax函数的一个重要性质。正因为这个性质,我们才可以把softmax函数的输出解释为“概率”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律