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

内容安全复习 3 - 深度学习基础

文章目录

  • 深度学习概述
    • 神经网络简介
    • 损失函数
    • 反向传播
  • 卷积神经网络
    • 什么是卷积神经网络
    • 卷积
    • 最大池化
    • 展平
    • 典型的神经网络结构
  • Transformer(转换器、变压器?)
    • 自注意力机制
    • 多头注意力机制

深度学习概述

前文提到深度学习分三步:神经网络 – 衡量方程优劣 – 找出最好的方程。我们这节就围绕神经网络展开。

神经网络简介

在这里插入图片描述
神经网络的网络结构由多个神经元组成,不同的连接导致不同的结构。
如下图,这是一个网络结构示例:
在这里插入图片描述
在这里插入图片描述
不难得出,一个网络结构实际是定义了一个方程组。
比如图中的两个例子,在这个网络输入不同的值,计算得出不同的输出。这本质就是一个方程组 f([1, -1])=[0.62, 0.83], f([0, 0])=[0.51, 0.85]。
对于一个完整的神经网络,可以分成如下三层:输入层、隐层、输出层。
在这里插入图片描述

损失函数

在这里插入图片描述
对于一组给定参数,经过隐层计算后得到输出向量 y y y。此时,利用 y y y y ^ \hat{y} y^ 这两个向量计算交叉熵。
在这里插入图片描述
对所有的训练数据计算出的所有交叉熵,计算总损失 L L L。通过计算总损失,可以找到使总损失最小的方程和网络参数。

反向传播

反向传播为了实现参数的最优化,进而优化神经网络。
在这里插入图片描述
在反向传播中,输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据。
总结,记住反向传播是利用计算梯度来优化神经网络即可。

卷积神经网络

什么是卷积神经网络

在这里插入图片描述
这张图展示了一个卷积神经网络的流程——对一个输入进行多次卷积和最大池化,在展平之后交给全连接前馈神经网络。

卷积

在这里插入图片描述
对于一个图像,我们首先把他转化成二维矩阵的形式。此时,有 n 个如图所示的小矩阵被称为卷积核。每个卷积核检测一个模式(3 * 3)。意思就是这里一个卷积核只有3*3大小,只能检测这么大。
在这里插入图片描述
用第一个矩阵,卷积核 1 来举例。
首先从图像矩阵左上角开始,取 3*3 大小的部分,和该卷积核做点乘运算,得到值 3。
左上角那个3*3大小的矩阵和卷积核1矩阵,内部每个对应位置的元素相乘,然后相加得到结果。
可以看到步长为 1,所以我们将这个 3*3 的小框向右平移 1 格,再次点乘运算,得到值 -1。
如果步长为2,那么一次平移2格。
在这里插入图片描述
可以看到过完整个图像矩阵后得到的结果如图所示。
在这里插入图片描述
对每个过滤器(卷积核)做同样的处理,得到 n 个 4*4 图像。
红框用的是卷积核1,蓝框用的是卷积核2。
这样,我们就把一个彩色图像转换成了特征图,这样的好处是减少了参数。

最大池化

在这里插入图片描述
拿上文中的卷积核 2(蓝框)得到的特征图来进行说明。
我们可以直观地理解为,对于每个 2*2 的窗口,取其中的最大值,这样可以取特征中最强烈的部分进入下一层,去掉冗余信息。

反复的重复卷积操作和最大池化操作,可以得到一张更小的图像。
每一个卷积核实际上是一个通道,通道的个数就是卷积核的个数。通道就是什么RGB通道啊之类的

展平

在这里插入图片描述
字面意思,把每个特征图矩阵展平成输入。

典型的神经网络结构

主要记一下顺序和长什么样就行
在这里插入图片描述
在这里插入图片描述
(1)使用了 ReLU 激活函数: f(x)=max(0,x)
(2)标准化
(3)有效地防止神经网络的过拟合
(4)数据增广
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Transformer(转换器、变压器?)

自注意力机制

  • Step 1:
    在这里插入图片描述
    首先输入一组 { x 1 , x 2 , x 3 , x 4 } \{x_1, x_2, x_3, x_4\} {x1,x2,x3,x4},他们分别与权重矩阵 W W W 相乘得到向量 { a 1 , a 2 , a 3 , a 4 } \{a_1, a_2, a_3, a_4\} {a1,a2,a3,a4}
    这些向量分别与不同的变换矩阵 { W q , W k , W v } \{W^q, W^k, W^v\} {Wq,Wk,Wv} 相乘,得到三个向量,记为 { q i , k i , v i } \{q^i, k^i, v^i\} {qi,ki,vi}。其中 q i q^i qi 用来匹配单词; k i k^i ki 为密钥,被 q i q^i qi 匹配; v i v^i vi 则是被抽出的信息。
  • Step 2:
    在这里插入图片描述
    q 1 q^1 q1 k i k^i ki 遍历做运算,得到 α 1 , i \alpha_{1,i} α1,i 。其中, d d d q q q k k k 的维数,除以 d \sqrt{d} d 是为了消除点乘带来的常数放大。
  • Step 3:
    在这里插入图片描述
    将这些 α 1 , i \alpha_{1,i} α1,i 作为输入 Soft-max 函数,得到输出 α ^ 1 , i \hat\alpha_{1,i} α^1,i
    Soft-max 函数被称为归一化指数函数,计算方法如图片上方公式所列出。exp 指自然指数函数。
  • Step 4:
    在这里插入图片描述
    上一步得到的 α ^ 1 , i \hat\alpha_{1,i} α^1,i,分别与各自的 v i v^i vi 相乘,得到 b 1 b^1 b1
    同理,算出 α ^ 2 , i \hat\alpha_{2,i} α^2,i,分别与各自的 v i v^i vi 相乘,得到 b 2 b^2 b2
    在这里插入图片描述
    这一步的 b i b^i bi 是可以并行计算的。

综上,这几步可以概括为:计算 q i q^i qi k i k^i ki v i v^i vi;计算 α j , i \alpha_{j, i} αj,i;计算 α ^ j , i \hat\alpha_{j, i} α^j,i;计算 b j b^j bj
将这个过程转化成矩阵表示如下:
在这里插入图片描述

多头注意力机制

在这里插入图片描述

相关文章:

  • 数据仓库之Hive
  • Function Calling, ReAct, 以及插件机制的区别与应用
  • Lambda 表达式是为了解决啥问题,语法,使用规则,c++中的常用用法示例
  • JVS开源底座与核心引擎的全方位探索,助力IT智能、高效、便捷的进化
  • ffmpeg windows系统详细教程
  • Android集成mapbox教程
  • 向量数据库选型
  • 数据加密两大政企实践案例 | 麒麟信安护航海量核心数据安全无虞
  • 搞IT需不需要考个软考中级?
  • SQL新手蜕变:掌握这20条常用SQL语句,让你也能成为高手!
  • spring 单元测试注解
  • 服务器数据恢复—OceanStor存储中NAS卷数据丢失如何恢复数据?
  • HarmonyOS Next 系列之沉浸式状态实现的多种方式(七)
  • 快消品经销商的仓库管理,有哪些是必须注意的事项?
  • RSA密码系统的特定密钥泄露攻击与Coppersmith方法的应用
  • JavaScript学习总结——原型
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 阿里云Kubernetes容器服务上体验Knative
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 我的业余项目总结
  • 用jQuery怎么做到前后端分离
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • puppet连载22:define用法
  • 阿里云API、SDK和CLI应用实践方案
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #define
  • #pragma data_seg 共享数据区(转)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (06)金属布线——为半导体注入生命的连接
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (源码分析)springsecurity认证授权
  • .net 7和core版 SignalR
  • .Net Core中Quartz的使用方法
  • .Net MVC + EF搭建学生管理系统
  • .Net6使用WebSocket与前端进行通信
  • .Net多线程总结
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • /run/containerd/containerd.sock connect: connection refused
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • [ C++ ] STL---stack与queue
  • [Algorithm][综合训练][体育课测验(二)][合唱队形][宵暗的妖怪]详细讲解
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [C++] vector对比list deque的引出
  • [C++][ProtoBuf][初识ProtoBuf]详细讲解
  • [C++]类和对象【下】