【机器学习】输出层的设计
神经网络可以用于分类和回归问题,但是最后在输出时需要根据情况来设定输出层的激活函数。一般来说,
- 回归问题:恒等函数
- 分类问题:
softmax
函数
https://blog.csdn.net/u011240016/article/details/85121601
恒等函数与softmax
函数
恒等函数:输入 = 输出
softmax函数
yk=exp(ak)∑i=1nexp(ai)y_k = \frac{exp(a_k)} {\sum_{i=1}^nexp(a_i)} yk=∑i=1nexp(ai)exp(ak)
其中aka_kak是输入信号,即前层神经元的输出,yky_kyk是第k个神经元的输出,n是输出层神经元的个数。
# softmax
def softmax(x):return np.exp(x) / np.exp(x).sum()a = np.array([0.3, 2.9, 4.0])
softmax(a)
softmax处理溢出问题
在分子分母上同时减去某个常数,为了防止溢出,我们可以将C′C'C′设置为输入信号的最大值。
# 防止溢出
def softmax(x):c = np.max(x)exp_x = np.exp(x - c)sum_exp_x = np.sum(exp_x)return exp_x / sum_exp_xa = np.array([1010, 1000, 990])softmax(a) # array([9.99954600e-01, 4.53978686e-05, 2.06106005e-09])
Softmax函数的输出在0.0~1.0之间,且输出值的总和为1,所以可以将softmax函数的输出解释为概率
。
输出层的神经元数量
需要根据具体问题来定,比如手写数字识别,输出层就设置为10个神经元即可。
END.
完全参考:
《深度学习入门:基于Python的理论和实现》
【机器学习】输出层的设计相关推荐
- 机器学习入门(06)— 输出层多元分类、softmax 归一化指数函数以及输出层的神经元数量
输出层所用的激活函数,要根据求解问题的性质决定.一般地, 回归问题可以使用恒等函数,也就是说会将输入按原样输出: 二元分类问题可以使用 sigmoid 函数: 多元分类问题可以使用 softmax 函 ...
- TF之CNN:CNN实现mnist数据集预测 96%采用placeholder用法+2层C及其max_pool法+隐藏层dropout法+输出层softmax法+目标函数cross_entropy法+
TF:TF下CNN实现mnist数据集预测 96%采用placeholder用法+2层C及其max_pool法+隐藏层dropout法+输出层softmax法+目标函数cross_entropy法+A ...
- 神经网络的输出层有哪些_神经网络算法—总结篇
本文是吴恩达<机器学习>视频笔记第57篇,对应第5周第7个视频. "Neural Networks Learning:--Putting it together" 前面 ...
- 基于单片机的八层电梯设计
设计简介: 本设计是基于单片机的八层电梯设计,主要实现以下功能: ①可实现通过内机按键和外机按键控制电梯到达楼层 ②可实现通过一个四相步进电机控制电梯升降,另一个四相步进电机控制电梯开关门 ③可实现通 ...
- BP神经网络隐藏层的作用,bp神经网络输出层函数
matlab bp神经网络只能输入一组预测一组吗 可以用前面很多数据建立网络后预测下几组数据吗 当然可以,这就是输入模式和输出模式的制定,可以自由设置,多输入多输出.但要注意如果预测多组,输入必须要提 ...
- 基于单片机的六层电梯设计
设计简介: 本设计是基于单片机的六层电梯设计,主要实现以下功能: ①可实现通过内机按键和外机按键控制电梯到达楼层 ②可实现通过一个四相步进电机控制电梯升降,另一个四相步进电机控制电梯开关门 ③可实现通 ...
- Tensorflow--tutorial--建造神经网络(输入层,隐藏层,输出层)
建造一个完整的神经网络,包括添加神经层,计算误差,训练步骤,判断是否在学习. 代码如下:(我把注释写的非常详细,不用怕看不懂) from __future__ import print_functio ...
- 【阅读笔记】应用LRP,通过将相关性从模型的输出层反向传播到其输入层来解释基于RNN的DKT模型(一)
提示:Towards Interpretable Deep Learning Models for Knowledge Tracing将重点放在应用分层相关传播(LRP)方法,通过将相关性从模型的输出 ...
- 【阅读笔记】应用LRP,通过将相关性从模型的输出层反向传播到其输入层来解释基于RNN的DKT模型(二)
提示:Interpreting Deep Learning Models for Knowledge Tracing与Towards Interpretable Deep Learning Model ...
最新文章
- mysql 合并分钟_mysql合并和时间函数
- 演讲实录丨清华大学朱小燕教授:对话系统现状与展望
- java线程安全性_Java并发-线程安全性
- fzu - 1752 Problem 1752 A^B mod C
- [WPF]xml序列化以及反序列化数据
- 二隐层的神经网络实现MNIST数据集分类
- [Android] 环境优化配置Android Studio发展NDK
- Laravel5.2队列驱动expire参数设置带来的重复执行问题 数据库驱动
- 最新的Functions 类
- lstm预测单词_从零开始理解单词嵌入| LSTM模型|
- 揭秘!女程序员为啥更赚钱?这4个大招,用Python做副业躺赚
- php 图片木马,php图片木马实现原理
- 通过GPU服务器运行Carla
- ECU安全访问系列_2(代码篇)
- android启动百度地图应用并开始导航,android打开外部地图导航(百度、高德、腾讯)...
- 【Java从零到架构师第③季】【49】会话管理—Token_ehcache
- django、vue如何实现websock通信,如何实现多人群聊
- Como Criar Ambientes de Desenvolvimento PHP com或Docker Compose
- vue 计算文件hash值_vue项目打包文件增加hash值
- APOC为Neo4j节点添加Label
热门文章
- 【ROS学习笔记】(四)订阅者Subscriber的实现
- 百世集团2015暑期实习研发工程师笔试题
- 《我的互联网方法论》读书笔记
- 安装JAVA文件被删_Android 删除无用Java文件
- java random.nextbyte_java.util.Random.next()方法实例
- springboot+vue全栈开发_springboot+vue(一)___开发环境以及前后端项目搭建
- win98 老电脑 文件导出_UGNX利器:轻量化建模,很多人还傻傻的关注电脑配置
- SciPy 非线性方程求解 | Python技能树征题
- c ++ strstr_在C / C ++中使用strstr()的指南
- linux中更改用户密码_如何在Linux中更改用户密码