Python 全栈体系【四阶】(十六)

第五章 深度学习

请添加图片描述

一、基本理论

2. 深度神经网络结构

2.1 感知机
2.1.1 生物神经元

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

2.1.2 生物神经网络

更多的生物神经元相互连接,形成复杂的神经网络。人类神经元数量在 1011 数量级。
请添加图片描述

2.1.3 什么是感知机

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

请添加图片描述

2.1.4 感知机的功能

作为分类器/回归器,解决线性分类(逻辑和、逻辑或)、回归问题

  • 神经元作为回归器 / 分类器
    请添加图片描述
  • 逻辑和(线性分类)
    请添加图片描述
  • 逻辑或(线性分类)
    请添加图片描述

组成神经网络

2.1.5 如何实现感知机

实现逻辑和

在这里插入图片描述

实现逻辑或

在这里插入图片描述

2.1.6 感知机的局限

感知机的局限在于无法处理“异或”问题(非线性问题)
请添加图片描述

2.1.7 多层感知机

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

多层感知机解决异或门实现

在这里插入图片描述

2.2 神经网络
2.2.1 什么是神经网络

感知机由于结构简单,完成的功能十分有限。可以将若干个感知机连在一起,形成一个级联网络结构,这个结构称为“多层前馈神经网络”(Multi-layer Feedforward Neural Networks)。所谓“前馈”是指将前一层的输出作为后一层的输入的逻辑结构。每一层神经元仅与下一层的神经元全连接。但在同一层之内,神经元彼此不连接,而且跨层之间的神经元,彼此也不相连。

在这里插入图片描述

2.2.2 神经网络的功能

1989 年,奥地利学者库尔特·霍尼克(Kurt Hornik)等人发表论文证明,对于任意复杂度的连续波莱尔可测函数(Borel Measurable Function)f,仅仅需要一个隐含层,只要这个隐含层包括足够多的神经元,前馈神经网络使用挤压函数(Squashing Function)作为激活函数,就可以以任意精度来近似模拟 f。如果想增加 f 的近似精度,单纯依靠增加神经元的数目即可实现。

这个定理也被称为通用近似定理(Universal Approximation Theorem),该定理表明,前馈神经网在理论上可近似解决任何问题。

2.2.3 通用近似定理几何解释

现有目标函数 f ( x ) = x 3 + x 2 − x − 1 f(x) = x^3 + x^2 - x - 1 f(x)=x3+x2x1,可以使用 6 个神经元进行模拟:
在这里插入图片描述
请添加图片描述
请添加图片描述

2.2.4 神经网络为什么要足够深

其实,神经网络的结构还有另外一个“进化”方向,那就是朝着“纵深”方向发展,也就是说,减少单层的神经元数量,而增加神经网络的层数,也就是“深”而“瘦”的网络模型。

微软研究院的科研人员就以上两类网络性能展开了实验,实验结果表明:增加网络的层数会显著提升神经网络系统的学习性能。

在这里插入图片描述

2.2.5 多层神经网络计算公式

神经网络涉及很多层权重,每一层又由多个权重组成,符号表示规则如下所示:
在这里插入图片描述
以下是一个多层神经网络及其计算公式:
请添加图片描述

2.3 激活函数
2.3.1 什么是激活函数

在神经网络中,将输入信号的总和转换为输出信号的函数被称为激活函数(activation function)。
请添加图片描述

2.3.2 为什么使用激活函数

激活函数将多层感知机输出转换为非线性,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

如果一个多层网络,使用连续函数作为激活函数的多层网络,称之为“神经网络”,否则称为“多层感知机”。所以,激活函数是区别多层感知机和神经网络的依据。

2.3.3 常见激活函数

阶跃函数

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

sigmoid 函数

  • sigmoid 函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类,表达式: σ ( x ) = 1 / ( 1 + e − x ) σ(x) = 1 / (1 + e^{-x}) σ(x)=1/(1+ex)
    在这里插入图片描述

  • 优点:平滑、易于求导

  • 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练

tanh 双曲正切函数
请添加图片描述

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

ReLU(Rectified Linear Units,修正线性单元)
请添加图片描述

  • 优点:

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

  • 用途:常用于图像

Softmax

  • Softmax 函数定义如下,其中 V i V_i Vi 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。 S i S_i Si 表示的是当前元素的指数与所有元素指数和的比值。通过Softmax 函数就可以将多分类的输出数值转化为相对概率,而这些值的累和为 1,常用于神经网络输出层。表达式:
    在这里插入图片描述 请添加图片描述
2.3.4 案例:实现常见激活函数

请添加图片描述

2.4 小结

感知机

  • 接收多个输入信号,产生一个输出信号,无法解决异或问题

多层感知机

  • 将多个感知机组合

多层前馈网络

  • 若干个感知机组合成若干层的网络,上一层输出作为下一层输入

激活函数

  • 将计算结果转换为输出的值,包括阶跃函数、sigmoid、tanh、ReLU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript高级(十六)---Iterator迭代器/Generator生成器

什么是迭代器? 迭代器是一种特殊的对象,这个对象需要符合迭代协议(iterator protocol),这个对象具有以下特点。 该对象有一个特定的next方法 const obj { next() { } } const obj { …

FFmpeg-- c++实现:音频流aac和视频流h264封装

文章目录 流程api核心代码muxer.hmuxer.cpp aac 和 h264 封装为视频流,封装为c的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流,赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int Se…

wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载带光照信息的材质文件Mtl 实现光照贴图的最简实例(十七)

文章目录 前言一、3d 立方体 model 属性相关文件1. cube1.obj2. cube1.Mtl3. 纹理图片 cordeBouee4.jpg二、实现光照贴图的效果1. 依赖库和头文件1.1 assimp1.2 stb_image.h2. egl_wayland_obj_cube1.cpp3. Matrix.h 和 Matrix.cpp4. xdg-shell-client-protocol.h 和 xdg-shell…

推免保研夏令营/预推免面试记录—北航网安

目录 0x00简述 0x01 面试经历 0x02 相关资料下载 0x00简述 没有夏令营,直接就是预推免,门槛基本等同于华五,或者说略弱于华五。招生规模较小,而且感觉导师方向一半是密码学,一半是那种类似于电信工的偏硬件方面。该校导师教授可以带两个学生,而副教授可以带一个。考…

小程序跨端组件库 Mpx-cube-ui 开源:助力高效业务开发与主题定制

Mpx-cube-ui 是一款基于 Mpx 小程序框架的移动端基础组件库,一份源码可以跨端输出所有小程序平台及 Web,同时具备良好的拓展能力和可定制化的能力来帮助你快速构建 Mpx 应用项目。 Mpx-cube-ui 提供了灵活配置的主题定制能力,在组件设计开发阶…

网络工程师练习题4

网络工程师 通过拨号远程配置Cisco路由器时,应使用的接口是()。 A.AUXB.ConsoleC. EthernetD.VTY 【答案】A 【解析】使用AUX端口连接一台Modem,通过拨号远程配置路由器。 在Cisco路由器上配置RIPv1路由协议,参与…

【计算机视觉】Gaussian Splatting源码解读补充

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址:https://github.com/graphdeco-inria/gaussian-splatting 论文地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

Minio的安装和Java使用示例

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Minio 是个基于 Go…

三段提交的理解

三阶段提交是在二阶段提交上的改进版本,3PC 最关键要解决的就是协调者和参与者同时挂掉的问题,所以3PC把2PC的准备阶段再次一分为二,这样三阶段提交。 处理流程如下 : 阶段一 协调者向所有参与者发出包含事务内容的 canCommit …

【MySQL】知识点 + 1

# (1)查询当前日期、当前时间以及到2022年1月1日还有多少天,然后通过mysql命令执行命令。 select curdate() AS 当前日期,curtime() AS 当前时间,datediff(2022-01-01, curdate()) AS 距离2022年1月1日还有天数;# (2)利…

知识点拓展——rsync同步命令的应用

Linux目录下有100万个文件,如何快速删除 当然了,首先我们想到的一定是rm -f删除,但是rm -f删除的话 会报错,提示无法删除,因为太长了,rm命令无法删除 [rootlocalhost opt]#mkdir files [rootlocalhost o…

Windows10蓝屏报错 inaccess boot device

当Windows 10操作系统启动时出现蓝屏错误“INACCESSIBLE_BOOT_DEVICE”时,这通常表明系统在尝试启动过程中无法识别或访问引导设备上的基本系统文件。这个问题可能是由以下几个原因引起的: 硬件兼容性问题: 硬盘控制器驱动不正确或丢失&#…

Go语言学习04~05 函数和面向对象编程

Go语言学习04-函数 函数是一等公民 <font color"Blue">与其他主要编程语言的差异</font> 可以有多个返回值所有参数都是值传递: slice, map, channel 会有传引用的错觉函数可以作为变量的值函数可以作为参数和返回值 学习函数式编程 可变参数 func s…

三种方式,浅谈 Cocos Creator 的动画添加

前言 虽然 Cocos 的官方文档对动画系统做了较详细的介绍&#xff0c;但是对于刚接触的同学&#xff08;比如我&#xff09;来说还是不太友好。尽管如此&#xff0c;我就按文档加社区帖子一起实践了一下。为了方便忘记后能快速捡起&#xff0c;所以就用我的方式结合使用场景&am…

python内存管理和垃圾回收一文详解(基于c语言源码底层逻辑)

引用计数器 首先我们大概回忆一下C语言中的环状双向链表&#xff0c;如图&#xff0c;在双向链表中对于一个结点来说会有前驱和后继&#xff1a; C语言中基本的定义方式如下&#xff1a; typedef struct {ElemType data; // 数据域Lnode* prior; // 前驱指针域Lnode* next;…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Hyperlink)

超链接组件&#xff0c;组件宽高范围内点击实现跳转。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。该组件仅支持与系统浏览器配合使用。 需要权限 使用网络时&#xff0c;需要申请权限ohos.per…

【PyTorch][chapter 22][李宏毅深度学习][ WGAN]【实战三】

前言&#xff1a; 本篇主要讲两个WGAN的两个例子&#xff1a; 1 高斯混合模型 WGAN实现 2 MNIST 手写数字识别 -WGAN 实现 WGAN 训练起来蛮麻烦的,如果要获得好的效果很多超参数需要手动设置 1&#xff1a; 噪声的维度 2: 学习率 3&#xff1a; 生成器&#xff0c;鉴别器…

【深度学习与神经网络】MNIST手写数字识别1

简单的全连接层 导入相应库 import torch import numpy as np from torch import nn,optim from torch.autograd import Variable import matplotlib.pyplot as plt from torchvision import datasets, transforms from torch.utils.data import DataLoader读入数据并转为ten…

mysql主从及备份

1.由于centOS7中默认安装了MariaDB,需要先进行卸载 rpm -qa | grep -i mariadb rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64查询下本机mysql是否卸载干净&#xff0c;若有残留也需要卸载 rpm -qa | grep mysql2.下载MySQL仓库并安装 wget https://repo.mysql.com//my…

C++: 多态实现原理解析

文章目录 1 静态多态实现原理 2 动态多态实现原理 code 1 静态多态 实现 函数重载&#xff0c;在编译器确定 函数重载的条件&#xff1a; 函数名相同参数个数不同&#xff0c;参数的类型不同&#xff0c;参数顺序不同返回值类型&#xff0c;不作为重载的标准 原理 函数名…