机器学习算法原理——感知机

news2024/11/17 21:35:35

感知机

输入空间: X ⊆ R n \mathcal X\subseteq{\bf R^n} XRn ;输入: x = ( x ( 1 ) , x ( 2 ) , ⋅ ⋅ ⋅ , x ( n ) ) T ∈ X x=\left(x^{(1)},x^{(2)},\cdot\cdot\cdot,x^{(n)}\right)^{T}\in{\mathcal{X}} x=(x(1),x(2),,x(n))TX

输出空间: Y = { + 1 , − 1 } {\mathcal Y}=\{+1,-1\} Y={+1,1} ;输出: y ∈ Y y \in \mathcal{Y} yY

感知机:
f ( x ) = s i g n ( w ⋅ x + b ) = { + 1 , w ⋅ x + b ≥ 0 − 1 , w ⋅ x + b < 0 f(x)=\mathrm{sign}(w\cdot x+b)=\left\{\begin{array}{l l}{{+1,}}&{{w\cdot x+b\geq0}}\\ {{-1,}}&{{w\cdot x+b\lt 0}}\end{array}\right. f(x)=sign(wx+b)={+1,1,wx+b0wx+b<0
其中, w = ( w ( 1 ) ,   w ( 2 ) ,   ⋅   ⋅   ⋅   ,   w ( n ) ) T   ∈ R n w = \left(w^{(1)},\,w^{(2)},\,\cdot\,\cdot\,\cdot\,\mathrm{,\,}w^{(n)}\right)^{T}\,\in {\bf R^n} w=(w(1),w(2),,w(n))TRn (Weight), b ∈ R b \in \bf R bR 称为偏置(Bias), w ⋅ x w \cdot x wx 表示内积
w ⋅ x = w ( 1 ) x ( 1 ) + w ( 2 ) x ( 2 ) + ⋯ + w ( n ) x ( n ) w \cdot x=w^{(1)} x^{(1)}+w^{(2)} x^{(2)}+\cdots+w^{(n)} x^{(n)} wx=w(1)x(1)+w(2)x(2)++w(n)x(n)
假设空间: F = { f ∣    f ( x ) = w ⋅ x + b } {\mathcal{F}}=\{{\mathcal{f}}|\;{\mathcal{f}}(x)=w\cdot x+b\} F={ff(x)=wx+b}

几何含义

在这里插入图片描述

线性方程:
w ⋅ x + b = 0 w \cdot x + b = 0 wx+b=0
特征空间 R n {\bf R^n} Rn 中的一个超平面: S \rm S S ;法向量: w w w ;截距: b b b

条件

数据集的线性可分性

给定数据集:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋅ ⋅ ⋅ ⋅ , ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2})\cdot\cdot\cdot\cdot,(x_{N},y_{N})\} T={(x1,y1),(x2,y2),(xN,yN)}
若存在某个超平面 S \rm S S
w ⋅ x + b = 0 w\cdot x+b=0 wx+b=0
能够将数据集的正负实例点完全正确的划分到超平面两侧,即:
{ y i = + 1 , w ⋅ x i + b > 0 y i = − 1 , w ⋅ x i + b < 0 \left\{\begin{array}{l l}{{y_{i}=+1,}}&{{ w\cdot x_{i}+b\gt 0}}\\ {{y_{i}=-1,}}&{{ w\cdot x_{i}+b\lt 0}}\end{array}\right. {yi=+1,yi=1,wxi+b>0wxi+b<0
那么,称 T T T 为线性可分数据集;否则,称 T T T 为线性不可分。

∀ x 0 ∈ R n \forall x_{0}\in{\bf R^n} x0Rn S \rm S S 的距离:
1 ∥ w ∥ ∣ w ⋅ x 0 + b ∣ \frac{1}{\|w\|}\left|w \cdot x_0+b\right| w1wx0+b
这里, ∥ w ∥ \|w\| w w w w L 2 L_2 L2 范数。

  • x 0 x_0 x0 是正确分类点,则:

1 ∥ w ∥ ∣ w ⋅ x 0 + b ∣ = { w ⋅ x 0 + b ∥ w ∥ , y 0 = + 1 − w ⋅ x 0 + b ∥ w ∥ , y 0 = − 1 \frac{1}{\|w\|}\left|w \cdot x_0+b\right|=\left\{\begin{aligned} \frac{w \cdot x_0+b}{\|w\|}, & y_0=+1 \\ -\frac{w \cdot x_0+b}{\|w\|}, & y_0=-1 \end{aligned}\right. w1wx0+b= wwx0+b,wwx0+b,y0=+1y0=1

  • x 0 x_0 x0 是错误分类点,则:

1 ∥ w ∥ ∣ w ⋅ x 0 + b ∣ = { − w ⋅ x 0 + b ∥ w ∥ , y 0 = + 1 w ⋅ x 0 + b ∥ w ∥ , y 0 = − 1 = − y 0 ( w ⋅ x 0 + b ) ∥ w ∥ \frac{1}{\|w\|}\left|w \cdot x_0+b\right|=\left\{\begin{array}{cc} -\frac{w \cdot x_0+b}{\|w\|}, & y_0=+1 \\ \frac{w \cdot x_0+b}{\|w\|}, & y_0=-1 \end{array}=\frac{-y_0\left(w \cdot x_0+b\right)}{\|w\|}\right. w1wx0+b={wwx0+b,wwx0+b,y0=+1y0=1=wy0(wx0+b)

误分类点 x i x_i xi S \rm S S 的距离:
$$

  • \frac{1}{|w|}\left|w \cdot x_0+b\right|
    KaTeX parse error: Can't use function '$' in math mode at position 10: 所有误分类点到 $̲\rm S$ 的距离:
    -\frac{1}{|w|} \sum_{x_i \in M} y_i\left(w \cdot x_i+b\right)
    $$
    其中, M M M 代表所有误分类点的集合。

损失函数:
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_{i}\in M}y_{i}(w\cdot x_{i}+b) L(w,b)=xiMyi(wxi+b)

模型参数估计:
arg ⁡ min ⁡ w , b L ( w , b ) \underset{w, b}{\arg \min } L(w, b) w,bargminL(w,b)

梯度下降法

梯度:指某一函数在该点处最大的方向导数,沿着该方向可取得最大的变化率。
∇ = ∂ f ( θ ) ∂ θ \nabla={\frac{\partial f(\theta)}{\partial\theta}} =θf(θ)
f ( θ ) f(\theta) f(θ) 是凸函数,可通过梯度下降法进行优化:
θ ( k + 1 ) = θ ( k ) − η ∇ F ( θ ( k ) ) \theta^{(k+1)}=\theta^{(k)}-\eta\nabla F(\theta^{(k)}) θ(k+1)=θ(k)ηF(θ(k))
η \eta η 表示步长,在统计学中表示学习率

输入:目标函数 f ( θ ) f(\theta) f(θ) ,步长 η \eta η ,计算精度 $\epsilon $ ;

输出: f ( θ ) f(\theta) f(θ) 的极小值点 θ ∗ \theta^* θ

  • 选取初始值 θ ( 0 ) ∈ R n \theta^{(0)}\in{\bf R^n} θ(0)Rn ,置 k = 0 k = 0 k=0
  • 计算 f ( θ ( k ) ) f(\theta^{(k)}) f(θ(k))
  • 计算梯度 ∇ f ( θ ( k ) ) \nabla f(\theta^{(k)}) f(θ(k))
  • θ ( k + 1 ) = θ ( k ) − η ∇ F ( θ ( k ) ) \theta^{(k+1)}=\theta^{(k)}-\eta\nabla F(\theta^{(k)}) θ(k+1)=θ(k)ηF(θ(k)) ,计算 f ( θ ( k + 1 ) ) f(\theta^{(k +1)}) f(θ(k+1)) ,当 ∣ ∣ f ( θ ( k + 1 ) ) − f ( θ ( k ) ) ∣ ∣ < ϵ ||f(\theta^{(k+1)})-f(\theta^{(k)})||\lt \epsilon ∣∣f(θ(k+1))f(θ(k))∣∣<ϵ 或者 ∣ ∣ θ ( k + 1 ) − θ ( k ) ∣ ∣ < ϵ ||\theta^{(k+1)}-\theta^{(k)}||\lt \epsilon ∣∣θ(k+1)θ(k)∣∣<ϵ 时,停止迭代,令 θ ∗ = θ ( k + 1 ) \theta^* = \theta^{(k+1)} θ=θ(k+1)
  • 否则,置 k = k + 1 k = k+1 k=k+1 ,转到第三步。

感知机的原始形式(随机梯度下降法)

损失函数:
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_{i}\in M}y_{i}(w\cdot x_{i}+b) L(w,b)=xiMyi(wxi+b)
梯度:
∇ w L ( w , b ) = − ∑ x i ∈ M y i x i ; ∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_{w}L(w,b)=-\sum_{x_{i}\in M}y_{i}x_{i} ; \qquad \qquad \nabla_{b}L(w,b)=-\sum_{x_{i}\in M}y_{i} wL(w,b)=xiMyixi;bL(w,b)=xiMyi
梯度下降:
θ ( k + 1 ) = θ ( k ) − η ∇ F ( θ ( k ) ) \theta^{(k+1)}=\theta^{(k)}-\eta\nabla F(\theta^{(k)}) θ(k+1)=θ(k)ηF(θ(k))
参数更新:

  • 批量梯度下降法(Batch Gradient Descent):每次迭代时使用所有误分类点来进行参数更新。
    w ← w + η ∑ x i ∈ M y i x i ; b ← b + η ∑ x i ∈ M y i w\leftarrow w+\eta\sum_{x_{i}\in M}y_{i}x_{i};\qquad\qquad b\leftarrow b+\eta\sum_{x_{i}\in M}y_{i} ww+ηxiMyixi;bb+ηxiMyi
    其中, η ( 0 < η ≤ 1 ) \eta(0<\eta \leq 1) η(0<η1) 代表步长。

  • 随机梯度下降法(Stochastic Gradient Descent):每次随机选取一个误分类点

w ← w + η y i x i ; b ← b + η y i w\leftarrow w+\eta y_{i}x_{i};\qquad\qquad b\leftarrow b+\eta y_{i} ww+ηyixi;bb+ηyi

算法
输入:训练集:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋅ ⋅ ⋅ ⋅ , ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2})\cdot\cdot\cdot\cdot,(x_{N},y_{N})\} T={(x1,y1),(x2,y2),(xN,yN)}
​ 其中, x i ∈ X ⊆ R n x_i \in \mathcal X \subseteq \bf R^n xiXRn y ∈ Y = + 1 , − 1 y \in \mathcal Y = {+1,-1} yY=+1,1 ;步长 η ( 0 < η ≤ 1 ) \eta(0 < \eta \leq 1) η(0<η1)

输出: w , b w,b w,b ;感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x) = \mathrm{sign}(w \cdot x + b) f(x)=sign(wx+b)

  • 选取初始值 w 0 , b 0 w_0, b_0 w0,b0
  • 于训练集中随机选取数据 ( x i , y i ) (x_i, y_i) (xi,yi)
  • y i ( w ⋅ x i + b ) ≤ 0 y_i (w \cdot x_i + b) \leq 0 yi(wxi+b)0

w ← w + η y i x i ; b ← b + η y i w\leftarrow w+\eta y_{i}x_{i};\qquad\qquad b\leftarrow b+\eta y_{i} ww+ηyixi;bb+ηyi

感知机的对偶形式

在原始形式中,若 ( x i , y i ) (x_i, y_i) (xi,yi) 为误分类点,更新参数:
w ← w + η y i x i ; b ← b + η y i w\leftarrow w+\eta y_{i}x_{i};\qquad\qquad b\leftarrow b+\eta y_{i} ww+ηyixi;bb+ηyi
假设初始值 w 0 = 0 , b 0 = 0 w_0 = 0, b_0 = 0 w0=0,b0=0 ,对误分类点 ( x i , y i ) (x_i,y_i) (xi,yi) 通过上述公式更新参数,修改 n i n_i ni 次之后, w , b w,b w,b 的增量分别为 α i y i x i \alpha_i y_i x_i αiyixi α i y i \alpha_i y_i αiyi ,其中 α i = n i η \alpha_i = n_i \eta αi=niη n i n_i ni 是点 ( x i , y i ) (x_i,y_i) (xi,yi) 被误分类的次数。

最后学习到的参数为:
w = ∑ i = 1 N α i y i x i ; b = ∑ i = 1 N α i y i w=\sum_{i=1}^{N}\alpha_{i}y_{i}x_{i};\qquad \qquad b=\sum_{i=1}^{N}\alpha_{i}y_{i} w=i=1Nαiyixi;b=i=1Nαiyi
算法
输入:训练集:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋅ ⋅ ⋅ ⋅ , ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2})\cdot\cdot\cdot\cdot,(x_{N},y_{N})\} T={(x1,y1),(x2,y2),(xN,yN)}
​ 其中, x i ∈ X ⊆ R n x_i \in \mathcal X \subseteq \bf R^n xiXRn y ∈ Y = + 1 , − 1 y \in \mathcal Y = {+1,-1} yY=+1,1 ;步长 η ( 0 < η ≤ 1 ) \eta(0 < \eta \leq 1) η(0<η1)

输出: α , b \alpha,b α,b ;感知机模型 f ( x ) = s i g n ( ∑ j = 1 N α i y i x j ⋅ x + b ) f(x) = \mathrm{sign}(\sum_{j = 1}^{N} \alpha_i y_i x_j \cdot x + b) f(x)=sign(j=1Nαiyixjx+b) ,其中 α = ( α 1 , α 2 , ⋯   , α N ) T \alpha = {(\alpha_1, \alpha_2, \cdots, \alpha_N)}^T α=(α1,α2,,αN)T

  • 选取初始值 α < 0 > = ( 0 , 0 , ⋅ ⋅ ⋅ , 0 ) T ,   b < 0 > = 0 \alpha^{\lt 0\gt }=(0,0,\cdot\cdot\cdot,0)^{T},\ b^{\lt 0\gt }=0 α<0>=(0,0,,0)T, b<0>=0 ,上标表示被误分类的次数;

  • 于训练集中随机选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)

  • y i ( ∑ j = 1 N α j y j x j ⋅   x i + b ) ≤ 0 y_{i}(\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot\,x_{i}+b)\leq0 yi(j=1Nαjyjxjxi+b)0
    α ← α + η ; b ← b + η y i {\alpha} \leftarrow {\alpha +\eta};\qquad\qquad b\leftarrow b+\eta y_{i} αα+η;bb+ηyi

  • 转(2),直至没有误分类点。

Gram 矩阵

对于感知机的对偶形式中的(3): y i ( ∑ j = 1 N α j y j x j ⋅   x i + b ) ≤ 0 y_{i}(\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot\,x_{i}+b)\leq0 yi(j=1Nαjyjxjxi+b)0

迭代条件:
y i ( ∑ j = 1 N α j y j x j ⋅ x i + b ) = y i [ ( α 1 y 1 x 1 + α 2 y 2 x 2 + ⋯ + α N y N x N ) ⋅ x i + b ) ] = y i ( α 1 y 1 x 1 ⋅ x i + α 2 y 2 x 2 ⋅ x i + ⋯ + α N y N x N ⋅ x i + b ) ≤ 0 \begin{aligned} y_i\left(\sum_{j=1}^N \alpha_j y_j x_j \cdot x_i+b\right) & \left.=y_i\left[\left(\alpha_1 y_1 x_1+\alpha_2 y_2 x_2+\cdots+\alpha_N y_N x_N\right) \cdot x_i+b\right)\right] \\ & =y_i\left(\alpha_1 y_1 x_1 \cdot x_i+\alpha_2 y_2 x_2 \cdot x_i+\cdots+\alpha_N y_N x_N \cdot x_i+b\right) \\ & \leq 0 \end{aligned} yi(j=1Nαjyjxjxi+b)=yi[(α1y1x1+α2y2x2++αNyNxN)xi+b)]=yi(α1y1x1xi+α2y2x2xi++αNyNxNxi+b)0
Gram 矩阵: N N N 维欧式空间中任意 k k k 个向量之间两两的内积所组成的矩阵
G = [ x i ⋅ x j ] N × N = [ x 1 ⋅ x 1 x 1 ⋅ x 2 ⋯ x 1 ⋅ x N x 2 ⋅ x 1 x 2 ⋅ x 2 ⋯ x 2 ⋅ x N ⋮ ⋮ ⋮ x N ⋅ x 1 x N ⋅ x 2 ⋯ x N ⋅ x N ] G=\left[x_i \cdot x_j\right]_{N \times N}=\left[\begin{array}{cccc} x_1 \cdot x_1 & x_1 \cdot x_2 & \cdots & x_1 \cdot x_N \\ x_2 \cdot x_1 & x_2 \cdot x_2 & \cdots & x_2 \cdot x_N \\ \vdots & \vdots & & \vdots \\ x_N \cdot x_1 & x_N \cdot x_2 & \cdots & x_N \cdot x_N \end{array}\right] G=[xixj]N×N= x1x1x2x1xNx1x1x2x2x2xNx2x1xNx2xNxNxN

在感知机的对偶形式中,可将 Gram 矩阵提前算出。

总结归纳

  • 超平面:在几何空间中,如果环境空间中是 n n n 维,那么它所对应的超平面就是 n − 1 n - 1 n1 维的子空间。
  • 感知机必须要求数据集线性可分,因为算法的停止条件就是没有误分类点。
  • 对于所有误分类点到 S \rm S S 的距离: − 1 ∥ w ∥ ∣ w ⋅ x 0 + b ∣ - \frac{1}{\|w\|}\left|w \cdot x_0+b\right| w1wx0+b 1 ∥ w ∥ \frac{1}{\|w\|} w1 不影响损失函数的正负值判断,同时不影响感知机的分类结果,故在损失函数中不体现。
  • 梯度可以简单理解为对损失函数求偏导
  • 梯度下降算法无法处理鞍点的情况,故梯度下降算法只能得到局部最优点,无法找到全局最优解。
  • 当数据维度过高时,批量梯度算法的求解过于复杂,甚至会出现无法求出最优解的情况,故在相关算法中,随机梯度下降法仍是求解的第一选择。
  • 提前将 Gram 矩阵算出,在对偶形式的感知机进行函数计算时,直接利用 Gram 矩阵预先计算的结果,会提高算法的速度。
  • 若采用随机梯度下降法, y i ( ∑ j = 1 N α j y j x j ⋅   x i + b ) ≤ 0 y_{i}(\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot\,x_{i}+b)\leq0 yi(j=1Nαjyjxjxi+b)0 实际上只有一个误分类点,并无求和。
  • 感知机求得的超平面不唯一,若唯一则需要添加限定条件,这是支持向量机的内容。

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

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

相关文章

杂谈:created中两次数据修改,会触发几次页面更新?

面试题&#xff1a;created生命周期中两次修改数据&#xff0c;会触发几次页面更新&#xff1f; 一、同步的 先举个简单的同步的例子&#xff1a; new Vue({el: "#app",template: <div><div>{{count}}</div></div>,data() {return {count…

[架构之路-124]-《软考-系统架构设计师》-操作系统-3-操作系统原理 - IO设备、微内核、嵌入式系统

第11章 操作系统第5节 设备管理/文件管理&#xff1a;IO5.1 文件管理5.2 IO设备管理&#xff08;内存与IO设备之间&#xff09;数据传输控制是指如何在内存和IO硬件设备之间传输数据&#xff0c;即&#xff1a;设备何时空闲&#xff1f;设备何时完成数据的传输&#xff1f;SPOO…

vue实战-深入响应式数据原理

本文将带大家快速过一遍Vue数据响应式原理&#xff0c;解析源码&#xff0c;学习设计思路&#xff0c;循序渐进。 数据初始化 _init 在我们执行new Vue创建实例时&#xff0c;会调用如下构造函数&#xff0c;在该函数内部调用this._init(options)。 import { initMixin } f…

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

Leetcode 704 二分查找题目链接&#xff1a;704二分查找介绍给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。思路先看看一个…

MyBatis源码分析(三)SqlSession的执行主流程

文章目录一、熟悉主要接口二、SqlSession的获取1、通过数据源获取SqlSession三、Mapper的获取与代理1、从SqlSession获取Mapper2、执行Mapper方法前准备逻辑3、SqlCommand的创建4、构造MethodSignature四、执行Mapper的核心方法1、执行Mapper的方法逻辑五、简单SELECT处理过程1…

【蓝桥杯试题】 递归实现指数型枚举例题

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 &#x1f91e; 作者&#xff1a;那就叫我亮亮叭 &#x1f4d5; 专栏&#xff1a;蓝桥杯试题 文章目录1. 题目描述2. 思路解释2.1 时间复杂度2.2 递归3. 代码展示最后&#x…

超级简单又功能强大还免费的电路仿真软件

设计电路的时候经常需要进行一些电路仿真。常用的仿真软件很多&#xff0c;由于大学里经常使用Multisim作为教学软件&#xff0c;所以基本上所有从事硬件开发的人都听过或者用过Multisim这个软件。这个软件最大的好处就是简单直观&#xff0c;可以在自己的PC上搭建电路并使用软…

gdb常用命令详解

gdb常用调试命令概览和说明 run命令 在默认情况下&#xff0c;gdbfilename只是attach到一个调试文件&#xff0c;并没有启动这个程序&#xff0c;我们需要输入run命令启动这个程序&#xff08;run命令被简写成r&#xff09;。如果程序已经启动&#xff0c;则再次输入 run 命令…

从面试官角度告诉你高级性能测试工程师面试必问的十大问题

目录 1、介绍下最近做过的项目&#xff0c;背景、预期指标、系统架构、场景设计及遇到的性能问题&#xff0c;定位分析及优化&#xff1b; 2、项目处于什么阶段适合性能测试介入&#xff0c;原因是什么&#xff1f; 3、性能测试场景设计要考虑哪些因素&#xff1f; 4、对于一…

SAP MM学习笔记4-在库类型都有哪些,在库类型有哪些控制点

SAP MM模块中的在库类型有3种&#xff1a; 1&#xff0c;利用可能在库 (非限制使用库存) 2&#xff0c;品质检查中在库 &#xff08;质检库存&#xff09; 3&#xff0c;保留在库&#xff08;已冻结库存&#xff09; 这3种在库标识该物料的状态&#xff0c;是否可用。 这3种…

bugku 安全加固1

js劫持 根据题目所给出的ip访问原本应该进入一个学院的二手交易网站 但是实际进入了一个博客 flag需要去除最后的斜杆 黑客首次webshell密码 利用所给的账户密码进行登录进入www目录并且进行备份 #我们对网站进行备份 cd /var/www && tar -czvf /tmp/html.tgz html …

Kubernetes之存储管理(上)

数据持久化的主要方式简介 pod是临时的&#xff0c;pod中的数据随着pod生命周期的结束也会被一起删除。 pod想实现数据持久化主要有以下几种方式&#xff1a; emptyDir&#xff1a;类似于docker run –v /xx&#xff0c;在物理机里随机产生一个目录(这个目录其实挂载的是物理…

墨天轮2022年度数据库获奖名单

2022年&#xff0c;国家相继从高位部署、省级试点布局、地市重点深入三个维度&#xff0c;颁布了多项中国数据库行业发展的利好政策。但是我们也能清晰地看到&#xff0c;中国数据库行业发展之路道阻且长&#xff0c;而道路上的“拦路虎”之一则是生态。中国数据库的发展需要多…

如何创建发布新品上市新闻稿

推出新产品对任何企业来说都是一个激动人心的时刻&#xff0c;但向潜在客户宣传并围绕您的新产品引起轰动也可能是一个挑战。最有效的方法之一就是通过发布新品上市新闻稿。精心制作的新闻稿可以帮助我们通过媒体报道、吸引并在目标受众中引起关注。下面&#xff0c;我们将讲述…

计算机组成原理4小时速成2:计算机运算方法,原码,反码,补码,移位,加法减法,乘除法

计算机组成原理4小时速成2&#xff1a;计算机运算方法&#xff0c;原码&#xff0c;反码&#xff0c;补码&#xff0c;移位&#xff0c;加法减法&#xff0c;乘除法 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多…

OpenCV入门(二)快速学会OpenCV1图像基本操作

OpenCV入门&#xff08;一&#xff09;快速学会OpenCV1图像基本操作 不讲大道理&#xff0c;直接上干货。操作起来。 众所周知&#xff0c;OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大。今天就从读取图片&#xff0c;显示图片&#xff0c;输出图片信息和简单的…

记录自己遇到的关于Hashmap的面试题

一.麻烦讲述一下Hashmap的扩容原理 jdk1.8中的hashmap扩容原理 1.put流程图 首先贴一张图(图片来源于传送门&#xff09;&#xff0c;多谢大佬的美图&#xff0c;此图已经完美的描述了put的整个流程&#xff0c;我也就不想自己画了&#xff0c;嘿嘿: 2.hashmap中几个比较重…

hive临时目录清理

hive运行失败会导致临时目录无法自动清理&#xff0c;因此需要自己写脚本去进行清理 实际发现hive临时目录有两个&#xff1a; /tmp/hive/{user}/* /warehouse/tablespace//hive/**/.hive-staging_hive 分别由配置hive.exec.scratchdir和hive.exec.stagingdir决定: 要注意的…

requests---(4)发送post请求完成登录

前段时间写过一个通过cookies完成登录&#xff0c;今天我们写一篇通过post发送请求完成登录豆瓣网 模拟登录 1、首先找到豆瓣网的登录接口 打开豆瓣网站的登录接口&#xff0c;请求错误的账号密码&#xff0c;通过F12或者抓包工具找到登录接口 通过F12抓包获取到请求登录接口…

每日分享(微信社区小程序/h5/圈子论坛贴吧交友/博客/社交)

1.Java单元测试实战 高清PDF中文版 Java单元测试实战来自于作者多年来的单元测试实践&#xff0c;最初发表在阿里内网的ATA上&#xff0c;成为了很多阿里同学单元测试学习的必读文章。很多程序员认为单元测试会花费大量的时间&#xff0c;因此他们写单元测试的意愿比较低&…