深度学习入门-softmax函数

softmax函数(用于分类)

softmax公式

图片.png

实现softmax函数

def softmax(a):
  exp_a = np.exp(a)
  sum_exp_a = np.sum(exp_a)
  y = exp_a / sum_exp_a
  return y

上面的函数会出现溢出问题,就需要进行一些改进,改进方法如下

图片.png

可以取C为最大值

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

example

a = np.array([0.3, 2.9, 4.0])
y = softmax(a)
print(y)
print(np.sum(y))

softmax函数的输出是0.0到1.0之间的实数。并且,softmax
函数的输出值的总和是1。输出总和为1是softmax函数的一个重要性质。正
因为有了这个性质,我们才可以把softmax函数的输出解释为“概率”。
一般而言,神经网络只把输出值最大的神经元所对应的类别作为识别结果。
并且,即便使用softmax函数,输出值最大的神经元的位置也不会变。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 命运 我说我等你,就会一直等你 站在送你的十字路口,迎着风 像刀子一样划破我的脸颊 你说你要离开,我义无反顾 站在...
    张子默阅读 226评论 0 2
  • 半夜,我辗转反侧睡不着便给一闺蜜发信息求安慰。还没等我叙述完事情原委,闺蜜迅速回到:说吧,又在为啥事伤春悲秋了。 ...
    独立行走的鱼阅读 541评论 11 5