什么是一阶导数光谱法,他的基本原理和操作是如何进行的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是一阶导数光谱法,他的基本原理和操作是如何进行的?相关的知识,希望对你有一定的参考价值。

5月14日要考分析化学了,而且正好考光谱分析法。把个人的理解和楼主交流一下吧。
倒数光谱和可以把和宽谱带重叠的窄谱带分辨出来,也可以把肩峰给分辨出来。
利用的方法,就是求导吧,仅仅是数学计算得一种方法。在奇数级倒数中波峰的位置是0,拐点是极大/极小。偶数级倒数反之。
还有一点就是倒数可以消除背景干扰,假设背景干扰和波长(用l表示吧)存在如下关系:
a=a+bl+cl^2+dl^3+……
通过导数法,可以把前几项化作零,从而消除背景干扰。
知道的就这么多的,就当作抛砖引玉吧。
参考技术A 导数法处理光谱可以消除基线漂移或背景干扰,二阶导数可消除颜色影响。导数方法在光谱处理中是常见的一种手段,当然还有很多其他的方法如MSC,SNV,DT,WT等。所有预处理方法的目的都是扣除干扰,强化谱带特征,提取有效信息!

如果满意的话就把分数给我吧,谢谢!
参考技术B 一阶导数光谱法测定解热I号口服液中桂皮醛含量

桂枝具有发汗、祛邪的功效,常用于辛温解表剂之中 解热I号口服液是由桂枝、荆芥、白芷等中药组成,本实验采用一阶导数光谱法测定解热I号口服液中主要成分桂皮醛的含量,很好地消除了其余成分在紫外区的干扰,使桂皮醛的含量测定获得了满意的效果。
1 仪器与药品
UV-300分光光度计,751-G分光光度计(上海分析仪器厂)。桂皮醛对照品(中国药品生物制品研究所) 解热I号口服液(本室研制)。
2 方法和结果
2.1 样品溶液的配制
干扰组分:按制备工艺及处方量配制去桂枝的干扰组分液50ml。精密量取该溶液0.5ml,置25m1量瓶中,加乙醇至刻度,得阴性对照液。
模拟口服液:按处方及工艺制备解热I号口服液50ml。精密吸取口服液0.5ml,置25ml量瓶中,加乙醇至刻度,即样品液。
桂皮醛对照品:精密吸取桂皮醛对照品lml,置100ml量瓶中,加乙醇至刻度。吸取上述稀释液1m1,置5Oml量瓶中,加乙醇至刻度,得储备液。精密吸取储备液0.5ml,置25m1量瓶中,加乙醇至刻度。作为桂皮醛对照品液。
2.2 测定波长的选择
以乙醇为空白,于UV-300分光光度计上分别绘制上述三种溶液的零阶及一阶紫外吸收光谱图。
在桂皮醛一阶导数光谱峰答的波长间,干扰组分的导数光谱图是一条近似于平行于波长轴的直线,因此可采用一阶导数峰答法测定桂皮醛的含量。于751分光光度计上,以1nm为间隔,测定桂皮醛、干扰组分及样品液在250~320nm间各波长处的吸收值。并依次以4nm为间隔,计算一系列的AA值,以AA对中间波长λ作图。
从图中找出中间波长λ1=270nm,λ2=310nm。则测定波长为268和272nm,及308和312nm。
2.3 标准曲线的制备
精密吸取桂皮醛储备液0.1,0.2,0.3,0.4,0.5,0.6m1,分别置于25ml量瓶中,加乙醇至刻度,播匀,以乙醇为空白,于751分光光度计上,测上述溶液在测定渡长处的吸收值,并计算ΔA值。
标准曲线的线性回归方程为:ΔA=49.29C+0.0029,r=0.9999(n=4), 单位为μl/ml。
2.4 加样回收率
精密吸取桂皮醛储备液,加入阴性对照液中(去桂枝),制备模拟口服液。精密吸取口服液0.5ml,置于25ml量瓶中,加乙醇至刻度,在上述波长处测定吸收值,并接上式计算ΔA值。
2.5 稳定性试验
按回收率项测定样品溶液,在不同时间内测走其吸收值,结果表明在48 h内稳定。
2.6 样品的测定
按回收率项测定不同批号。
3 讨论
中药复方制剂成分复杂,对主要成分的含量测定存在相互影响。从解热I号口服液零阶光谱图可见,由于干扰组分的存在,使样品的最大吸收发生了位移,且影响测定。桂皮醛的最大吸收为287nm,与单睐桂枝油相同,而制剂的最大吸收为284nm。本实验采用一阶导数光谱法,简便、实用,并有效地去除了阴性干扰.保证了样品含量测定的准确性。由桂皮醛的标准曲线可知,桂皮醛线性范围广,且具很好的线性,故生产中可采用一点法进行含量测定。

参考文献
l 黄雅熔.中药学.上海科技出版社.1989.21
2 安登魁编.药物分析.济南出版社.1992.51

一阶导数光谱法测定固精片中靛蓝的含量

http://club.elanw.com/dispbbs.asp?boardID=34&ID=23576&page=1

固精片由青黛、石菖蒲、菟丝子、五味子等中药精制而成,具有补肾固精,去浊分清的功效。临床上用于治疗前列腺炎等泌尿系统疾病,疗效确切。其中青黛的主要成分为靛蓝,靛蓝的测定方法很多,有高效液相色谱法,双波长薄层扫描法。本文采用氯仿提取后一阶导数光谱法测定青黛中靛蓝,方法简便。实验方法如下。

电荷转移络合--
一阶导数光谱法测定硫酸庆大霉素滴眼液的含量

吴建良 沈特庞 陈晓萍

http://www.wanfangdata.com.cn/qikan/periodical.Articles/xbyxzz/xbyx2000/0004/000406.htm

摘要 建立电荷转移络合—一阶导数光谱法测定硫酸庆大霉素滴眼液的含量。以324nm,357nm为测定波长,峰谷间振幅D为定量信息。结果硫酸庆大霉素浓度在4.1~16.4μg/ml范围内线性关系良好,r=0.9995,平均回收率为100.14%,RSD为0.56%。

关键词 电荷转移络合—一阶导数光谱法;硫酸庆大霉素;四氯苯醌

一阶导数光谱法测定氯霉素滴眼液

董亚琳 闫正华 王茂义 马爱芳

http://www.shelib.org:8002/~kjqk/hxyxzz/hxyx99/hxyx9902/990222.htm

http://cache.baidu.com/c?word=%D2%BB%3B%BD%D7%3B%B5%BC%CA%FD%3B%B9%E2%C6%D7%3B%B7%A8&url=http%3A//www%2Eshelib%2Eorg%3A8002/%7Ekjqk/hxyxzz/hxyx99/hxyx9902/990222%2Ehtm&b=0&a=25&user=baidu

提要 采用一阶导数光谱法测定氯霉素滴眼液的含量,可消除尼泊金的干扰。以293.8nm处的一阶导数谷-零振幅值为测定依据,线性范围10~40μg/ml(r=0.9999),氯霉素回收率为100.12%,RSD为0.68%(n=5)。

关键词 一阶导数光谱法 氯霉素 尼泊金乙酯

一阶导数光谱法测定复方苯海拉明冷霜的含量

http://www.chem17.com/article/show/627.html

复方苯海拉明冷霜是我院在临床中较常用的制剂,局部治疗过敏性皮炎、皮肤搔痒等疾病,疗效确切,本品无刺激性,特别适用于婴幼儿,除了苯海拉明的糖浆剂、注射剂、片剂等有收载的质量控制标准 〔1,2〕 ,还未见其软膏剂含量测定方法的报道。本文采用一阶导数光谱法能消除基质对主药紫外吸收 〔3〕 的干扰,操作简便,结果准确。

一阶导数光谱法测定解热I号口服液中桂皮醛含量

关键词:桂皮醛;含量测定;一阶导数光谱法

桂枝具有发汗、祛邪的功效,常用于辛温解表剂之中 解热I号口服液是由桂枝、荆芥、白芷等中药组成,本实验采用一阶导数光谱法测定解热I号口服液中主要成分桂皮醛的含量,很好地消除了其余成分在紫外区的干扰,使桂皮醛的含量测定获得了满意的效果。
1 仪器与药品
UV-300分光光度计,751-G分光光度计(上海分析仪器厂)。桂皮醛对照品(中国药品生物制品研究所) 解热I号口服液(本室研制)。
2 方法和结果
2.1 样品溶液的配制
干扰组分:按制备工艺及处方量配制去桂枝的干扰组分液50ml。精密量取该溶液0.5ml,置25m1量瓶中,加乙醇至刻度,得阴性对照液。
模拟口服液:按处方及工艺制备解热I号口服液50ml。精密吸取口服液0.5 ml,置25ml量瓶中,加乙醇至刻度,即样品液。桂皮醛对照品:精密吸取桂皮醛对照品lml,置100ml量瓶中,加乙醇至刻度。吸取上述稀释液1m1,置5Oml量瓶中,加乙醇至刻度,得储备液。精密吸取储备液0.5ml,置25m1量瓶中,加乙醇至刻度。作为桂皮醛对照品液。
2.2 测定波长的选择
以乙醇为空白,于UV-300分光光度计上分别绘制上述三种溶液的零阶及一阶紫外吸收光谱图。
在桂皮醛一阶导数光谱峰谷的波长间,干扰组分的导数光谱图是一条近似于平行于波长轴的直线,因此可采用一阶导数峰谷法测定桂皮醛的含量。于751分光光度计上,以1nm为间隔,测定桂皮醛、干扰组分及样品液在250~320nm间各波长处的吸收值,并依次以4nm为间隔,计算一系列的ΔA值。
从图中找出中间波长λm1=270nm,λm2=310nm。则测定波长为268和272nm,及308和312nm。
2.3 标准曲线的制备
精密吸取桂皮醛储备液0.1,0.2,0.3,0.4,0.5,0.6m1,分别置于25ml量瓶中,加乙醇至刻度,播匀,以乙醇为空白,于751分光光度计上,测上述溶液在测定渡长处的吸收值,并计算ΔA值。标准曲线的线性回归方程为:ΔA=49.29C+0.0029,r=0.9999(n=4),C单位为μl/ml。
2.4 加样回收率
精密吸取桂皮醛储备液,加入阴性对照液中(去桂枝),制备模拟口服液。精密吸取口服液0.5ml,置于25ml量瓶中,加乙醇至刻度,在上述波长处测定吸收值,并接上式计算ΔA值。
2.5 稳定性试验
按回收率项测定样品溶液,在不同时间内测走其吸收值,结果表明在48h内稳定。
2.6 样品的测定
按回收率项测定不同批号。
3 讨论
中药复方制剂成分复杂,对主要成分的含量测定存在相互影响。从解热I号口服液零阶光谱图可见,由于干扰组分的存在,使样品的最大吸收发生了位移,且影响测定。桂皮醛的最大吸收为287nm,与单味桂枝油相同,而制剂的最大吸收为284nm。本实验采用一阶导数光谱法,简便、实用,并有效地去除了阴性干扰.保证了样品含量测定的准确性。由桂皮醛的标准曲线可知,桂皮醛线性范围广,且具很好的线性,故生产中可采用一点法进行含量测定。
参考技术C 一阶导数光谱法测定解热I号口服液中桂皮醛含量

桂枝具有发汗、祛邪的功效,常用于辛温解表剂之中 解热I号口服液是由桂枝、荆芥、白芷等中药组成,本实验采用一阶导数光谱法测定解热I号口服液中主要成分桂皮醛的含量,很好地消除了其余成分在紫外区的干扰,使桂皮醛的含量测定获得了满意的效果。
1 仪器与药品
UV-300分光光度计,751-G分光光度计(上海分析仪器厂)。桂皮醛对照品(中国药品生物制品研究所) 解热I号口服液(本室研制)。
2 方法和结果
2.1 样品溶液的配制
干扰组分:按制备工艺及处方量配制去桂枝的干扰组分液50ml。精密量取该溶液0.5ml,置25m1量瓶中,加乙醇至刻度,得阴性对照液。
模拟口服液:按处方及工艺制备解热I号口服液50ml。精密吸取口服液0.5ml,置25ml量瓶中,加乙醇至刻度,即样品液。
桂皮醛对照品:精密吸取桂皮醛对照品lml,置100ml量瓶中,加乙醇至刻度。吸取上述稀释液1m1,置5Oml量瓶中,加乙醇至刻度,得储备液。精密吸取储备液0.5ml,置25m1量瓶中,加乙醇至刻度。作为桂皮醛对照品液。
2.2 测定波长的选择
以乙醇为空白,于UV-300分光光度计上分别绘制上述三种溶液的零阶及一阶紫外吸收光谱图。
在桂皮醛一阶导数光谱峰答的波长间,干扰组分的导数光谱图是一条近似于平行于波长轴的直线,因此可采用一阶导数峰答法测定桂皮醛的含量。于751分光光度计上,以1nm为间隔,测定桂皮醛、干扰组分及样品液在250~320nm间各波长处的吸收值。并依次以4nm为间隔,计算一系列的AA值,以AA对中间波长λ作图。
从图中找出中间波长λ1=270nm,λ2=310nm。则测定波长为268和272nm,及308和312nm。
2.3 标准曲线的制备
精密吸取桂皮醛储备液0.1,0.2,0.3,0.4,0.5,0.6m1,分别置于25ml量瓶中,加乙醇至刻度,播匀,以乙醇为空白,于751分光光度计上,测上述溶液在测定渡长处的吸收值,并计算ΔA值。
标准曲线的线性回归方程为:ΔA=49.29C+0.0029,r=0.9999(n=4), 单位为μl/ml。
2.4 加样回收率
精密吸取桂皮醛储备液,加入阴性对照液中(去桂枝),制备模拟口服液。精密吸取口服液0.5ml,置于25ml量瓶中,加乙醇至刻度,在上述波长处测定吸收值,并接上式计算ΔA值。
2.5 稳定性试验
按回收率项测定样品溶液,在不同时间内测走其吸收值,结果表明在48 h内稳定。
2.6 样品的测定
按回收率项测定不同批号。
3 讨论
中药复方制剂成分复杂,对主要成分的含量测定存在相互影响。从解热I号口服液零阶光谱图可见,由于干扰组分的存在,使样品的最大吸收发生了位移,且影响测定。桂皮醛的最大吸收为287nm,与单睐桂枝油相同,而制剂的最大吸收为284nm。本实验采用一阶导数光谱法,简便、实用,并有效地去除了阴性干扰.保证了样品含量测定的准确性。由桂皮醛的标准曲线可知,桂皮醛线性范围广,且具很好的线性,故生产中可采用一点法进行含量测定。

参考文献
l 黄雅熔.中药学.上海科技出版社.1989.21
2 安登魁编.药物分析.济南出版社.1992.51

一阶导数光谱法测定固精片中靛蓝的含量

http://club.elanw.com/dispbbs.asp?boardID=34&ID=23576&page=1

固精片由青黛、石菖蒲、菟丝子、五味子等中药精制而成,具有补肾固精,去浊分清的功效。临床上用于治疗前列腺炎等泌尿系统疾病,疗效确切。其中青黛的主要成分为靛蓝,靛蓝的测定方法很多,有高效液相色谱法,双波长薄层扫描法。本文采用氯仿提取后一阶导数光谱法测定青黛中靛蓝,方法简便。实验方法如下。

电荷转移络合--
一阶导数光谱法测定硫酸庆大霉素滴眼液的含量

吴建良 沈特庞 陈晓萍

http://www.wanfangdata.com.cn/qikan/periodical.Articles/xbyxzz/xbyx2000/0004/000406.htm

摘要 建立电荷转移络合—一阶导数光谱法测定硫酸庆大霉素滴眼液的含量。以324nm,357nm为测定波长,峰谷间振幅D为定量信息。结果硫酸庆大霉素浓度在4.1~16.4μg/ml范围内线性关系良好,r=0.9995,平均回收率为100.14%,RSD为0.56%。

关键词 电荷转移络合—一阶导数光谱法;硫酸庆大霉素;四氯苯醌

一阶导数光谱法测定氯霉素滴眼液

董亚琳 闫正华 王茂义 马爱芳

http://www.shelib.org:8002/~kjqk/hxyxzz/hxyx99/hxyx9902/990222.htm

http://cache.baidu.com/c?word=%D2%BB%3B%BD%D7%3B%B5%BC%CA%FD%3B%B9%E2%C6%D7%3B%B7%A8&url=http%3A//www%2Eshelib%2Eorg%3A8002/%7Ekjqk/hxyxzz/hxyx99/hxyx9902/990222%2Ehtm&b=0&a=25&user=baidu

提要 采用一阶导数光谱法测定氯霉素滴眼液的含量,可消除尼泊金的干扰。以293.8nm处的一阶导数谷-零振幅值为测定依据,线性范围10~40μg/ml(r=0.9999),氯霉素回收率为100.12%,RSD为0.68%(n=5)。

关键词 一阶导数光谱法 氯霉素 尼泊金乙酯

一阶导数光谱法测定复方苯海拉明冷霜的含量

http://www.chem17.com/article/show/627.html

复方苯海拉明冷霜是我院在临床中较常用的制剂,局部治疗过敏性皮炎、皮肤搔痒等疾病,疗效确切,本品无刺激性,特别适用于婴幼儿,除了苯海拉明的糖浆剂、注射剂、片剂等有收载的质量控制标准 〔1,2〕 ,还未见其软膏剂含量测定方法的报道。本文采用一阶导数光谱法能消除基质对主药紫外吸收 〔3〕 的干扰,操作简便,结果准确。

一阶导数光谱法测定解热I号口服液中桂皮醛含量

关键词:桂皮醛;含量测定;一阶导数光谱法

桂枝具有发汗、祛邪的功效,常用于辛温解表剂之中 解热I号口服液是由桂枝、荆芥、白芷等中药组成,本实验采用一阶导数光谱法测定解热I号口服液中主要成分桂皮醛的含量,很好地消除了其余成分在紫外区的干扰,使桂皮醛的含量测定获得了满意的效果。
1 仪器与药品
UV-300分光光度计,751-G分光光度计(上海分析仪器厂)。桂皮醛对照品(中国药品生物制品研究所) 解热I号口服液(本室研制)。
2 方法和结果
2.1 样品溶液的配制
干扰组分:按制备工艺及处方量配制去桂枝的干扰组分液50ml。精密量取该溶液0.5ml,置25m1量瓶中,加乙醇至刻度,得阴性对照液。
模拟口服液:按处方及工艺制备解热I号口服液50ml。精密吸取口服液0.5 ml,置25ml量瓶中,加乙醇至刻度,即样品液。桂皮醛对照品:精密吸取桂皮醛对照品lml,置100ml量瓶中,加乙醇至刻度。吸取上述稀释液1m1,置5Oml量瓶中,加乙醇至刻度,得储备液。精密吸取储备液0.5ml,置25m1量瓶中,加乙醇至刻度。作为桂皮醛对照品液。
2.2 测定波长的选择
以乙醇为空白,于UV-300分光光度计上分别绘制上述三种溶液的零阶及一阶紫外吸收光谱图。
在桂皮醛一阶导数光谱峰谷的波长间,干扰组分的导数光谱图是一条近似于平行于波长轴的直线,因此可采用一阶导数峰谷法测定桂皮醛的含量。于751分光光度计上,以1nm为间隔,测定桂皮醛、干扰组分及样品液在250~320nm间各波长处的吸收值,并依次以4nm为间隔,计算一系列的ΔA值。
从图中找出中间波长λm1=270nm,λm2=310nm。则测定波长为268和272nm,及308和312nm。
2.3 标准曲线的制备
精密吸取桂皮醛储备液0.1,0.2,0.3,0.4,0.5,0.6m1,分别置于25ml量瓶中,加乙醇至刻度,播匀,以乙醇为空白,于751分光光度计上,测上述溶液在测定渡长处的吸收值,并计算ΔA值。标准曲线的线性回归方程为:ΔA=49.29C+0.0029,r=0.9999(n=4),C单位为μl/ml。
2.4 加样回收率
精密吸取桂皮醛储备液,加入阴性对照液中(去桂枝),制备模拟口服液。精密吸取口服液0.5ml,置于25ml量瓶中,加乙醇至刻度,在上述波长处测定吸收值,并接上式计算ΔA值。
2.5 稳定性试验
按回收率项测定样品溶液,在不同时间内测走其吸收值,结果表明在48h内稳定。
2.6 样品的测定
按回收率项测定不同批号。
3 讨论
中药复方制剂成分复杂,对主要成分的含量测定存在相互影响。从解热I号口服液零阶光谱图可见,由于干扰组分的存在,使样品的最大吸收发生了位移,且影响测定。桂皮醛的最大吸收为287nm,与单味桂枝油相同,而制剂的最大吸收为284nm。本实验采用一阶导数光谱法,简便、实用,并有效地去除了阴性干扰.保证了样品含量测定的准确性。由桂皮醛的标准曲线可知,桂皮醛线性范围广,且具很好的线性,故生产中可采用一点法进行含量测定。

参考文献
l 黄雅熔,中药学,上海科技出版社.1989.21

LR梯度下降法MSE演练

同步进行一波网上代码搬砖, 先来个入门的线性回归模型训练, 基于梯度下降法来, 优化用 MSE 来做. 理论部分就不讲了, 网上一大堆, 我自己也是理解好多年了, 什么 偏导数, 梯度(多远函数一阶偏导数组成的向量) , 方向导数, 反方向(梯度下降) 这些基本的高数知识, 假设大家是非常清楚原理的.

如不清楚原理, 那就没有办法了, 只能自己补, 毕竟 ML 这块, 如果不清楚其数学原理, 只会有框架和导包, 那得是多门的无聊和无趣呀. 这里是搬运代码的, 当然, 我肯定是有改动的,基于我的经验, 做个小笔记, 方便自己后面遇到时, 直接抄呀.

01 采样数据

这里呢, 假设已知一个线性模型, 就假设已经基本训练好了一个, 比如是这样的.

(y=1.477x + 0.089)

现在为了更好模拟真实样本的观测误差, 给模型添加一个误差变量 (epsilon) (读作 epsilon) , 然后想要搞成这样的.

(y =1.477x + 0.089 + epsilon, epsilon-N(0, 0.01^2))

现在来随机采样 100次, 得到 n=100 的样本训练数据集

import numpy as np 

def data_sample(times=100):
    """数据集采样times次, 返回一个二维数组"""
    for i in range(times):
        # 随机采样输入 x, 一个数值 (均匀分布)
        x = np.random.uniform(-10, 10)
        # 采样高斯噪声(随机误差),正态分布
        epsilon = np.random.normal(0, 0.01)
        # 得到模型输出
        y = 1.447 * x + 0.089 + epsilon
        # 用生成器来生成或存储样本点
        yield [x, y]
        
# test
# 将数据转为 np.array 的二维数组
data = np.array(list(data_sample()))     

data 是这样的, 2D数组, 一共100行记录, 每一行表示一个样本点 (x, y).

array([[  5.25161007,   7.6922458 ],
       [  9.00034456,  13.11119931],
       [  9.47485633,  13.80426132],
       [ -4.3644416 ,  -6.2183884 ],
       [ -3.35345323,  -4.76625711],
       [ -5.10494006,  -7.30976062],
       .....
       [ -6.78834597,  -9.73362456]]

02 计算误差 MSE

计算每个点 (xi, yi) 处的预测值 与 真实值 之差的平方 并 累加, 从而得到整个训练集上的均方误差损失值.

# y = w * x + b
def get_mse(w, b, points):
    """计算训练集的 MSE"""
    # points 是一个二维数组, 每行表示一个样本
    # 每个样本, 第一个数是 x, 第二个数是 y
    loss = 0
    for i in range(0,len(X)):
        x = points[i, 0]
        y = points[i, 1]
        # 计算每个点的误差平方, 并进行累加
        loss += (y - (w * x + b)) ** 2
        # 用 总损失 / 总样本数 = 均方误差 mse
    return loss / len(points)
    

样本是一个二维数组, 或者矩阵. 每一行, 表示一个样本, 每一列表示该样本的某个子特征

03 计算梯度

关于梯度, 即多元函数的偏导数向量, 这个方向是, 多元函数的最大导数方向 (变化率最大) 方向 (向量方向), 于是, 反方向, 则是函数变化率最小, 即极值点的地方呀, 就咱需要的, 所以称为, 梯度下降法嘛, 从数学上就非常好理解哦.

def step_gradient(b_current, w_current, points, lr):
    # 计算误差函数在所有点的导数, 并更新 w, b 
    b_gradient = 0
    w_gradinet = 0
    n = len(points) # 样本数
    for i in range(n):
        # x, y 都是一个数值
        x = points[i, 0]
        y = points[i, 1]
        # 损失函数对 b 的导数 g_b = 2/n * (wx+b-y) 数学推导的
        b_gradient += (n/2) * ((w_current * x + b) - y)
        # 损失函数对 w 的导数 g_w = 2/n (wx+b-y) x
        w_gradinet += (n/2) * x * ((w_current * x + b) - y)
        
    # 根据梯度下降法, 更新 w, b
    new_w = w_current - (lr * b_gradient)
    new_b = b_current - (lr * b_gradient)
    
    return [new_w, new_b]

04 更新梯度 Epoch

根据第三步, 在算出误差函数在 w, b 的梯度后, 就可以通过 梯度下降法来更新 w,b 的值. 我们把对数据集的所有样本训练一次称为一个 Epoch, 共循环迭代 num_iterations 个 Epoch.

def gradient_descent(points, w, b, lr, max_iter):
    """梯度下降 Epoch"""
    for step in range(max_iter):
        # 计算梯度并更新一次
        w, b = step_gradient(b, w, np.array(points),lr)
        # 计算当前的 均方差 mse
        loss = get_mes(w, b, points)
        if step % 50 == 0:
            # 每隔50次打印一次当前信息
            print(f"iteration: {step} loss: {loss}, w:{w}, b:{b}")

    # 返回最后一次的 w,b
    return [w, b]

05 主函数

def main():
    # 加载训练数据, 即通过真实模型添加高斯噪声得到的
    lr = 0.01 # 学习率
    init_b = 0 
    init_w = 0 
    max_iter = 500 # 最大Epoch=100次
    # 用梯度下降法进行训练
    w, b = gradient_descent(data, init_w, init_b, lr, max_iter)
    # 计算出最优的均方差 loss
    loss = get_mse(w, b, dataa)
    
    print(f"Final loss: {loss}, w:{w}, b:{b}")
    
 # 运行主函数  
 main()
    
iteration: 0 loss: 52624.8637745707, w:-37.451784525811654, b:-37.451784525811654
iteration: 50 loss: 8.751081967754209e+134, w:-5.0141110054193505e+66, b:-5.0141110054193505e+66
iteration: 100 loss: 1.7286223665339186e+265, w:-7.047143783692584e+131, b:-7.047143783692584e+131
iteration: 150 loss: inf, w:-9.904494626138306e+196, b:-9.904494626138306e+196
                
iteration: 200 loss: inf, w:-1.3920393397706614e+262, b:-1.3920393397706614e+262
                
iteration: 250 loss: nan, w:nan, b:nan
iteration: 300 loss: nan, w:nan, b:nan
iteration: 350 loss: nan, w:nan, b:nan
iteration: 400 loss: nan, w:nan, b:nan
iteration: 450 loss: nan, w:nan, b:nan
************************************************************
Final loss: nan, w:nan, b:nan

可以看到, 在 Epoch 100多次, 后, 就已经收敛了. 当然正常来说, 应该给 loss 设置一个阈值的, 不然后面都 inf 了, 我还在 epoch, 这就有问题了. 这里就不改了, 总是习惯留下一些不完美, 这样才会记得更深. 其目的也是在与数理 ML 整个训练过程, 用入门级的 线性回归和 梯度下降法来整.

以上是关于什么是一阶导数光谱法,他的基本原理和操作是如何进行的?的主要内容,如果未能解决你的问题,请参考以下文章

LR梯度下降法MSE演练

什么是一阶导数和二阶导数?

一元函数和多元函数的极值得判断有啥区别与联系?

最小二乘法+牛顿法+拟牛顿法+梯度下降法+梯度上升法+共轭梯度法

什么是牛顿法(Newton methods)?什么是拟牛顿法(Quasi Newton methods)?牛顿法和梯度下降法的区别是什么?

Sobel test是啥检验?