可解释机器学习预备知识

一、简单的算法

1、KNN

        kNN的思想如下:对于一个个案,找到它附近的k个个案(邻居),把这些邻居的类别的众数作为自己的类别。

        

可解释机器学习预备知识_第1张图片

KNN的特点:

  • kNN不具有显式的学习过程,它直接基于实例对样本进行预测(惰性学习的代表);
  • kNN是非参数学习算法,它没有任何参数需要学习
  • 当训练样本数量较大时kNN的精度较高;
  • 当数据很大的情况下kNN的计算成本较高;
  • 若某一个类的个案特别多,如果k选得稍大了一点,就会导致错误分类;

2、线性分类器

        给定数据集$$\mathcal{D}=\{(\vec{x}_1,y_1),(\vec{x}_2,y_2),\dots,(\vec{x}_m,y_m)\}$$,其中vec{x}_i为d维向量。线性回归模型试图学得$$f(\vec{x}_i)=w^T\vec{x}_i+b\backsimeq y_i$$

        训练方式一般为梯度下降,有时候也用最小二乘法

二、神经网络和反向传播

1、前向传播

1.1单个神经元的计算

可解释机器学习预备知识_第2张图片

神经元输出y的计算方法分为以下两步:

Step1 累加求和
输入数据和其对应的权重相乘并求和
图中的 e = x1w1+x2w2

Step2 激活
将第一步的输出通过一个非线性的激活函数激活

1.2神经网络的前向传播

在解释神经网络的前向传播时,将使用一个简单的全连接三层的神经网络进行说明,如下图所示。

简单的三层神经网络

 在全连接神经网络中,每一层的每个神经元都会与前一层的所有神经元或者输入数据相连,因此,在计算的时候,每一个神经元的输出=使用激活函数激活前一层函数的累加和.

2、反向传播

首先说一下什么是反向传播算法。
反向传播算法(Backpropagation,简称BP算法)是“误差反向传播”的简称,是适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。梯度下降法是训练神经网络的常用方法,许多的训练方法都是基于梯度下降法改良出来的,因此了解梯度下降法很重要。梯度下降法通过计算损失函数的梯度,并将这个梯度反馈给最优化函数来更新权重以最小化损失函数.

BP算法的学习过程由正向传播过程和反向传播过程组成。
 在正向传播过程中,输入信息通过输入层经隐含层,逐层处理并传向输出层。如果预测值和教师值不一样,则取输出与期望的误差的平方和作为损失函数(损失函数有很多,这是其中一种)。
 将正向传播中的损失函数传入反向传播过程,逐层求出损失函数对各神经元权重的偏导数,作为目标函数对权重的梯度。根据这个计算出来的梯度来修改权重,网络的学习在权重修改过程中完成。误差达到期望值时,网络学习结束。

三、迁移学习

迁移学习——将别人的模型泛化到自己的数据上

理论基础:卷积神经网络提取的底层特征,在一个模型中,越到高层,提取的特征越特化越复杂

可解释机器学习预备知识_第3张图片

将别人的模型拿来白嫖,修改一些层。自己的数据集越大修改的越多,但一般不修改卷积层,只动全连接层。因为卷积层时用来进行特征抽取的。(说简单点就是用别人模型,根据数据集复杂程度选择冻结的层)

可解释机器学习预备知识_第4张图片

曲线救国:当数据集太小时,我们可以找一个较大的数据集去训练一个模型,再将这个模型泛化到自己的小数据集上 

四、循环神经网络--处理序列数据

能够保留记忆,让过去发生的事情对现在的数据产生影响的网络

可解释机器学习预备知识_第5张图片

你可能感兴趣的:(可解释机器学习,算法,人工智能)