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

深度学习(一)-感知机+神经网络+激活函数

深度学习概述

深度学习的特点

  • 优点
  1. 性能更好
  2. 不需要特征工程
  3. 在大数据样本下有更好的性能
  4. 能解决某些传统机器学习无法解决的问题
  • 缺点
  1. 小数据样本下性能不如机器学习
  2. 模型复杂
  3. 可解释性弱

深度学习与传统机器学习相同点

深度学习、机器学习是同一问题不同的解决方法
  • 目的相同:都是利用机器自我学习能力,解决软件系统的难题
  • 基本问题相同:回归问题、分类问题、聚类问题
  • 基本流程相同:数据准备 → 模型选择 → 模型构建/训练 → 评估优化 → 预测
  • 问题领域相同:监督学习、非监督学习、半监督学习
  • 应用领域相同:推荐、计算机视觉、自然语言处理、语音处理、强化学习
  • 评价标准相同
  1. 回归问题:均方误差;R2
  2. 分类问题:交叉熵;查准率、召回率、F1综合系数
  3. 模型泛化能力:过拟合、欠拟合

感知机

生物神经元

感知机(Perceptron),又称人工神经元(Artificial neuron),它是生物神经元在计算机中的模拟。下图是一个生物神经元示意图:

感知机

感知机(Perceptron),又称神经元(Neuron,对生物神经元进行了模仿)是神经网络(深度学习)的起源算法,1958年由康奈尔大学心理学教授弗兰克·罗森布拉 特(Frank Rosenblatt)提出,它可以接收多个输入信号,产生一个输出信号。

感知机功能

神经元作为回归器 / 分类器

逻辑和(线性分类)

逻辑或(线性分类)

感知机局限

感知机的局限在于无法处理“异或”问题(非线性问题)

多层感知机

1975年,感知机的“异或”难题才被理论界彻底解决,即通过多个感知机组合来解决该问题,这种模型也叫多层感知机(Multi-Layer Perceptron,MLP)。如下图所示,神经元节点阈值均设置为0.5

神经网络

感知机由于结构简单,完成的功能十分有限。可以将若干个感知机连在一起,形成 一个级联网络结构,这个结构称为“多层前馈神经网络”(Multi-layer Feedforward Neural Networks)。所谓“前馈”是指将前一层的输出作为后一 层的输入的逻辑结构。每一层神经元仅与下一层的神经元全连接。但在同一层之内, 神经元彼此不连接,而且跨层之间的神经元,彼此也不相连。
1989年,奥地利学者库尔特·霍尼克(Kurt Hornik)等人发表论文证明,对于任意复杂度的连续波莱尔可测函数(Borel Measurable Function)f,仅仅需要一个隐含层,只要这个隐含层包括足够多的神经元,前馈神经网络使 用挤压函数(Squashing Function)作为激活函数,就可以以任意精度来近似模拟f。如果想增加f的近似精度,单纯依靠增加神经元的数目即可实现。
这个定理也被称为通用近似定理(Universal Approximation Theorem),该定理表明,前馈神经网在理论上可近似解决任何问题。

神经网络要足够深

多层神经网络计算公式

激活函数

定义

在神经网络中,将输入信号的总和转换为输出信号的函数被称为激活
函数(activation function)

为什么使用激活函数

激活函数将多层感知机输出转换为非线性,使得神经网络可以任意 逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
如果一个多层网络,使用连续函数作为激活函数的多层网络,称之 为“神经网络”,否则称为“多层感知机”。所以,激活函数是区 、别多层感知机和神经网络的依据。

常见激活函数

阶跃函数
阶跃函数(Step Function)是一种特殊的连续时间函数,是一个从0跳变到1的 过程,函数形式与图像:

sigmoid函数
sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实
数映射到(0,1)的区间,可以用来做二分类,表达式:σ(x) = 1 / (1 + e -x )
  • 优点:平滑、易于求导
  • 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就 会出现梯度消失的情况,从而无法完成深层网络的训练

右侧是导数,x越来越大或者越来越小,导数逐渐为0,梯度逐步转换为0 

tanh双曲正切函数
  • 优点:平滑、易于求导;输出均值为0,收敛速度要比sigmoid快,从而可以减少迭代次数
  • 缺点:梯度消失
  • 用途:常用于NLP中

 

ReLU(Rectified Linear Units,修正线性单元)

  • 优点:
(1)更加有效率的梯度下降以及反向传播,避免了梯度爆炸和梯度消失问题
(2)计算过程简单
  • 缺点:小于等于0的部分梯度为0
  • 用途:常用于图像

一般这里x<=0的时候都是给一个特别小的值,不至于让该神经元消失

Softmax
Softmax函数定义如下,其中Vi 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。
Si 表示的是当前元素的指数与所有元素指数和的比值。通过 Softmax函数就可以将多分类的输出数值 转化为相对概率,而这些值的累和为1,常用于神经网络输出层。 表达式:

将预测结果转换为相对概率

在分类模型中,有几个类别,输出层就有几个神经元

分类模型的输出层激活函数一般都是softmax

总结

  • 感知机:接收多个输入信号,产生一个输出信号,无法解决异或问题
  • 多层感知机:将多个感知机组合
  • 多层前馈网络:若干个感知机组合成若干层的网络,上一层输出作为下一层输入
  • 激活函数:将计算结果转换为输出的值,包括阶跃函数、sigmoid、tanh、ReLU

http://www.kler.cn/a/288546.html

相关文章:

  • 使用Element UI实现前端分页,及el-table表格跨页选择数据,切换分页保留分页数据,限制多选数量
  • 排序算法 -快速排序
  • 统信UOS开发接口DTK
  • idea 弹窗 delete remote branch origin/develop-deploy
  • 【AI构思渲染】网络直播——建筑绘图大模型生成渲染图
  • python 2小时学会八股文-数据结构
  • Qt 实现部件或者窗口(QWidget)透明效果和其他特殊效果
  • 深度解析TCP与UDP协议
  • 每日一题——第七十九题
  • How to install mysql 5.7 with podman in Ubuntu 24.04
  • 三十二、初识Gin框架
  • chunqiude
  • JS设计模式之“幽灵工厂” - 抽象工厂模式
  • 【贪心算法】区间类算法题(整数替换、俄罗斯套娃、重构字符串等、C++)
  • OpenAI API: Can I remove the line break from the response with a parameter?
  • OpenCVSharp中基本绘图函数
  • Qt Dialog退出事件
  • Golang使用Quic-Go开源库实现Quic客户端和服务端
  • Unity接入飞行遥杆外设
  • 【BES2500x系列 -- RTX5操作系统】Battery模块 -- 创建电池检测定时器 --(十五)
  • 利用Spring Boot的@Transactional注解保障业务数据的一致性
  • 2024 【Delphi 12】苹果ios开发环境配置(五星保姆级)
  • UML(ER) manual book
  • 深入理解Java序列化:从入门到实践
  • c++ std::advance 使用简介
  • MySQL库表设计规范