目录
人工智能、机器学习、深度学习的关系
1.1机器学习
(1)定义:通过数据进行建模的技术。
(2)注意点:与常见的线性回归不同的是,机器学习依赖模型自身活动参数
(3)分类:
监督学习
{输入,正确的输出} 回归和分类 无监督学习 {输入} 按照数据结构进行分类 强化学习 {输入,一些输出+输出的等级} 游戏类型等
1.2神经网络
无监督学习,为机器学习的模型之一(了解)
起源:神经网络模拟的是人的大脑,网络中的一个个节点就是大脑中的神经元。对于单个节点/神经元。
1.2.1神经网络各参数及结构
(1)单层神经网络
故有:
其中x表示输入;y表示输出(有时候单层网络也包括激活函数);w表示权重(wij 表示 xi 到 j 输出的权重);b表示偏差
(2)多层神经网络
分为输入层,隐藏层,输出层
输入层:只负责对数据传入,不改变数值;
隐藏层:对数据加权传送,处于网络内部;
输出层:只负责对数据传出,不改变数值;
故有:
其中v 表示加权输出;表示激活函数(具体意义见下)
1.2.2 激活函数
常见的有三种:sigmoid、softmax、tanh
sigmoid:输出的函数值在[0,1]之间,
softmax:常用作输出层激活函数,使用one-hot编码,将输出转化为向量;
tanh:输出的函数值也在[0,1]之间;
1.2.3 w更新
初始w由人为决定,而w的更新则是用反向传播获得
故有:
其中ei表示节点i的误差(比如在输出层:ei=di-yi /di表示正确输出,yi表示预测);表示增量(与下文图片中的字母书写不同);vi表示输出节点的加权和;表示i节点的激活函数导数;表示学习率,决定了权重的改变量
举例
①正向传播得到输出(包括:隐藏层节点的加权和+激活函数作用后的输出)
(PS:根据我自己当时初学经历,需要强调的是:y1虽然在图中放在线上的但是其实是最后一个圆圈产生的,具体就是通过最后一个圆圈处的激活函数,用V计算得到;而且在计算工程中没有y(2),其实这个y(2)就是最终的输出y)
②反向传播更新w
第一步更新
第二步更新
通过以上两步得到的是,接下来就真正进入正题:更新w
综上:
(PS:在这里需要说明一下epoch的概念:它用来指神经网络正反向更新一次w的次数。若epoch=3,表示要更新3次。根据之前我的初学经历这可能会和神经网络层数弄混。无论有多少层神经网络即图中有多少列圆圈,这样正反传播更新一次均只算1个epoch)
1.2.4代价函数
用来处理神经网络的误差(了解)
1.2.5神经网络存在的问题
(1)过拟合
“泛化”:保证模型在训练集和测试集上的效果一致的过程叫做泛化,是我们追求的目标;
“过拟合”:如果认为训练数据中每一个元素都正确,并以此去精确拟合模型,那么将得到一个低泛化的模型。
解决方法:①正则化;②验证(将数据分为训练集、验证集、测试集,这是常用的方法);③节点丢弃;④给代价函数提供能修正权重的正则项
(2)梯度消失
“梯度”可以认为与反向传播中的增量类似;
梯度消失:因为反向传播是将输出误差反向传播得到隐藏层来训练神经网络的。然而,当误差几乎无法达到第一个隐藏层时权重就得不到调整。
解决方法:修改激活函数
相关的实战例子可以看下一篇文章哦~