2821|0

533

帖子

3

TA的资源

纯净的硅(初级)

楼主
 

《人工智能实践教程》5、神经网络输出层的设计 [复制链接]

神经网络可以用于解决分类问题和回归问题,但需要根据情况改变输出层的激活函数。一般而言,回归问题用恒等函数,分类问题用Softmax函数。

一、恒等函数和Softmax函数

恒等函数将输入原样输出,即对于输入的信息,不做任何改动直接输出。因此,当输出层使用恒等函数时,输入信号被原封不动地输出。
用神经网络表示恒等函数的处理过程,如下图所示。与隐藏层的激活函数一样,恒等函数的转换处理可以用一个箭头表示。
在分类问题中使用的Softmax函数可用下式表示:
y_{k} = \frac{exp(a_{k})}{\sum exp(a_{i})}
其中,i取1~n.
式中表示输出层共有n个神经元,计算第k个神经元的输出y_{k}  由式可见,Softmax函数的分子是输入信号a_{k}的指数函数,分母是所有输入信号的指数函数的和。

二、实现Softmax函数的注意事项

在上面的softmax函数的公式中,如果按照公式直接计算,可能存在溢出问题,因为在实现时要进行指数函数的运算,其值容易变得很大。如果溢出,会出现结果不确定的情况。

因此,对softmax函数的实现可以进行如下改进:

首先,分子和分母都乘以任意的常数C。然后把常数C移到exp中,记为lnC,最后用符号C'替换lnC。

上面的公式说明,在进行指数运算时,加上(或减去)某个常数并不会改变计算结果。

为防止溢出,C'一般使用输入信号的最大值。

改进后的代码如下:

def Softmax:
 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

三、Softmax函数的性质

Softmax函数的输出为0~1之间的实数。并且,Softmax函数的输出总和为1.

输出总和为1是Softmax函数的一个重要的性质。正因为这个性质,可以把Softmax函数的输出解释为“概率”。

因此,通过使用Softmx函数,可以用概率统计的方法处理问题。

注意:即使使用了Softmax函数,各类之间的大小关系也不会改变。原因是指数函数是单调递增函数。

 

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表