当前位置: 首页 > news >正文

【深度学习】2-3 神经网络-输出层设计

前馈神经网络(Feedforward Neural Network),之前介绍的单层感知机、多层感知机等都属于前馈神经网络,它之所以称为前馈(Feedforward),或许与其信息往前流有关:数据从输入开始,流过中间计算过程,最后达到输出层
下面来看输出层如何设计

机器学习的问题大致可以分为分类问题和回归问题。
分类问题是数据属于哪一个类别的问题。例如区分图像中的人是男性还是女性
回归问题是根据某个输入预测一个(连续的)数值的问题,例如根据一个人的图像预测这个人的体重
分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。
与监督学习相对应的是非监督学习,此时数据没有类别信息,也不会给定目标值。在非监督学习中,将数据集合分成由类似的对象组成的多个类的过程被称为聚类:将寻找描述数据统计值的过程称之为密度估计。此外,非监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。

恒等函数和sigmoid函数和softmax函数
恒等函数主要用于对回归问题的激活,这种问题中往往需要最大程度的保护最后的输出结果,因为回归问题往往最后计算的结果是一个具体的权重,也是最终答案,那当然是原封不动的输出是最好的。所以恒等函数简单点来说那就是什么都不做
恒等函数会将输人按原样输出

sigmoid函数由于其限制在[0,1]中,所以很适合二元分类。

softmax函数充分考虑每一个输出结点的权重影响,从而使概率的描述更加准确,适合多元分类。
softmax函数可以用下面的式子表示
在这里插入图片描述
softmax函数的分子是输人信号的指数函数,分母是所有输人信号的指函数的和。(softmax所有值加起来是1)

使用python来实现softmax

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

softmax 的缺陷就是溢出问题,因为使用指数计算,值会变得非常大,改进的代码如下:

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_areturn y

通过减少输入信号中的最大值来解决溢出的问题

softmax函数的特征
softmax函数的输出是0.0到1.0之间的实数。并且,softmax函数的输出值的总和是1。正是因为softmax函数的输出值的总和都是1,所以可以用概率(统计的)方法处理问题

关于理解机器学习的问题
机器学习的步骤可以分为“学习”和“推理”两个阶段
首先在学习阶段进行模型的学习,然后,在推理阶段,用学到的模型对未知的数据进行推理(分类)。
softmax函数用在学习不用在推理阶段

将softmax函数引入输出层
如下面例子:


def forward_net(network,x):W1 = network['W1']b1 = network['b1']W2 = network['W2']b2 = network['b2']W3 = network['W3']b3 = network['b3']x = np.dot(x,W1)+b1x = ReLU(x)x = np.dot(x,W2)+b2x = ReLU(x)x = np.dot(x, W3) + b3x = softmax(x)return x

运行结果为:

[0.00196166 0.99803834]
http://www.lryc.cn/news/93813.html

相关文章:

  • Python网络爬虫开发:使用PyQt5和WebKit构建可定制的爬虫
  • Laya3.0游戏框架搭建流程(随时更新)
  • .net 软件开发模式——三层架构
  • SpringBoot如何优雅的实现重试功能
  • 【CEEMDAN-VMD-GRU】完备集合经验模态分解-变分模态分解-门控循环单元预测研究(Python代码实现)
  • OpenText Exceed TurboX(ETX)—— 适用于 UNIX、Linux 和 Windows 的远程桌面解决方案
  • 【人工智能】— 逻辑回归分类、对数几率、决策边界、似然估计、梯度下降
  • k8s pod “cpu和内存“ 资源限制
  • datagrip 连接 phoenix
  • 黑客入侵的常法
  • VB报警管理系统设计(源代码+系统)
  • Redis入门 - Redis Stream
  • 微服务中常见问题
  • 更新删除清理购物车
  • 基于Intel NUC平台的字符设备陀螺仪GX5-25驱动程序
  • 建立小型医学数据库(总结)
  • Git学习笔记
  • vue面试题1. 请说下封装 vue 组件的过程?2. Vue组件如何进行传值的?3. Vue 组件 data 为什么必须是函数?4. 讲一下组件的命名规范
  • Docker使用记录
  • OpenCV(图像处理)-基于Python-形态学处理-开运算、闭运算、顶帽、黑帽运算
  • chatgpt赋能python:Python支持跨平台软件开发
  • 哈工大计算机网络课程网络层协议详解之:CIDR与路由聚集
  • C++ 教程(19)——日期 时间
  • React 应用 Effect Hook 函数式中操作生命周期
  • C代码程序实现扫雷游戏纯代码版本
  • ai代写---怎么在ubutnu服务器中安装mqtt
  • 【设计模式与范式:行为型】63 | 职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?
  • Kendo UI for jQuery---03.组件___网格---02.开始
  • 初识Telegraf、InfluxDB和Grafana铁三角形成的监控可视化解决方案
  • 【哈佛积极心理学笔记】第20课 幸福与幽默