當前位置:首頁 » 操作系統 » H的演算法

H的演算法

發布時間: 2023-06-08 19:39:14

1. 什麼是H-K演算法

其實HK演算法思想很朴實,就是在最小均方誤差准則下求得權矢量.
他相對於感知器演算法的優點在於,他適用於線性可分和非線性可分得情況,對於線性可分的情況,給出最優權矢量,對於非線性可分得情況,能夠判別出來,以退出迭代過程.
2.在程序編制過程中,我所受的最大困擾是:關於收斂條件的判決.
對於誤差矢量:e=x*w-b
若e>0 則繼續迭代
若e=0 則停止迭代,得到權矢量
若e〈0 則停止迭代,樣本是非線性可分得,
若e有的分量大於0,有的分量小於0 ,則在各分量都變成零,或者停止由負值轉變成正值時,停機.
3.在程序編制中的注意點:
1)關於0的判斷,由於計算機的精度原因,嚴格等於零是很不容易的,而且在很多情況下也沒有必要,則只要在0的一個可以接受的delta域內就可接受為零
2)關於判斷,迭代前後,變數是否發生變化
在判斷時,顯然也不能直接判斷a(i)==a(i+1)
而應該|a(i)-a(i+1)|〈err
4.HK詳細代碼如下:
unction [w,flag]=HK(data)
Iteration=20;
flag=0;
% [n,p]=size(data);
n=size(data,1);
b=ones(n,1)./10;
c=0.6;
xx=inv(data'*data)*data';
w=xx*b;
e=data*w-b;
t=0;
while (1)
temp=min(e);
temp1=max(e);
if temp>-1e-4 && temp1e-3
deltab=e+abs(e);
b=b+c.*deltab;
w=w+c.*xx*deltab;
e=data*w-b;
else
if temp>=0 && temp1

H-K演算法是求解Xw=b,式中b=( b1, b2, …, bn)T,b的所有分量都是正值。這里要同時計算w和b,我們已知X不是N*N的方陣,通常是行多於列的N*(n+1)階的長方陣,屬於超定方程,因此一般情況下,Xw=b沒有唯一確定解,但可求其線性最小二乘解。
設Xw=b的線性最小二乘解為w*,即使||Xw*-b||=極小 採用梯度法,定義准則函數:
)bXw()bXw(2
1bXw21)bxw(21)b,x,w(JT2
n1i2iiT
當Xw=b的條件滿足時,J達到最小值。由於上式中包括的
n
1
i2iiT
)bxw
(項為兩個數量方差的和,且我們將使其最小化,因此也
稱之為最小均方誤差演算法。
使函數J同時對變數w和b求最小。對於w的梯度為:
)bXw(Xw
J
T 使0w
J
,得XT(Xw-b)=0,從而XTXw=XTb。因為XTX為(n+1)*(n+1)階方陣,因此可求得解:
w = (XTX)-1XTb = X#b
這里X#= (XTX)-1XT稱為X的偽逆,X是N*(n+1)階的長方陣。
由上式可知,只要求出b即可求得w。利用梯度法可求得b的迭代公式為:
)
k(bbbJC)k(b)1k(b

根據上述約束條件,在每次迭代中,b(k)的全部分量只能是正值。由J的准則函數式,J也是正值,因此,當取校正增量C為正值時,為保證每次迭代中的b(k)都是正值,應使)
k(bbbJ

為非正值。在此條件下,准則函數J的微分為:
|bXw|)bXw(bJ2)
k(bb

該式滿足以下條件:
若[Xw(k) – b(k)] > 0,則)k(b)k(XwbJ)
k(bb

 若[Xw(k) – b(k)] < 0,則0bJ)
k(bb 由b的迭代式和微分,有:
b(k+1) = b(k) +δb(k)
δb(k) = C[Xw(k) – b(k) + | Xw(k) – b(k)|]
將此式代入w=X#b,有:
w(k+1) = X#b(k+1) = X#[b(k) +δb(k)] = w(k) + X#δb(k)
為簡化起見,令e(k) = Xw(k) – b(k),可得H-K演算法的迭代式。
設初值為b(1),其每一分量均為正值,則:
w(1) = X#b(1) e(k) = Xw(k) – b(k)
w(k+1) = w(k) + X#{C[Xw(k) – b(k) + |Xw(k) – b(k)|]}
= w(k) + CX#[e(k) + |e(k)|]
由於
X#e(k) = X#[Xw(k) – b(k)] = (XTX)-1XT[Xw(k) – b(k)]

= w(k) –X#b(k) = 0
因此
w(k+1) = w(k) + CX#|e(k)|
b(k+1) = b(k) + C[Xw(k) – b(k) + |Xw(k) – b(k)|]
= b(k) + C[e(k) + |e(k)|]

2. 生物DNA雙鏈中H鍵演算法

c和g之間有3個h鍵,a和t之間有2個。把它們的數量算出來乘以h鍵數就OK

3. 水深h處的壓強有多少種演算法

1用液體壓強公式: P=ρ(水)gh 計算
P是h水深處得壓強ρ(水)是水的密度 g是重力加速度 h是水深
2、根據壓強計液面高度差 P=ρ(水銀)gh
3、根據P=F/S 計算 F物體受到的壓力、S受力面積

熱點內容
解壓軟體java 發布:2024-03-29 12:40:32 瀏覽:282
長安cs35壓縮比 發布:2024-03-29 12:39:58 瀏覽:176
java中編譯器默認導入jdk包 發布:2024-03-29 12:23:26 瀏覽:365
中山大學資料庫 發布:2024-03-29 12:20:44 瀏覽:695
創造與魔法哪個腳本不要錢 發布:2024-03-29 12:20:38 瀏覽:441
medly安卓版在哪裡進行作曲 發布:2024-03-29 12:20:37 瀏覽:427
php所有空格 發布:2024-03-29 12:19:28 瀏覽:656
asp建立資料庫 發布:2024-03-29 12:07:18 瀏覽:533
存儲許可權是什麼意思 發布:2024-03-29 11:55:01 瀏覽:812
網路通信加密 發布:2024-03-29 11:48:49 瀏覽:611