[Datawhale X 李宏毅苹果书AI夏令营] 深度学习入门 Task2

学习链接:https://datawhaler.feishu.cn/wiki/MnKxwiOJ9iW54ykHKORcLLY3nkf

参考资料:《深度学习详解》

内容小结:介绍了机器学习的线性模型、Sigmod函数、ReLU函数、深度学习的概念、一般术语。

拟合模型

这块可以参考激活函数变种(Sigmoid、Hard-Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、SELU、ReLU6、Swish、Hard-Swish、Mish)_sigmoid变种-CSDN博客

线性模型
y=b+\sum ^{k}_{j=1} w_jx_j=b+\mathbf{w\cdot x}

k为模型特征数量,b为模型偏置(bias)。\boldsymbol{w}是一维向量,存着各个维度特征对应的斜率。将输入的特征x乘上一个权重,再加上偏置就得到了预测结果,这就是线性模型(linear model)。下面从这个最简单的模型出发

分段线性曲线

线性模型过于简单,实际上预测结果与特征的关系可能是复杂的曲线关系。我们可以用折线来逼近曲线,从而更可靠的预测结果。如下图所示:

因此问题转化为怎么表示分段曲线。可以用多段线性模型(Hard Sigmod)叠加得到分段折线。

Hard Sigmod函数

Hard Sigmod是一种两边平中间折线的分段函数。具体表达式可以写为:

Sigmod函数

表达式为:

Sigmod函数可以用来逼近Hard Sigmod函数。

ReLU函数

ReLU(Rectified Linear Unit),即修正线性单元。表达式为:

分两段,一段平的曲线,末端是向上或向下延伸。用两个ReLU函数可以组成一个Hard Sigmod函数。如下图所示:

深度学习

网络节点

那么对于输入特征x,我们可以得到对应的一个sigmod变换为:y=sigmod(\mathbf{w\cdot x+b})。这个sigmod对于特定的输入,可以得到一个输出y。那我们可以定义多个sigmod结点(这就是神经网络中的节点),最终的预测结果可以是多个sigmod的加权叠加:y=b+\sum _i c_i sigmod(\boldsymbol{w_i\cdot x}+b_i)

其中c_i是各个sigmod的权重,b是预测结果的偏置。在这个预测里面,有众多的未知数,如c,w,各个sigmod函数的偏置bi和总偏置b。可以直接把他们按固定顺序排列成一维向量\boldsymbol{\theta}

这样对于特定的样本,对应的预测结果只和模型对应的\boldsymbol{\theta}以及样本本身特征有关,可以记为y=Pre(\boldsymbol{\theta},x)。当然训练样本确定时,对应的单个样本损失只和具体模型对应参数向量的\mathbf{\theta}有关。可以将单个样本损失记为L_i(\mathbf{\theta}),i代表第i个样本。接下来只需要做梯度下降减少Loss即可。

实施细节

批量化(batch)是常用的操作。就是把所有的N个训练样本等分为B个样本一组的k个组。做梯度下降时,每次计算损失时,只计算第i批B个样本的损失L_i,将N个样本的损失记为L。当B足够大时,就有L_i \approx L。分批进行梯度下降的优势是:计算量少,可以全挪进内存计算,同时可以采用分布式计算加速。分批量梯度下降的示意图如下:

神经网络

可以用Sigmod或ReLU函数逼近Hard Sigmod函数,这种逼近函数叫做激活函数(activation function)。每个激活函数对应一个神经网络节点,即神经元(neuron)。每个神经元产生下一层网络的输入特征。如下图所示(从右往左看):

上图的每一竖排对应一层网络,深度学习的神经网络会叠到几百层。深度学习的训练会用到反向传播(BackPropagation, BP)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值