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

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

深度学习概述

深度学习的特点

  • 优点
  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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 解锁京东商品详情宝库:开发者必备API利器与实战应用指南
  • C#自定义控件的放置与拖动
  • 使用Unity的准备
  • CSP-S 2022 提高级 第一轮 阅读程序(3)
  • webCppCluster
  • Matlab实现MPC算法
  • Elasticsearch:使用 inference API 进行语义搜索
  • 智能对决:提示词攻防中的AI安全博弈
  • [数据集][目标检测]玉米病害检测数据集VOC+YOLO格式6000张4类别
  • 搭建线上虚拟展厅,需要哪些技术?
  • 如何使用useMemo来优化React组件的性能?
  • SpringBoot整合第三方技术
  • PowerBi 柱形图,数据标签无法显示在端外
  • 基于STM32设计的防盗书包(华为云IOT)(216)
  • 大数据Flink(一百一十三):Flink Python写DataStreamAPI作业快速入门
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 77. Combinations
  • GitUp, 你不可错过的秀外慧中的git工具
  • node 版本过低
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • SpriteKit 技巧之添加背景图片
  • Vue UI框架库开发介绍
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 三分钟教你同步 Visual Studio Code 设置
  • 跳前端坑前,先看看这个!!
  • 微信开放平台全网发布【失败】的几点排查方法
  • 项目实战-Api的解决方案
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • MPAndroidChart 教程:Y轴 YAxis
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (八)c52学习之旅-中断实验
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (离散数学)逻辑连接词
  • (十一)手动添加用户和文件的特殊权限
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)kafka实战——kafka源码编译启动
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (自用)网络编程
  • .gitignore文件使用
  • .net 发送邮件
  • .net 连接达梦数据库开发环境部署
  • .net8.0与halcon编程环境构建
  • .NET开发不可不知、不可不用的辅助类(一)
  • .Net中wcf服务生成及调用
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @font-face 用字体画图标
  • @SentinelResource详解
  • [100天算法】-二叉树剪枝(day 48)