人工智能学习Part.I

机器学习(Machine Learning)

一.概念
计算机对一部分数据进行学习,然后对另外一些数据进行预测和判断。

二.分类
1.监督学习(Supervised Learning)
让机器从带有标签的数据中学习出一个模型,当有新的数据输入时,可以根据模型预来预测结果。

2.无监督学习(Unsupervised Learning)
让机器从不带有标签的数据中学习出一个模型,当有新的数据输入时,可以根据模型来预测结果。

3.强化学习(Reinforcement Learning)
不预先给定任何数据,通过接受环境对动作的反馈来学习并更新模型参数。

分类与回归问题

一.分类与回归问题的区别
1.输出变量不同
回归为定量输出,或者说是连续变量预测。
分类为定型输出,或者说是离散变量预测。

2.使用场景不同
回归问题通常是用来预测一个值,如预测房价,公司营收等问题。
分类问题是用于将事物打上一个标签,通常结果为离散值,如判断一张图片上的动物是猫还是狗。
二.回归与分类的相同之处
分类模型与回归模型的本质相同,都是要建立映射关系,通过计算机学习数据集的特定规律,进而生成模型来实现预测任务。

分类模型可将回归模型的输出离散化,回归模型也可将分类模型的输出连续化。

损失函数(Loss function)

损失函数也被称为误差函数,是衡量单个样本的预测结果与实际结果之间的误差,所以说损失函数越小说明预测结果越准确。

几种常见的损失函数:

  • 0-1损失函数
  • 平方损失函数
  • 绝对值损失函数
  • log对数损失函数
  • 指数损失函数
  • Hinge损失函数
  • 感知损失函数
  • 交叉熵损失函数
    一. 0-1损失函数(0-1 loss)
    指预测值和目标值不相等为1,否则为0
    公式如下
    指预测值和目标值不相等为1,否则为0.
    该函数可以直接对应分类判断错误的个数,但是一个非凸函数,难以优化。

二.绝对值损失函数(absolution loss)
表示预测值与真实值之间的距离,公式如下在这里插入图片描述

三.平方损失函数(quadratic loss)
常用于回归问题,公式如下
在这里插入图片描述

四.log对数损失函数(LR)
逻辑回归的函数就是log对数损失函数
公式如下在这里插入图片描述

五.指数损失函数(exp-loss)
常用在AdaBoost算法中,公式如下:

六.Hinge损失函数(SVM)
使分类器更专注于整体误差
公式如下在这里插入图片描述

七.感知损失函数(perceptron loss)
公式如下在这里插入图片描述

八.交叉熵损失函数(cross-entropy loss)
当使用sigmoid作为激活函数的时候,常用交叉熵损函数而不用均方误差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢的良好性质。”
公式如下在这里插入图片描述

成本函数

成本函数是衡量整个数据集的误差,七公式就是取每个样本损失函数总和的平均数.

在这里插入图片描述

超参数

一.什么是超参数,参数和超参数的区别
1.超参数是在开始学习过程之前设置值的参数

2.区分参数与超参数最重要的一点就是是否通过数据来进行调整,模型参数通常是由数据来驱动调整的,超参数则不需要数据来驱动,而已在训练前或者训练中认为的进行调整的参数。

3.通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

二.超参数有哪些

  • 网络参数
  • 优化参数
  • 正则化参数

1.网络参数
可指网络层与层之间的交互方式(相加/相乘或者串接等),卷积核数量和卷积核尺寸,网络层数(也称深度)和激活函数等。

2.优化参数
一般指学习率(learning rate),批样本数量(Batch size),不同优化器的参数以及部分损失函数的可调参数。

正则化:权重衰减系数,丢弃法比率(dropout)

三.为什么要进行超参数调优

1.寻找全局最优解(或者相比更好的局部最优解)

2.使模型尽量拟合到最优

四.超参数的重要性顺序
1.学习率,损失函数上的可调参数。

学习率直接控制着训练中网络梯度更新的量级,直接影响着模型的有效容限能力。

2.批样本数量(batch size)
批样本是一次训练所选取的样本数。Batch Size的大小影响模型的优化程度和速度。同时其直接影响到GPU内存的使用情况。

  • 通过并行优化提高内存的利用率。就是尽量让你的GPU满载运行,提高训练速度。
  • 适当Batch Size使得梯度下降方向更准确

3.优化器超参数,权重衰减系数,dropout和网络参数。

这些参数的重要性放在最后并不等价于这些参数不重要,而是表示这些参数在大部分实践中不建议过多尝试,比如优化器超参数和权重衰减系数,选择默认推荐值即可。

dropout通常会在全链接层之间使用防止过拟合,增加网络层数可以提高模型的有效性,但一般情况下会选择固定的网络层数,对样本数量和质量,层之间的关系进行调优,有大量的硬件资源支持可以在网络深度上进行进一步调整。

网络搭建

一.全连接层(FC)
全链接层的每一个节点都与上一层的所有节点相连,用于把前面提取到的特征综合起来。

二.卷积层(Convolutional layer)
卷积神经网络中的每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最佳优化得到的。

卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘,线条,和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。

三.池化层(Pooling)
通过模仿人类的视觉系统对数据进行将数据进行降维度,用更高层次的特征表示图像。

使用池化层的目的(1)降低信息冗余 (2)提升模型的尺度不变性,旋转不变性 (3) 防止过拟合

池化层的常见操作包含以下几种:最大值池化,均值池化,随机池化,中值池化,组合池化等。

四.激活函数(Activation Function)
激活函数就是在人工神经网络的神经元上运行的恶函数,负责将神经元的输入映射到输出端。

五.BN操作
作用:
1.将输入值或卷积网络的张量进行类似标准化的操作,将其放索道合适的范围,加快训练速度。

2.使得每一层可以尽量面对同一特征分布的输入值,减少变化带来的不确定性。

BN操作可以防止学习过程中梯度消失。

深度学习

一.感知机
定义:感知机是一个接受多个输入,输出单个输出的算法。

原理:在这里插入图片描述
二.卷积神经网络
1.输入层(模型需要输入的进行预处理操作)
常见的输入层中对图像的预处理方式有:

  • 零均值化:将每一维的原始数据减去每一维度的平均值,将结果代替原始数据。

  • 数据归一化:原始数据归零均值后,再将每一维的数据除以每一维数据的标准差,或将不同维度的数据归一道相同的数据区间,如-1~-之间。

  • PCA和白化(白化是指在PCA的基础上再除以每一个特征的标准差):原始数据零均值后,计算数据的协方差矩阵,然后计算它的特征值及对应的特征向量,最后将特征向量按对应特征值大小从上到下按行排成矩阵,取前k行组成矩阵P,Y=P✖️X即为降维到k维后的数据。在这里插入图片描述
    2.卷积层
    局部感知:人的大脑识别图片的过程中,并不是整张图同时识别,而是对于图片中的每一个特征先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。(如下图)

在这里插入图片描述
卷积(Convolution)过程(如图所示):

【卷积核(Convolution kernel):图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数就是卷积核。】

让卷积核逐步在二位输入数据上“扫描”。卷积核滑动的同时,计算权重矩阵和扫描所得的数据的乘积,然后把结果汇总成一个输出像素。
在这里插入图片描述
填充(Padding)过程(如图所示):
在进行卷积时,变圆的像素永远不会位于卷积核的中心,而卷积核也没法扩展到边缘区域以外,导致丢失了图片边界处的众多信息。

为解决这个问题,可以在进行卷积操作之前,对原矩阵进行边界填充,也就是在矩阵边界上填充一些值,以增加矩阵的大小,通常用“0”来填充。

在这里插入图片描述
步长(Stride)(如图所示):
我们将每次卷积核滑动的行数和列数称为步长。

在这里插入图片描述

步长的作用:成倍缩小尺寸,比如步长为2,输出就是输入的1/2.

输入大小为:W1✖️H1✖️D1

需要制定的超参数:

  • filter个数(K)
  • filter大小(F)
  • 步长(S)
  • 边界填充(P)

输出为:
W2 = (W1-F+2P)/S+1
H2 = (H1-F+2P)/S+1
D2 = K

权值共享:
给一张输入图片,用一个卷积核去扫描这张图,卷积核里面的数就叫权重,这张图每个位置是被同样的卷积核扫描的,所以权重时一样的,也就是权值共享。
在这里插入图片描述
三.激励层(激活函数)
激活函数通俗来讲就是非线性函数,目的是哦你过来增加神经网络的逼近能力,使深层神经网络表达能力更加强大。
在这里插入图片描述

在这里插入图片描述

四.池化层
也称为欠采样或下采样。主要用于特征降维,压缩数据和参数的数量,见效过拟合,同时提高模型的容错性。

在这里插入图片描述

五.输出层(全连接层)
在全连接层中所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。党前面卷积层抓取到足以用来识别图片特征后,接下来连接所有的特征,将其输入到分类器(Softmax)中。

无

前向传播:

在这里插入图片描述
梯度下降(Gradient Descent):
在这里插入图片描述
在这里插入图片描述
学习率(Learning rate):
学习率是控制模型的学习进度。从梯度下降算法的角度来说,通过选择合适的学习率,可以使梯度下降法得到更好的性能。学习率,即参数达到最优值过程的速度快慢。

在这里插入图片描述

迭代次数(iteration):
迭代是一个重复反馈的过程,神经网络中我们希望通过迭代进行多次的训练以达到所需的目标或结果。每一次迭代得到的记过都会被作为下一次迭代的初始值。一次迭代=一个正向传播+一个反向传播。每一次迭代得到的结果都会被作为下一次迭代的初始值。我们可以查看loss曲线,来判断迭代次数是否足够,如果loss从曲线上看已经收敛了,那说明训练的差不多,再增加迭代也没什么用了;如果迭代结束了,但loss曲线并没有收敛的趋势,那么说明迭代设置的太小了。

epoch:
通俗的讲epoch的值就是整个数据集被轮了几次。一个epoch=所有训练样本的一个正向传播和一个反向传播,也就是等于使用训练集中的全部样本训练一次。在神经网络中传递完整的数据集一次是不够的,所以我们需要将完整的数据集在同样的神经网络中多次传递。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值