深度(机器)学习算法速学笔记(一)——相关概念速查

目录

前言

一、神经网络

1、M-P神经元模型

 2、激活函数(activation function)

二、机器学习

1、概念

2、分类及性能度量

(1)错误率(error rate)

(2)精度(accuracy)

(3)查准率(precision)、查全率(recall)与F1

 (4)ROC和AUC

3、聚类及性能度量

性能度量——JC、FMI、RI、DBI、DI

三、KL散度和交叉熵

四、损失函数(loss function)

(1)均方误差(Mean Squared Error, MSE)

(2)交叉熵损失(cross-entropy loss)


前言

深度学习零基础论文看到头秃……因为没有系统学完就要磕论文,所以学得很艰难也很片面,望大佬们多多指教!!!

参考资料:《机器学习》 周志华著

一、神经网络

1、M-P神经元模型

神经网(neural networks) 中最基本的成分是神经元(neuron )模型 ,抽象为“M-P神经元模型”,模型中,神经元接受来自n个 其他神 经元传 递过来的 输入信号, 这些 输入信号通过 带权重 的连 接( connection) 进行传递 ,神经元 接收 到的总输 入值将与 神经元 的阀值进 行比较, 然后通过"激活函数" (a ctivation function ) 处理以 产生神经元 的输出。 如下图所示:

深度(机器)学习算法速学笔记(一)——相关概念速查_第1张图片

 2、激活函数(activation function

理想中的激活函数只有0和1两个输出值,0代表神经元抑制,1代表神经元兴奋,函数表达式为

sgn(x)=\begin{cases} & \text{1, } x\geq 0 \\ & \text{0, } x< 0 \end{cases},但此函数是分段函数,不连续、不光滑,因此实际常用Sigmoid函数作为激励函数,典型的Sigmoid函数公式为 sigmoid(x)=\frac{1}{1+e ^{-x}}它把可能在 较大 范围内变化的输入值挤压到 (0, 1) 输出值 范围 内,因此有 时也称为 "挤 压函 数" (squashing  function),其函数图像如下图所示:

深度(机器)学习算法速学笔记(一)——相关概念速查_第2张图片

二、机器学习

1、概念

机器学习所研究的主要内容,是关于在计算机上从数据中产生"模型" (model) 的算法,即"学习算法" (learning algorithm)。有了学习算法,我们把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时,模型会给我们提供相应的判断。反映事件或对象在某方面的表现或性质的事项,称为“ 属性” (attribute) 或“ 特征” (feature),所要预测的结果信息称为“ 标记”(label)。从数据中学得模型的过程称为"学习" (learning) 或"训练" (training),这个过程通过执行某个学习算法来完成。训练过程中使用的数据称为" 训练数据" (training data) ,其中每个样本称为一个“训练样本” (training sample),训练样本组成的集合称为" 训练集" (training set).。学得模型对应了关于数据的某种潜在的规律,因此亦称“ 假设”(hypothesis)。这种潜在规律自身,则称为"真相"或" 真实" (ground-truth) ,学习过程就是为了找出或逼近真相。学得模型后,使用其进行预测的过程称为"测试" (testing) ,被预测的样本称为“ 测试样本” (testing sample)。根据训练数据是否拥有标记信息,学习任务大致划分为两大类:“ 监督学习(supervised learning) 和"无监督学习" (unsupervised learning),如果两者结合使用称为“半监督学习”(semi-supervised learning)。
更详细的机器学习的分类可参考: 机器学习的分类 - 知乎

2、分类及性能度量

分类(classification)可以理解为通过一个函数判断输入数据所属的类别,其输出值是离散值,是监督学习的代表。如果只涉及两个类别的判断称为“二分类”(binary classification,一般称其中一个类为“正类”(positive class),另一个称为“反类”(negative class);涉及多个类别的判断称为“多分类”(multi-class classification。分类有以下几种性能度量:

(1)错误率(error rate)

错误率是分类错误的样本数占样本总数的比例,定义为
E(f;D)=\frac{1}{m}\sum_{i=1}^{m}\mathbb{I}(f(x_{i})\neq y_{i}))

(2)精度(accuracy)

精度则是分类正确的样本数占样本总数的比例,定义为
acc(f;D)=\frac{1}{m}\sum_{i=1}^{m}\mathbb{I}(f(x_{i})= y_{i}))=1-E(f;D)

(3)查准率(precision)、查全率(recall)与F1

对于二分类问题,可将样例根据其真实类别与预测类别的组合划分为真正例(true positive) 、假正例 (false positive) 、真反例(true negative) 、假反例 (false negative) 四种情形,令 TP、 FP、 TN、 FN 分别表示其对应的样例数,则显然有 TP+FP+TN+FN= 样例总数。分类结果的"混淆矩
阵" (confusion matrix) 如下图所示:

深度(机器)学习算法速学笔记(一)——相关概念速查_第3张图片

查准率P表示预测结果为正例的样本中真正是正例的样本所占的比例,即P=\frac{TP}{TP+FP}

查全率R表示真正是正例的样本中预测结果为正例的样本所占的比例,即R=\frac{TP}{TP+FN}

 “P-R图”可以直观地展现出模型在样本总体上的查准率和查全率,也可以体现模型的性能优劣,具体不展开分析。

F1度量,其定义为:

F1度量的一般形式:

其中β > 0度量了查全率对查准率的相对重要性。 β = 1时退化为标准的 F1; β > 1时查全率有更大影响; β < 1时查准率有更大影响。

很多时候我们有多个二分类混淆矩阵,我们希望在 个二分类混淆矩阵上综合考察查准率和查全率。

一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率,记为 (P1R1) ,(P2, R2),… ,(PnRn) 再计算平均值,这样就得到"宏查准率" (macro-P) ,"宏查全率" (macro-R) ,以及相应的"宏F1" (macro-F1):

深度(机器)学习算法速学笔记(一)——相关概念速查_第4张图片

还可先将各混淆矩阵的对应元素进行平均,得到 TP、 FP、 TN、FN平均值, 再基于这些平均值计算出"微查准率"(micro-P)、 "微查全率" (micro-R) "微F1" (micro-F1):

         

 深度(机器)学习算法速学笔记(一)——相关概念速查_第5张图片

 (4)ROC和AUC

很多模型是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold) 进行比较,若大于阈值则分为正类,否则为反类。例如,神经网络在一般情形下是对每个测试样本预测出一个 [0.0 ,1. 0] 之间的实值,然后将这个值与 0.5 进行比较,大于 0.5 则判为正例,否则为反例。这个实值或概率预测结果的好坏,直接决定了模型的泛化能力。实际上,根据这个实值或
概率预测结果,我们可将测试样本进行排序,"最可能"是正例的排在最前面,"最不可能"是正例的排在最后面。这样,分类过程就相当于在这个排序中以某个"截断点" (cut point) 将样本分为两部分,前一部分判作正例,后一部分则判作反例。
ROC 全称是"受试者工作特征" (Receiver Operating Characteristic)曲线我们根据模型的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图'就得到了 “ROC 曲线”。与P-R 曲线使用查准率、查全率为纵、横轴不同, ROC 曲线的纵轴是 "真正例率" (True Positive Rate ,简称 TPR) ,横轴是 "假正例率" (False Positive Rate ,简称 FPR) ,二者定义分别为:

深度(机器)学习算法速学笔记(一)——相关概念速查_第6张图片

绘图过程很简单:给定 m+ 个正例和m- 个反例,根据模型预测结果对样例进行排序 ,然后把分类阈值设为 最大, 即把所有样例均预测为反例,此时真 正例率和假正例率均为0,在 坐标(0,0)处标记一个点 ,然后,将分类阈 值依次 设为每个样例的预测值 ,即依次将 每个样例划分为正例。设前 一个标记点坐 标为(x,y),当 前若为 真正例,则对应 标记 点的 坐标为 ;当前若为假正例,则对 应标 记点的 坐标为 ,然 后用线段连接相邻点即得。
ROC 线下 的面积 ,即AUC  (Area Under ROC Curv e) 从定义可知, AUC可 通过对 ROC 线下各部分的面积 求和而得。假定 ROC 曲线是由坐标为 {(x1, y1) , (x2, y2) , . . . , (xm, ym)} 的点按序连接而形成 (x1  = 0 , xm   = 1) AUC 可估算为

3、聚类及性能度量

聚类(clustering) 试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个"簇" (cluster)。通过这样的划分,每个簇可能对应于一些潜在的概念(类别),也就是就是根据规则划分,把样本相似度高的聚在同一类,把样本相似度低的聚在同一类。聚类结果应"簇内相似度" (intra-cluster similarity) 高且"簇间相似度" (inter-cluster similarity) 低,也就是“高内聚,低耦合”。

详细请参考:机器学习——聚类算法简单汇总_chelsea_tongtong的博客-CSDN博客_聚类模型算法

性能度量——JC、FMI、RI、DBI、DI

聚类性能度量亦称聚类"有效性指标" (validity index)聚类性能度量大致有两类:一类是将聚类结果与某个"参考模型" (reference model) 进行比较,称为"外部指标" (external index); 另一类是直接考察聚类结果而不利用任何参考模型,称为"内部指标" (internal index)

深度(机器)学习算法速学笔记(一)——相关概念速查_第7张图片

 深度(机器)学习算法速学笔记(一)——相关概念速查_第8张图片

 深度(机器)学习算法速学笔记(一)——相关概念速查_第9张图片

 深度(机器)学习算法速学笔记(一)——相关概念速查_第10张图片

 我的理解:对于外部指标来说,要想说明自己的模型跟参考模型近似,那么极端情况可以认为在自己的模型中属于一个簇的样本在参考模型中也在一个簇中,在自己的模型中不属于一个簇的样本在参考模型中也不在一个簇中,这种情况基本就是两个模型性能相当,如果认为参考模型近乎完美,那么自己的模型也就可以说近乎完美。所以说a和d值越大说明模型性能越好。

对于内部指标来说,我们追求地结果是“高内聚,低耦合”,所以说,簇内样本间距离要小,簇间样本间距离要大才是最好的。

三、KL散度和交叉熵

KL散度(Kullback-Leibler divergence) ,亦称相对熵(relative entropy) 或信息散度 (information divergence) ,可用于度量两个概率分布之间的差异。给定两个概率分布P和Q,二者之间的KL散度定义为KL(P||Q) =\int_{-\infty }^{\infty }p(x)log\frac{p(x)}{q(x)}dx,其中 p(x)和q(x) 分别为P和Q的概率密度函数。将其定义式展开可得KL(P||Q) =\int_{-\infty }^{\infty }p(x)log p(x)dx-\int_{-\infty }^{\infty }p(x)log q(x)dx =-H(p) + H(P,Q),其中 H(P) (entropy) ,H(P, Q) 交叉熵(cross entropy)。 在信息论中,熵H(P) 表示对来自P的随机变量进行编码所需的最小字节数,而交叉熵H(P, Q) 则表示使用基于Q的编码对来自P的变量进行编码所需的字节数。

四、损失函数(loss function)

模型的损失函数(loss function)是用来表示模型预测值和训练样本之间的差异,我们的目的是通过降低这个损失函数来不断改进模型参数,使模型预测越来越准确。当然,不能只降低某个预测值的损失函数,而是应当降低所有样本的总体损失函数(overall loss function),即全部样本上损失函数的平均值或数学期望。

两种损失函数:

(1)均方误差(Mean Squared Error, MSE)

MSE = \frac{1}{N}\sum_{1}^{N}(y_{i} - Y_{i})^{2}

(2)交叉熵损失(cross-entropy loss)

cost = -\frac{1}{N}\sum_{i= 1}^{N}[Y_{i}lny_{i} + ( 1-Y_{i})ln(1-y_{i})]

Y表示真实值,y表示预测值。

详细请见原博客:神经网络中的损失函数_Zeii的博客-CSDN博客_神经网络中的损失函数


总结

只能说我看的论文中出现了这些概念就很片面地学习了一下,他们之间的关系如何我也没有细究(也就是标题分的可能比较乱),望大佬们多多指教!!!

你可能感兴趣的:(机器学习,学习,机器学习,深度学习)