機器學習6——線性分類函數

線性分類函數

  • 分類問題的兩種決策方法:

    • 概率方法:通過計算后驗概率進行分類。優點是在概率分布已知的情況下可以得到最優解,缺點是實際中概率密度通常未知,需要通過大量數據估計。
    • 判別方法:假設判別函數的形式已知,通過訓練樣本估計判別函數的參數。優點是實現簡單,缺點是需要假設函數的形式,可能不適合復雜數據。
  • 線性判別函數定義為:
    g i ( x ) = w i T x + w i 0 g_i(\mathbf{x}) = \mathbf{w}_i^T \mathbf{x} + w_{i0} gi?(x)=wiT?x+wi0?

    • 易于計算,分析,學習
    • 通過最小化損失函數來學習
    • 需要數據線性可分
    • 訓練誤差小不能保證測試誤差小
  • 線性判別函數的決策面推導:

    • 決策面定義:$ g(\mathbf{x}) = 0 $,即: w T x + w 0 = 0 \mathbf{w}^T \mathbf{x} + w_0 = 0 wTx+w0?=0

      推導: g ( x ) = w T x + w T w ∥ w ∥ 2 w 0 = 0 g(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + \frac{\mathbf{w}^T \mathbf{w}}{\|\mathbf{w}\|^2} w_0 = 0 g(x)=wTx+w2wTw?w0?=0

      w T ( x + w 0 ∥ w ∥ 2 w ) = 0 \mathbf{w}^T \left( \mathbf{x} + \frac{w_0}{\|\mathbf{w}\|^2} \mathbf{w} \right) = 0 wT(x+w2w0??w)=0

      • w 是超平面的法向量,決定其方向。
      • w 0 ∥ w ∥ 2 w \frac{w_0}{\|\mathbf{w}\|^2} \mathbf{w} w2w0??w表示超平面相對于原點的偏移。
  • 增廣向量

    我們希望把這個線性函數寫成沒有顯式偏置項的形式:
    g ( x ) = w T x + w 0 ? a T y g(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + w_0 \quad \Rightarrow \quad \mathbf{a}^T \mathbf{y} g(x)=wTx+w0??aTy
    為此,引入兩個新的概念:

    1. 增廣樣本向量(augmented vector):
      y = [ x 1 ] ∈ R d + 1 \mathbf{y} = \begin{bmatrix} \mathbf{x} \\ 1 \end{bmatrix} \in \mathbb{R}^{d+1} y=[x1?]Rd+1
      —— 就是在原向量 x \mathbf{x} x 后面補一個 1。

    2. 增廣權重向量
      a = [ w w 0 ] ∈ R d + 1 \mathbf{a} = \begin{bmatrix} \mathbf{w} \\ w_0 \end{bmatrix} \in \mathbb{R}^{d+1} a=[ww0??]Rd+1

    于是有:
    g ( x ) = w T x + w 0 = a T y g(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + w_0 = \mathbf{a}^T \mathbf{y} g(x)=wTx+w0?=aTy
    這樣就把原來有偏置項的表達式轉換成了一個 統一的向量內積形式

  • 線性可分的形式化定義

    • 給定樣本集合 y 1 , y 2 , … , y n y_1, y_2, \ldots, y_n y1?,y2?,,yn?,部分標記為 ω 1 \omega_1 ω1?,部分為 ω 2 \omega_2 ω2?

      如果存在一個向量 a a a,使得:

      • a T y i > 0 a^T y_i > 0 aTyi?>0,當 y i y_i yi? 屬于 ω 1 \omega_1 ω1?
      • a T y i < 0 a^T y_i < 0 aTyi?<0,當 y i y_i yi? 屬于 ω 2 \omega_2 ω2?
  • 權重空間的解區域

    • 若將類別 ω 2 \omega_2 ω2? 的樣本統一變號,即:
      y i ← ? y i , 當? y i ∈ ω 2 y_i \leftarrow -y_i, \quad \text{當 } y_i \in \omega_2 yi??yi?,?yi?ω2?
      則線性可分性的問題就變成了:
      ? i , a T y i > 0 \forall i, \quad a^T y_i > 0 ?i,aTyi?>0
      即,所有樣本點在向量 a a a 的方向上都有正投影

    • 如果所有樣本 y i T a > 0 y_i^T a > 0 yiT?a>0,那么這些 a a a 向量就構成了解空間。

    • PPT 上給出了縮小解空間的一種方式:引入“邊界”(margin),要求 y i T a > b i y_i^T a > b_i yiT?a>bi?,而不是只是大于0。這里 b i > 0 b_i > 0 bi?>0,常用形式是 b i = 1 ∥ a ∥ b_i = \frac{1}{\|a\|} bi?=a1?,即邊界和法向量成反比。

  • 準則函數

    • 衡量錯誤或者代價

    • 目標是最小化它的值

    • 轉化為函數優化問題

    • 感知機的準則函數舉例:

      • J ( w , b ) = ? ∑ i = 1 n sign [ ω i ? g ( x i ) ] J(\mathbf{w}, b) = - \sum_{i=1}^n \text{sign}[\omega_i \cdot g(\mathbf{x}_i)] J(w,b)=?i=1n?sign[ωi??g(xi?)]
      • J ( w , b ) = ? ∑ i = 1 n ω i ? g ( x i ) J(\mathbf{w}, b) = - \sum_{i=1}^n \omega_i \cdot g(\mathbf{x}_i) J(w,b)=?i=1n?ωi??g(xi?)
      • J ( w , b ) = ∑ i = 1 n ( g ( x i ) ? ω i ) 2 J(\mathbf{w}, b) = \sum_{i=1}^n (g(\mathbf{x}_i) - \omega_i)^2 J(w,b)=i=1n?(g(xi?)?ωi?)2

      ω i ∈ ? 1 , + 1 \omega_i \in {-1, +1} ωi??1,+1 是樣本 x i x_i xi? 的真實標簽。

梯度下降算法

想象需要優化的函數是一座山,沿著下山方向下山

  • 根據泰勒公式展開:
    f ( x + Δ x ) ≈ f ( x ) + ? f ( x ) ? Δ x + o ( ∥ Δ x ∥ ) ? 高階小量 f(x + \Delta x) \approx f(x) + \nabla f(x)^\top \Delta x + \underbrace{o(\|\Delta x\|)}_{\text{高階小量}} f(x+Δx)f(x)+?f(x)?Δx+高階小量 o(∥Δx)??
    如果我們取:
    Δ x = ? η ? f ( x ) \Delta x = -\eta \nabla f(x) Δx=?η?f(x)
    代入得:
    f ( x + Δ x ) ≈ f ( x ) ? η ? f ( x ) ? ? f ( x ) = f ( x ) ? η ∥ ? f ( x ) ∥ 2 f(x + \Delta x) \approx f(x) - \eta \nabla f(x)^\top \nabla f(x) = f(x) - \eta \|\nabla f(x)\|^2 f(x+Δx)f(x)?η?f(x)??f(x)=f(x)?η∥?f(x)2
    由于 η > 0 \eta > 0 η>0,且 ∥ ? f ( x ) ∥ 2 ≥ 0 \|\nabla f(x)\|^2 \geq 0 ∥?f(x)20,所以有:
    f ( x + Δ x ) ≤ f ( x ) f(x + \Delta x) \leq f(x) f(x+Δx)f(x)

  • 梯度下降的迭代流程:

    1. 初始化 x 0 x_0 x0?

    2. 設置學習率 η > 0 \eta > 0 η>0 和收斂閾值 ? \epsilon ?

    3. 重復執行:
      x k + 1 = x k ? η ? f ( x k ) x_{k+1} = x_k - \eta \nabla f(x_k) xk+1?=xk??η?f(xk?)
      直到梯度的模很小(即差不多到最低點)。

    學習率太大→跳躍,太小→收斂慢。

牛頓法

  • 先從一維開始(找方程的根)

    目標:解一個方程: f ( x ) = 0 f(x) = 0 f(x)=0。我們想找一個 x x x,使得函數在該點為 0。

    • 基本思路

      1. 從一個初始點 x 0 x_0 x0? 出發;
      2. 用函數的切線來逼近根;
      3. 一步步更新 x 1 , x 2 , x 3 , … x_1, x_2, x_3, \dots x1?,x2?,x3?,,越來越接近真解。
    • 數學推導(重點)

      • 給定當前點 x k x_k xk?,在該點做一個切線(用一階泰勒展開):

      f ( x ) ≈ f ( x k ) + f ′ ( x k ) ( x ? x k ) f(x) \approx f(x_k) + f'(x_k)(x - x_k) f(x)f(xk?)+f(xk?)(x?xk?)

      • 我們希望 f ( x ) = 0 f(x) = 0 f(x)=0,代入這個近似式:

      f ( x k ) + f ′ ( x k ) ( x ? x k ) = 0 f(x_k) + f'(x_k)(x - x_k) = 0 f(xk?)+f(xk?)(x?xk?)=0

      解得:
      x = x k ? f ( x k ) f ′ ( x k ) x = x_k - \frac{f(x_k)}{f'(x_k)} x=xk??f(xk?)f(xk?)?
      這就是 牛頓法的一維更新公式
      x k + 1 = x k ? f ( x k ) f ′ ( x k ) x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)} xk+1?=xk??f(xk?)f(xk?)?
      在這里插入圖片描述

  • 多維擴展(用于優化)

    當我們不再是解方程,而是要 最小化一個函數 f ( x ) f(\mathbf{x}) f(x)
    目標: min ? f ( x ) \min f(\mathbf{x}) minf(x)
    我們要找一個點 x ? \mathbf{x}^* x?,使得 f ( x ) f(\mathbf{x}) f(x) 最小,也就是 ? f ( x ) = 0 \nabla f(\mathbf{x}) = 0 ?f(x)=0

    • 思路

      在高維情況下,我們可以使用 泰勒二階展開式 來近似 f ( x + Δ x ) f(\mathbf{x} + \Delta \mathbf{x}) f(x+Δx)
      f ( x + Δ x ) ≈ f ( x ) + ? f ( x ) T Δ x + 1 2 Δ x T H ( x ) Δ x f(\mathbf{x} + \Delta \mathbf{x}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^T \Delta \mathbf{x} + \frac{1}{2} \Delta \mathbf{x}^T H(\mathbf{x}) \Delta \mathbf{x} f(x+Δx)f(x)+?f(x)TΔx+21?ΔxTH(x)Δx
      其中:

      • ? f ( x ) \nabla f(\mathbf{x}) ?f(x):一階導數(梯度向量)
      • H ( x ) H(\mathbf{x}) H(x):二階導數矩陣(Hessian矩陣)
    • 目標:讓這個函數值最小!

      我們對上面的展開式求導,令導數為 0(為什么?一個函數在某點取得極小值(或極大值),該點的導數為零(如果導數存在)),有:
      ? f ( x ) + H ( x ) Δ x = 0 ? Δ x = ? H ( x ) ? 1 ? f ( x ) \nabla f(\mathbf{x}) + H(\mathbf{x}) \Delta \mathbf{x} = 0 \Rightarrow \Delta \mathbf{x} = - H(\mathbf{x})^{-1} \nabla f(\mathbf{x}) ?f(x)+H(x)Δx=0?Δx=?H(x)?1?f(x)
      于是就得到 牛頓法的多維更新公式
      x k + 1 = x k ? H ? 1 ( x k ) ? f ( x k ) \mathbf{x}_{k+1} = \mathbf{x}_k - H^{-1}(\mathbf{x}_k) \nabla f(\mathbf{x}_k) xk+1?=xk??H?1(xk?)?f(xk?)

  • 為什么一維只展開一階項,多維要展開到二階項?多維可以只展開一項嗎?或者展開更多項?

    因為在做什么問題!

    • 一維時:

      我們只是想找根(即 f ( x ) = 0 f(x) = 0 f(x)=0
      所以我們只需要一階導數的切線逼近:
      f ( x ) ≈ f ( x k ) + f ′ ( x k ) ( x ? x k ) f(x) \approx f(x_k) + f'(x_k)(x - x_k) f(x)f(xk?)+f(xk?)(x?xk?)
      設這個近似函數等于0即可。

    • 多維優化時:

      我們要找極小值,不只是找根。

      這時一階導數并不能判斷拐點類型(極大?極小?拐點?),必須引入二階信息(曲率):
      f ( x + Δ x ) ≈ f ( x ) + ? f ( x ) T Δ x + 1 2 Δ x T H Δ x f(\mathbf{x} + \Delta \mathbf{x}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^T \Delta \mathbf{x} + \frac{1}{2} \Delta \mathbf{x}^T H \Delta \mathbf{x} f(x+Δx)f(x)+?f(x)TΔx+21?ΔxTHΔx

      • 第一項:函數值
      • 第二項:梯度,方向信息
      • 第三項:Hessian,曲率信息
    • 為什么需要二階項?

      • 如果你只看一階項,相當于只看斜率,不知道是山頂還是山谷;
      • 二階項(Hessian)告訴你,函數在這一點的“凹凸”:
        • Hessian 正定 → 函數局部向上開口 → 極小值 ?
        • Hessian 負定 → 極大值 ?
        • Hessian 不定 → 鞍點 ??
    • 多維可以只展開一項:這就是梯度下降法

      • 它忽略了二階信息,只用了:

      f ( x + Δ x ) ≈ f ( x ) + ? f ( x ) T Δ x f(\mathbf{x} + \Delta \mathbf{x}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^T \Delta \mathbf{x} f(x+Δx)f(x)+?f(x)TΔx

      然后讓 Δ x = ? η ? f ( x ) \Delta \mathbf{x} = - \eta \nabla f(\mathbf{x}) Δx=?η?f(x),即反方向下降

      但這會導致收斂慢、不穩定。

    • 也可以展開更多項,但通常沒必要。

      • 泰勒展開可以無限展開高階項:

      f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x ? x 0 ) + 1 2 f ′ ′ ( x 0 ) ( x ? x 0 ) 2 + 1 6 f ′ ′ ′ ( x 0 ) ( x ? x 0 ) 3 + … f(x) = f(x_0) + f'(x_0)(x - x_0) + \frac{1}{2}f''(x_0)(x - x_0)^2 + \frac{1}{6}f'''(x_0)(x - x_0)^3 + \dots f(x)=f(x0?)+f(x0?)(x?x0?)+21?f′′(x0?)(x?x0?)2+61?f′′′(x0?)(x?x0?)3+

      • 但高階導數計算極其復雜;
      • 通常二階展開就能在極小值附近擬合得很好(函數形狀如碗口);
      • 這就是牛頓法停止在二階的原因。
  • 既然目標是找極小值點,為什么不能直接對原函數求導,令導數等于0?(解析法)

    如果函數 f ( x ) f(x) f(x) 是光滑可導的,我們當然可以直接求導并令導數為0,找到所謂的極值點(極小值或極大值)。但在實際應用中,“直接求導=0”經常做不到或不現實,原因如下:

    • 函數可能沒有解析解
      很多現實問題的目標函數形式太復雜,根本找不到 ? f ( x ) = 0 \nabla f(x) = 0 ?f(x)=0 的顯式解,比如:

      • 函數包含 非線性嵌套結構,如: f ( x ) = log ? ( 1 + e ? ( A x + b ) 2 ) f(x) = \log(1 + e^{-(Ax + b)^2}) f(x)=log(1+e?(Ax+b)2)
      • 參數是 高維張量(如深度學習模型中的幾百萬維參數)

      此時我們只能數值優化,從一個起始點出發逐步更新參數靠近最優點。

    • 即使可以求導,也可能解不出來
      舉個例子:
      f ( x ) = x 5 ? 3 x + 1 f(x) = x^5 - 3x + 1 f(x)=x5?3x+1
      對它求導是簡單的:
      f ′ ( x ) = 5 x 4 ? 3 f'(x) = 5x^4 - 3 f(x)=5x4?3
      你能顯式求出解嗎?不能。我們只能用牛頓法或者二分法來數值逼近根。

    • 優化法能處理約束問題
      現實中很多問題還有 約束條件
      min ? f ( x ) subject?to? A x ≤ b \min f(x) \quad \text{subject to } \quad Ax \leq b minf(x)subject?to?Axb
      這時候直接對 f ( x ) f(x) f(x) 求導=0 是無效的,你還需要引入拉格朗日乘子等技巧,或者干脆使用優化算法如:

      • 投影梯度法
      • 拉格朗日乘子法
      • 對偶法
      • 內點法、罰函數法、SLP 等等
    • 優化方法適合自動化處理
      在現代機器學習和工程中,我們希望:

      • 用程序自動優化復雜函數
      • 不依賴人工推導
      • 能處理幾十萬參數的模型(如深度學習)

      這時優化方法(如SGD、Adam、LBFGS)顯然比“手動解導數方程”更加實用。

  • 牛頓下降方向為何更陡?

    牛頓法的下降方向更陡,是因為它不僅利用了梯度的方向,還根據 Hessian(即二階導數信息)自適應地調整了步長和方向,使下降速度沿著最快變小的路徑。

    • 梯度下降(Gradient Descent)

    Δ x = ? η ? f ( x ) \Delta x = -\eta \nabla f(x) Δx=?η?f(x)

    只用一階導數,沿著負梯度走,小步慢慢試探。

    • 牛頓法(Newton’s Method)

    Δ x = ? H ? 1 ? f ( x ) \Delta x = - H^{-1} \nabla f(x) Δx=?H?1?f(x)

    不僅看梯度,還用 Hessian(H)矩陣調整方向和步幅。

    數學上,牛頓法是這樣構造的:

    • 近似 f ( x ) f(x) f(x) 為一個二次函數(拋物面):

    f ( x + Δ x ) ≈ f ( x ) + ? f ( x ) T Δ x + 1 2 Δ x T H Δ x f(x + \Delta x) \approx f(x) + \nabla f(x)^T \Delta x + \frac{1}{2} \Delta x^T H \Delta x f(x+Δx)f(x)+?f(x)TΔx+21?ΔxTHΔx

    • 找這個二次函數的極小值點。
    • 解出最佳 Δ x \Delta x Δx

    H Δ x = ? ? f ( x ) ? Δ x = ? H ? 1 ? f ( x ) H \Delta x = - \nabla f(x) \quad \Rightarrow \quad \Delta x = -H^{-1} \nabla f(x) HΔx=??f(x)?Δx=?H?1?f(x)

    所以牛頓法每次直接跳到局部拋物線的最低點方向,而不是慢慢沿斜坡滑。

    在這里插入圖片描述

  • 比較梯度下降與牛頓法:

    • 牛頓法每一步通常比簡單的梯度下降法帶來更大的改進,即使梯度下降使用了最優步長 η k \eta_k ηk?
    • 但是,如果 Hessian 矩陣 Q Q Q 是奇異的(singular),那么牛頓法不可用。
    • 即使 Hessian Q Q Q 是非奇異的,計算它也是很耗時的,時間復雜度是 O ( d 3 ) O(d^3) O(d3)
    • 實際上,給梯度下降法設一個常數步長(即使比最優步長小一點),通常總開銷比每次都精確尋找最優 η k \eta_k ηk? 更低。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88797.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88797.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88797.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sentinel(三):Sentinel熔斷降級

一、Sentinel熔斷概念介紹 官方文檔網址&#xff1a;circuit-breaking | Sentinel 1、Sentinel熔斷基本介紹 除了流量控制以外&#xff0c;對調用鏈路中不穩定的資源進行熔斷降級也是保障高可用的重要措 施之一。一個服務常常會調用別的模塊&#xff0c;可能是另外的一個遠程服…

PostgreSQL 主從集群搭建

下面是 PostgreSQL 主從復制&#xff08;Streaming Replication&#xff09;環境的安裝與配置指南&#xff0c;適合在兩臺或多臺服務器之間構建一主一從&#xff08;或一主多從&#xff09;的高可用讀寫分離系統。 環境準備 角色主機名/IP說明主庫192.168.1.10可讀寫&#xff…

STM32安全固件升級:使用自定義 bootloader 實現SD卡固件升級,包含固件加密

前言 在 STM32 嵌入式開發中&#xff0c;Bootloader 是一個不可或缺的模塊。ST 公司為 STM32 提供了功能完備的官方 Bootloader&#xff0c;支持多種通信接口&#xff08;如 USART、USB DFU、I2C、SPI 等&#xff09;&#xff0c;適用于標準的固件更新方案。 然而&#xff0c…

一步部署APache編譯安裝腳本

接下來我來介紹以下編譯安裝的好處 編譯安裝的優點與缺點 一、優點 高度可定制 可根據實際需求啟用或關閉特性&#xff08;如 Apache 的模塊、MySQL 的引擎等&#xff09;。 靈活控制編譯參數、優化性能&#xff08;如 --enable-xxx、--with-xxx&#xff09;。 更高的性能…

[Linux]mmap()函數內存映射原理及用法

一、內存映射 內存映射&#xff0c;簡而言之就是將用戶空間的一段內存區域映射到內核空間&#xff0c;映射成功后&#xff0c;用戶對這段內存區域的修改可以直接反映到內核空間&#xff0c;同樣&#xff0c;內核空間對這段區域的修改也直接反映用戶空間。那么對于內核空間和用…

通信無BUG,ethernet ip轉profinet網關,汽車焊接設備通信有心機

在運用“激光釬焊”對汽車車頂、側面板、后行李箱蓋等位置進行接合時&#xff0c;必須配備能夠沿著復雜車身線條&#xff0c;對細窄焊接線實施高精度快速檢測及模仿控制的“焊縫跟蹤控制”。 那么汽車生產線的系統升級改造迫在眉睫&#xff0c;當西門子PLC和庫卡機器人無法通信…

python腳本ETH獲取最新發行版本并將是否更新信息發送到釘釘

import requests import json import time import hmac import hashlib import base64 import urllib.parse# 1. 配置釘釘機器人 webhook "https://oapi.dingtalk.com/robot/send?access_tokenXXX" secret "XXX" # 如果沒有加簽驗證&#xff0c;請設…

【Docker基礎】Docker容器管理:docker ps及其參數詳解

目錄 1 docker ps命令概述 1.1 命令定位與作用 1.2 命令基本語法 2 基礎參數詳解 2.1 默認輸出解析 2.2 核心參數解析 2.2.1 -a, --all 2.2.2 -q, --quiet 2.2.3 --no-trunc 3 高級過濾與格式化 3.1 過濾器(--filter)詳解 3.1.1 常用過濾條件 3.1.2 實際應用示例 …

應急響應-感染Neshta病毒

病毒確定&#xff1a; 根據感染現象確定為Virus/Win32.Neshta家族病毒 病毒表現&#xff1a; 該病毒為感染式病毒。該病毒會在系統%SystemRoot%目錄下釋放svchost.com文件&#xff0c;并通過添加注冊表的方式確保每個exe文件執行的時候都會先執行這個文件。該病毒還會收集系統信…

Hyperledger Fabric 入門筆記(二十)Fabric V2.5 測試網絡進階之Tape性能測試

文章目錄 前言一、介紹二、架構三、安裝說明四、使用方法4.1. 修改配置文件4.2. 啟動測試網絡4.3. 運行測試 前言 本文介紹由Hyperledger中國技術工作組提供的另一款區塊鏈網絡性能測試工具Tape的架構、安裝和在Fabric測試網絡中的使用。 一、介紹 Tape是一款輕量級的、可以快…

怎樣在 VS Code 中快速創建 Vue 單文件組件(SFC)的基礎模板結構?

問題 在Vue項目的開發中&#xff0c;我們經常遇到一個問題&#xff0c;創建新組件時要自己輸入基本的框架&#xff0c;比如&#xff1a; <template><div class"page-box"></div> </template><script> export default {name: ,data()…

高防IP在服務器中的作用都有哪些?

高防IP作為一種通過技術手段讓用戶網絡服務更加安全的一種IP地址&#xff0c;有著更高的防御能力&#xff0c;有著強大的流量清洗中心和防御系統&#xff0c;幫助企業實時監控網絡流量&#xff0c;將惡意的用戶請求識別并過濾掉&#xff0c;保護目標服務器不會受到網絡攻擊&…

實戰 X-AnyLabeling:構建高效自動標注系統的工程實踐

文章目錄 一、項目背景與目標二、系統架構與模塊劃分2.1 模塊組成說明2.2 架構圖 三、模型封裝與平臺對接3.1 模型封裝接口3.2 接入 X-AnyLabeling 平臺 四、可視化與預測驗證4.1 UI 預測標簽預覽 五、性能優化與工程經驗5.1 模型加速與推理優化5.2 經驗總結5.3 實際效果 本文將…

UC3842/UC3843反激教程教學開關電源 反激設計步驟,每一關鍵元器件計算

資料下載地址&#xff1a;UC3842/UC3843反激教程教學開關電源 反激設計步驟&#xff0c;每一關鍵元器件計算 1、原理圖 2、PCB圖 3、變壓器設計資料 4、開關電源設計資料 5、主要元器件說明書 6、系統整體資料 7、說明文檔 7.1、電源設計概述 電源規格&#xff1a;設計一款 2…

Docker 入門教程(二):Docker 的基本原理

文章目錄 &#x1f433; Docker 入門教程&#xff08;二&#xff09;&#xff1a;Docker 的基本原理1. Docker 架構總覽&#xff1a;三大核心角色2. 鏡像與容器的關系3. 容器啟動流程&#xff1a;docker run 背后發生了什么&#xff1f; &#x1f433; Docker 入門教程&#xf…

21.安卓逆向2-frida hook技術-HookOkHttp的攔截器

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;圖靈Python學院 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取碼&#xff1…

小程序入門:swpier 和 swpier-item 的基本使用

在前端開發中&#xff0c;創建交互式的用戶界面組件是至關重要的。今天&#xff0c;我們將深入探討 swpier 和 swpier-item 的基本使用方法&#xff0c;這兩個組件在構建輪播圖等滑動效果的場景中非常實用。 一、swpier 組件概述 swpier 組件是實現滑動效果的核心容器。它負責…

SQL學習筆記4

約束 1、約束 約束&#xff0c;是指作用在表中字段上的規則&#xff0c;用于限制字段輸入的數據&#xff0c;使得表格式統一&#xff0c;數據內容正確。同一個字段的約束可以有多個 約束包括&#xff1a; 非空約束&#xff0c;限制表中的值不為null:not null 唯一約束&…

力扣刷題(第七十天)

靈感來源 - 保持更新&#xff0c;努力學習 - python腳本學習 比特位計數 解題思路 對于任意整數 x&#xff0c;其 1 的個數等于 x // 2 的 1 的個數加上 x % 2。狀態轉移方程&#xff1a;dp[x] dp[x // 2] (x % 2)。 class Solution:def countBits(self, n: int) ->…

鴻蒙網絡編程系列56-倉頡版通過數據包結束標志解決TCP粘包問題

1. TCP粘包問題解決思路 在本系列的上一篇文章演示了TCP數據粘包的原因以及可能的解決方法&#xff0c;本文將通過其中的添加數據包結束標志的方法來解決這個問題。我們知道&#xff0c;數據粘包的原因是因為發送的時候沒有標明數據包的邊界&#xff0c;那么&#xff0c;我們人…