传统神经网络

主要内容:线性回归,神经网络
1.线性回归
定义:一个线性方程,用线性关系来描述从输入到输出的映射关系
-->希望找到系数abcd使得预测值尽可能接近目标值
*找系数方法:梯度下降法(通过特征(x,y)确定特征拟合一条直线)
思想:损失函数loss对系数求偏导得到用自变量x0,x1……表示的梯度,然后,新系数=旧系数-步长*梯度,更新系数。当loss小于预定值时候达到目标,终止算法

算法过程:
p.s.目标y是事先知道的(样本特征得一部分),作为常数带入loss损失函数
  
*多目标学习:输出y有多个(预测多个结果),通过合并多个任务loss实现




  线性回归局限:非线性分布







2.从线性到非线性
   做法:

在线性得基础上加上一个非线性激励函数









*常用激励函数
(1)sigmoid将输入映射到[0,1],梯度下降很快



(2)将数据映射到[-1,1],梯度衰减明显(乘该函数后倒数变小)


  



(3)ReLU:截断负值,损失大量特征,梯度无损失-->常用








(4)Leaky ReLU:保留更多参数(不能是y=x,否则线性)











加上非线性激励函数-->神经元-->回归网络
p.s. 没有线性回归网络,线性无论叠多少层都相当于一层系数矩阵相乘

3.神经网络构建
*构建:神经元的串联与并联

并联:宽度;串联:深度
n+1层第k个神经元数值:输入由前一层所有映射到它的神经元输出值Xni和对应权重Wnki决定



*神经网络优化:链式法则(反向求loss-->Y-->x-->Wn)
4.神经网络“配件”
(1)损失函数LOSS
        真值与预测值之间的差,选取合适的1损失函数,使LOSS值能一直降(收敛)
   *常见的损失函数:1.softmax (e的Zi次幂比上Zi次之和)

-->由于指数区分度较大,可用于分类问题



2. cross entropy  交叉熵:使用了“估算”的编码后,得到的平均编码长度(可能不是最短的)


解释:p是真实概率分布,q是你以为的概率分布(可能不一致);
你以 q 去编码,编码方案 log(1/q_i)可能不是最优的;
于是,平均编码长度 = ∑ p_i *log(1/q_i),就是交叉熵;
3.设计损失函数:自定义
方法:不同loss加权求期望;合并多个Loss(整合):不同loss线性相加;
(2)学习率α (loss与时间的比值)
       数值大:收敛速度快;数值小:精度高;

选择合适学习率:
1.根据数据集选择合适学习率,数据量增多,学习率减小 ;
    或采用成本函数-均值平方差函数
2. 离最优解较远时(loss较小)用较大学习率,离最优解较近时(loss较大)用小的学习率;                    
3. 常用学习率:0.00001,0.0001,0.001,0.003,0.01,0.03,0.1,0.3,1,3,10
(3)动量,Nestrov动量(两步走,先走动量再与原惯性合成)
动量梯度下降法:当求偏导计算出当前点梯度后,用动量与梯度合成 改变方向(优化梯度向最小方向前进)
(4)过拟合 overfitting
面对一般情况时候判断效果较好即可
过拟合:当一点“不一样”就判断不同(让小概率事件对结果直接产生影响)

(绿线,W2过拟合)










过拟合应对:regularization正则化(使w权重尽可能平衡)
<1>L2 正则化:在loss中加W^2项,使得求偏导计算梯度时使w项权重衰减







红框weight decay

<2>Dropout 正则化:


权重随机赋0(20%~50%)








<3>fine-tuning  对大部分层数据锁定,只让实际进行计算的层进行更新
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值