勘探开发人工智能技术:机器学习(5)

0 提纲

6.1 矩阵分解
6.2 全连接 BP 神经网络
6.3 卷积神经网络
6.4 LSTM
6.5 Transformer
6.6 U-Net

1 矩阵分解

把稀疏矩阵分解成两个小矩阵的乘积, 恢复后的矩阵用于预测.

1.1 基本概念

矩阵分解是使用数学应对机器学习问题的一类典型而巧妙的方法.
矩阵分解是把将一个 m × n m×n m×n矩阵 R \mathbf{R} R 分解为:
m × k m×k m×k 矩阵 P \mathbf{P} P n × k n×k n×k 矩阵 Q \mathbf{Q} Q
使得 R ≈ P T Q \mathbf{R}≈\mathbf{P}^\mathbf{T}\mathbf{Q} RPTQ, 其中 k ≪ min ⁡ { m , n } k≪\min\{m,n\} kmin{m,n}.
在这里插入图片描述
有两种常见的情况:

  • 非负矩阵分解 要求两个个矩阵的元素均为非负值. 这样在其应用中才有良好的解释.
  • 稀疏矩阵分解 要求 R \mathbf{R} R为稀疏矩阵, 即其元素绝大多数值为 0.

在这里插入图片描述

1.2 稀疏矩阵分解的应用: 推荐系统

问题引入: 电影网站有 m > 1 0 6 m > 10^6 m>106个用户, 以及 n > 1 0 4 n > 10^4 n>104部电影. 由于每个用户仅看了少量 (通常少于 1 0 3 10^3 103, 很多少于 1 0 2 10^2 102) 电影, 所以评分矩阵 R = ( r i j ) m × n \mathbf{R}=(r_{ij})^{m×n} R=(rij)m×n是一个稀疏矩阵, 其中 r i j = 0 r_{ij}=0 rij=0 表示用户没看这部电影, 而1~5分表示从最不喜欢到最喜欢. 现在需要预测用户对电影的评分, 也就是将0替换成具体的分数.
问题定义:

  • 输入:评分矩阵 R \mathbf{R} R, 秩 k k k;
  • 输出:用户偏好矩阵 P ∈ R k × m \mathbf{P} \in \mathbb{R}^{k \times m} PRk×m, 矩阵 Q ∈ R k × n \mathbf{Q} \in \mathbb{R}^{k \times n} QRk×n.
  • 优化目标:
    min ⁡ ∣ ∣ R − P T Q ∣ ∣ \min ||\mathbf{R} - \mathbf{P}^\mathbf{T}\mathbf{Q}|| min∣∣RPTQ∣∣

这里计算优化目标的时候, r i j = 0 r_{ij} = 0 rij=0 的数据点并不参加计算. 这样, 当把两个小矩阵 (也称用户子空间与项目子空间, subspace) 求到后, 直接相乘 R ′ = P T Q \mathbf{R}′ = \mathbf{P}^\mathbf{T}\mathbf{Q} R=PTQ, 以前 r i j = 0 r_{ij} = 0 rij=0的地方, r i j ′ = 0 r_{ij}' = 0 rij=0 就有了值, 这就是预测评分.
有没有觉得特别神奇?

1.3 推荐系统:小例子

其中用 − 表示 0, 更清楚一些
在这里插入图片描述
在这里插入图片描述
当然, 这个方案并不完美, 如

  • P , Q \mathbf{P}, \mathbf{Q} P,Q 有些元素为负值, 解释起来有点难受. 可以考虑非负矩阵分解.
  • R ′ \mathbf{R}' R有些元素不在正常范围[1,5], 可以强行让越界的数据回到边界.

1.4 SVD: 解决过拟合

为了避免过拟合, 优化目标上还可以加上正则项, 如:
min ⁡ ∣ ∣ R − P T Q ∣ ∣ + λ ( ∣ ∣ P ∣ ∣ 2 + ∣ ∣ Q ∣ ∣ 2 ) \min ||\mathbf{R} - \mathbf{P}^\mathbf{T}\mathbf{Q}|| + \lambda(||\mathbf{P}||^2 + ||\mathbf{Q}||^2) min∣∣RPTQ∣∣+λ(∣∣P2+∣∣Q2)
参考论文:Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix Factorization, NIPS, 2007.

1.5 子空间的物理意义

从推荐系统的角度, 每个用户对应于 1 × k 1 × k 1×k 的向量, 这是对用户偏好的高度压缩;
每个项目也对应于 1 × k 1 × k 1×k 的向量, 这是对项目属性的高度压缩.
这 k 个偏好和属性形成一一对应. 例如, k = 3 k = 3 k=3:

  • 第 1 维表示用户对颜值的关注度 (对应的是电影男女主的帅气与漂亮程度);
  • 第 2 维表示用户对情节的关注度 (对应的是剧本的逻辑性);
  • 第 3 维表示用户对视觉震撼度的要求 (对应的是电影场景与特效).

需要注意, 这里只是强行解释, 在现实世界中, 而这 k 个偏好 (属性) 的涵义可能无法表达出来, 因此我们称之为隐藏变量 (latent variable).
例:

  • 用户向量为 [ 0.8 , 0.1 , 0.1 ] 表示他是个颜控, 而电影向量为 [ 0.1 , 0.7 , 0.2 ]表示它更注重情节, 两者求内积导致评分低.
  • 如果电影向量为 [ 0.9 , 0.01 , 0.01 ]则更好地迎合该用户的品味. 内积居然可以起到这种匹配的作用.

假设 m = 1 0 6 m = 10^6 m=106, n = 1 0 4 n = 10^4 n=104, k = 10 k = 10 k=10, 原始矩阵 (如果不考虑稀疏矩阵的压缩存储) R 需要 1 0 1 0 10^10 1010存储空间;
而 P与 Q 的存储空间分别是 1 0 7 10^7 107 1 0 5 10^5 105. 从这个意义上来说, 数据的压缩比达到了约 1 : 1000.
与数据压缩相对应的是

  • 坏消息: 信息损失. R′无法对 R 完全拟合, k k k 越小, 拟合能力越差.
  • 好消息: 数据平滑. 我们经常假设原数据就是有噪声的, 矩阵分解并恢复后, 可以将它们去掉. 甚至可以将一张人脸图片进行矩阵分解与恢复, 达到美颜去痘的效果.

1.6 Bias-SVD:偏置

偏置部分主要由三个子部分组成:

  • 训练集中所有评分记录的全局平均数 μ μ μ;
  • 用户偏置 b u b_u bu,独立于物品特征的因素,表示某一特定用户的打分习惯(批判性用户、乐观型用户);
  • 物品偏置 b i b_i bi,独立于用户兴趣的因素,表示某一特定物品得到的打分情况(好片、烂片);
    b u i = μ + b u + b i b_{ui}=μ+b_u+b_i bui=μ+bu+bi
    在这里插入图片描述

1.7 带情感分析的矩阵分解(SBMF)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考论文:Sentiment based matrix factorization with reliability for recommendation. Expert Systems with Applications. (2019) 249-258

1.8 带情感分析的矩阵分解(SBMF+R)

在这里插入图片描述
在这里插入图片描述

2 全连接 BP 神经网络

线性 + 激活函数, 人工神经网络是万能的函数逼近器.

2.1 BP 神经网络的结构

BP (Backpropagation ) 神经网络是一个万能的函数模拟器.
所有的神经网络, 本质都是特征提取器 – 斯.沃索地.

下图给出一个四层神经网络.

  • 输入层有 3 个端口, 表示数据有 3 个特征;
  • 第一个隐藏层有 5 个节点, 表示从 3 个特征提出了 5 个新的特征, 每个新特征都是前一特征的加权和 (线性模型);
  • 第二个隐藏层有 4 个节点, 表示从上一层的 5 个特征提出了 4 个新的特征;
  • 输出层有 2 个节点, 表示从上一层的 4 个特征提出了 2 个新的特征.

在这里插入图片描述
神经网络可以解决各种机器学习问题:

  • 假设这里应对的是二分类问题, y 1 y_1 y1对应于负例, y 2 y_2 y2对应于正例, 那么, y 1 ≥ y 2 y_1 ≥ y_2 y1y2时, 就预测为负例, 否则预测为正例.
  • 对于 k k k 个类别的多分类问题, 输出端口数设置为 k k k.
  • 对于回归问题, 输出端口设置为 1.

2.2 激活函数

仅仅是线性方案, 也就相当于logistic 回归 的水平, 肯定不能让 BP 神经网络达到现有的高度. 而且, 仅仅是线性方案, 多层与两层没有区别, 因为三层的 X W 1 W 2 \mathbf{X}\mathbf{W}_1\mathbf{W}_2 XW1W2可以替换为两层的 X W 3 \mathbf{X}\mathbf{W}_3 XW3, 其中 W 3 = W 1 W 2 \mathbf{W}_3 = \mathbf{W}_1\mathbf{W}_2 W3=W1W2.

  • 激活函数将加权和变成另一个值, 如 f ( x ) = max ⁡ { 0 , x } f(x) = \max\{0, x\} f(x)=max{0,x}
  • 这种简单到令人发指的函数, 就可以改变线性特点.
  • 于是, 神经网络就变成了万能的函数逼近器, 也就是说, 任意函数都可以用一个神经网络来逼近, 参见 https://zhuanlan.zhihu.com/p/162769333

在这里插入图片描述

2.3 与 PCA 的联系与区别

联系: 都是进行特征提取.
区别:

  • PCA 的特征提取是无监督的, 神经网络一般是有监督的;
  • PCA 的特征提取有理论依据, 神经网络的连边使用一些随机的初始权重, 然后不断调整;
  • PCA 的特征提取数量有理论依据, 神经网络每层节点数量 (特征数量) 是人为设置的超参数, 连激活函数的选取也是人为的.

2.4 深度学习与宽度学习

如果数据集比较小, 特征比较少, 则应该使用较少的层数, 以及较少的节点数.
如果数据集比较大, 特征比较多, 则应该使用较多的层数, 以及较多的节点数. 所以形成了深度学习. 换言之, 深度学习特别“吃”数据, 数据量小了就别玩, 去搞搞SVM之类的小样本学习吧.

宽度学习是指隐藏层的节点数非常多, 理论上已经证明, 宽度学习与深度学习是等价的. 我认为原因在于: 由于神经网络初始权重设置的随机性, 宽度学习提取的特征非常多, 总有几个是合适的.

2.5 关于调参师

有些人诟病做神经网络 (特别是应用) 就是当网络调参师: 几层,什么激活函数,以及哪些组件 (这个在后面要介绍). 我还是有不同意见. 机器学习需要有洞察力 (insight), 如果基础不牢, 没有机器学习的基本思路, 就像在漆黑的屋子里面找东西一样, 纯碰运气是不气的. 本系列贴子也是希望为读建立一些 insight.

3 卷积神经网络

卷积核是个透视镜, 把原图像扫描一遍变成新图像.

3.1 卷积操作

下图下平面标定的 3×3 区域, 对应于个3×3 卷积, 这 9 个数对应着相乘, 然后相加, 获得了上平面标定的 1 个小区域的值. 注意这里不是矩阵的乘法.
卷积有三种模式, 可以把图片变大 (full)、变小 (valid)、保持尺寸 (same).
与全连接网络相同, 卷积神经网络 CNN 也需要在加权和之后使用激活函数, 以使其具有非线性的优点.
在这里插入图片描述
卷积层:特征提取
可以将图像卷积看成全连接网络的权值共享(weight sharing)

在这里插入图片描述

等价于下边的权值共享网络:
在这里插入图片描述

3.2 ReLU 激活层

加入非线性因素,将卷积层输出结果做非线性映射。
ReLU 函数:对于输入负值,输出全为0;正值原样输出。
在这里插入图片描述

3.3 池化层:提取重要的特征信息

100×100 的图片, 用3×3 卷积核去卷, 第 2 层变成98×98 图片, 第 3 层变成96×96 图片, 太慢啦!
用池化操作可以把多个点压缩成一个点, 如把 98×98 图片每 2×2 个点取最大值 (或平均值, 最小值), 瞬间变成 49×49 的图片.
是不是很随意的样子? 有效就行.
在这里插入图片描述

3.4 单层卷积神经网络

在这里插入图片描述

3.5 全连接层

全连接层在整个卷积神经网络中起到“分类器”的作用,即通过卷积、池化等深度网络后,再经过全连接层对结果进行识别分类.
在这里插入图片描述

3.6 卷积神经网络流程

在这里插入图片描述

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

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

相关文章

MongoDB 分片集群

在了解分片集群之前,务必要先了解复制集技术! 1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础。 1.1.1 复制集…

3D Web轻量化引擎HOOPS Communicator如何实现对BIM桌面端的支持?

HOOPS Communicator是一款简单而强大的工业级高性能3D Web轻量化渲染开发包,其主要应用于Web领域,主要加载其专有的SCS、SC、SCZ格式文件;HOOPS还拥有另一个桌面端开发包HOOPS Visualize,主要加载HSF、HMF轻量化格式文件。两者虽然…

那些年的Xposed开发经验记录

把之前写的Xposed相关文章合并到一块,方便查阅 目录 多进程App的Hook问题XposedHelper中的静态变量demo的AndroidManifest.xml的测试核心代码结论限制handleLoadPackage被单个进程多次执行的问题 多dex Hook问题为应用增加权限利用Xposed删除权限参考 Hook框架集锦…

Java基础入门篇——IDEA开发第一个入门程序(五)

目录 一、IDEA层级结构分类 二、IDEA层级结构介绍 三、IDEA层级关系 四、创建IDEA中的第一个代码 一、IDEA层级结构分类 IntelliJ IDEA的项目结构主要分为以下几个层级: Project: 项目Module: 模块Package: 包Class: 类 一个项目里面…

模拟实现消息队列项目(系列3) -- 服务器模块(硬盘管理)

目录 前言 1. 创建项目 2. 创建核心类 2.1 Exchange 2.2 MSQueue 2.3 Binding 2.4 Message 3. 数据库设计 3.1 SQLite 配置 3.2 Mapper层代码实现 3.2.1 创建表操作 3.2.2 交换机 队列 绑定的增加和删除 3.3 实现DataBaseManager 3.4 DataBaseManager单元测试 4.…

线性代数(三) 线性方程组向量空间

前言 如何利用行列式,矩阵求解线性方程组。 线性方程组的相关概念 用矩阵方程表示 齐次线性方程组:Ax0;非齐次线性方程组:Axb. 可以理解 齐次线性方程组 是特殊的 非齐次线性方程组 如何判断线性方程组的解 其中R(A)表示矩阵A的…

git的简单介绍和使用

git学习 1. 概念git和svn的区别和优势1.1 区别1.2 git优势 2. git的三个状态和三个阶段2.1 三个状态:2.2 三个阶段: 3. 常用的git命令3.1 下面是最常用的命令3.2 git命令操作流程图如下: 4. 分支内容学习4.1 项目远程仓库4.2 项目本地仓库4.3…

恒盛策略:沪指冲高回落跌0.26%,酿酒、汽车等板块走弱,燃气股拉升

10日早盘,两市股指盘中冲高回落,半日成交约4200亿元,北向资金净卖出超20亿元。 到午间收盘,沪指跌0.26%报3235.9点,深成指跌0.54%,创业板指跌0.28%;两市算计成交4202亿元,北向资金净…

【Terraform学习】保护敏感变量(Terraform配置语言学习)

实验步骤 创建 EC2 IAM 角色 导航到IAM 在左侧菜单中,单击角色 。单击创建角色该按钮以创建新的 IAM 角色。 在创建角色部分,为角色选择可信实体类型: AWS 服务 使用案例:EC2 单击下一步 添加权限:现在,您可以看到…

小白到运维工程师自学之路 第七十一集 (kubernetes网络设置)

一、概述 Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。 二、安装flannel 1、master下载kube-flannel.yml,所…

Chrome有些网站打不开,但是火狐可以打开

Chrome有些网站打不开,但是火狐可以打开 问题描述火狐成功界面谷歌报错界面局域网设置使用代理服务器访问成功 解决方案参考 问题描述 开了一个tizi,Chrome不能使用,火狐可以。之前装过插件Ghelper白嫖科学上网,那次之后好像浏览…

领航优配:沪指震荡涨0.47%,保险、券商板块强势,互联金融概念活跃

4日早盘,两市股指高开高走,沪指一度涨逾1%打破3300点,随后涨幅有所收窄;两市半日成交超6000亿元,北向资金小幅净流入。 截至午间收盘,沪指涨0.47%报3295.91点,深成指涨0.67%,创业板指…

【JAVA基础】- 同步非阻塞模式NIO详解

【JAVA基础】- 同步非阻塞模式NIO详解 文章目录 【JAVA基础】- 同步非阻塞模式NIO详解一、概述二、常用概念三、NIO的实现原理四、NIO代码实现客户端实现服务端实现 五、同步非阻塞NIO总结 一、概述 NIO(Non-Blocking IO)是同步非阻塞方式来处理IO数据。…

数据API服务管理功能 - 提升数据效率的关键工具

数据API服务管理功能 - 提升数据效率的关键工具 什么是数据API服务管理功能? 数据API服务管理功能是一种用于有效管理和控制数据API的工具。它为用户提供了方便的界面和功能,以简化数据访问、解析和处理的过程。通过使用数据API服务管理功能&#xff0…

优思学院|质量第一的目的是什么?

国外有一句很著名的话:Quality comes first, profit is its logical sequence,意思是:质量第一,利润是其合理的结果,这句话也是很多公司或者商店使用的标语。 简而言之,只要你把质量放在第一位&#xff0c…

yolo-nas对自定义数据集进行训练,测试详解 香烟数据集

yolov5格式的香烟数据集 https://download.csdn.net/download/qq_42864343/88110620?spm1001.2014.3001.5503 创建yolo-nas的运行环境 进入Pycharm的terminal,输入如下命令 conda create -n yolonas python3.8pip install super-gradients使用自定义数据训练Yo…

苍穹外卖系统07

哈喽!大家好,我是旷世奇才李先生 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟,回复【项目】获取我为大家准备的项目 最近打算把我手里之前做的项目分享给大家&#…

AWS——04篇(AWS之Amazon S3(云中可扩展存储)-02——EC2访问S3存储桶)

AWS——04篇(AWS之Amazon S3(云中可扩展存储)-02——EC2访问S3存储桶) 1. 前言2. 创建EC2实例 S3存储桶3. 创建IAM角色4. 修改EC2的IAM 角色5. 连接EC2查看效果5.1 连接EC25.2 简单测试5.2.1 查看桶内存储情况5.2.2 复制本地文件…

如何将苹果彻底删除视频找回?试试这3种方法

如今是短视频时代,大家通常会使用苹果手机来拍摄视频,以此记录生活中的美好日常。但是大家都知道视频是十分占空间的,这也经常会出现iPhone内存不足,磁盘崩溃的问题。 当遇到iPhone内存不足的情况时,大家往往会选择清…

uni-app之app上传pdf类型文件

通过阅读官方文档发现,uni.chooseFile在app端不支持非媒体文件上传; 可以使用这个插件,验证过可以上传pdf;具体使用可以去看文档 插件地址 就是还是会出现相机,这个可能需要自己解决下 实现功能:上传只能上…