【LDF】线性判别函数(二)

news2024/11/15 15:31:22

感知准则函数

  1. 线性可分性
  • 现有 n n n 个 样本: y 1 , y 2 , … , y n \mathbf{y}_1, \mathbf{y}_2, \ldots, \mathbf{y}_n y1,y2,,yn, 这些样本来自于两个类别 ω 1 \omega_1 ω1 ω 2 \omega_2 ω2
  • 任务: 寻找一个线性判别函数 g ( x ) = a T y g(\mathbf{x})=\mathbf{a}^T \mathbf{y} g(x)=aTy, 使对这 n n n 个样本的错分概率最小。
  • 如果存在一个权向量 a \mathbf{a} a, 对所有 y ∈ ω 1 \mathbf{y} \in \omega_1 yω1, 均有 a T y > 0 \mathbf{a}^T \mathbf{y}>0 aTy>0, 且对 所有 y ∈ ω 2 \mathbf{y} \in \omega_2 yω2, 均有 a T y < 0 \mathbf{a}^T \mathbf{y}<0 aTy<0, 则这组样本集为线性可分的; 否则为线性不可分的。 (广义判别函数意义下)
  1. 样本规范化
  • 如果样本集是线性可分的, 将属于 ω 2 \omega_2 ω2 的所有样本由 y \mathbf{y} y 变成 − y -\mathbf{y} y, 对所有 n n n 样本, 将得到 a T y > 0 \mathbf{a}^T \mathbf{y}>\mathbf{0} aTy>0
  • 经过上述处理之后, 在训练的过程中就不必考虑原来的样本类别。这一操作过程称为对样本的规范化(normalization) 处理。
  • 规范化增广样本: 首先将所有样本写成齐次坐标形式,然后将属于 ω 2 \omega_2 ω2 的所有样本由 y \mathbf{y} y 变成 − y -\mathbf{y} y
  • 后面主要将集中于 “规范化增广样本”。“增广” 是指 “齐次坐标表示” 的含义, 即 y = ( x T , 1 ) T ∈ R d + 1 \mathbf{y}=\left(\mathbf{x}^T, 1\right)^T \in R^{d+1} y=(xT,1)TRd+1
  1. 解区与解向量
  • 在线性可分的情形下, 满足 a T y i > 0 , i = 1 , 2 , … , n \mathbf{a}^T \mathbf{y}_i>0, i=1,2, \ldots, n aTyi>0,i=1,2,,n 的权向量 a \mathbf{a} a 称为解向量。
  • 权向量 a \mathbf{a} a 可以理解为权空间中的一点, 每个样本 y i \mathbf{y}_i yi a \mathbf{a} a 的位置均可能起到限制作用, 即要求 a T y i > 0 \mathbf{a}^T \mathbf{y}_i>0 aTyi>0
  • 任何一个样本点 y i \mathbf{y}_i yi 均可以确定一个超平面 H i : a T y i = 0 H_i: \mathbf{a}^T \mathbf{y}_i=0 Hi:aTyi=0, 其法向量为 y i \mathbf{y}_i yi 。如果解向量 a ∗ \mathbf{a}^* a 存在, 它必定在 H i H_i Hi 的正侧, 因为只有在正侧才能满足 ( a ∗ ) T y i > 0 \left(\mathbf{a}^*\right)^T \mathbf{y}_i>0 (a)Tyi>0
  • 按上述方法, n n n 个样本将产生 n n n 个超平面。每个超平面将空间分成两个半空间。如果解向量存在, 它必定在所有这些正半空间的交集区域内。这个区域内的所有向量均是一个 可行的解向量 a ∗ \mathbf{a}^* a
    在这里插入图片描述
  1. 限制解区
  • 可行的解向量不是唯一的, 有无穷多个。
  • 经验: 越靠近区域中间的解向量, 越能对新的样本正确分类;可以引入一些条件来限制解空间
  • 比如: 寻找一个单位长度的解向量 a \mathbf{a} a, 能最大化样本到分界面的最小距离
  • 比如: 寻找一个最小长度的解向量 a \mathbf{a} a, 使 a T y i ≥ b > 0 \mathbf{a}^T \mathbf{y}_i \geq b>0 aTyib>0 。此时可以将 b b b 称为间隔 (margin)。
    在这里插入图片描述
  1. 感知准则函数
  • 感知准则函数
    任务: 设有一组样本 y 1 , y 2 , … , y n \mathbf{y}_1, \mathbf{y}_2, \ldots, \mathbf{y}_n y1,y2,,yn, 各样本均规范化表示。我们的目的是要寻找一个解向量 a \mathbf{a} a , 使
    a T y i > 0 , i = 1 , 2 , … , n \mathbf{a}^T \mathbf{y}_i>0, \quad i=1,2, \ldots, n aTyi>0,i=1,2,,n
    在线性可分情形下, 满足上述不等式的 a \mathbf{a} a 是无穷多的, 因此需要引入一个准则。
  • Frank Rosenblatt 于50年代提出的感知学习机思想
    考虑如下准则函数:
    J p ( a ) = ∑ y ∈ Y ( − a T y ) , 其中,  Y  为错分样本集合  J_p(\mathbf{a})=\sum_{\mathbf{y} \in Y}\left(-\mathbf{a}^T \mathbf{y}\right) \text {, 其中, } Y \text { 为错分样本集合 } Jp(a)=yY(aTy)其中Y 为错分样本集合 
  • y \mathbf{y} y 被错分时, a T y ≤ 0 \mathbf{a}^T \mathbf{y} \leq 0 aTy0, 则 − a T y ≥ 0 -\mathbf{a}^T \mathbf{y} \geq 0 aTy0 。因此 J p J_p Jp (a) 总是大于等于 0 。在可分情形下, 当且仅当 Y Y Y 为空集时 J p ( a ) J_p(\mathbf{a}) Jp(a) 将等于零, 这时将不存在错分样本。
  • 因此, 目标是最小化 J p ( a ) : min ⁡ a J p ( a ) J_p(\mathbf{a}): \min _{\mathbf{a}} J_p(\mathbf{a}) Jp(a):minaJp(a)
  • 求导
    ∂ J p ( a ) ∂ a = − ∑ y ∈ Y y \frac{\partial J_p(\mathbf{a})}{\partial \mathbf{a}}=-\sum_{\mathbf{y} \in Y} \mathbf{y} aJp(a)=yYy
  • 根据梯度下降,有如下更新准则
    a k + 1 = a k + η k ∑ y ∈ Y k y \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \sum_{\mathbf{y} \in Y_k} \mathbf{y} ak+1=ak+ηkyYky
    这里, a k + 1 \mathbf{a}_{k+1} ak+1 是当前迭代的结果, a k \mathbf{a}_k ak 是前一次迭代的结果, Y k Y_k Yk 是被 a k \mathbf{a}_k ak 错分的样本集合, η k \eta_k ηk 为步长因子 (更新动力因子, 学习率)。
  • 感知准则算法(Batch Perceptron)(伪代码)

 begin initialize:  a , η , certain  θ  (small value),  k = 0  do  k ← k + 1 a = a + η k ∑ y ∈ Y ( k ) y / / Y ( k ) = Y k  until  ∣ η k ∑ y ∣ < θ , y ∈ Y k / /  一个较松的停止条件   return  a  end  \begin{aligned} & \text { begin initialize: } \mathbf{a}, \eta \text {, certain } \theta \text { (small value), } k=0 \\ & \qquad \begin{array}{ll} \text { do } k \leftarrow k+1 & \\ \qquad \mathbf{a}=\mathbf{a}+\eta_k \sum_{\mathbf{y} \in Y(k)} \mathbf{y} & / / Y(k)=Y_k \\ \text { until }\left|\eta_k \sum \mathbf{y}\right|<\theta, \quad \mathbf{y} \in Y_k & / / \text { 一个较松的停止条件 } \\ \text { return } \mathbf{a} \end{array} \\ & \text { end } \end{aligned}  begin initialize: a,η, certain θ (small value), k=0 do kk+1a=a+ηkyY(k)y until ηky<θ,yYk return a//Y(k)=Yk// 一个较松的停止条件  end 

  • 之所以称为 “batch perception” 是因为在迭代过程中同时考虑多个样本(每一步所有错分样本都参与更新)。计算复杂度低, 能以较快的速度收敛到极小值点
  • 可变增量批处理修正方法(Batch Variable-Increment Perceptron)
     begin initialize:  a , η 0 , k = 0  do  k ← k + 1 (   m o d   n ) Y k = { } , j = 0  do  j ← j + 1  if  y j  is misclassified, then append  y j  to  Y k  until  j = n a = a + η k ∑ y ∈ Y ( k ) y  //发现所有错分, 然后再修正   until  Y k = { }  /直到所有样本均正确分类   return  a \begin{aligned} & \text { begin initialize: } \mathbf{a}, \eta_0, k=0 \\ & \qquad \begin{aligned} & \text { do } k \leftarrow k+1(\bmod n) \\ & \qquad Y_k=\{\}, j=0 \\ & \qquad \text { do } j \leftarrow j+1 \\ & \qquad \qquad \text { if } \mathbf{y}_j \text { is misclassified, then append } \mathbf{y}_j \text { to } Y_k \\ & \qquad \text { until } j=n \\ & \qquad \mathbf{a}=\mathbf{a}+\eta_k \sum_{\mathbf{y} \in Y(k)} \mathbf{y} \text { //发现所有错分, 然后再修正 } \\ & \text { until } Y_k=\{\} \text { /直到所有样本均正确分类 } \\ & \text { return } \mathbf{a}\\ \end{aligned} \end{aligned}  begin initialize: a,η0,k=0 do kk+1(modn)Yk={},j=0 do jj+1 if yj is misclassified, then append yj to Yk until j=na=a+ηkyY(k)y //发现所有错分然后再修正  until Yk={} /直到所有样本均正确分类  return a
  • 区别就是每一次都要重新计算错分样本
  • 由于所有被 a k \mathbf{a}_k ak 错分的样本必然位于以 a k \mathbf{a}_k ak 为法向量的超平面的负侧, 所以这些样本的和也必然在该侧
  • a k + 1 \mathbf{a}_{k+1} ak+1 在更新的过程中, 会向错分类样本之和靠近, 因而朝着有利的方向移动(旋转)。一旦这些错分样本点穿过超平面, 就正确分类了。
  • 对于线性可分的样本集, 算法可以在有限步内找到最优解。收敛速度取决于初始权向量和步长

在这里插入图片描述

  • 固定增量单样本修正方法(Fixed-Increment Single-Sample Perceptron)
     begin initialize:  a , k = 0  do  k ← k + 1 (   m o d   n )  if  y k  is misclassified by a, then  a = a + y k  until all patterns properly classified   return  a  end  \begin{aligned} & \text { begin initialize: }\mathbf{a}, k=0 \\ & \qquad \text { do } k \leftarrow k+1(\bmod n) \\ & \qquad \qquad \text { if } \mathbf{y}^k \text { is misclassified by a, then } \mathbf{a}=\mathbf{a}+\mathbf{y}^k \\ & \qquad\text { until all patterns properly classified } \\ & \qquad\text { return } \mathbf{a} \\ & \text { end } \end{aligned}  begin initialize: a,k=0 do kk+1(modn) if yk is misclassified by a, then a=a+yk until all patterns properly classified  return a end 

  • 每次迭代只考虑一个错分样本 y k \mathbf{y}^k yk, 梯度下降法可以写成: a k + 1 = a k + η k y k \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \mathbf{y}^k ak+1=ak+ηkyk 。考虑固定增量, 即令 η k = 1 \eta_k=1 ηk=1 :“固定增量” 并不改变分类决策, 相当于将样本作了一个 1 / η k 1 / \eta_k 1/ηk 的缩放。

  • 算法解释:如果 a k \mathbf{a}_k ak y k \mathbf{y}_k yk分错:
    ( a k ) T y k ≤ 0 \left(\mathrm{a}_k\right)^T \mathrm{y}^k \leq 0 (ak)Tyk0
    a k + 1 = a k + y k \mathbf{a}_{k+1}=\mathbf{a}_k+\mathbf{y}^k ak+1=ak+yk
    ( a k + 1 ) T y k = ( a k ) T y k + ∥ y k ∥ ∣ 2 \left(\mathbf{a}_{k+1}\right)^T \mathbf{y}^k=\left(\mathbf{a}_k\right)^T \mathbf{y}^k+\left.\left\|\mathbf{y}^k\right\|\right|^2 (ak+1)Tyk=(ak)Tyk+ yk 2
    ( a k + 1 ) T y k \left(\mathbf{a}_{k+1}\right)^T \mathbf{y}^k (ak+1)Tyk 在原来的基础上增加了一个正数: ∥ y k ∥ 2 \left\|\mathbf{y}^k\right\|^2 yk 2。加着加着不就变正了吗,变正了不就正确分类了吗

  • 可变增量单样本修正方法(Variable-Increment Perceptron with Margin
    a k + 1 = a k + η k y k \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \mathbf{y}^k ak+1=ak+ηkyk
     begin initialize: a, margin  b , η 0 , k = 0  do  k ← k + 1 (   m o d   n )  if  a T y k ≤ b , then  a = a + η k y k  until  a T y k > b  for all  k  return  a  end  \begin{aligned} & \text { begin initialize: a, margin } b, \eta_0, k=0 \\ & \qquad \text { do } k \leftarrow k+1(\bmod n) \\ & \qquad \qquad \text { if } \mathbf{a}^T \mathbf{y}^k \leq \mathrm{b} \text {, then } \mathbf{a}=\mathbf{a}+\eta_k \mathbf{y}^k \\ & \qquad \text { until } \mathbf{a}^T \mathbf{y}^k>b \text { for all } k \\ & \qquad \text { return } \mathbf{a} \\ & \text { end } \end{aligned}  begin initialize: a, margin b,η0,k=0 do kk+1(modn) if aTykb, then a=a+ηkyk until aTyk>b for all k return a end 

  1. 感知准则函数的收敛性
  • 在样本线性可分的情形下, 固定增量单样本权向量修正方法收敛, 并可得到一个可行解。
  • a \mathbf{a} a 是一个解向量, 只要证明 ∥ a k + 1 − a ∥ < ∥ a k − a ∥ \left\|\mathbf{a}_{k+1}-\mathbf{a}\right\|<\left\|\mathbf{a}_k-\mathbf{a}\right\| ak+1a<aka 即可

【证明】 a \mathbf{a} a 是一个解向量, 对于任意一个正的标量 α , α a \alpha, \alpha \mathbf{a} α,αa 也为一个可行解, 于是有:
a k + 1 − α a = ( a k − α a ) + y k ∥ a k + 1 − α a ∥ 2 = ∥ a k − α a ∥ 2 + 2 ( a k − α a ) T y k + ∥ y k ∥ 2 \begin{gathered} \mathbf{a}_{k+1}-\alpha \mathbf{a}=\left(\mathbf{a}_k-\alpha \mathbf{a}\right)+\mathbf{y}^k \\ \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2=\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2+2\left(\mathbf{a}_k-\alpha \mathbf{a}\right)^T \mathbf{y}^k+\left\|\mathbf{y}^k\right\|^2 \end{gathered} ak+1αa=(akαa)+ykak+1αa2=akαa2+2(akαa)Tyk+ yk 2
由于 y k \mathbf{y}^k yk 被错分, 有 ( a k ) T y k ≤ 0 \left(\mathbf{a}_k\right)^T \mathbf{y}^k \leq 0 (ak)Tyk0 。但 a T y k > 0 \mathbf{a}^T \mathbf{y}^k>0 aTyk>0, 于是:
∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 − 2 α a T y k + ∥ y k ∥ 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2-2 \alpha \mathbf{a}^T \mathbf{y}^k+\left\|\mathbf{y}^k\right\|^2 ak+1αa2akαa22αaTyk+ yk 2
因此, 寻找一个合适的 α \alpha α, 满足 ∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2 ak+1αa2akαa2 即可
回忆一下, a < b + c a<b+c a<b+c,要得到 a < b a<b a<b c c c 越大越不利(极端一点, c < 0 c<0 c<0直接就得到了)。所以这边假设最坏的情况,令
β 2 = max ⁡ i = 1 , … , n ∥ y i ∥ 2 , γ = min ⁡ i a T y i \beta^2=\max _{i=1, \ldots, n}\left\|\mathbf{y}_i\right\|^2, \quad \gamma=\min _i \mathbf{a}^T \mathbf{y}_i β2=i=1,,nmaxyi2,γ=iminaTyi
∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 − 2 α γ + β 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2-2 \alpha \gamma+\beta^2 ak+1αa2akαa22αγ+β2
α = β 2 / γ \alpha=\beta^2 / \gamma α=β2/γ
∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 − β 2 ∥ a k + 1 − α a ∥ 2 < ∥ a k − α a ∥ 2 \begin{aligned} & \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2-\beta^2 \\ & \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2<\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2 \end{aligned} ak+1αa2akαa2β2ak+1αa2<akαa2
因此, 每次迭代, 当前解离可行解越来越近。经过 k + 1 k+1 k+1 次迭代后:
∥ a k + 1 − α a ∥ 2 ≤ ∥ a 1 − α a ∥ 2 − k β 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_1-\alpha \mathbf{a}\right\|^2-k \beta^2 ak+1αa2a1αa2kβ2
由于 ∥ a k + 1 − α a ∥ \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\| ak+1αa 总是非负的, 所以至多经过如下次更正即可:
k 0 = ∥ a 1 − α a ∥ 2 / β 2 k_0=\left\|\mathbf{a}_1-\alpha \mathbf{a}\right\|^2 / \beta^2 k0=a1αa2/β2

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

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

相关文章

SpringMVC 入门案例

1.1 添加依赖 在pom文件中添加 javax.servlet-api 和 spring-webmvc 依赖&#xff1b; javax.servlet-api&#xff1a;主要用于 JAVA Web 开发&#xff1b; spring-webmvc&#xff1a;SpringMVC 依赖&#xff1b; <dependencies><dependency><groupId>javax.…

Xilinx ZYNQ 7000 AXI GPIO 读写/中断

打开SDK 后&#xff0c;创建官方例程 打开官方例程后&#xff0c;会发现这个AXI GPIO设置和 PS MIO/EMIO一模一样 int main(void) {int Status;volatile int Delay;/* Initialize the GPIO driver */Status XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);if (Status…

unity-概念与实操入门

文章目录编译器推荐&#xff08;Rider&#xff09;坐标世界坐标系相对坐标系资源商店快捷入口地面制作脚本新建脚本生命周期vs测试打印对象标签&#xff08;自带集合属性&#xff09;图层预设体创建预设体&#xff08;cocos相同&#xff09;定位预设体文件位置预设体添加、更新…

python第一次作业

目录 1.下列程序运行结果为&#xff1a; 2.下列程序运行结果为&#xff1a; 3.下列程序运行结果为&#xff1a; 4.下列程序运行结果为&#xff1a; 5.编写程序&#xff1a;从键盘输入两个两位数&#xff0c;组成一个新的四位数&#xff0c; 6.编写程序功能如下&#xff1a…

网络编程套接字----TCP协议

文章目录前言一、简单TCP网络程序二、TCP socket API 详解socket()bind()listen()accept()connect()三、TCP网络编程头文件日志文件客户端服务器单进程版本多进程版本多线程版本四、线程池版的TCP更改提供的服务总结前言 接着上节课我们讲了udp套接字网络编程,这节课我来给大家…

【C++基础】11:文件操作

文件操作 OVERVIEW文件操作一、文本文件&#xff1a;1.指定打开方式&#xff1a;2.文本文件的写操作&#xff1a;3.文本文件的读操作&#xff1a;二、二进制文件&#xff1a;1.二进制文件的写操作&#xff1a;2.二进制文件的读操作&#xff1a;程序运行时产生的数据都属于临时的…

JAVA设计模式--行为型模式--状态模式

1.状态模式&#xff08;State Pattern&#xff09; 1.1介绍 类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中&#xff0c;我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 1.2意图&#xff1a; 允许对象在…

Python数据分析案例16——水质检测(支持向量机)

本次带来图片分类的案例&#xff0c;水质检测。 数据展示 五种类别的水质&#xff0c;图片形式储存的&#xff1a; 前面1是代表水质的类别标签&#xff0c;后面是样本个数。 图片特征构建 import numpy as np import pandas as pd import matplotlib.pyplot as plt import o…

pytorch应用(入门5)CNN卷积神经网络、提取层结构、提取参数

目录第一天第二章&#xff1a;简单的神经网络第三章&#xff1a;深度学习工作流程卷积模块介绍卷积池化层池化层书中的代码池化层相关资料提取 &#xff08;各&#xff09;层&#xff08;的&#xff09;结构如何提取参数及自定义初始化LeNetAlexNetVGGNetCIFAR 10VGGNetGoogLeN…

JSP ssh医疗报销管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh 医疗报销管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

【C++基础】07:多态

多态 OVERVIEW多态一、多态1.基本概念&#xff1a;2.E1-计算器类3.纯虚函数&抽象类&#xff1a;4.E2-制作饮品5.虚析构&纯虚析构&#xff1a;6.E3-电脑组装二、运算符重载1.加号运算符重载&#xff1a;2.左移>>运算符重载&#xff1a;3.递增运算符重载&#xff1…

数据结构课设-小老鼠走迷宫(JAVA版)

学校题目: 题目内容: 程序开始运行时显示一个迷宫地图&#xff0c;迷宫中央有一只老鼠&#xff0c;迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向健操纵老鼠在规定的时间内走到粮仓处。 基本要求&#xff1a; ⑴老鼠形象可以辨认&#xff0c;可用键盘操纵老鼠上下…

小米万兆路由器里的Docker安装可道云(Kodexplorer)私有网盘

小米2022年12月份发布了万兆路由器&#xff0c;里面可以使用Docker。 今天尝试在小米的万兆路由器里安装可道云(Kodexplorer)私有网盘。 准备工作 先将一块USB外接硬盘格式化为ext4格式&#xff0c;然后外接到小米路由器上&#xff0c; 然后创建虚拟内存&#xff0c;我这里最…

Vectornet源码详解

代码资源地址见最后 1.数据与环境配置 首先,我们需要下载这个API,方便对数据做特征工程,目前这个api还不支持windows版本 https://github.com/argoverse/argoverse-api 按照上面的步骤所说,第一步需要下载这个项目,第二步需要下载一些配置文件,并按照上述方…

Linux 信号处理简析

1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 分析背景 本文基于 ARM32 架构 Linux 4.14 内核源码进行分析。 3. 信号概述 3.1 信号分类 信号这个概念&#xff0c;起始于 UNIX 操作系统&…

4、程序计数器PC

介绍 JVM中的程序计数寄存器&#xff08;Program Counter Register&#xff09;中&#xff0c;Register的命名源于CPU的寄存器&#xff0c;寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里&#xff0c;并非是广义上所指的物理寄存器&#xff0c;或许…

XINDOO的2022年年终总结

已经好几个月没有认认真真写一篇博客了&#xff0c;借着年底静下心来认认真真写一篇年终总结&#xff0c;这也是我人生中第10篇的年终总结了。 先看下去年立的flag&#xff0c;不用想去年立的flag一个都没完成。首先1 算是勉强及格&#xff1b;2 redis的博客一篇没写&#xff1…

前端学习第二站——JavaScript

目录 1. 简介 2. 变量与数据类型 2.1 声明变量 2.2 基本类型 2.3 对象类型 2.3.1 函数 Function ​ 2.3.2 数组Array 2.3.3 对象 Object ⭐️⭐️ 3. 运算符和表达式 1) 2) || 4) ... 5) [] {} 4. 控制语句 1) for in 2) for of 3) try catch 1. 简介 JavaScr…

移动应用安全过去及未来发展情况思考汇总

声明 本文是学习移动安全总结 2019. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 序言 随着2019年的逝去&#xff0c;二十一世纪第二个十年也已随之结束。回顾过去的十年&#xff0c;我们的生活随着科技的进步发生了翻天覆地的变化&#x…

MySQL索引最佳实践及Explain详解

一、Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字&#xff0c;MySQL 会在查询上设置一个标记&#xff0c;执行查询会返回执行计划的信息&#xff0c;而不是执行这条SQL …