一、概述

人工智能是用机器去实现所有目前必须借助人类智慧才能实现的任务。其具体研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统。

机器学习是人工智能的一个重要分支,是一种强大的可以从经验中进行学习的一种技术,通常采用观测数据与环境交互的形式,积累更多的经验,其性能也会逐步提高,进而实现复杂的功能。主要应用领域有计算机视觉、自然语言处理、医疗保健和基因组学等。

机器学习的核心组件包括:

可以用来学习的数据(data);如何转换数据的模型(model);一个目标函数(objective function),用来量化模型的有效性;调整模型参数以优化目标函数的算法(algorithm)。

        深度学习是属于机器学习的一种方法,基于一种模拟人脑神经元连接方式的计算模型——神经网络发展的,其核心思想是通过多层次的神经网络来学习数据的抽象特征表示。人工神经网络(Artificial Neural Network,ANN)是一种受人类大脑神经系统启发而设计的计算模型。它由多个节点(神经元)组成,这些节点相互连接并传递信息。ANN 的主要目标是模拟人脑对信息的处理方式,以便执行各种任务,如分类、回归、聚类等。

使用的软件是Pycharm,参考书是动手学深度学习(李沐)。

二、线性回归分类与感知机

2.1线性回归

定义:线性回归利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

从前面机器学习的概述中我们知道其有四个核心要素。

1、数据:在机器学习的术语中,已经积累的经验,即已经收集的数据集称为训练数据集。每行数据称为样本。我们把试图预测的目标称为标签(label)或目标(target)。预测所依据的自变量称为特征。2、模型:在线性回归中,我们假设自变量和因变量之间存在线性关系,得到如下公式:X表示输入数据特征,Y表示输出数据标签(也是预测的结果),N为自变量个数,W表示权重,权重决定了每个特征对我们预测值的影响。b为偏置,偏置是指当所有特征都取值为0时,预测值应该为多少。3、损失函数:可以采用二次型等代价函数。4、优化算法:可以直接求取解析解,速度快,但是要求高。所以在无法得到解析解的情况下,采用梯度下降的方法。

       梯度下降的基本思想是沿着损失函数梯度的反方向更新参数,直到达到损失函数的最小值或收敛到某个阈值。梯度下降算法有多种变体,其中最常见的是批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-batch Gradient Descent)。在实践中,梯度下降算法的性能受到学习率、迭代次数、损失函数的选择等多个因素的影响。

2.2线性二分类

定义:线性分类器则透过特征的线性组合来做出分类决定,以达到此种目的。

线性分类与线性回归差别:

       输出意义不同:属于某类的概率<->回归具体值

       参数意义不同:最佳分类直线<->最佳拟合直线

Sigmoid函数:

       Sigmoid函数是一种常用的非线性激活函数,也称为 Logistic 函数。它具有 S 字形曲线,其定义如下:

算法原理:

       训练时,一个样本x在经过神经网络的最后一层的矩阵运算后的结果作为输入,经过Sigmoid后,输出一个[0,1]之间的预测值。 

        我们假设这个样本的标签值为0如果其预测值越接近0,就越接近标签值,那么误差越小,反向传播的力度就越小。

       输出推理时,我们预先设定一个阈值,通过比较输出与阈值大小来进行判断结果。

2.3对数回归与多分类回归

对数回归:

       它使用对数几率函数将线性模型的输出转换为概率值,输出的概率值表示样本属于某个类别的概率。

多分类回归:

       多分类回归通常使用softmax函数将线性模型的输出转换为各个类别的概率分布。多分类回归模型的参数可以通过最大似然估计、梯度下降或者其他优化算法来学习。

2.4神经元模型

        神经元模型是人工神经网络(ANN)中的基本构建单元,它模拟了生物神经元的功能和行为。在人工神经网络中,神经元负责接收输入信号、对输入进行加权求和并加上偏置,然后通过激活函数将加权和转换为输出信号。

通常,神经元模型由以下几个要素组成:

输入(Input):神经元接收来自其他神经元或外部输入的信号。

权重(Weights):每个输入都有一个相关联的权重,用于衡量该输入对神经元的重要性。权重决定了每个输入信号对神经元输出的影响程度。

偏置(Bias):偏置是一个常数项,用于调整神经元的激活阈值。它的作用是帮助神经元更灵活地适应数据。

加权求和(Weighted Sum):神经元将输入信号与相应的权重相乘,并将它们加总起来,得到加权和。

激活函数(Activation Function):激活函数将加权和转换为神经元的输出。它的作用是引入非线性,使得神经网络能够学习复杂的模式和关系。常用的激活函数包括Sigmoid、ReLU、Tanh等。

输出(Output):激活函数的输出即为神经元的输出信号,它传递给网络中的其他神经元或作为整个网络的输出。

神经元模型通常被组织成层次结构,形成了神经网络。在典型的前馈神经网络中,神经元按层级排列,每一层的神经元接收上一层的输出作为输入,并将自己的输出传递给下一层。

神经元模型的设计和参数调整对于神经网络的性能和效果至关重要。通过调整权重、偏置和选择合适的激活函数,可以使得神经网络适应不同类型的数据和任务。

2.5感知机模型

感知机(Perceptron)是一种最简单的人工神经网络模型,用于二元分类问题。它由一个单层的神经元组成,接收输入并产生输出。

感知机模型的基本原理如下:

输入:感知机接收一组输入特征权重和偏置:每个输入特征都有一个对应的权重,以及一个偏置项 b。权重表示了每个特征对输出的影响程度,偏置项表示了模型的偏移或截距。线性组合:感知机将输入特征与对应的权重相乘,并加上偏置项,得到一个加权线性组合:

激活函数:感知机通常使用阶跃函数或者符号函数作为激活函数,将加权线性组合的结果映射到一个二元输出。

训练:感知机模型的训练使用的是简单的在线学习(online learning)方法。通过对训练样本进行迭代,对模型参数进行调整,使得模型在训练数据上能够正确分类样本。如果某个样本被错误分类,就更新权重和偏置项以减小错误。

三、多层前馈网络与误差反传算法

3.1多层感知机

       多层感知机通过组合多个神经元层来学习复杂的非线性关系,使其能够处理更复杂的分类和回归问题。与单层感知机不同,多层感知机具有非线性激活函数,允许模型学习非线性映射。可以解决线性不可分问题(例如XOR问题)。

 多层感知器网络,有如下定理:

 定理1 若隐层节点(单元)可任意设置,用三层阈值节点的网络,可以实现任意的二值逻辑函数。

 定理2 若隐层节点(单元)可任意设置,用三层S型非线性特 性节点的网络,可以一致逼近紧集上的连续函数或按 范数逼近紧 集上的平方可积函数。

3.2BP算法概述

        BP算法是用于训练多层前馈神经网络的一种有效算法。其基本思想是通过反向传播误差来调整网络的权重和偏置,使得网络的输出尽可能地接近真实值。其包括正向传播和反向传播两部分,正向传播得到输出并与期望进行比较,反向传播将误差逆向求导计算,调整各节点权重阈值。

具体步骤如下:

前向传播(Forward Propagation):输入训练样本,通过网络计算得到输出值。计算损失(Compute Loss):计算输出值与真实标签之间的损失,即损失函数的值。反向传播误差(Backward Propagation):从输出层开始,计算损失函数对每个参数的梯度。然后向后逐层计算梯度,直到达到输入层。这一步利用了链式法则来计算每一层的梯度。更新参数(Update Parameters):使用梯度下降等优化算法来更新网络的参数,使得损失函数最小化。参数的更新方式通常是沿着梯度的负方向移动一定步长。重复迭代(Iterate):重复以上步骤,直到达到停止条件,如达到最大迭代次数或损失函数收敛到一个预定义的阈值。

四、性能优化

4.1常用技巧

模型初始化:

简单的考虑,把所有权值在[-1,1]区间内按均值或高斯分布 进行初始化。

Xavier初始化:为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。

因此需要实现下面的均匀分布:

训练数据与测试数据:

数据包括:  训练数据、验证数据、测试数据

通常三者比例为70%,15%,15%或60,20,20 当数据很多时,训练和验证数据可适当减少。

퐾折交叉验证:

      原始训练数据被分成K个不重叠的子集。然后执行K次模型 训练和验证,每次在K−1 个子集上进行训练,并在剩余的一 个子集(在该轮中没有用于训练的子集)上进行验证。最后,通过对K 次实验的结果取平均来估计训练和验证误差。

欠拟合与过拟合:

        欠拟合:误差一直比较大(无法收敛,存在稳态误差)。

        过拟合:在训练数据集上误差小而在测试数据集上误差大(发散)。

权重衰减 (퐿2正则化):

为防止过拟合和权值震荡,加入新的指标函数项:

第二项约束了权值不能过大。在梯度下降时,导数容易计算:

Dropout(暂退) :       在整个训练过程的每一次迭代中,标准暂退法包括在计算下 一层之前将当前层中的一些节点置零。

4.2动量法

4.2.1SGD问题:病态曲率

        图为损失函数轮廓。在进入以蓝色 标记的山沟状区域之前随机开始。 颜色实际上表示损失函数在特定点 处的值有多大,红色表示最大值, 蓝色表示最小值。我们想要达到最 小值点,为此但需要我们穿过山沟 。这个区域就是所谓的病态曲率。

        如果把原始的 SGD 想象成一个纸团在重力作用向下滚动,由 于质量小受到山壁弹力的干扰大,导致来回震荡;或者在鞍点 处因为质量小速度很快减为 0,导致无法离开这块平地。

4.2.2 动量法

       动量方法相当于把纸团换成了铁球;不容易受到外力的干扰,轨迹更加稳定;同时因为在鞍点处因为惯性的作用,更有可能离开平地。

4.3自适应梯度算法

4.3.1AdaGrad

Adaptive Gradient:自适应梯度

       参数自适应变化:具有较大偏导的参数相应有一个较大的学习率,而具有小偏导的参数则对应一个较小的学习率。

        具体来说,每个参数的学习率会缩放各参数反比于其历史梯度平方值总和的平方根。

AdaGrad问题:学习率是单调递减的,训练后期学习率过小会导致训练困难,甚至提前结束 。

4.3.2 RMSProp

RMSProp使用指数衰减平均以丢弃遥远的历史,使其能够快 速收敛;此外,RMSProp还加入了超参数휌控制衰减速率。

4.3.3Adam

Adam 在RMSProp方法的基础上更进一步:

除了加入历史梯度平方的指数衰减平均(푟)外, 还保留了历史梯度的指数衰减平均(푠),相当于动量。 

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: