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

05有监督学习——神经网络

  1. 线性模型

    给定n维输入: x = [ x 1 , x 1 , … , x n ] T x = {[{x_1},{x_1}, \ldots ,{x_n}]^T} x=[x1,x1,,xn]T

    线性模型有一个n维权重和一个标量偏差: w = [ w 1 , w 1 , … , w n ] T , b w = {[{w_1},{w_1}, \ldots ,{w_n}]^T},b w=[w1,w1,,wn]T,b

    输出是输入的加权和: y = w 1 x 1 + w 2 x 2 + … + w n x n + b y = {w_1}{x_1} + {w_2}{x_2} + \ldots + {w_n}{x_n} + b y=w1x1+w2x2++wnxn+b,向量表示: y = < w , x > + b y = < w,x > + b y=<w,x>+b

    1.1 广义线性模型

    除了直接让模型预测值逼近实值标记y,我们还可以让它逼近y的衍生物,这就是广义线性模型(generalized linear model)

    y = g − 1 ( w T x + b ) y = {g^{ - 1}}({w^T}x + b) y=g1(wTx+b)

    其中 g(.)称为联系函数(link function),要求单调可微。使用广义线性模型我们可以实现强大的非线性函数映射功能。比方说对数线性回归(log-linear regression),令g(.) = In(.),此时模型预测值对应的是真实值标记在指数尺度上的变化。

    1.2 Sigmoid函数

    σ ( z ) \sigma (z) σ(z) 代表一个常用的逻辑函数(logistic function)为S形函数(Sigmoid function),则:

    σ ( z ) = g ( z ) = 1 1 + e − z , z = w T x + b \sigma (z) = g(z) = {1 \over {1 + {e^{ - z}}}},z = {w^T}x + b σ(z)=g(z)=1+ez1,z=wTx+b

    合起来,我们得到的逻辑回归模型的假设函数:
    L ( y ^ , y ) = − y log ⁡ ( y ^ ) − ( 1 − y ) log ⁡ ( 1 − y ^ ) \mathrm{L}(\hat{y}, y)=-y \log (\hat{y})-(1-y) \log (1-\hat{y}) L(y^,y)=ylog(y^)(1y)log(1y^)

  2. 分类与回归

  3. 感知机模型

    单层感知机数学模型: y = f ( ∑ i = 1 N w i x i + b ) y = f(\sum\limits_{i = 1}^N {{w_i}{x_i}} + b) y=f(i=1Nwixi+b)

    其中,f称为激活函数

    1986年,Rumelhart和McClIelland为首的科学家提出了BP( Back Propagation )神经网络的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,目前是应用最广泛的神经网络。

    3.1 训练数据

  • 收集一些数据点来决定参数值(权重和偏差),例如过去6个月卖的房子。这被称之为训练数据·通常越多越好假设我们有n个样本,记
    x = [ x 1 , x 1 , … , x n ] T x = {[{x_1},{x_1}, \ldots ,{x_n}]^T} x=[x1,x1,,xn]T y = [ y 1 , y 1 , … , y n ] T y = {[{y_1},{y_1}, \ldots ,{y_n}]^T} y=[y1,y1,,yn]T

    3.2衡量预估质量

    比较真实值和预估值,例如房屋售价和估价

    假设y是真实值, y ^ \hat y y^是估计值,我们可以比较:
    ℓ ( y , y ^ ) = 1 2 ( y − y ^ ) 2 \ell(y, \hat{y})=\frac{1}{2}(y-\hat{y})^2 (y,y^)=21(yy^)2
    这个叫做平方损失
    训练损失:
    ℓ ( X , y , w , b ) = 1 2 n ∑ i = 1 n ( y i − ⟨ x i , w ⟩ − b ) 2 = 1 2 n ∥ y − X w − b ∥ 2 \ell(\mathbf{X}, \mathbf{y}, \mathbf{w}, b)=\frac{1}{2 n} \sum_{i=1}^n\left(y_i-\left\langle\mathbf{x}_i, \mathbf{w}\right\rangle-b\right)^2=\frac{1}{2 n}\|\mathbf{y}-\mathbf{X} \mathbf{w}-b\|^2 (X,y,w,b)=2n1i=1n(yixi,wb)2=2n1yXwb2
    最小化损失来学习参数:
    w ∗ , b ∗ = arg ⁡ min ⁡ w , b ℓ ( X , y , w , b ) \mathbf{w}^*, \mathbf{b}^*=\arg \min _{\mathbf{w}, b} \ell(\mathbf{X}, \mathbf{y}, \mathbf{w}, b) w,b=argw,bmin(X,y,w,b)

    3.3 梯度下降

    • 挑选一个初始值 w 0 {w_0} w0
    • 重复迭代参数t=1,2,3
      w t = w t − 1 − η ∂ ℓ ∂ w t − 1 {w_t} = {w_{t - 1}} - \eta {{\partial \ell } \over {\partial {w_{t - 1}}}} wt=wt1ηwt1
    • 沿梯度方向将增加损失函数值
    • 学习率:步长的超参数

优点:

1.能够自适应、自主学习。BP可以根据预设参数更新规则,通过不断调整神经网络中的参数,已达到最符合期望的输出。

2.拥有很强的非线性映射能力。

3.误差的反向传播采用的是成熟的链式法则,推导过程严谨且科学。

4.算法泛化能力很强。

缺点:

1.BP神经网络参数众多,每次迭代需要更新较多数量的阈值和权值,故收敛速度比较慢。

2.网络中隐层含有的节点数目没有明确的准则,需要不断设置节点数字试凑,根据网络误差
结果最终确定隐层节点个数

3.BP算法是一种速度较快的梯度下降算法,容易陷入局部极小值的问题。

  1. 激活函数

在深度学习模型中,我们一般习惯在每层神经网络的计算结果送入下一层神经网络之前先经过一个激活函数。

(1)Sigmod函数: f ( x ) = 1 1 + e − x f(x) = {1 \over {1 + {{\rm{e}}^{ - x}}}} f(x)=1+ex1

在这里插入图片描述

(2)Tanh函数: tanh ⁡ ( x ) = e x − e − x ( e x + e − x ) = 2 ∗ s i g m o d ( 2 x ) − 1 \tanh (x) = {{{e^x} - {e^{ - x}}} \over {({e^x} + {e^{ - x}})}} = 2*sig\bmod (2x) - 1 tanh(x)=(ex+ex)exex=2sigmod(2x)1

在这里插入图片描述

(3)relu函数: f ( x ) = max ⁡ ( 0 , x ) f(x) = \max (0,x) f(x)=max(0,x)

在这里插入图片描述

  1. 维度诅咒

神经网络模型可以非常方便地对数据进行升降维,随着特征数量的增多,样本的密度就下降了,继续升维度,就会过拟合,不适用于真实情况

  1. 欠拟合与过拟合

    过拟合和欠拟合可以通过训练误差和泛化误差来定义:

    训练误差:模型在训练集上 计算得到的误差

    泛化误差:模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的期望。

    过拟合:模型的训练误差小,泛化误差大

    欠拟合:模型的训练误差和泛化误差都大

    过拟合的处理方法:
    (1) 正则化:正则化的,但是减少参数的大小,它可以改善或者减少过拟合问题
    (2) 数据增强: 数据的质量、数量和难度等进行增强
    (3)降维: 即丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,也可以使用一些模型选择的算法来帮忙。
    (4)集成学习方法: 集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险。

    过拟合的处理方法:

    (1)添加新特征
    (2)增加模型复杂度
    (3)减小正则化系数

  2. 正则

深度学习中的正则可以看作通过约束模型复杂度来防止过拟合现象的一些手段。首先,模型复杂度是由模型的参数量大小和参数的可取值范围一起决定的。因此正则方法也大致分为两个方向:
一个方向致力于约束模型参数量,例如Dropout;
一个方向致力于约束模型参数的取值范围,例如weight decay。

权重衰减方法:
(1)使用均方范数作为硬性限制
通过限制参数值的选择范围来控制模型容量:
min ⁡ ℓ ( w , b ) \min \ell (w,b) min(w,b)subject to ∥ w ∥ 2 ≤ θ {\left\| {\rm{w}} \right\|^2} \le \theta w2θ
通常不限制b

(2)使用均方范数作为柔性限制

对于每个 θ \theta θ,都可以找到 λ \lambda λ,使得之前的目标函数等价于下面式子:

min ⁡ ℓ ( w , b ) + λ 2 ∥ w ∥ 2 \min \ell (w,b) + {\lambda \over 2}{\left\| w \right\|^2} min(w,b)+2λw2

超参数 λ \lambda λ控制了正则项的重要程度:

  • λ \lambda λ = 0 无作用
  • λ → ∞ , w ∗ → 0 \lambda \to \infty ,w* \to 0 λ,w0
  1. 数据增强

  2. 数值稳定性

这种数值不稳定性问题再深度学习训练过程中被称作梯度消失梯度爆炸

梯度消失:由于累乘导致的梯度接近0的现象,此时训练没有进展。

梯度爆炸:由于累乘导致计算结果超出数据类型能记录的数据范围,导致报错。防止出现数值不稳定原因的方法是进行数据归一化处理。

数据归一化处理:

(1)归一化(最大-最小规范化)——将数据映射到【0,1】区间

x ∗ = x − x min ⁡ x max ⁡ − x min ⁡ x* = {{x - {x_{\min }}} \over {{x_{\max }} - {x_{\min }}}} x=xmaxxminxxmin

数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的。

(2)Z-Score标准化——处理后的数据均 值为0,方差为1

x ∗ = x − μ σ x* = {{x - \mu } \over \sigma } x=σxμ

数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特征数据分布没有发生改变。
就是当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。

  1. 神经网络大家族

    1. CNN
    2. RNN
      • 句法语义分析
      • 信息检索
      • 自动文摘
      • 文本数据挖掘
      • 自动问答
      • 机器翻译
      • 知识图谱
      • 情感分析
      • 文本相似度
      • 文本纠错
    3. GNN
      • 芯片设计
      • 场景分析与问题推理
      • 推荐系统(用户画像)
      • 欺诈检测与风控相关
      • 知识图谱
      • 道路交通的流量预测
      • 自动驾驶(无人机等场景)
      • 化学,医疗等场景
      • 生物,制药等场景
      • 社交网络
    4. GAN
      • 图像超分辨率
      • 艺术创作
      • 图像到图像的翻译(风格迁移)
      • 文本到图像的翻译
      • 照片编辑
      • 服装翻译
      • 照片到表情符号
      • 照片融合
      • 照片修补

相关文章:

05有监督学习——神经网络

线性模型 给定n维输入&#xff1a; x [ x 1 , x 1 , … , x n ] T x {[{x_1},{x_1}, \ldots ,{x_n}]^T} x[x1​,x1​,…,xn​]T 线性模型有一个n维权重和一个标量偏差: w [ w 1 , w 1 , … , w n ] T , b w {[{w_1},{w_1}, \ldots ,{w_n}]^T},b w[w1​,w1​,…,wn​]T,b 输…...

JavaWeb_LeadNews_Day7-ElasticSearch, Mongodb

JavaWeb_LeadNews_Day7-ElasticSearch, Mongodb elasticsearch安装配置 app文章搜索创建索引库app文章搜索思路分析具体实现 新增文章创建索引思路分析具体实现 MongoDB安装配置SpringBoot集成MongoDB app文章搜索记录保存搜索记录思路分析具体实现 查询搜索历史删除搜索历史 搜…...

redux中间件理解,常见的中间件,实现原理。

文章目录 一、Redux中间件介绍1、什么是Redux中间件2、使用redux中间件 一、Redux中间件介绍 1、什么是Redux中间件 redux 提供了类似后端 Express 的中间件概念&#xff0c;本质的目的是提供第三方插件的模式&#xff0c;自定义拦截 action -> reducer 的过程。变为 actio…...

麒麟系统上安装 MySQL 8.0.24

我介绍一下在麒麟系统上安装 MySQL 8.0.24 的详细步骤&#xff0c;前提是您已经下载了 mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz 安装包。其实安装很简单&#xff0c;但是有坑&#xff0c;而且问题非常严重&#xff01;由于麒麟系统相关文章博客较少&#xff0c;导致遇到了…...

vue 展开和收起

效果图 代码块 <div><span v-for"(item,index) in showHandleList" :key"item.index"><span>{{item.emailFrom}}</span></span><span v-if"this.list.length > 4" click"showAll !showAll">{…...

限制立方样条(RCS)中的P for overall和P for nonlinear的计算

最近不少人私信我&#xff0c;说有些SCI文章报了两个P值一个是P for overall,一个是P for nonlinear,就像下图这样&#xff0c;问我P for overall怎么计算。 P for overall我也不清楚是什么&#xff0c;有些博主说这个是总效应的P值&#xff0c;但是我没有找到相关出处。但是怎…...

vue3+ts引入echarts并实现自动缩放

第一种写法&#xff08;不支持随页面大小变化而缩放&#xff09; 统一的HTML页面 <div class"content_box" ref"barChart" id"content_box"></div>TS语法 <script setup lang"ts">import * as echarts from echar…...

Compressor For Mac强大视频编辑工具 v4.6.5中文版

Compressor for Mac是苹果公司推出的一款视频压缩工具&#xff0c;可以将高清视频、4K视频、甚至是8K视频压缩成适合网络传输或存储的小文件。Compressor支持多种视频格式&#xff0c;包括H.264、HEVC、ProRes和AVC-Intra等&#xff0c;用户可以根据需要选择不同的压缩格式。 …...

maven工程的目录结构

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html maven工程的目录结构&#xff1a; 在maven工程的根目录下面&#xff0c;是pom.xml文件。此外&#xff0c;还有README.txt、LICENSE.txt等文本文件&#xff0c;便于用户能够…...

5.1 webrtc线程模型

那从今天开始呢&#xff1f;我们来了解一下y8 tc线程相关的内容&#xff0c;那在开始之前呢&#xff1f;我们先来看一下&#xff0c;我们本章都要讲解哪些知识&#xff1f; 那第一个呢&#xff1f;是线程的基础知识&#xff0c;这块内容呢&#xff1f;主要是为大家做一下回顾&a…...

【Linux网络】Cookie和session的关系

目录 一、Cookie 和 session 共同之处 二、Cookie 和 session 区别 2.1、cookie 2.2、session 三、cookie的工作原理 四、session的工作原理 一、Cookie 和 session 共同之处 Cookie 和 Session 都是用来跟踪浏览器用户身份的会话方式。 二、Cookie 和 session 区别 2.…...

android 硬编码保存mp4

目录 java imagereader编码保存 java NV21toYUV420SemiPlanar 编码保存视频用&#xff1a; imageReader获取nv21 代码来自博客&#xff1a; 【Android Camera2】彻底弄清图像数据YUV420_888转NV21问题/良心教学/避坑必读!_yuv420888转nv21_奔跑的鲁班七号的博客-CSDN博客 …...

gitlab合并分支

我的分支为 cheng 第一步&#xff1a; 增加新的代码 第二步&#xff1a;提交并推送 第三步&#xff1a;打开gitlab&#xff0c;找到对应项目 这样就成功把cheng分支合并到dev-test分支了...

手撕 `np.transpose` : 三维数组的循环转置

手撕 np.transpose : 三维数组的循环转置 手撕 np.transpose 2D 何为transpose ? 如上图: 二维的例子, 直观地理解就是沿着对角线拉平(对角关系左上右下依旧), 其他位置依次填充. 2. 2D数组中0,1 为原始参, 1,0 为转置参 - 原始参即数组的原始形态: 比如&#x1f446;&#x…...

计算机竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于Django与深度学习的股票预测系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff…...

CSS 小技能(一):HTML 两个图片竖着平铺、设置图片点击、设置滚动条颜色

下面的代码没有考虑响应式的效果&#xff0c;如果考虑的话还需要一些代码进行处理。 【注】当时写的时候仅考虑了 webkit 内核的浏览器&#xff0c;如果是 IE 或者其他浏览器&#xff0c;请增加额外的 CSS 样式进行控制。 <!DOCTYPE html> <html> <head>&l…...

【论文阅读】CONAN:一种实用的、高精度、高效的APT实时检测系统(TDSC-2020)

CONAN&#xff1a;A Practical Real-Time APT Detection System With High Accuracy and Efficiency TDSC-2020 浙江大学 Xiong C, Zhu T, Dong W, et al. CONAN: A practical real-time APT detection system with high accuracy and efficiency[J]. IEEE Transactions on Dep…...

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样&#xff0c;则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种石头剪刀布的升级版游戏。 升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势: 斯波克:《星际迷航》主…...

基于Android水果蔬菜果蔬到家商城系统 微信小程序uniAPP的开发与实现

果蔬到家是商家针对用户必不可少的一个部分。在商铺发展的整个过程中&#xff0c;果蔬到家担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类果蔬到家程序也在不断改进。本课题所设计的springboot基于HBuilder X的果蔬到家APP&#xff0c;使用SpringBoot框架&…...

【Python】从入门到上头—Python基础(2)

文章目录 一.基础语法1.编码2.标识符3.保留字4.注释5.行与缩进6.多行语句7.数字(Number)类型8.字符串(String)9.空行10.等待用户输入11.同一行显示多条语句12.多个语句构成代码组13.print 输出14.import 与 from...import 二.基本数据类型1.变量和赋值2.多个变量赋值3.标准数据…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...