<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lch551218的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lch551218</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lch551218]]></copyright><item><title><![CDATA[对 Relu激活函数导致 [ 神经元死亡 ] 的理解]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118860970</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118860970</guid><author>lch551218</author><pubDate>Sat, 17 Jul 2021 20:05:26 +0800</pubDate><description><![CDATA[Relu激活函数导致 [ 神经元死亡 ] 的原因

relu函数和sigmoid函数相比，虽然能够避免反向传播过程中的梯度消失、屏蔽负值、防止梯度饱和；

但是relu也有自身的缺陷，当学习率过大时会出现某些神经元永久死亡的现象，导致网络后期无法正常更新

原因分析：



上式是神经网络权重更新的公式，其中η表示学习吕，Δw表示通过求导得到的当前参数的梯度（一般为正值）当学习率过大时，会导致ηΔw 这一项很大，当ηΔw 大于w时，更新后的w’就会变为负值；

当权重参数变为负值时，输入网络的正值会和权..]]></description><category></category></item><item><title><![CDATA[#深入理解# 线性回归中的“线性”、以及最小二乘和梯度下降的理解]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118722246</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118722246</guid><author>lch551218</author><pubDate>Wed, 14 Jul 2021 14:36:43 +0800</pubDate><description><![CDATA[​1. 线性回归中的"线性"

线性回归中的线性和我们通常理解的线性有着本质的区别，例如：



X为自变量

函数的次数指的是自变量的最高次项，线性函数表示自变量的最高次项为1；在高中和大学的学习中，我们往往要求解最优的x，因此我们认为x为变量，这时函数是否为线性函数我们要看自变量x指数位置的最大值是否为1；

参数为自变量

而在机器学习中，我们往往要求解最优的参数（上式中的a），因此，这时我们将a看做是自变量，x看作是常数，这时函数的次数就取决于参数a的最高次项；因此线性回归中如果参数的最高次项为1，]]></description><category></category></item><item><title><![CDATA[#浅谈# 构造哈夫曼树]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118684232</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118684232</guid><author>lch551218</author><pubDate>Mon, 12 Jul 2021 21:39:12 +0800</pubDate><description><![CDATA[哈夫曼树又称最优二叉树，哈夫曼树中离根节点越近，节点的权重越大

统计每个数据出现的次数，将每个数据出现的次数组成数组

构造哈夫曼树：

选择数据列表中最小的两个值，相加成为一个新的节点，并将两个节点较小的值作为左节点，较大的值作为右节点；
	将上一步选择的两个节点在数据列表中删除，将想加得到的新节点的值加入到数据列表中
	重复执行1、2步操作，直至数据列表为空
构造哈夫曼编码

将构造的哈夫曼树所有节点的左分支赋值为0，右分支赋值为1，然后将根节点到每个叶子节点路径上的值连起来作为每个叶子节点对应的数据]]></description><category></category></item><item><title><![CDATA[#深入理解# AdaBoost 集成学习方法]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118668393</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118668393</guid><author>lch551218</author><pubDate>Mon, 12 Jul 2021 17:00:25 +0800</pubDate><description><![CDATA[在AdaBoost算法中每个样本会被赋予一个权重，然后依次训练多个分类器，每训练完一个分类器都会根据当前分类器的结果对每个样本被选中的概率进行更新并得到当前分类器的权重参数，如果某个样本被算错则增加此样本被选中的概率，反之则降低概率；最后根据更新后的样本权重重新选择N个样本去训练下一个分类器；预测时，将每个分类器的结果加权得到预测的结果

AdaBoost算法训练过程：

将正样本标签置为1，负样本标签置为-1
	初始化样本被选中的概率（均匀分布，每个样本被选中的概率为1/n）
	根据样本权重选取N个样本训]]></description><category></category></item><item><title><![CDATA[#深入理解# 决策树综述（ID3、C4.5、CART）]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118575410</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118575410</guid><author>lch551218</author><pubDate>Sun, 11 Jul 2021 20:02:38 +0800</pubDate><description><![CDATA[目录

1. 构造决策树的依据

1.1 信息增益度

1.2信息增益率

1.3基尼系数

2. ID3 vs C4.5 vs CART

3. 剪枝操作

3.1 预剪枝

3.2 后剪枝

4. 关于 ID3、C4.5、CART 的几个问题

1. 构造决策树的依据

决策树的构造，从本质上讲就是每次将样本分成几组，目标是让每一组中的类别尽可能单一（每组的熵加权相加后的值尽可能的小）

ID3中使用最大化信息增益度对样本进行分组，C4.5中使用最大化信息增益率对样本进行分组，CART中使用最小化分..]]></description><category></category></item><item><title><![CDATA[Z检验、T检验下 P-value 和置信区间的计算]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118552449</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118552449</guid><author>lch551218</author><pubDate>Wed, 07 Jul 2021 17:22:19 +0800</pubDate><description><![CDATA[目录

1.置信区间的计算

1.1 总体方差已知

1.2总体方差未知

2.计算 P-Value

2.1 总体方差已知

2.2总体方差未知

1.置信区间的计算

根据总体分布（T分布或者Z分布）和规定的置信度计算总体均值在指定置信度下的置信区间，然后将实验值和置信区间比较，若在置信区间之外（小概率事件发生）则表示实验统计量和总体统计量存在显著差异

1.1 总体方差已知

总体方差已知时，根据总体均值和方差，使用Z分布计算置信区间，公式如下：



其中：


	表示样本均值
	
	
	表...]]></description><category></category></item><item><title><![CDATA[#深入理解# DNN+HMM 语音识别模型]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118460915</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118460915</guid><author>lch551218</author><pubDate>Wed, 07 Jul 2021 10:43:39 +0800</pubDate><description><![CDATA[上一篇文章详细解析了 GMM+HMM语音识别模型，在这篇文章中，我们将重点介绍DNN+HMM语音识别模型

将DNN应用在语音识别有两种方式：

1. 令DNN取代GMM+HMM中的GMM，

但是首先要训练一个GMM+HMM的语音识别模型，得到初始状态概率训练一个分类器，输入一个特征帧能够得到一个这个特征属于每一个状态的概率


...]]></description><category></category></item><item><title><![CDATA[#详细解读# 线性回归、逻辑回归及其损失函数]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118488663</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118488663</guid><author>lch551218</author><pubDate>Mon, 05 Jul 2021 16:43:46 +0800</pubDate><description><![CDATA[1. 线性回归

线性回归输入如果是连续的，输出必然也是连续的，形式是

损失函数一般使用 MSE、RMSE、MAE等，因为逻辑回归输出值是0~1本身给出的就是一个该概率值，而线性回归没有激活函数需要使用某种方式构造一种损失，那么最容易想到的便是最小二乘或RMSE，MAE等

2. 逻辑回归（LR）

逻辑回归在线性回归的基础上增加了激活函数（sigmoid）将输出限制在0到1，因此我们用交叉熵作为逻辑回归的损失函数，这里简述以下交叉熵和sigmoid激活函数：



2.1 交叉熵

1. 熵的定义：
.]]></description><category></category></item><item><title><![CDATA[#透彻理解# GMM+HMM 语音识别模型 [识别+训练] 过程]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118344589</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118344589</guid><author>lch551218</author><pubDate>Fri, 02 Jul 2021 22:11:39 +0800</pubDate><description><![CDATA[1.识别过程：
对于每一帧的特征，根据状态转移矩阵A，
2. 训练过程：

使用k-means等方法初始化每个状态对应GMM中每个高斯分布的权重参数



]]></description><category></category></item><item><title><![CDATA[通俗理解隐马尔可夫模型（HMM）]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118096043</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118096043</guid><author>lch551218</author><pubDate>Mon, 28 Jun 2021 23:35:24 +0800</pubDate><description><![CDATA[HMM（隐马尔可夫模型）
对于一个观测序列，我们认为这个观测序列是由另一个状态序列输出的，而这个状态序列我们称之为隐马尔可夫链
隐马尔可夫链每次可以输出一个观测值，但是一个观测值一次只能被一个状态输出；
HMM 的每一个状态输出完一个观测值后会根据概率转换到其他状态（其他状态也包括自身状态）然后在下一个状态下在输出下一个观测值，直到输出所有观测值时结束
一个HMM包含三组参数（π,A,B\pi,A,Bπ,A,B）:
数组π\piπ：表示初始化时每种状态被选择的概率（初始概率分布）;
矩阵A（N * N，N=]]></description><category></category></item><item><title><![CDATA[#通俗理解# 从极大似然估计（MLE）到最大期望（EM）算法]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/118143747</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/118143747</guid><author>lch551218</author><pubDate>Thu, 24 Jun 2021 23:10:58 +0800</pubDate><description><![CDATA[顾名思义，最大期望算法就是让某个函数的期望最大化从而得到最优参数，首先我们先要了解期望的公式：

期望本质上就是根据随机变量的分布对函数值的加权求和，平均值是期望的一种特殊形式，平均值假设随机变量取到每种值得概率相同（均分分布）
EM算法一般用来求解混合模型的参数，因为混合模型一般是多个不同参数模型的加权和，这种形式很难通过导数为零的方法得到每个参数的解析解；
EM算法思想是让多个模型对应的似然函数同时最大化；
在进一步说，EM算法有两部分参数：一部分是混合模型中各模型的权重参数，我们这里称之为隐变量Z；一]]></description><category></category></item><item><title><![CDATA[语音识别(Speech Recognition)综述]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117934430</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117934430</guid><author>lch551218</author><pubDate>Fri, 18 Jun 2021 16:31:42 +0800</pubDate><description><![CDATA[1. 语音识别的基本单位
1.1 Phoneme
a unit of sound 是声音的最基本单位，每个词语token的声音由多个 phoneme 组成
1.2 Grapheme
smallest unot of a writing system 每个单词书写最基本的单位，简单来说：
英文的grapheme可以认为是词缀， 由 ［26个英文字母 + 空格 + 标点符号］组成
中文的grapheme是汉字
1.3 Word
英文可以用单词作为语音识别的最基本单位，但包括中文在内的很多语言无法使用word作为]]></description><category></category></item><item><title><![CDATA[全面理解哈希函数及其应用]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117753961</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117753961</guid><author>lch551218</author><pubDate>Wed, 09 Jun 2021 22:40:18 +0800</pubDate><description><![CDATA[1. 哈希函数
哈希函数是指一种能够讲任意数据转换为固定长度编码的一种函数，因为不同数据得到的哈希值可能相同，因此哈希过程一般是不可逆的，哈希函数可以应用的密码加密，哈希存储等方面。
好的哈西函数应该具备以下特点：

相同的数据得到的哈希值唯一
通过哈希值无法通过反向推导得到源数据
源数据发生微小改变，得到的哈希值完全不同，
长的字符也能快速的计算出哈希值
要尽量避免冲突（不同的数据得到的编码要尽量不同）

2. 哈希加密算法
比如对用户密码的加密，如果使用明文来存储用户密码，那么管理员很容易就能在后台获取]]></description><category></category></item><item><title><![CDATA[#深入探究# Adam和SGDM优化器的对比]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117652604</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117652604</guid><author>lch551218</author><pubDate>Mon, 07 Jun 2021 16:55:19 +0800</pubDate><description><![CDATA[1. Adma 和 MSGD
Adam和MSGD作为当今最优秀的两种深度学习优化器，分别在效率和精度上有着各自的优势，下面我们将分析两种优化器各自优势的原因，两边的两张图分别是 几种常见的优化器在猫狗分类数据集上的分类准确率曲线，第一个是训练集，第二个是测试集


以下两张图是某个NLP任务中，几种模型的准确率和困惑度指标变换曲线


通过上边两幅图片可知：

Adma在训练集上的准确率较高，MSGD在测试集上的准确率较高
Adma的速度更快，但MSGD能够得到好的效果

第一个结论可以用下边这个图来解释：]]></description><category></category></item><item><title><![CDATA[对极大似然估计（MLE）和极大后验估计（MAP）的通俗理解]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117445186</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117445186</guid><author>lch551218</author><pubDate>Tue, 01 Jun 2021 17:22:51 +0800</pubDate><description><![CDATA[概率与统计
对于这个函数：P ( x ∣ θ )
输入有两个：x表示某一个具体的数据；θ表示模型的参数。


如果 θ 是已知确定的，x是变量，这个函数叫做概率函数(probability function)，它描述对于不同的样本点x，其出现概率是多少，求解x的过程属于概率学范畴。


如果x是已知确定的，θ是变量，这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数，出现x这个样本点的概率是多少，求解θ的过程属于统计学范畴。


也有人上上述两种问题称之为描述统计学（]]></description><category></category></item><item><title><![CDATA[#透彻理解# 机器学习中，正则化如何防止过拟合]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117375960</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117375960</guid><author>lch551218</author><pubDate>Fri, 28 May 2021 23:21:48 +0800</pubDate><description><![CDATA[简单来说，正则化就是对损失函数增加额外一种约束的方法，主要用来进行特征选择和改善模型的过拟合现象
常用的正则化方法有L0正则、L1正则、L2正则、随机正则

L0正则：在损失函数后增加一个惩罚项，这个惩罚项计算参数的L0范数
L1正则：在损失函数后增加一个惩罚项，这个惩罚项计算参数的L1范数
L2正则：在损失函数后增加一个惩罚项，这个惩罚项计算参数的L2范数
随机正则：随机让某些权重系数为零，在神经网络中表现为让某些神经元失活

范数的概念如下：
范数是一种用来度量某个向量空间（或矩阵）中的每个向量的长度或]]></description><category></category></item><item><title><![CDATA[#手写代码# 用Bert+CNN解决文本分类问题]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117249357</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117249357</guid><author>lch551218</author><pubDate>Tue, 25 May 2021 10:04:42 +0800</pubDate><description><![CDATA[文章目录1 配置文件2 定义模型2.1 __init__(self,config)函数2.1 conv_and_pool()函数2.3 forward(self,x)函数
1 配置文件
首先定义一个配置文件类，类里边存放Bert和CNN的一些超参数
class Config(object):
    '''
    配置参数
    '''
    def __init__(self,dataset):

        # 模型名称
        self.model_name='Bert CNN Mo]]></description><category></category></item><item><title><![CDATA[#手写代码# 用Bert+LSTM解决文本分类问题]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117234762</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117234762</guid><author>lch551218</author><pubDate>Mon, 24 May 2021 22:57:03 +0800</pubDate><description><![CDATA[1 配置文件
首先定义一个配置文件类，类里边存放Bert和LSTM的一些超参数
class Config(object):
    '''
    配置参数
    '''
    def __init__(self,dataset):
        self.model_name='Bert RNN Model'
        # 训练集，测试集，检验集，类别，模型训练结果保存路径
        # self.train_path=dataset+'/data/dev.txt'
        # ]]></description><category></category></item><item><title><![CDATA[深入理解 PyTorch 的一维卷积和二维卷积，一维池化和二维池化]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117222518</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117222518</guid><author>lch551218</author><pubDate>Mon, 24 May 2021 14:12:08 +0800</pubDate><description><![CDATA[PyTorch 的一维卷积和二维卷积的输入都可以是多维的
默认情况下，一维卷积只对输入的最后一维进行操作，二维卷积只对输入的最后两维进行操作；
如果想要对输入的倒数第二维度进行一维卷积，那么必须使用二维卷积进行操作，同时卷积核的第二个维度保持和输入数据的最后一个维度保持一致，这样就能保证卷积核在输入数据的倒数第二个维度上进行滑动了；
经过这样的卷积以后，输出数据的最后一个维度会变成1，这时一般会使用 unsqueeze() 函数删除数据的最后一个维度
上述思想对PyTroch中的一维池化和二维池化同样适用
]]></description><category></category></item><item><title><![CDATA[通俗理解 TextCNN网络结构]]></title><link>https://blog.youkuaiyun.com/lch551218/article/details/117120214</link><guid>https://blog.youkuaiyun.com/lch551218/article/details/117120214</guid><author>lch551218</author><pubDate>Fri, 21 May 2021 14:46:12 +0800</pubDate><description><![CDATA[TextCNN和图像CNN最大的区别就在于TextCNN是一维卷积，而图像CNN是二维卷积
有些人认为一维卷积核二维卷积的区别在于输入数据的维度，认为一维卷积的输入是一维数据，二维卷积的输入是二维数据；其实不然，两个最大的区别是卷积滑动的方向：

一维卷积只在一个唯独上进行滑动
二维卷积先在第一个维度上滑动，然后在第二个维度上滑动，比如对于图像来说，卷积核先在第一行像素上横向活动，然后再在第二行上横向滑动…

textCNN过程如下图所示：
对于一个 n*k 的文本序列，n代表文本序列的长度，k代表embe]]></description><category></category></item></channel></rss>