【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=1∑∣y∣pklog2pk
计算信息熵时约定:若 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|} log2∣y∣
信息增益直接以信息熵为基础,计算当前划分对信息熵所造成的变化
离散属性 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=1∑V∣D∣∣Dv∣Ent(Dv)
其中:
E n t ( D ) Ent(D) Ent(D) 为划分前的信息熵
∣ D v ∣ ∣ D ∣ {|D^v|\over |D|} ∣D∣∣Dv∣ 为第 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=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
其中 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=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣pk2
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 缺失值的处理
现实生活中,经常会遇到属性值“缺失”现象,仅使用无缺失的样例? 是对数据的极大浪费
使用待缺失值的样例,需解决:
- 如何进行划分属性选择?
- 给定划分属性,若样本在该属性上的值缺失,如何进行划分?
基本思路:样本赋权,权重划分
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∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m
凸二次规划问题,能用优化计算包求解,但可以有更有效的办法(拉格朗日乘子法)
5.2 对偶问与解的特性
对偶问题
拉格朗日乘子法
第一步:引入拉格朗日乘子 a i ≥ 0 a_i \geq0 ai≥0得到拉格朗日函数
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∣∣w∣∣2+i=1∑mai(1−yi(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=1∑maiyixi,0=i=1∑maiyi
对偶问题:对偶问题得到的最小值,是原目标函数下界,需要求该最小值在原目标函数的最大值
第三步:回代可得
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=1∑mai−21i=1∑mj=1∑maiajyiyjxiTxjs.t.i=1∑maiyi=0,ai≥0,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=1∑maiyixiTxj+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} ⎩ ⎨ ⎧ai≥0;1−yif(xi)≤0;ai(1−yif(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,ai≥0,aj≥0
用 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=1∑mai−21i=1∑mj=1∑maiajyiyjxiTxj
有闭式解,对任意支持向量 ( 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∣∣w∣∣2s.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=1∑mai−21i=1∑mj=1∑maiajyiyjϕ(xi)Tϕ(xj)s.t.i=1∑maiyi=0,ai≥0,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=1∑maiyiϕ(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 X′AX半正定,即对于任意不为 0 0 0的实列向量 X X X, 都有 X ′ A X ≥ 0 都有X'AX≥0 都有X′AX≥0
任何一个核函数,都隐式地定义了一个 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∣∣w∣∣2+Ci=1∑m(ξi+ξ^i)s.t.f(xi)−yi≤ϵ+ξ^i,yi−f(xi)≤ϵ+ξ^i,ξi≥0,ξ^i≥0,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=1∑myi(a^i−ai)−ϵ(a^i+ai)−21i=1∑mj=1∑m(a^i−ai)(a^j−aj)xiTxjs.t.i=1∑m(a^i−ai)=0,0≤ai,a^i≤C
预测:
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=1∑m(a^i−ai)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)},xi∈Rd,yi∈Rl
输入: 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=1∑l(y^jk−yjk)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 v←v+Δ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=−η∂whj∂Ek注意到 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}} ∂whj∂Ek=∂y^jk∂Ek∂βj∂y^jk∂whj∂β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+e−x1,有 f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f′(x)=f(x)(1−f(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) ∂βj∂y^jk=f′(βj−θj)=y^jk(1−y^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 ∂whj∂Ek=(y^jk−yjk)⋅y^jk(1−y^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^jk∂Ek∂βj∂y^jk=y^jk(1−y^jk)(yjk−y^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=−η∂whj∂Ek=η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=−∂bh∂Ek⋅∂ah∂bh=bh(1−bh)j=1∑lwhjgj
学习率 η ∈ ( 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之后引入的一个新特性,可以在编译阶段约束操作的数据类型,并进行检查。 泛型的格式为 <数据类型> import java.util.ArrayList;SuppressWarnings({"all"}) public class Generic02 {public static void…...
Springboot 文件上传下载相关问题
文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候,发现了一些小小的问题,已经在 上述代码中体现。① 代码路径碰到中文的时候,会有乱码,需要转换(内容中…...
【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…...
点赞系统实现
点赞功能是社交、电商等几乎所有的互联网项目中都广泛使用。虽然看起来简单,不过蕴含的技术方案和手段还是比较多的。 下面将分享之前做的判题OJ系统的点赞系统的思路。 1.需求分析 点赞功能与其它功能不同,没有复杂的原型和需求,仅仅是一…...
c++进阶学习-----继承
1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。 继承呈现了面向对象 程序设计的…...
C++学习笔记(37)
302、makefile 在实际开发中,项目的源代码文件比较多,按类型、功能、模块分别存放在不同的目录和文件中,哪 些文件需要先编译,那些文件后编译,那些文件需要重新编译,还有更多更复杂的操作。 make 是一个强大…...
Redis发布和订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景 Redis可以实现消息中间件MQ的功能,通过发布订阅实现消息…...
计算机毕设设计推荐-基于python+Djanog大数据的电影数据可视化分析
精彩专栏推荐订阅:在下方主页👇🏻👇🏻👇🏻👇🏻 💖🔥作者主页:计算机毕设木哥🔥 💖 文章目录 一、电影数据可视…...
dhtmlxGantt 甘特图 一行展示多条任务类型
效果如图: 后台拿到数据 处理之后如图: 含义: 如上图所示, 如果一行需要展示多个 需要给父数据的那条添加render:split属性, 子数据的parent为父数据的Id即可 切记 父数据的id 别为0 为0 时 会出现错乱 因为有些小伙伴提出分段展示的数据结构还是有点问题,下面展示一个完整…...
COLORmap
在这段MATLAB代码中,surf(peaks)、map的定义以及colormap(map)的调用共同完成了以下任务: 1. **绘制曲面图**: - surf(peaks):这个函数调用了MATLAB内置的peaks函数来生成数据,并使用surf函数将这些数据绘制成一个…...
OpenClaw多通道监控:百川2-13B-4bits同时响应飞书与网页指令
OpenClaw多通道监控:百川2-13B-4bits同时响应飞书与网页指令 1. 为什么需要多通道监控 上周三凌晨两点,我被连续不断的手机振动惊醒——飞书机器人正在疯狂推送任务失败告警。原来团队同时通过飞书群和网页控制台提交了数据清洗任务,导致百…...
LabelImg闪退报错别慌!手把手教你排查‘list index out of range’和‘ValueError’
LabelImg闪退报错全攻略:从崩溃到流畅标注的完整指南 当你正全神贯注地标注数据集时,LabelImg突然闪退并抛出一串红色错误信息——这种经历对任何AI从业者来说都堪称噩梦。别担心,这不是你一个人的问题。根据社区统计,超过60%的La…...
三线制SPI通信原理与ZYNQ实现方案
1. 三线制SPI通信的背景与应用场景 在嵌入式系统设计中,SPI(Serial Peripheral Interface)总线是最常用的通信接口之一。传统四线制SPI包含SCLK(时钟)、MOSI(主机输出从机输入)、MISO(主机输入从机输出)和SS(片选)四条信号线。但在某些特定应用场景下,为…...
OpCore-Simplify:黑苹果配置的智能革命——从手动调试到自动化生成的转变
OpCore-Simplify:黑苹果配置的智能革命——从手动调试到自动化生成的转变 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 传统黑苹果配置需…...
终极音乐解析方案:music-api如何免费打通四大平台音频资源壁垒
终极音乐解析方案:music-api如何免费打通四大平台音频资源壁垒 【免费下载链接】music-api 各大音乐平台的歌曲播放地址获取接口,包含网易云音乐,qq音乐,酷狗音乐等平台 项目地址: https://gitcode.com/gh_mirrors/mu/music-api…...
2025届毕业生推荐的十大AI论文平台推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在内容生产这个领域当中,过度去依赖AIGC会引发出来一系列的问题,这一…...
2026最权威的十大AI科研工具实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI技术于毕业论文写作里的应用愈发广泛,借助大语言模型,学生能够在选…...
Ollama部署granite-4.0-h-350m:面向开发者的小型AI工具链构建教程
Ollama部署granite-4.0-h-350m:面向开发者的小型AI工具链构建教程 1. 开篇:为什么选择granite-4.0-h-350m? 如果你正在寻找一个既轻量又功能强大的AI模型来构建自己的开发工具链,granite-4.0-h-350m绝对值得关注。这个只有350M参…...
智能配置引擎:OpenCore EFI构建效率提升90%的技术突破
智能配置引擎:OpenCore EFI构建效率提升90%的技术突破 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题溯源:开源系统硬件适…...
SpringMVC+MyBatis整合微信H5支付全流程实战(附避坑指南)
SpringMVCMyBatis整合微信H5支付全流程实战(附避坑指南) 移动支付已成为现代商业的基础设施,而微信H5支付作为连接移动网页与支付系统的重要桥梁,其技术实现却常让开发者陷入各种"坑"。本文将带你从零开始,…...
