机器学习与神经网络简介

机器学习基础

在这里插入图片描述
机器学习是什么:根据米切尔的定义,他是一个计算机程序从数据和经验中去学习,用来解决特定的问题。首先它是一个计算机程序,它不能是人工,它得是智能。而且它要从过往的数据过往的经验中去学习,所以它是数据驱动的,要用大量的数据去训练它。他得总结归纳出一些模式,这是它学习到的东西。所以这也被称为统计学习。为什么现在的机器学习其实都是统计机器学习呢,就是统计就是要从过往的经验中,去拟合出一个概率分布来解决新数据的预测问题。所以叫做统计学习问题。
在这里插入图片描述
以人脸识别举例:要从一个图像输出一个人名,这其实是一个非常难的问题。因为即使是一个100*100的非常小的图像,每一个像素都会有0到255之间的值,并且它是三通道的,那就是3万个像素。每一个像素都有256种可能那就是256的3万次方。这么一个小图片就有这么多种可能,所以这是一个非常难的问题。如何设计算法基于这几百万个数据去预测出这个人是谁,而且他应该对各种各样的变化具有足够的鲁棒性,这是一个非常难的问题。他不能够用人工去构造特征方法去解决,他一定得通过大量的数据去训练,以数据驱动解决。
在这里插入图片描述
再比如说机器翻译,英文翻译成中文,你得保持意思准确表达通顺。
在这里插入图片描述
还有语音识别,或者叫语音转文字,微信都有这个功能。如何准确的识别出语音,再将语音转成文字,或者又文字去生成逼真的语音。
在这里插入图片描述
还有强化学习。强化学习是通过感知到环境给他的状态,然后采取一些动作影响环境,再感受环境下一时刻给他的状态,然后不断的去优化,让这个智能体在环境中自主的去决策、适应环境。比较经典的就是下围棋和玩各种各样的游戏。那他对于围棋这个任务而言也是一个海量的搜索空间。从这个海量的搜索空间中去学习到一个算法是非常伟大的一个成就。
在这里插入图片描述
所以机器学习就是通过数据驱动让计算机程序去学习去识别、去拟合、去数据挖掘,它和人类的认知与智能是非常像的。比如说人类有眼睛,那么AI具有计算机视觉,人类有文字那AI就有自然源处理,人类有声音,那AI就有语音识别,人类有社交关系,那AI就有图神经网络。所以针对不同的数据模态会对应不同的算法。但是大道至简,都是要从数据中通过数据驱动的方法去学习、去拟合、去归纳、去挖掘。
在这里插入图片描述
机器学习的三种典型范式:监督学习就是有标签的,无监督学习就是没标签的,强化学习就是让智能体自己去适应环境。

那我们所说的图像分类、目标检测、图像分割,都需要先用人标注好的数据去训练好算法,然后这个算法再再给它输入未标注的数据,算法就能很好的去预测了,这叫监督学习。

还有一类问题其实叫做自监督学习,就是虽然人类没有给他标注,但是他自己可以找到标注。比如说语语言模型,我输入了很多很多的文章,让AI用周围的词去预测中间的词,或者从中间的词去预测周围的词用前面的词去预测后边的词,那他自己就能找到这种标注称之为自监督学习

机器学习中的分类问题

在这里插入图片描述
重点来看分类问题。分类问题就是输入一个东西来输出不同类别的概率,哪个概率高,我们就认为它是哪一个类别。比如说这是一个垃圾邮件分类一起,我们首先要把这种不同的数据模态变成向量。
在这里插入图片描述
你输入是是一段图片,一段文字转成一个向量,一个图片转成一个向量,一段语音转成一个向量。再由这个向量特征去,去学习n维空间的一个决策边界,一个分类边界。然后就是特征要如何提取,你可以通过一些关键词的出现频率来构建这个特征,也可以用神经网络编码这一段文本得到一个特征,也可以自己去开脑洞想一些特征。总而言之你获得了一个n为向量,代表了原始输入数据的n个特征。在n维空间中拟合一个决策边界把正常邮件和垃圾邮件这个边界拟合出来,这就是分类问题。
在这里插入图片描述
如果你的这个分类边界是一条直线,那称之为一个线性分类器。在二维空间平面直角坐标系中的线性模型就是一条直线,在空间直角坐标系中线性分类器就是一个平面,在四维空间中线性分类器就是一个三维的超平面。但不管在哪一维他这个线都是直的,他是不会拐弯的。线性分类器就是由斜率和截距组成的。斜率可能有很多个斜率,每一个特征都对应一个斜率。
在这里插入图片描述
更一般的可以把它写成矩阵的形式,就是一个权重向量的转制乘以x再加上截距。这就是一个线性分类器。
在这里插入图片描述
关键就是如何求解这个分界面。我们可以用标注的数据去预测,然后得到损失函数的值,再按照使得损失函数最小化的方向去迭代的优化这些权重,然后经过随机速度下降的不断的迭代训练,最终收敛得到一个完美的决策边界。
在这里插入图片描述
再来看一个神经网络的雏形叫做感知器算法,感知器算法其实也是一个线性分类器。它其实可以作为一个神经元的基准,一个基础单位。
在这里插入图片描述
机器学习的基本流程:从训练集采集特征去训练、在验证集上验证模型的泛化性能,最后在实际场景中应用。

神经网络:一类拟合能力非常强的函数

在这里插入图片描述
刚刚讲的线性分类器,它是一个钢铁直男,没法拟合曲线,它不会拐弯。而我们现在讲的这个神经网络它就是非线性分类器,它是会拐弯的。
在这里插入图片描述
比如说这个异或问题,这左上角和右下角是加号,右上角和左下角是减号,我们就不能用一根筷子把这两类豆子分开。异或问题是一个非线性分类问题。
在这里插入图片描述
对于非线性分类问题我们可以通过一层神经网络来解决。
在这里插入图片描述
神经网络是由神经元组成。一个神经元有e个特征和一个截距。每个特征还有一个权重,线性组合就是W1乘X1加上W2乘X2,一直加到wd乘xd,再加be再得到这个z。z就是他们的求和。然后经过一个非线性激活函数,比如说Sigma的函数,比如说ReLU函数得到一个输出。这就是一个神经元,神经网络的基本组成单位。
在这里插入图片描述
这些权重需要激活函数来激活,不同的激活函数。一般ReLU用的比较多。那如果把很多个这样的神经元堆成一层一层的,就叫做神经网络了。
在这里插入图片描述
图上展示的这个算法就是多层感知机,也叫做全连接神经网络。比如说这个h1这个神经元它输入的特征就是X1到x d。就是每一个输入都对应一个权重,这些权重都是需要学习的,都是要通过梯度随机速度下降,通过最小化损失函数,反向传播求导,逐渐迭代得到的。
在这里插入图片描述
比如说现在这三个神经元的输出就对应了三个类别的分数Z1 Z2和Z3,这三个类别的分数有正有负有大有小,但是我们需要的是一个概率分布,我们需要的是一个0-1并且求和为1的概率分布。那这三个数求和为1,并且每一个数都在0到1之间就把三个类别的分数变成了3个后验概率。

神经网络的训练

在这里插入图片描述
实际网络的训练是通过反向传播和t度下降来求解的。首先需要定义损失函数,然后通过反向传播求得损失函数相对于每一个权重的梯度偏导数,最终就能够使得损失函数最小化,然后每一个权重迭代的去慢慢修改,慢慢的去学习优化就完成了学习。
在这里插入图片描述
交叉商损失函数是通过极大自然估计得到的,这个词听起来很高大上,但其实很简单。极大自然估计就是想使得所有样本都被预测正确的这个事件概率最大化,那所有样本都被预测正确这个事件的概率怎么算呢,就是把每一个样本的正确类别的预测概率相乘。比如说第一个样本它是一个苹果,第二个样本它是一个橘子,第三个样本它是一个香蕉。我们就把神经网络的第一个样本预测为苹果的概率乘以第二个样本预测为橘子的概率,再乘以第三个样本预测为香蕉的概率。就是很多个有n个数据,那么就有n个概率相乘。n个概率相乘会越乘越小,所以我们取一个对数就把乘法变成了加法,那我们要使得这个求了对数的这个概率最大。但是在人工智能呢我们希望最小化一个损失函数,而不是最大化一个目标函数。所以我们加一个负号就把最大化变成了最小化。
在这里插入图片描述
这就是加上损失函数,这里边每一项都是正确类别对应的概率。就是正确类别对应的概率,如果不是正确类别的话那qi这一项就是0。
在这里插入图片描述
训练神经网络的目标就是使得损伤函数最小化,那这个损失函数它并不是一个一望无际的草原,而是一个峰峦起伏的山丘。所以我们要通过梯度下降算法去优化,需要考虑局部最优点,要尽可能使损失是最小化。
在这里插入图片描述
它是一个非突的优化问题,针对他有很多优化器你可以选择。你可以选择随机系数下降,可以选择带动量的优化,可以选择Adam优化器,可以选择RMS Prop优化器。
在这里插入图片描述
那不管怎么样还是要通过符合函数的求导的链式法则,也就是反向传播算法求得损失函数相对于神经网络中每一个权重的偏导数。
在这里插入图片描述
这个偏导数也很容易计算,就是我们高中数学的链式求导法,就是符合函数求导法则。我们就能够算出最后的损失函数相对于每一个权重的偏导数。如果是输入数据让神经网络去预测,称之为前向预测。如果是求得损失函数相对于某一个权重的偏导数它叫做反向向传播。
在这里插入图片描述
所以训练流程第一计算损失函数,第二计算损失函数相对于每一个权重的梯度,第三根据梯度去更新优化权重。所以第一步是看最后这个水流的怎么样,第二步是求得我该怎么拧每一个小水龙头能够使得这个水最大或者最小,第三就是真的去拧这个小水龙头。
在这里插入图片描述
这个梯度该怎么算:你可以求所有样本的全局梯度,也可以求单个样本的梯度,也可以求一个Mini batch的梯度,那这个蓝线就是求全局梯度,而这个紫线呢是求单个样本的梯度,他就会像醉汉一样啊,但是呢道路是曲折的前途是光明的,他们最终都会收敛到同一个点。那如果是minibux的话就是介于蓝色和紫色这两条线之间。那这个betch size一般会选择2的指数4方。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练神经网络的整体流程:先采一个Mini batch,然后去前前向运算计算损失函数,再反向传播计算梯度,再去根据梯度更新可学习的权重参数,然后不停的循环。这就是三种优化的这个决策边界。这个决策边界它非常的复杂,它一点也不泛化也一点也不大而化之,存在很多噪声。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值