当前位置: 首页 > news >正文

【AI学习笔记】初学机器学习西瓜书概要记录(二)常用的机器学习方法篇

初学机器学习西瓜书的概要记录(一)机器学习基础知识篇(已完结)
初学机器学习西瓜书的概要记录(二)常用的机器学习方法篇(持续更新)
初学机器学习西瓜书的概要记录(三)进阶知识篇(待更)

文字公式撰写不易,随意学习,转载请注明!谢谢

(二)常用的机器学习方法篇

  • 4.1 决策树的基本流程
  • 4.2 信息增益划分
  • 4.3 其他属性的划分准则
  • 4.4 决策树剪枝
  • 4.5 缺失值的处理
  • 5.1 支持向量机基本型
  • 5.2 对偶问与解的特性
  • 5.3 求解方法(SMO)
  • 5.4 特征空间映射
  • 5.5 核函数
  • 5.6 如何使用SVM
  • 6.1 神经网络模型
  • 6.2 万有逼近性
  • 6.3 BP算法推导

以下内容出自周志华老师亲讲西瓜书

4.1 决策树的基本流程

决策树基于“树”结构进行决策

  • 每个内部结点对应某个属性上的测试
  • 每个分支对应于该测试的一种可能结果(即该属性的某个取值)
  • 每个叶结点对应于一个预测结果
    在这里插入图片描述

学习过程:通过对训练样本的分析来确定“划分属性”(即内部结点所对应的属性)
预测过程:将测试示例从跟结点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点
策略:分而治之,自根至叶的递归过程,在每个中间结点寻找一个"划分"属性

对当前某个结点进行划分时,确定递归停止的三种条件:

  • 当前结点包含的样本全属于同一类别,无需划分;
  • 当前属性集为空,或是所以样本在所有属性上取值相同,无法划分;
  • 当前结点包含的样本集为空,不能划分。
    在这里插入图片描述

4.2 信息增益划分

决策树的提出是收到信息论的启发,因此很多东西是以信息论的准测进行判断,而在信息论中最重要的一个量就是“熵”
信息熵是度量样本集合“纯度”最常用的一种指标,假定当前样本集合 D D D 中第 k k k 类样本所占的比例为 p k p_k pk,则 D D D 的信息熵定义为
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum^{|y|}_{k=1}p_klog_2p_k Ent(D)=k=1ypklog2pk
计算信息熵时约定:若 p = 0 p=0 p=0,则 p l o g 2 p = 0 plog_2p=0 plog2p=0
E n t ( D ) Ent(D) Ent(D) 的值越小,则 D D D 的纯度越高, E n t ( D ) Ent(D) Ent(D) 的最小值为 0,最大值为 l o g 2 ∣ y ∣ log_2{|y|} log2y
信息增益直接以信息熵为基础,计算当前划分对信息熵所造成的变化

离散属性 a a a 的取值: { a 1 , a 2 , . . . , a V } \{a^1,a^2,...,a^V\} {a1,a2,...,aV}
D v D^v Dv D D D a a a 上取值 = a v =a^v =av的样本集合
以属性 a a a 对数据集 D D D 进行划分所获得的新增增益为:
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D) - \sum_{v=1}^V{|D^v|\over |D|}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
其中:
E n t ( D ) Ent(D) Ent(D) 为划分前的信息熵
∣ D v ∣ ∣ D ∣ {|D^v|\over |D|} DDv 为第 v v v个分支的权重,样本越多越重要
E n t ( D v ) Ent(D^v) Ent(Dv) 为划分后的信息熵

4.3 其他属性的划分准则

信息增益如果只考虑了信息量的获得,一定程度上偏好了分支多的属性,因为分支越多,分到分支上样本数量就会越少。

信息增益:可对取值数目较多的属性有所偏好,有明显弱电,例如:考虑将“编号”作为一个属性
增益率:
G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) 其中 I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ Gain_ratio(D,a)={Gain(D,a)\over IV(a)} \\ 其中 IV(a)=-\sum^V_{v=1}{|D^v|\over |D|} log_2{|D^v|\over |D|} Gainratio(D,a)=IV(a)Gain(D,a)其中IV(a)=v=1VDDvlog2DDv
其中 a a a 的可能取值数目越多(即 V V V 越大),则 I V ( a ) IV(a) IV(a) 的值通常即越大

启发式:先从候选划分属性中找出信息增益高于平均水平的,再从中选取增益率最高的

没有办法对信息增益和增益率做绝对正确的权衡,但对于分支多的情况被解决了,像上式这种情况叫做规范化。归一化是规范化的特殊形式,更多情况下规范化是将不可比较的东西变得可比较。

基尼指数(Gini index)
反应了从D中随机抽取两个样例,其类别标记不一致的概率

在多个类别 y y y 中,抽取样例某一个类 k k k 的概率为为 p k p_k pk ,再抽取样例为另一个类 k ′ ≠ k k' \not= k k=k 的概率为 p k ′ p_k' pk,如果这两个概率相乘很大,则证明这个集合 D D D 中不太“干净”
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=\sum^{|y|}_{k=1}\sum_{k' \not= k}p_kp_k'=1-\sum^{|y|}_{k=1}p^2_k Gini(D)=k=1yk=kpkpk=1k=1ypk2
G i n i ( D ) Gini(D) Gini(D) 越小,数据集 D D D 的纯度越高

属性 a a a 的基尼指数: G i n i i n d e x ( D , a ) = ∑ v = 1 V G i n i ( D v ) Gini_index(D,a)=\sum^V_{v=1}Gini(D^v) Giniindex(D,a)=v=1VGini(Dv)
在候选属性集合中,选取那个使划分后基尼指数最小的属性(CART算法中使用)

关键是如何去衡量,经过一个操作后,后面的东西比原来更“纯净”!

4.4 决策树剪枝

划分选择 vs. 剪枝
研究表明:划分选择的各种准则虽然对决策树的尺寸有较大影响,但对泛化性能的影响很有限
例如信息增益与基尼指数产生的结果,仅在约2%的情况下不同,剪枝方法和程度对决策树泛化性能的影响更显著,在数据带噪声时甚至可能将泛化性能提升25%

剪枝是决策树对付“过拟合”的主要手段

现阶段,在单决策树时,一定是需要剪枝的

为了尽可能正确分类训练样本,有可能造成分支过多(过拟合),可通过主动去掉一些分支来降低过拟合的风险

基本策略:

  • 预剪枝:提前终止某些分支的生长
  • 后剪枝:生成一颗完全树,再“回头”剪枝

剪枝过程中需评估剪枝前后决策树的优劣(详情见模型的评估)

4.5 缺失值的处理

现实生活中,经常会遇到属性值“缺失”现象,仅使用无缺失的样例? 是对数据的极大浪费

使用待缺失值的样例,需解决:

  1. 如何进行划分属性选择?
  2. 给定划分属性,若样本在该属性上的值缺失,如何进行划分?

基本思路:样本赋权,权重划分

5.1 支持向量机基本型

在这里插入图片描述

离正类和负类距离差不多的最好!

间隔与支持向量
在这里插入图片描述最大间隔:寻找参数 w w w b b b,使得 γ \gamma γ 最大
a r g m a x w , b 2 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \underset{w,b}{argmax}{2\over ||w||} \\ s.t. \quad y_i(w^Tx_i+b)\geq1,i=1,2,...,m w,bargmax∣∣w∣∣2s.t.yi(wTxi+b)1,i=1,2,...,m

a r g m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \underset{w,b}{argmin}{1\over2} ||w||^2 \\ s.t. \quad y_i(w^Tx_i+b)\geq1,i=1,2,...,m w,bargmin21∣∣w2s.t.yi(wTxi+b)1,i=1,2,...,m
凸二次规划问题,能用优化计算包求解,但可以有更有效的办法(拉格朗日乘子法)

5.2 对偶问与解的特性

对偶问题
拉格朗日乘子法
第一步:引入拉格朗日乘子 a i ≥ 0 a_i \geq0 ai0得到拉格朗日函数
L ( w , b , a ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m a i ( 1 − y i ( w T x i + b ) ) L(w,b,a)={1\over 2}||w||^2+\sum^m_{i=1}a_i(1-y_i(w^Tx_i+b)) L(w,b,a)=21∣∣w2+i=1mai(1yi(wTxi+b))
第二步:令 L ( w , b , a ) L(w,b,a) L(w,b,a) w w w b b b 求偏导为零可得
w = ∑ i = 1 m a i y i x i , 0 = ∑ i = 1 m a i y i w=\sum^m_{i=1}a_iy_ix_i,0=\sum^m_{i=1}a_iy_i w=i=1maiyixi,0=i=1maiyi
对偶问题:对偶问题得到的最小值,是原目标函数下界,需要求该最小值在原目标函数的最大值
第三步:回代可得
m a x a = ∑ i = 1 m a i − 1 2 ∑ i = 1 m ∑ j = 1 m a i a j y i y j x i T x j s . t . ∑ i = 1 m a i y i = 0 , a i ≥ 0 , i = 1 , 2 , . . . , m \underset{a}{max}=\sum^m_{i=1}a_i-{1\over 2}\sum^m_{i=1}\sum^m_{j=1}a_ia_jy_iy_jx_i^Tx_j \\ s.t. \quad \sum^m_{i=1}a_iy_i=0,a_i\geq0,i=1,2,...,m amax=i=1mai21i=1mj=1maiajyiyjxiTxjs.t.i=1maiyi=0,ai0,i=1,2,...,m

解的特性
最终模型
f ( x ) = w T x + b = ∑ i = 1 m a i y i x i T x j + b f(x)=w^Tx+b=\sum_{i=1}^ma_iy_ix_i^Tx_j+b f(x)=wTx+b=i=1maiyixiTxj+b
KKT条件:

{ a i ≥ 0 ; 1 − y i f ( x i ) ≤ 0 ; a i ( 1 − y i f ( x i ) ) = 0 \begin{cases} a_i\geq0; & \\ 1-y_if(x_i)\leq0;\\ a_i(1-y_if(x_i)) = 0\\ \end{cases} ai0;1yif(xi)0;ai(1yif(xi))=0
必有 a i = 0 a_i=0 ai=0 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1

解的稀疏性:训练完成后,最终模型仅于支持向量有关,支持向量机因此而得名

5.3 求解方法(SMO)

基本思路:不断执行如下两个步骤直至收敛

  • 第一步:选取一对需更新的变量 a i a_i ai a j a_j aj
  • 第二步:固定 a i a_i ai a j a_j aj 以外的参数,求解对偶问题更新 a i a_i ai a j a_j aj ,仅考虑 a i a_i ai a j a_j aj 时,对偶问题的约束 0 = ∑ i = 1 m a i y i 0=\sum^m_{i=1}a_iy_i 0=i=1maiyi,变为
    a i y i + a j y j = c , a i ≥ 0 , a j ≥ 0 a_iy_i+a_jy_j=c,a_i \geq0,a_j\geq 0 aiyi+ajyj=c,ai0,aj0
    a i a_i ai 表示 a j a_j aj 代入对偶问题
    m a x a = ∑ i = 1 m a i − 1 2 ∑ i = 1 m ∑ j = 1 m a i a j y i y j x i T x j \underset{a}{max}=\sum^m_{i=1}a_i-{1\over 2}\sum^m_{i=1}\sum^m_{j=1}a_ia_jy_iy_jx_i^Tx_j amax=i=1mai21i=1mj=1maiajyiyjxiTxj
    有闭式解,对任意支持向量 ( x s , y s ) (x_s,y_s) (xs,ys) y s f ( x s ) = 1 y_sf(x_s)=1 ysf(xs)=1,由此可解出 b b b

找最初两个点时,先把违背 KKT 条件最多的点找出来,理论上第二个点也是寻找违背KKT条件最多的点,但是计算量太大,因此第二个点找离它间隔最远的点,为提高鲁棒性,通常使用所有支持向量求解的平均值

5.4 特征空间映射

若不存在一个能正确划分两类样本的超平面,怎么办?
将样本从原始空间映射到一个更高维的特征空间,使样本在这个特征空间内线性可分
在这里插入图片描述
如果原始空间是有限维(属性数有限),那么一定存在一个高维特征空间使样本线性可分

设样本 x x x 映射后的向量为 ϕ ( x ) \phi(x) ϕ(x) ,划分超平面 f ( x ) = w T ϕ ( x ) + b f(x)=w^T\phi(x)+b f(x)=wTϕ(x)+b
原始问题:
a r g m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T ϕ ( x i ) + b ) ≥ 1 , i = 1 , 2 , . . . , m \underset{w,b}{argmin}{1\over2} ||w||^2 \\ s.t. \quad y_i(w^T\phi(x_i)+b)\geq1,i=1,2,...,m w,bargmin21∣∣w2s.t.yi(wTϕ(xi)+b)1,i=1,2,...,m
对偶问题:
m a x a = ∑ i = 1 m a i − 1 2 ∑ i = 1 m ∑ j = 1 m a i a j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m a i y i = 0 , a i ≥ 0 , i = 1 , 2 , . . . , m \underset{a}{max}=\sum^m_{i=1}a_i-{1\over 2}\sum^m_{i=1}\sum^m_{j=1}a_ia_jy_iy_j\phi(x_i)^T\phi(x_j) \\ s.t. \quad \sum^m_{i=1}a_iy_i=0,a_i\geq0,i=1,2,...,m amax=i=1mai21i=1mj=1maiajyiyjϕ(xi)Tϕ(xj)s.t.i=1maiyi=0,ai0,i=1,2,...,m
有一个计算上的问题,原来的 x x x 是一个低维的,而现在的 ϕ ( x ) \phi(x) ϕ(x) 是一个非常高维的,甚至可能是无限维,计算两个高维向量的内积代价巨大。
预测:
f ( x ) = w T ϕ ( x ) + b = ∑ i = 1 m a i y i ϕ ( x i ) T ϕ ( x j ) + b f(x)=w^T\phi(x)+b=\sum_{i=1}^ma_iy_i\phi(x_i)^T\phi(x_j)+b f(x)=wTϕ(x)+b=i=1maiyiϕ(xi)Tϕ(xj)+b
观察发现 ϕ ( x i ) T ϕ ( x ) \phi(x_i)^T\phi(x) ϕ(xi)Tϕ(x)只以内积的形式出现,因此可以通过另一种东西去代替(核函数)。

5.5 核函数

基本思路:
κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \kappa(x_i,x_j)=\phi(x_i)^T\phi(x_j) κ(xi,xj)=ϕ(xi)Tϕ(xj)
绕过显式考虑特征映射、以及计算高维内积的困难

Mercer定理:若一个对称函数所对应的核矩阵半正定,则它能作为核函数来使用
半正定矩阵,是正定矩阵的推广。实对称矩阵A称为半正定的,如果二次型 X ′ A X X'AX XAX半正定,即对于任意不为 0 0 0的实列向量 X X X 都有 X ′ A X ≥ 0 都有X'AX≥0 都有XAX0

任何一个核函数,都隐式地定义了一个 R K H S RKHS RKHS(再生核希尔伯特空间)

核函数选择 成为决定支持向量机性能的关键!

5.6 如何使用SVM

以回归学习为例

分类和回归的区别在于输出变量的类型。
定量输出称为回归,或者说是连续变量预测;
定性输出称为分类,或者说是离散变量预测。

基本思路:运行模型输出与实际输出间存在 2 ϵ 2\epsilon 2ϵ 的差别
在这里插入图片描述
落入 2 ϵ 2\epsilon 2ϵ 间的不计算损失
在这里插入图片描述
原始问题:
a r g m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i ) s . t . f ( x i ) − y i ≤ ϵ + ξ ^ i , y i − f ( x i ) ≤ ϵ + ξ ^ i , ξ i ≥ 0 , ξ ^ i ≥ 0 , i = 1 , 2 , . . . , m \underset{w,b}{argmin}{1\over2} ||w||^2 +C\sum^m_{i=1}(\xi_i+\hat\xi_i) \\ s.t. \quad f(x_i)-y_i\leq \epsilon+\hat\xi_i,\\ \quad \quad y_i-f(x_i) \leq \epsilon+\hat\xi_i,\\ \xi_i\geq 0, \hat\xi_i\geq 0, i=1,2,...,m w,bargmin21∣∣w2+Ci=1m(ξi+ξ^i)s.t.f(xi)yiϵ+ξ^i,yif(xi)ϵ+ξ^i,ξi0,ξ^i0,i=1,2,...,m
对偶问题:
m a x a = ∑ i = 1 m y i ( a ^ i − a i ) − ϵ ( a ^ i + a i ) − 1 2 ∑ i = 1 m ∑ j = 1 m ( a ^ i − a i ) ( a ^ j − a j ) x i T x j s . t . ∑ i = 1 m ( a ^ i − a i ) = 0 , 0 ≤ a i , a ^ i ≤ C \underset{a}{max}=\sum^m_{i=1}y_i(\hat a_i-a_i)-\epsilon(\hat a_i+a_i)-{1\over 2}\sum^m_{i=1}\sum^m_{j=1}(\hat a_i-a_i)(\hat a_j-a_j)x_i^Tx_j\\ s.t. \quad \sum^m_{i=1}(\hat a_i-a_i)=0,0\leq a_i,\hat a_i\leq C amax=i=1myi(a^iai)ϵ(a^i+ai)21i=1mj=1m(a^iai)(a^jaj)xiTxjs.t.i=1m(a^iai)=0,0ai,a^iC

预测:
f ( x ) = ∑ i = 1 m ( a ^ i − a i ) x i T x + b f(x)=\sum_{i=1}^m(\hat a_i-a_i)x_i^Tx+b f(x)=i=1m(a^iai)xiTx+b

6.1 神经网络模型

什么是神经网络:

  • 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应
  • 神经网络是一个很大的学科领域,本课程仅讨论神经网络与机器学习的交集,即“神经网络学习”亦称"连接主义"学习
    在这里插入图片描述

神经元的“激活函数”

  • 理想激活函数是阶跃函数,0表示抑制神经元而1表示激活神经元
  • 阶跃函数具有不联系、不光滑等不好的性质,常用的是 Sigmoid 函数

在这里插入图片描述

多层前馈网络结构
多层网络:包含隐层的网络
前馈网络:神经元之间不存在同层连接也不存在跨层连接
在这里插入图片描述

隐层和输出层神经元亦称“功能单元”
多层前馈网络具有强大的表示能力(“万有逼近性”)

6.2 万有逼近性

仅需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数。

但是,如何设置隐层神经元数是未决问题,实际常用“试错法”

6.3 BP算法推导

BP(BackPropagation)误差逆传播算法

给定训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x m , y m ) } , x i ∈ R d , y i ∈ R l D=\{(x_1,y_1),(x_2,y_2),...(x_m,y_m)\}, x_i\in \mathbb{R^d}, y_i\in \mathbb{R^l} D={(x1,y1),(x2,y2),...(xm,ym)},xiRd,yiRl
输入: d d d 维特征向量
输出: l l l 个输出值
隐层:假定使用 q q q 个隐层神经元
假定功能函数均使用 Sigmoid 函数
在这里插入图片描述
对于训练例 ( x k , y k ) (x_k,y_k) (xk,yk),假定网络的实际输出为 y ^ k = ( y ^ 1 k , y ^ 2 k , . . . y ^ l k ) \hat y_k=(\hat y_1^k,\hat y_2^k,...\hat y_l^k) y^k=(y^1k,y^2k,...y^lk)
y ^ j k = f ( β j − θ j ) \hat y^k_j=f(\beta_j-\theta_j) y^jk=f(βjθj)其中 j j j 表示第 j j j 个神经元,而 k k k 为在第 k k k 个样例上, θ \theta θ 为输出层阈值
则网络在 ( x k , y k ) (x_k,y_k) (xk,yk) 上的均方误差为:
E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k={1\over 2}\sum^l_{j=1}(\hat y^k_j -y^k_j)^2 Ek=21j=1l(y^jkyjk)2 需要通过学习确定的参数数目: ( d + l + 1 ) q + l (d+l+1)q+l (d+l+1)q+l
输出层 → \rightarrow 隐层: d × q d\times q d×q 连接权
隐层 → \rightarrow 输出层: q × l q\times l q×l 连接权
功能神经元拥有自己的阈值,隐层有 q q q 个阈值,输出层有 l l l 个阈值

BP算法是一个迭代学习算法,在迭代的每一轮中采用广义感知机学习规则
v ← v + Δ v v \leftarrow v+\Delta v vv+Δv
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整,以 w h j w_{hj} whj为例
对误差 E k E_k Ek,给定学习率 η \eta η,有:
Δ w h j = − η ∂ E k ∂ w h j \Delta w_{hj}=-\eta{\partial E_k \over\partial w_{hj}} Δwhj=ηwhjEk注意到 w h j w_{hj} whj 先影响到 β j \beta_j βj,再影响到 y ^ j k \hat y^k_j y^jk,然后才影响到 E k E_k Ek,有:
∂ E k ∂ w h j = ∂ E k ∂ y ^ j k ∂ y ^ j k ∂ β j ∂ β j ∂ w h j {\partial E_k \over\partial w_{hj}}={\partial E_k \over\partial \hat y^k_j}{\partial \hat y^k_j \over\partial \beta_j}{\partial \beta_j \over\partial w_{hj}} whjEk=y^jkEkβjy^jkwhjβj
其中 y ^ j k = f ( β j − θ j ) \hat y^k_j=f(\beta_j - \theta_j) y^jk=f(βjθj),对 s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) ={1\over 1+e^{-x}} sigmoid(x)=1+ex1,有 f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x)),因此 ∂ y ^ j k ∂ β j = f ′ ( β j − θ j ) = y ^ j k ( 1 − y ^ j k ) {\partial \hat y^k_j \over\partial \beta_j}=f'(\beta_j-\theta_j)=\hat y^k_j(1-\hat y^k_j) βjy^jk=f(βjθj)=y^jk(1y^jk)
∂ E k ∂ w h j = ( y ^ j k − y j k ) ⋅ y ^ j k ( 1 − y ^ j k ) ⋅ b h {\partial E_k \over\partial w_{hj}}=(\hat y^k_j-y^k_j)\cdot \hat y^k_j(1-\hat y^k_j)\cdot b_h whjEk=(y^jkyjk)y^jk(1y^jk)bh
g i = − ∂ E k ∂ y ^ j k ∂ y ^ j k ∂ β j = y ^ j k ( 1 − y ^ j k ) ( y j k − y ^ j k ) g_i=-{\partial E_k \over\partial \hat y^k_j}{\partial \hat y^k_j \over\partial \beta_j}=\hat y^k_j(1-\hat y^k_j)( y^k_j -\hat y^k_j ) gi=y^jkEkβjy^jk=y^jk(1y^jk)(yjky^jk)
于是:
Δ w h j = − η ∂ E k ∂ w h j = η g i b h \Delta w_{hj}=-\eta{\partial E_k \over\partial w_{hj}}=\eta g_ib_h Δwhj=ηwhjEk=ηgibh类似地,有:
Δ θ j = − η g j Δ v i h = η e h x i Δ γ h = − η e h \Delta \theta_j=-\eta g_j \\ \Delta v_{ih}=\eta e_hx_i \\ \Delta \gamma_h=-\eta e_h Δθj=ηgjΔvih=ηehxiΔγh=ηeh
其中:
e h = − ∂ E k ∂ b h ⋅ ∂ b h ∂ a h = b h ( 1 − b h ) ∑ j = 1 l w h j g j e_h=-{\partial E_k\over \partial b_h}\cdot{\partial b_h \over \partial a_h}\\=b_h(1-b_h)\sum^l_{j=1}w_{hj}g_j eh=bhEkahbh=bh(1bh)j=1lwhjgj
学习率 η ∈ ( 0 , 1 ) \eta \in(0,1) η(0,1),不能太大、也不能太小

相关文章:

【AI学习笔记】初学机器学习西瓜书概要记录(二)常用的机器学习方法篇

初学机器学习西瓜书的概要记录(一)机器学习基础知识篇(已完结) 初学机器学习西瓜书的概要记录(二)常用的机器学习方法篇(持续更新) 初学机器学习西瓜书的概要记录(三)进阶知识篇(待更) 文字公式撰写不易&am…...

[SDX35+WCN6856]SDX35 + WCN6856 默认增加打包wifi配置hostapd_24g.conf和hostapd_5g.conf操作方法

SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…...

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数

文章目录 什么是自动引用计数 内存管理/引用计数 概要 内存管理的思考方式 自己生成的对象,自己所持有 非自己生成的对象,自己也能持有 不再需要自己持有的对象时释放 无法释放非自己持有的对象 什么是自动引用计数 自动引用计数(AR…...

网络安全-LD_PRELOAD,请求劫持

目录 一、环境 二、开始做题 三、总结原理 四、如何防护 一、环境 我们这里用蚁剑自带的靶场第一关来解释 docker制作一下即可 二、开始做题 首先环境内很明显给我们已经写好了webshell 同样我们也可以访问到 我们使用这个蚁剑把这个webshell连上 我们发现命令不能执行&am…...

GO入门之值传递于引用(指针、内存地址)传递扫盲

GO入门之值传递于引用(指针、内存地址)传递扫盲 Go 语言中,值传递和引用(指针)传递是两个关键的概念。通过案例可以很好地展示两者的区别。 值传递与引用传递的区别: 值传递:传递的是变量的副…...

【渗透测试】-vulnhub源码框架漏洞-Os-hackNos-1

vulnhub源码框架漏洞中的CVE-2018-7600-Drupal 7.57 文章目录  前言 1.靶场搭建: 2.信息搜集: 主机探测: 端口扫描: 目录扫描: 3.分析: 4.步骤: 1.下载CVE-2018-7600的exp 2.执行exp: 3.写入木…...

sqli-lab靶场学习(三)——Less8-10(盲注、时间盲注)

Less8 第八关依然是先看一般状态 http://localhost/sqli-labs/Less-8/?id1 然后用单引号闭合: http://localhost/sqli-labs/Less-8/?id1 这关的问题在于报错是不显示,那没办法通过上篇文章的updatexml大法处理。对于这种情况,需要用“盲…...

Pybullet 安装过程

Pybullet 安装过程(windows) 1. 安装C编译工具2. 安装Pybullet 1. 安装C编译工具 pybullet 需要C编译套件,直接装之前检查下,要不会报缺少某版本MVSC的error,最好的方式是直接下载visual studio,直接按默认…...

Error when custom data is added to Azure OpenAI Service Deployment

题意:在向 Azure OpenAI 服务部署添加自定义数据时出现错误。 问题背景: I receive the following error when adding my custom data which is a .txt file (it doesnt matter whether I add it via Azure Cognitive Search, Azure Blob Storage, or F…...

libreoffice word转pdf

一、准备一个word文件 运行: cd /root libreoffice --headless --convert-to pdf --outdir /root/output doc1.docx 发现中文乱码: 此时我们需要给linux 上添加中文字体: centos7 添加中文字体 再次运行正常: libreoffice --h…...

java -----泛型

泛型的理解和好处 泛型是在JDK5之后引入的一个新特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式为 <数据类型> import java.util.ArrayList;SuppressWarnings({"all"}) public class Generic02 {public static void…...

Springboot 文件上传下载相关问题

文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候&#xff0c;发现了一些小小的问题&#xff0c;已经在 上述代码中体现。① 代码路径碰到中文的时候&#xff0c;会有乱码&#xff0c;需要转换&#xff08;内容中…...

【Kotlin 与 Java 互操作】Java中调用带有默认值的Kotlin函数(十四)

导读大纲 1.0.1 Java 没有默认参数值的概念1.0.2 使用 JvmOverloads 来简化调用 1.0.1 Java 没有默认参数值的概念 因此当从 Java 调用带有默认参数值的 Kotlin 函数时 1. 必须明确指定所有参数值 fun <T> joinToString(collection: Collection<T>,separator: St…...

点赞系统实现

点赞功能是社交、电商等几乎所有的互联网项目中都广泛使用。虽然看起来简单&#xff0c;不过蕴含的技术方案和手段还是比较多的。 下面将分享之前做的判题OJ系统的点赞系统的思路。 1.需求分析 点赞功能与其它功能不同&#xff0c;没有复杂的原型和需求&#xff0c;仅仅是一…...

c++进阶学习-----继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承呈现了面向对象 程序设计的…...

C++学习笔记(37)

302、makefile 在实际开发中&#xff0c;项目的源代码文件比较多&#xff0c;按类型、功能、模块分别存放在不同的目录和文件中&#xff0c;哪 些文件需要先编译&#xff0c;那些文件后编译&#xff0c;那些文件需要重新编译&#xff0c;还有更多更复杂的操作。 make 是一个强大…...

Redis发布和订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景 Redis可以实现消息中间件MQ的功能&#xff0c;通过发布订阅实现消息…...

计算机毕设设计推荐-基于python+Djanog大数据的电影数据可视化分析

精彩专栏推荐订阅&#xff1a;在下方主页&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、电影数据可视…...

dhtmlxGantt 甘特图 一行展示多条任务类型

效果如图: 后台拿到数据 处理之后如图: 含义: 如上图所示, 如果一行需要展示多个 需要给父数据的那条添加render:split属性, 子数据的parent为父数据的Id即可 切记 父数据的id 别为0 为0 时 会出现错乱 因为有些小伙伴提出分段展示的数据结构还是有点问题,下面展示一个完整…...

COLORmap

在这段MATLAB代码中&#xff0c;surf(peaks)、map的定义以及colormap(map)的调用共同完成了以下任务&#xff1a; 1. **绘制曲面图**&#xff1a; - surf(peaks)&#xff1a;这个函数调用了MATLAB内置的peaks函数来生成数据&#xff0c;并使用surf函数将这些数据绘制成一个…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...