BP神经网络中初始权值和阈值的设定

BP神经网络中初始权值和阈值的设定,第1张

1、首先需要了解BP神经网络是一种多层前馈网络。

2、以看一下在matlab中BP神经网络的训练函数,有梯度下降法traingd,d性梯度下降法trainrp,自适应lr梯度下降法traingda等。

3、在matlab中命令行窗口中定义输入P,输出T,·通过“newff(minmax(P),[5,1]构建BP神经网络,“[net,tr]=train(net,P,T);”进行网络训练,“sim(net,P)”得到仿真预测值。

4、在命令行窗口按回车键之后,可以看到出现结果d窗,最上面的Neural Network下面依次代表的是“输入、隐含层、输出层、输出”,隐含层中有5个神经元。

5、Progress下面的Epoch代表迭代次数,Gradient代表梯度,Vaildation Checks代表有效性检查,最后的绿色对勾代表性能目标达成。

6、最后将实际曲线和预测曲线绘制出来,可以看到使用BP神经网络预测的结果曲线基本和实际输出曲线一致。

临时起搏的方法

静脉心内膜起搏

所有的静脉穿刺点(颈内、颈外、锁骨下、正中、股静脉)均有其特别的问题,包括:导联固定的稳定性、感染、出血、气胸、病人的不适等。根据临时起搏器放置时间长短和放置形式进行选择,英国心脏学会推荐右侧颈内静脉途径对没有经验的 *** 作者来说是最好的选择;它提供至右室的最直接的途径,有较高的成功率和较低的并发症。在接受或可能接受溶栓治疗的病人中,颈外、正中、股静脉是常规的选择途径。如果可能需要永久起搏最好避免左锁骨下静脉途径,因为这是永久起搏最常用的穿刺点。

安置临时起搏器的定位结合满意的解剖和电信号的数据。不同的经静脉途径需要不同的技术,也许最重要的区别在于进入右房的途径是在下腔静脉还是上腔静脉途径。 *** 作过程需要有关的设备,消毒的环境,培训过的 *** 作人员,高质量的放射设备。

1. 临时经静脉心室起搏

导联进入右房后穿过三尖瓣, 置于右心室室尖。用漂浮电极导联临时起搏,置入更容易、定位更理想。

2. 临时经静脉心房起搏

临时心房起搏导联有一个预塑的J型曲线,使导联附着在右心房。这个必需从上腔静脉进入,定位需要侧面的X线屏幕辅助。

目前,大部分临时经静脉起搏电极有一个光滑的、国际标准化直径和外形,没有固定作用,这样容易撤除,但更容易掉线。较新的有很好固定作用的临时起搏导线是加一个螺旋装置,直径较小(35F)。用漂浮导管传送导联线容易固定,可保留到1~2周后撤除。

心包起搏

这种起搏方式用于心脏手术过程中,它需要直接进入心肌的外表面。导线电极置于心包侧的心肌内。这些电极在不需要时能够轻巧拔除;它们的电活动信号随着时间的推移迅速减退,常常在5~10天内失去起搏能力,尤其是用于心房起搏时。

经皮起搏

1952年由Zoll首次报道,以后,得到进一步的改良。英国复苏学会将它作为高级心脏生命支持的一部分, *** 作者简单培训就能掌握,而且不需要搬动病人。已有临床研究报道Zoll型无创起搏器可有效维持心脏起搏达14小时,其成功率为78%~94%,尽管许多意识清醒病人需要镇静。在病人不能搬动或暂时没有有经验的经静脉起搏的医护人员在场的情况下,这种起搏方法给经静脉起搏提供了一个桥梁作用。放置经皮起搏电极通常置于前胸和后背,但如果不成功,可能需要体外除颤,如果电极处在心脏停搏状态,应考虑前、侧位。

经食道起搏

经食道起搏或经胃-食道起搏已提倡用于急诊心室起搏,因为它在意识清醒病人有更好的耐受性,成功率大约在90%,用一个可弯曲的电极置于胃底部通过膈肌刺激心室起搏。经食道心房起搏,将电极置于食道的中、低部获得心房捕获,但这种方法很少在急诊室使用,因为电极稳定性难以达到,并对房室传导阻滞没有保护作用。

◆ 临时起搏的并发症

有关临时起搏的并发症可以与多种因素相关,包括静脉穿刺损伤、心脏内导联的机械刺激作用、起搏器导联的电活动、血肿、感染或血栓形成、起搏失败。并发症发生率大约在14~36%,其中大部分是穿孔的形成、由电极机械刺激或感染引起的室性心律失常。

静脉穿刺

除了静脉穿刺失败,气胸和血胸是锁骨下穿刺常见的并发症。尤其是没有经验的 *** 作者,可以选择另一种穿刺途径;锁骨下静脉的解剖是很容易改变的,没有一种可靠的方法可以避免气胸或穿入动脉。

心脏内导联的机械刺激作用

在许多病人,尤其是急性心梗后,在右室放置一个起搏导联会促进心室异位节律和偶发长时间的室性心律失常。这些常常在停止导联的 *** 作后解除;偶尔,需要撤除或重置导联线。更多发生的是病人在放置起搏导联后立即会变得依赖起搏,使重置导联难以实现。起搏导联相对较硬和较细(一般为5~6F),通常不会穿孔或偶尔穿孔右室壁。这个常常通过起搏阈值的提高和偶尔的心包疼痛和心包摩擦发现。通常将导联退回心室和重置来解决问题。很少因为出血引起心包填塞而需要急诊处理。这种情况下,重置可用心超进行评价。

起搏器导联的电活动

根据起搏病人不同的病理改变,起搏阈值有所变化。也可受药物治疗的影响。应该记录起始阈值,此后,由专业人员至少每天一次进行检查并记录。对病人起搏时至少使用电压或电流阈值的2倍,如果需要的起搏输出达50伏或100毫安培,应考虑重新安置导联。如果起搏突然失败,多数应检查与外部起搏器的连接是否有脱落,起搏器电池,和可能的过度敏感(VOO,固定率起搏)。如果起搏信号可以看到而没有捕获发生,应增加输出电压或电流、考虑重置或替换电极。临时心包起搏线的连接器尤其易损和易折断。在临时经静脉起搏的研究中,由于感知和捕获失败的占37%,而且常发生在48小时后。

感染和血栓形成

注意穿刺部位的清洁,一般不需要常规使用抗生素。但一旦出现提示感染的任何体征,需要更换导联线。在大多数常规途径长时间经静脉临时起搏的病人中或选用股静脉途径的起搏,应考虑使用合适的抗生素预防。大多数的感染是由表皮葡萄球菌引起,但当选择股静脉途径时,应考虑大肠杆菌;在免疫缺陷的病人,应尽可能避免这条途径。当选择股静脉途径时,容易发生血栓形成。

◆ 起搏器

外部起搏器可以调节起搏输出(电压和/或电流,较新的产品可有脉宽),起搏频率,起搏模式、和灵敏度。双腔起搏器将在起搏模式方面提供更大的灵活性和提供房室延迟的调节。起搏器可以小到病人可以走动或按需要放在床边。起搏器电池必须每天检查,起搏器安全放置以免坠落和导联拔出。

有些起搏器可提供高频率的起搏(通常是正常起搏上限的三倍)以提供对心动过速的超速起搏抑制。这个机制的激活通常被锁住,需要时解锁。

较新的数字式临时起搏器,通常在检查和调节后所锁住,防止无意间改变程序。

起搏模式的功能作用

大多数的临时经静脉起搏包括右室心尖的刺激。这个涉及对心脏机能的损害作用和房室同步的丢失,与同样心率的窦性节律相比较,心输出量减少。Murphy(6)等1992年曾报道临时心室起搏在80次/分时不比自主节律的心动过缓好(10例有心脏阻滞,2例有交界性心动过缓),而生理性双腔(DDD)起搏可增加心输出量,血压升高,降低肺动脉契压和右房压。提示大多数临时起搏在正常窦房节功能存在时应是房室同步。尽管这样,因临时经静脉双腔起搏过程复杂,导致在临时起搏时临床医生长期的、常规的使用室性起搏。在急诊或急性情况,使用高起搏频率尤其能补偿。在任何临时心室起搏后持续低血压的病人,应考虑恢复和维持房室同步。房室同步对维持理想的心脏功能和减少心脏手术后的房颤尤其有价值;应注意观察心房心包导联电活动,因为在4~5天后,感知特征常常衰退。

阈值将原图象分成前景,背景两个图象。

前景:用n1, csum, m1来表示在当前阈值下的前景的点数,质量矩,平均灰度

后景:用n2, sum-csum, m2来表示在当前阈值下的背景的点数,质量矩,平均灰度

当取最佳阈值时,背景应该与前景差别最大,关键在于如何选择衡量差别的标准

而在otsu算法中这个衡量差别的标准就是最大类间方差(英文简称otsu,这也就是这个算法名字的来源)

在本程序中类间方差用sb表示,最大类间方差用fmax

关于最大类间方差法(otsu)的性能:

类间方差法对噪音和目标大小十分敏感,它仅对类间方差为单峰的图像产生较好的分割效果。

当目标与背景的大小比例悬殊时,类间方差准则函数可能呈现双峰或多峰,此时效果不好,但是类间方差法是用时最少的。

最大最大类间方差法(otsu)的公式推导:

记t为前景与背景的分割阈值,前景点数占图像比例为w0, 平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1。

则图像的总平均灰度为:u=w0u0+w1u1。

前景和背景图象的方差:g=w0(u0-u)(u0-u)+w1(u1-u)(u1-u)=w0w1(u0-u1)(u0-u1),此公式为方差公式,可参照概率论课本

上面的g的公式也就是下面程序中的sb的表达式

当方差g最大时,可以认为此时前景和背景差异最大,也就是此时的灰度是最佳阈值

unsafe public int GetThreshValue(Bitmap image)

{

BitmapData bd = imageLockBits(new Rectangle(0, 0, imageWidth, imageHeight), ImageLockModeWriteOnly, imagePixelFormat);

byte pt = (byte)bdScan0;

int[] pixelNum = new int[256]; //图象直方图,共256个点

byte color;

byte pline;

int n, n1, n2;

int total; //total为总和,累计值

double m1, m2, sum, csum, fmax, sb; //sb为类间方差,fmax存储最大方差值

int k, t, q;

int threshValue = 1; // 阈值

int step = 1;

switch (imagePixelFormat)

{

case PixelFormatFormat24bppRgb:

step = 3;

break;

case PixelFormatFormat32bppArgb:

step = 4;

break;

case PixelFormatFormat8bppIndexed:

step = 1;

break;

}

//生成直方图

for (int i = 0; i < imageHeight; i++)

{

pline = pt + i bdStride;

for (int j = 0; j < imageWidth; j++)

{

color = (pline + j step); //返回各个点的颜色,以RGB表示

pixelNum[color]++; //相应的直方图加1

}

}

//直方图平滑化

for (k = 0; k <= 255; k++)

{

total = 0;

for (t = -2; t <= 2; t++) //与附近2个灰度做平滑化,t值应取较小的值

{

q = k + t;

if (q < 0) //越界处理

q = 0;

if (q > 255)

q = 255;

total = total + pixelNum[q]; //total为总和,累计值

}

pixelNum[k] = (int)((float)total / 50 + 05); //平滑化,左边2个+中间1个+右边2个灰度,共5个,所以总和除以5,后面加05是用修正值

}

//求阈值

sum = csum = 00;

n = 0;

//计算总的图象的点数和质量矩,为后面的计算做准备

for (k = 0; k <= 255; k++)

{

sum += (double)k (double)pixelNum[k]; //xf(x)质量矩,也就是每个灰度的值乘以其点数(归一化后为概率),sum为其总和

n += pixelNum[k]; //n为图象总的点数,归一化后就是累积概率

}

fmax = -10; //类间方差sb不可能为负,所以fmax初始值为-1不影响计算的进行

n1 = 0;

for (k = 0; k < 255; k++) //对每个灰度(从0到255)计算一次分割后的类间方差sb

{

n1 += pixelNum[k]; //n1为在当前阈值遍前景图象的点数

if (n1 == 0) { continue; } //没有分出前景后景

n2 = n - n1; //n2为背景图象的点数

if (n2 == 0) { break; } //n2为0表示全部都是后景图象,与n1=0情况类似,之后的遍历不可能使前景点数增加,所以此时可以退出循环

csum += (double)k pixelNum[k]; //前景的“灰度的值其点数”的总和

m1 = csum / n1; //m1为前景的平均灰度

m2 = (sum - csum) / n2; //m2为背景的平均灰度

sb = (double)n1 (double)n2 (m1 - m2) (m1 - m2); //sb为类间方差

if (sb > fmax) //如果算出的类间方差大于前一次算出的类间方差

{

fmax = sb; //fmax始终为最大类间方差(otsu)

threshValue = k; //取最大类间方差时对应的灰度的k就是最佳阈值

}

}

imageUnlockBits(bd);

imageDispose();

return threshValue;

}

仅以每次加1为例

0-8可以每次都执行i=(i+1)%9,

2-255可以每次都执行i=(i+1)%254+2,

0-99可以每次都执行i=(i+1)%100

这样就不用加判断了

%采用迭代运算,计算图像的最佳阈值:

%a为原始图像,图像大小为[width,height]

%迭代计算最佳阈值T

% output 是输出的结果图像

value=255/2; %设定初始迭代阈值T0

old=0; % 前一次迭代计算得到的阈值

%1 迭代运算过程,计算最佳分割阈值。

while(abs(value-old)>01)

%阈值分割就是将像素分割成两类,现用 sum1和 sum2计算两类的和,n和m 用来计数。

% 下面是这些变量的初始化过程

old=value;

sum1=0

n=0;

sum2=0;

m=0;

% 迭代分类过程

for i=1:width

for j=1:height

if a(i,j)<value

sum1=sum1+a(i,j);

n=n+1;

else

sum2=sum2+a(i,j);

m=m+1;

end

end

end

%计算新的分割阈值T

value=(sum1/n+sum2/m)/2;

end

% 2 用得到的最终阈值对图像二值化。

output=a;

for i=1:width

for j=1:height

if a(i,j)<value

output(i,j)=0; %output是二值化的结果

end

end

end

以上就是关于BP神经网络中初始权值和阈值的设定全部的内容,包括:BP神经网络中初始权值和阈值的设定、临时起搏器的阈值测试步骤、自动确定图像二值化最佳阈值的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10633861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存