Deep Learning_ Foundations and Concepts-Springer (2024)【拜讀】20章3節

在這里插入圖片描述

Diffusion Models 擴散模型

我們已經了解到,構建強大的生成模型的一種有效方法是:先引入一個關于潛在變量z的分布p(z),然后使用深度神經網絡將z變換到數據空間x。由于神經網絡具有通用性,能夠將簡單固定的分布轉化為關于x的高度靈活的分布族,因此為p(z)采用如高斯分布N(z|0, I)這類簡單固定的分布就足夠了。在之前的章節中,我們探討了多種符合這一框架的模型,這些模型基于生成對抗網絡、變分自編碼器以及歸一化流,在定義和訓練深度神經網絡方面采用了不同的方法。

在本章中,我們將探討這一通用框架下的第四類模型,即擴散模型(diffusion models),也被稱為去噪擴散概率模型(denoising diffusion probabilistic models,簡稱DDPMs)(Sohl-Dickstein等人,2015年;Ho、Jain和Abbeel,2020年)。這類模型已成為許多應用領域中最先進的模型。為便于說明,我們將重點討論圖像數據模型,盡管該框架具有更廣泛的適用性。其核心思想是,對每張訓練圖像應用多步加噪過程,將其逐步破壞并最終轉化為一個服從高斯分布的樣本。這一過程如圖20.1所示。隨后,訓練一個深度神經網絡來逆轉這一過程;一旦訓練完成,該網絡就可以從高斯分布中采樣作為輸入,進而生成新的圖像

擴散模型可被視為一種分層變分自編碼器的變體,其中編碼器分布是固定的由加噪過程所定義,而僅需學習生成分布(Luo,2022)。這類模型易于訓練,在并行硬件上擴展性良好,且能規避對抗訓練中的挑戰與不穩定性問題,同時生成結果的質量可與生成對抗網絡相媲美甚至更優。然而,由于需要通過解碼器網絡進行多次前向傳播,生成新樣本的計算成本可能較高(Dhariwal和Nichol,2021)。

20.3 Score Matching

本章迄今討論的去噪擴散模型與另一類深度生成模型存在緊密關聯——這類模型基于得分匹配(Score Matching)理論(Hyv?rinen,2005;Song和Ermon,2019)獨立發展而來。它們的核心工具是得分函數(Score Function)Stein得分,其定義為數據向量 xxx 的對數似然函數關于 xxx 的梯度,具體表達式為:
在這里插入圖片描述
在此需特別強調:該梯度是針對數據向量 xxx 計算的,而非針對任何參數向量。需注意,得分函數 s(x)s(x)s(x) 是一個與 xxx 維度相同的向量值函數,其每個分量 si(x)=?ln?p(x)?xis_i(x) = \frac{\partial \ln p(x)}{\partial x_i}si?(x)=?xi??lnp(x)? 對應于 xxx 的第 iii 個分量 xix_ixi?。例如,若 xxx 為圖像,則 s(x)s(x)s(x) 也可表示為同尺寸的圖像,其中每個像素對應原圖像的梯度值。圖20.5展示了一個二維概率密度函數及其對應的得分函數示例。

在這里插入圖片描述

圖20.5 分數函數的圖示,展示了二維空間中的一種分布,該分布由作為熱圖表示的高斯混合組成,以及由(20.42)定義的相應分數函數,以向量的形式繪制在規則的x值網格上。# 圖表解釋
這張圖展示了一個二維空間中的分布情況。圖中主要包含兩個部分的信息:
- **熱圖部分**:背景顏色表示了一個由多個高斯分布混合而成的概率分布。顏色越亮(如黃色、橙色區域),表示該區域的概率密度越高;顏色越暗(如黑色區域),表示概率密度越低。這種熱圖的可視化方式有助于直觀地理解分布的形狀和集中區域。
- **向量部分**:在規則的x值網格上繪制了向量,這些向量代表了由公式(20.42)定義的分數函數。向量的方向和長度傳達了分數函數在不同位置的信息,可能用于指示某種梯度、方向場或其他與分布相關的特性。總體而言,這張圖通過熱圖和向量的結合,提供了對二維空間中高斯混合分布及其相關分數函數的直觀可視化,有助于理解分布的結構和分數函數的行為。

要理解得分函數為何有用,可考慮兩個概率密度函數 q(x)q(x)q(x)p(x)p(x)p(x),若它們的得分函數相等(即對所有 xxx 滿足 ?xln?q(x)=?xln?p(x)\nabla_x \ln q(x) = \nabla_x \ln p(x)?x?lnq(x)=?x?lnp(x)),則對等式兩邊關于 xxx 積分并取指數后,可得 q(x)=Kp(x)q(x) = K p(x)q(x)=Kp(x),其中 KKK 是與 xxx 無關的常數。因此,若能通過模型 s(x,w)s(x, w)s(x,w) 學習到得分函數,則相當于建模了原始數據密度 p(x)p(x)p(x)(僅相差一個比例常數 KKK)。

20.3.1 Score loss function

要訓練這樣的模型,我們需要定義一個損失函數,其目標是使模型預測的得分函數 s(x,w)s(x, w)s(x,w) 與生成數據的真實分布 p(x)p(x)p(x) 的得分函數 ?xln?p(x)\nabla_x \ln p(x)?x?lnp(x) 相匹配。此類損失函數的一個典型例子是模型得分與真實得分之間的期望平方誤差,其表達式為:

在這里插入圖片描述
正如我們在能量模型討論中提到的,得分函數無需假設相關概率密度已歸一化,因為梯度算子會消去歸一化常數,這為模型選擇提供了極大的靈活性。使用深度神經網絡表示得分函數 s(x,w)s(x, w)s(x,w) 時,主要有兩種方法:

  1. 直接輸出法:由于得分函數的每個分量 sis_isi? 對應數據 xxx 的第 iii 個分量 xix_ixi?,因此可設計一個神經網絡,使其輸出維度與輸入維度相同

  2. 梯度計算法:得分函數本質上是標量函數(對數概率密度)的梯度,屬于更受限的函數類。因此另一種方法是構建一個僅輸出標量 ?(x)\phi(x)?(x) 的網絡,再通過自動微分計算 ?x?(x)\nabla_x \phi(x)?x??(x)。不過,這種方法需要兩次反向傳播(一次計算 ?(x)\phi(x)?(x),一次計算梯度),計算成本更高。

由于上述原因,大多數實際應用采用第一種方法。

20.3.2 Modified score loss

損失函數(20.43)存在的一個關鍵問題是:我們無法直接對其進行最小化優化,因為真實數據的得分函數 ?xln?p(x)\nabla_x \ln p(x)?x?lnp(x) 是未知的。我們手中僅有的資源是有限的數據集 D={x1,…,xN}\mathcal{D} = \{x_1, \ldots, x_N\}D={x1?,,xN?},通過它可以構造一個經驗分布(empirical distribution):

在這里插入圖片描述
其中 δ(x)\delta(x)δ(x) 是狄拉克δ函數(Dirac delta function),可直觀理解為在 x=0x=0x=0 處的一個無限高、無限窄的“尖峰”,其具有以下特性:
在這里插入圖片描述
由于式(20.44)關于 xxx 不可微,因此無法直接計算其得分函數。為解決這一問題,可通過引入噪聲模型對數據點進行**“平滑處理”,從而得到一個光滑且可微的概率密度表示。這種方法被稱為帕森窗估計(Parzen Estimator)核密度估計(Kernel Density Estimator),其定義為:
在這里插入圖片描述
其中 q(z∣x,σ)q(z|x, \sigma)q(zx,σ) 是噪聲核函數。一種常用的核函數選擇是
高斯核(Gaussian Kernel)**,即:
在這里插入圖片描述

通過引入噪聲模型和高斯核函數,我們可以將離散的經驗分布轉換為連續且可微的密度估計,從而能夠計算分數函數并進行后續的優化和建模工作。這種方法在處理有限數據集和構建可微的概率密度模型時非常有用。

此時我們不再直接最小化損失函數(20.43),而是改用針對平滑后的帕森密度(Parzen density)的對應損失函數,其形式為:
在這里插入圖片描述

一個關鍵的結果是,把公式(20.47)代入到公式(20.49)中,能夠將損失函數重新寫成由(Vincent, 2011)給出的等效形式。這里的核心在于通過特定的代入操作,對損失函數進行形式上的轉換,以便更好地進行分析和處理。

等效形式的損失函數
改寫后的損失函數 J(w)J(\mathbf{w})J(w) 的表達式為:
在這里插入圖片描述

這個表達式是損失函數在一般情況下的等效形式。其中:

  • s(z,w)\mathbf{s}(\mathbf{z}, \mathbf{w})s(z,w) 是我們學習的分數函數模型,w\mathbf{w}w 是模型的參數。
  • ?zln?q(z∣x,σ)\nabla_{\mathbf{z}} \ln q(\mathbf{z}|\mathbf{x}, \sigma)?z?lnq(zx,σ) 是條件概率分布 q(z∣x,σ)q(\mathbf{z}|\mathbf{x}, \sigma)q(zx,σ) 的對數關于 z\mathbf{z}z 的梯度,也就是分數函數。
  • q(z∣x,σ)q(\mathbf{z}|\mathbf{x}, \sigma)q(zx,σ) 是噪聲核函數,通常為高斯核函數 N(z∣x,σ2I)\mathcal{N}(\mathbf{z}|\mathbf{x}, \sigma^2 \mathbf{I})N(zx,σ2I)
  • p(x)p(\mathbf{x})p(x) 是原始數據的概率密度函數。
  • 整個積分表達式衡量了學習到的分數函數模型與真實的分數函數之間的差異,通過積分在所有可能的 x\mathbf{x}xz\mathbf{z}z 上進行加權平均。

使用經驗密度代入后的損失函數
如果我們使用經驗密度(20.44)來代替 p(x)p(\mathbf{x})p(x),即用有限的數據集來近似原始數據的分布,那么損失函數 J(w)J(\mathbf{w})J(w) 變為:
在這里插入圖片描述
在這里插入圖片描述

這里,求和是對數據集中的 NNN 個數據點 xn\mathbf{x}_nxn? 進行的。通過使用經驗密度,我們將連續的積分形式轉換為了離散的求和形式,這使得在實際應用中,當我們只有有限的數據樣本時,能夠更方便地計算和優化損失函數。

總體而言,這部分內容展示了如何通過特定的代入操作和經驗密度的使用,將損失函數轉換為更便于實際應用的形式,為后續的模型訓練和優化提供了基礎。

在這里插入圖片描述
圖20.6 使用由(14.61)定義的朗之萬動力學(Langevin dynamics)對圖20.5中所示的分布進行采樣得到的軌跡示例,展示了三條均從繪圖中心開始的軌跡。

### 詳細解析
1. **朗之萬動力學(Langevin dynamics)**- 朗之萬動力學是一種用于描述隨機過程的物理模型,常用于從復雜的概率分布中進行采樣。在機器學習和統計物理中,它被廣泛應用于模擬分子運動、優化算法以及概率密度估計等任務。公式(14.61)定義了具體的朗之萬動力學方程,雖然圖中未給出該公式的具體內容,但通常朗之萬方程會包含確定性力和隨機力兩部分,用于描述系統在隨機噪聲影響下的演化過程。
2. **對圖20.5中分布的采樣**- 圖20.5展示了一個二維空間中的分布,該分布由高斯混合表示,并通過熱圖和向量進行了可視化。這里的采樣是指根據圖20.5所表示的概率分布生成樣本點,而朗之萬動力學提供了一種從該分布中生成樣本的動態方法。通過模擬朗之萬動力學過程,可以生成一系列的樣本點,這些樣本點的軌跡反映了系統在概率空間中的演化路徑。
3. **軌跡示例**- 圖20.6展示了三條采樣軌跡,這些軌跡都從繪圖的中心開始。每條軌跡由一系列的點組成,點之間的連線表示系統在不同時間步的演化路徑。軌跡上的箭頭可能表示系統在每個時間步的移動方向,反映了朗之萬動力學中確定性力和隨機力的綜合作用。- 從圖中可以看出,不同的軌跡在演化過程中會受到隨機噪聲的影響,從而呈現出不同的路徑。盡管起始點相同,但由于隨機力的存在,軌跡會逐漸分散,覆蓋概率分布的不同區域。這展示了朗之萬動力學在探索復雜概率分布空間時的隨機性和多樣性。總體而言,圖20.6通過具體的軌跡示例,直觀地展示了如何使用朗之萬動力學從給定的概率分布中進行采樣,以及采樣過程中系統的動態演化特征。

對于高斯帕曾核(Gaussian Parzen kernel)(公式20.48),分數函數變為:
在這里插入圖片描述

其中 ?=z?x\boldsymbol{\epsilon} = \mathbf{z} - \mathbf{x}?=z?x 是從 N(z∣0,I)\mathcal{N}(\mathbf{z}|\mathbf{0}, \mathbf{I})N(z0,I) 中抽取的。如果我們考慮特定的噪聲模型(公式20.6),則得到:
在這里插入圖片描述

因此,我們可以看到分數損失(公式20.50)衡量的是神經網絡預測與噪聲 ?\boldsymbol{\epsilon}? 之間的差異。所以,這個損失函數與去噪擴散模型中使用的(公式20.37)形式具有相同的最小值,分數函數 s(z,w)\mathbf{s}(\mathbf{z}, \mathbf{w})s(z,w) 起著與噪聲預測網絡 g(z,w)\mathbf{g}(\mathbf{z}, \mathbf{w})g(z,w) 相同的作用,只是有一個常數縮放因子 ?1/1?αt-1/\sqrt{1 - \alpha_t}?1/1?αt??(Song和Ermon,2019)。最小化(公式20.50)被稱為去噪分數匹配,我們可以看到它與去噪擴散模型的緊密聯系。關于如何選擇噪聲方差 σ2\sigma^2σ2 的問題仍然存在,我們很快會回到這個問題。

在訓練了一個基于分數的模型后,我們需要抽取新的樣本。朗之萬動力學非常適合基于分數的模型,因為它基于分數函數,因此不需要歸一化的概率分布,如圖20.6所示。

解釋

  1. 分數函數的推導
    • 首先,針對高斯帕曾核,通過對數條件概率關于 z\mathbf{z}z 求梯度,得到了分數函數的表達式(公式20.52),其中 ?\boldsymbol{\epsilon}? 是從標準正態分布中抽取的。
    • 當考慮特定的噪聲模型時,分數函數的表達式變為(公式20.53),這里引入了與噪聲模型相關的參數 αt\alpha_tαt?
  2. 分數損失與去噪擴散模型的聯系
    • 分數損失(公式20.50)的作用是衡量神經網絡預測和噪聲之間的差異。
    • 該損失函數與去噪擴散模型中的某個形式(公式20.37)具有相同的最小值,基于分數的模型中的分數函數 s(z,w)\mathbf{s}(\mathbf{z}, \mathbf{w})s(z,w) 和去噪擴散模型中的噪聲預測網絡 g(z,w)\mathbf{g}(\mathbf{z}, \mathbf{w})g(z,w) 功能相似,只是存在一個常數縮放因子。
    • 最小化分數損失的過程被稱為去噪分數匹配,這顯示了基于分數的模型與去噪擴散模型之間的緊密聯系。
  3. 樣本抽取與朗之萬動力學
    • 訓練好基于分數的模型后,需要抽取新樣本。
    • 朗之萬動力學適用于基于分數的模型,因為它直接利用分數函數,不需要歸一化的概率分布,圖20.6展示了使用朗之萬動力學進行采樣的軌跡示例。
  4. 未解決的問題
    • 文中指出,關于如何選擇噪聲方差 σ2\sigma^2σ2 的問題仍然存在,后續會進一步討論這個問題。

20.3.3 Noise variance 噪聲方差

我們已經了解了如何從一組訓練數據中學習分數函數,以及如何使用朗之萬采樣(Langevin sampling)從學習到的分布中生成新樣本。然而,我們可以發現這種方法存在三個潛在問題(Song和Ermon,2019;Luo,2022)。

首先,如果數據分布位于一個維度低于數據空間的流形(manifold)上,那么在流形之外的點處,概率密度為零,并且由于 ln?p(x)\ln p(x)lnp(x) 無定義,此處分數函數也無定義。

其次,在數據密度較低的區域,由于損失函數(20.43)是按密度加權的,因此對分數函數的估計可能不準確。使用朗之萬采樣時,不準確的分數函數可能會導致生成較差的軌跡。

第三,即使分數函數的模型準確,如果數據分布由多個不相交的分布混合而成,朗之萬過程也可能無法正確采樣。

這三個問題都可以通過為核函數(20.48)中使用的噪聲方差 σ2\sigma^2σ2 選擇一個足夠大的值來解決,因為這樣會使數據分布變得模糊(平滑)。然而,方差過大會嚴重扭曲原始分布,這本身就會導致分數函數建模的不準確。可以通過考慮一系列方差值 σ12<σ22<?<σT2\sigma^2_1 < \sigma^2_2 < \cdots < \sigma^2_Tσ12?<σ22?<?<σT2?(Song和Ermon,2019)來處理這種權衡,其中 σ12\sigma^2_1σ12? 足夠小,能夠準確表示數據分布,而 σT2\sigma^2_TσT2? 足夠大,可以避免上述問題。

然后,分數網絡被修改為將方差作為額外輸入 s(x,w,σ2)s(\mathbf{x}, \mathbf{w}, \sigma^2)s(x,w,σ2),并通過使用一個加權和形式的損失函數進行訓練,該損失函數是形式為(20.51)的損失函數的加權總和,其中每一項表示相關網絡與相應擾動數據集之間的誤差。對于數據向量 xn\mathbf{x}_nxn?,損失函數的形式則為

在這里插入圖片描述
其中 λ(i)\lambda^{(i)}λ(i) 是權重系數。我們可以看到,這種訓練過程與用于訓練分層去噪網絡的訓練過程完全對應(意思一致、相呼應)。

訓練完成后,可按順序依次針對 i=L,L?1,…,2,1i = L, L - 1, \ldots, 2, 1i=L,L?1,,2,1 的各個模型,運行若干步朗之萬采樣來生成樣本。這種技術被稱為退火朗之萬動力學(annealed Langevin dynamics),其原理與用于從去噪擴散模型中采樣的算法20.2類似。

20.3.4 Stochastic differential equations 隨機微分方程

我們已看到,在為擴散模型構建噪聲過程時,采用大量步驟(通常多達數千步)是很有幫助的。因此,很自然地我們會思考:若像引入神經微分方程時對無限深層神經網絡所做的那樣,考慮無限步數的極限情況,會發生什么?在求取這種極限時,我們需要確保每一步的噪聲方差(見18.3.1節)βt\beta_tβt? 隨步長的減小而變小。這促使我們將擴散模型在連續時間下的形式表述為隨機微分方程(Stochastic Differential Equations,SDEs)(Song等人,2020)。如此一來,去噪擴散概率模型和分數匹配模型都可被視為連續時間隨機微分方程的一種離散化形式。

我們可以將一般的隨機微分方程(SDE)寫成對向量 z\mathbf{z}z 的無窮小更新的形式,即
在這里插入圖片描述
其中,漂移項(drift term)如同常微分方程(ODE)中那樣是確定性的,但擴散項(diffusion term)是隨機的,例如由無窮小的高斯步長給出。這里的參數 ttt 借物理系統的類比,常被稱為“時間”。通過對連續時間極限的推導,擴散模型的正向噪聲過程(20.3)可表示為(20.55)形式的隨機微分方程。

對于隨機微分方程(SDE)(20.55),存在相應的逆向隨機微分方程(Song等人,2020),由下式給出:

在這里插入圖片描述

其中,我們認定 ?zln?p(z)\nabla_{\mathbf{z}} \ln p(\mathbf{z})?z?lnp(z) 為分數函數。需從 t=Tt = Tt=Tt=0t = 0t=0 逆向求解由(20.55)給出的隨機微分方程。

為了數值求解隨機微分方程,我們需要對時間變量進行離散化。最簡單的方法是使用固定且等間距的時間步長,這被稱為歐拉 - 瑪雅那(Euler - Maruyama)求解器。對于逆向隨機微分方程,我們則恢復一種朗之萬方程的形式。然而,可以采用更復雜的求解器,它們使用更靈活的離散化形式(Kloeden和Platen,2013)。

對于所有由隨機微分方程控制的擴散過程,存在一個由常微分方程(ODE)描述的相應確定性過程,其軌跡具有與隨機微分方程相同的邊際概率密度 p(z∣t)p(\mathbf{z}|t)p(zt)(Song等人,2020)。對于形式為(20.56)的隨機微分方程,相應的常微分方程由下式給出:

在這里插入圖片描述

常微分方程的公式化表述允許使用高效的自適應步長求解器,從而大幅減少函數求值的次數。此外,它使得概率擴散模型與歸一化流模型相關聯,從中可以使用變量變換公式(18.1)來提供對數似然的精確估計。

解釋

這段內容主要圍繞隨機微分方程(SDE)及其相關概念展開:

  1. 逆向隨機微分方程:介紹了與給定隨機微分方程(20.55)對應的逆向隨機微分方程(20.56),并指出其中 ?zln?p(z)\nabla_{\mathbf{z}} \ln p(\mathbf{z})?z?lnp(z) 為分數函數,且說明了求解該逆向隨機微分方程的時間范圍。
  2. 隨機微分方程的數值求解:闡述了數值求解隨機微分方程需要對時間變量離散化,介紹了最簡單的歐拉 - 瑪雅那求解器,以及對于逆向隨機微分方程可恢復朗之萬方程形式,還提到有更復雜的求解器可采用。
  3. 確定性過程與常微分方程:說明對于由隨機微分方程控制的擴散過程,存在具有相同邊際概率密度的確定性過程,由常微分方程描述,并給出了形式為(20.56)的隨機微分方程對應的常微分方程(20.57)。
  4. 常微分方程的優勢:指出常微分方程的公式化表述可使用高效自適應步長求解器,減少函數求值次數,還能使概率擴散模型與歸一化流模型相關聯,用于精確估計對數似然。

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

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

相關文章

Arduino與STM32:初學者該如何選擇?

在電子愛好者和初學者的世界里&#xff0c;Arduino和STM32是兩個經常被提及的名字。它們各自具有獨特的優勢和特點&#xff0c;適合不同類型的項目和需求。對于初學者來說&#xff0c;選擇Arduino還是STM32&#xff0c;往往取決于個人的學習目標、項目需求以及預算。本文將詳細…

創建型設計模式-工廠方法模式和抽象工廠方法模式

1、工廠方法模式 創建型設計模式之一 UML類圖2、抽象工廠模式 也是創建型設計模式之一。雖然抽象工廠方法模式的類繁多&#xff0c;但是&#xff0c;主要分為4類。 AbstractFactory&#xff1a;抽象工廠角色&#xff0c;它聲明了一組用于創建一種產品的方法&#xff0c;每一個方…

Hyperchain安全與隱私機制詳解

一、核心安全機制1. 共識算法安全RBFT共識算法&#xff1a;改進型PBFT&#xff1a;基于PBFT算法優化&#xff0c;增加動態節點管理、失效數據恢復機制&#xff0c;提升系統容錯性與可用性。性能指標&#xff1a;吞吐量穩定達3000-10000 TPS&#xff0c;交易執行時間控制在300ms…

Oracle優化學習十六

反連接反連接&#xff08;Anti Join&#xff09;是一種特殊的連接類型&#xff0c;與內連接和外連接不同&#xff0c;Oracle數據庫里并沒有相關的 關鍵字可以在SQL文本中專門表示反連接&#xff0c;所以這里把它單獨拿出來說明。為了方便說明反連接的含義&#xff0c;我們用“t…

梳理一些 Docker 常用命令

以下是一些 Docker 常用命令&#xff0c;適用于日常開發、調試、部署等場景&#xff0c;分為幾個常用類別&#xff1a;&#x1f4e6; 一、鏡像&#xff08;Image&#xff09;相關命令命令說明docker images查看本地所有鏡像docker pull <image>拉取鏡像&#xff08;如 do…

C#_ArrayList動態數組

目錄 ArrayList的特點 ArrayList 與普通數組的區別 使用示例&#xff1a; 普通數組 動態數組 主要方法和屬性 屬性&#xff1a; Count 獲取動態數組的數據個數 讀取某個位置的數據 // 索引 方法&#xff1a; Add 向集合末尾添加元素 Insert 在指定位置插入元…

Agent領域,近年來的前沿研究方向:多智能體協作、認知啟發架構、倫理安全、邊緣計算集成

Agent領域,近年來的前沿研究方向:多智能體協作、認知啟發架構、倫理安全、邊緣計算集成 在Agent領域,近年來的前沿研究方向主要集中在多智能體協作、認知啟發架構、倫理安全、邊緣計算集成以及生成式AI融合等方面。 一、多智能體協作與多模態任務 多智能體系統在復雜環境…

【安卓筆記】OOM與內存優化

0. 環境&#xff1a; 電腦&#xff1a;Windows10 Android Studio: 2024.3.2 編程語言: Java Gradle version&#xff1a;8.11.1 Compile Sdk Version&#xff1a;35 Java 版本&#xff1a;Java11 1.什么是OOM OOM即 OutOfMemoryError 內存溢出錯誤。常見于一些 資源型對…

持續集成CI與自動化測試

Python接口自動化測試零基礎入門到精通&#xff08;2025最新版&#xff09;

Spring 策略模式實現

Spring 策略模式實現&#xff1a;工廠方法與自動注入詳解 1. 背景介紹 在復雜的業務系統中,我們常常需要根據不同的場景選擇不同的處理策略。本文將詳細介紹在 Spring 框架中實現策略模式的兩種主要方法。 2. 方案一: 手動注冊工廠模式 2.1 定義工廠類 Component public class …

機器學習——線性回歸(LinearRegression)

Python 線性回歸詳解&#xff1a;從原理到實戰線性回歸&#xff08;Linear Regression&#xff09;是機器學習中最基礎也是最重要的算法之一&#xff0c;廣泛應用于預測分析領域&#xff0c;例如房價預測、銷售額預測等。本文將帶你從理論出發&#xff0c;用 Python 手把手實現…

H.264視頻的RTP有效載荷格式(翻譯自:RFC6184 第5節 RTP有效載荷格式)

RTP協議格式 RFC地址&#xff1a;https://datatracker.ietf.org/doc/html/rfc6184 RTP報頭的格式在RFC3550中指定 0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1------------------------…

秒級構建消息驅動架構:描述事件流程,生成 Spring Cloud Stream+RabbitMQ 代碼

在消息驅動架構開發中&#xff0c;Spring Cloud Stream 與 RabbitMQ 的整合往往需要手動配置綁定器、定義消息通道、編寫消費邏輯&#xff0c;流程繁瑣且易出錯。而飛算JavaAI 作為高效的 IDE 插件&#xff0c;能讓開發者通過自然語言描述事件流程&#xff0c;自動生成可運行的…

從零搭建3D激光slam框架-基于mid360雷達節點實現

目錄 MID360雷達介紹 雷達SDK編譯與測試 雷達驅動的修改、編譯與測試 去ros的編譯方式 livox_ros_driver2的代碼框架介紹 livox_ros_driver2編譯 雷達IP配置文件介紹 常見問題介紹 優化改進 MID360雷達介紹 1 硬件介紹&#xff1a; livox-mid360是大疆的一款非重復掃描…

【Spring】日志級別的分類和使用

文章目錄介紹日志級別的分類日志級別的順序日志級別的使用介紹 日志級別代表著日志信息對應問題的嚴重性&#xff0c;為了更快的篩選符合目標的日志信息 試想一下這樣的場景&#xff0c;假設你是一家 2 萬人公司的老板&#xff0c;如果每個員工的日常工作和瑣碎的信息都要反饋…

【C++】第十九節—一文萬字詳解 | AVL樹實現

好久不見&#xff0c;我是云邊有個稻草人&#xff0c;偶爾中二博主與你分享C領域專業知識^(*&#xffe3;(oo)&#xffe3;)^ 《C》—本篇文章所屬專欄—持續更新中—歡迎訂閱~喔 目錄 一、AVL的概念 二、AVL樹的實現 2.1 AVL樹的結構 2.2 AVL樹的插入 【AVL樹插入?個值…

【Delphi】快速理解泛型(Generics)

Delphi的泛型&#xff08;generics&#xff09;是一項強大的特性&#xff0c;它使得代碼更加靈活、類型安全&#xff0c;并且可以實現各種通用的數據結構和算法。下面我將為你詳細介紹Delphi中的泛型&#xff0c;包括基本概念、語法、常用實例&#xff0c;以及使用建議。Delphi…

Java Stream流的使用

獲取Stream流 單列集合直接使用stream()方法 List<String> list Arrays.asList("a", "b", "c"); Stream<String> stream list.stream(); // 獲取順序流數組使用靜態方法Arrays.stream() String[] array {"a", "b&…

前端實現添加水印,兩種方式

一、自定義指令的方式/*需求&#xff1a;給整個頁面添加背景水印。思路&#xff1a;1、使用 canvas 特性生成 base64 格式的圖片文件&#xff0c;設置其字體大小&#xff0c;顏色等。2、將其設置為背景圖片&#xff0c;從而實現頁面或組件水印效果使用&#xff1a;設置水印文案…

使用LangChain構建法庭預定智能體:結合vLLM部署的Qwen3-32B模型

文章目錄 技術架構概述 核心實現步驟 1. 配置vLLM與Qwen3-32B模型 2. 定義工具(Tools) 3. 構建Agent系統 4. 運行與交互 關鍵技術亮點 1. 工具調用自動化 2. Hermes解析器優勢 3. 對話記憶管理 實際運行效果 性能優化建議 擴展應用場景 總結 在人工智能應用開發中,如何讓大語…