【深度学习】01-03-深度学习基本概念简介-李宏毅老师21&22深度学习课程笔记

Linear Models Problem

在这里插入图片描述

Linear Model 在二维中可以理解为一条线,但真实情况可能是很复杂的曲线,Linear Model并不适用。此时,需要找到一个更复杂的模型。

Model Bias 可以理解为欠拟合,因为模型太简单,而导致不能很好的解决问题。

How to represent sophisticated curves?

在这里插入图片描述

复杂分段函数曲线可以分解为一个常数(图中0号线)和很多 Hard Sigmoid 激活函数曲线(图中0~3号线)的叠加。
在这里插入图片描述

曲线越复杂,需要叠加的 Hard Sigmoid 激活函数曲线越多。
在这里插入图片描述

如果是光滑曲线,而不是分段函数曲线,可以在光滑曲线上选取一些点进行连接,之后再使用多个 Hard Sigmoid 激活函数曲线叠加模拟。

结论
1 可以用足够多的 Hard Sigmoid 激活函数曲线叠加组合表示Piecewise Linear Curves,之后,可以用Piecewise Linear Curves去逼近任何连续曲线。
2 Sigmoid函数越多,可以表示的曲线越复杂。

How to represent Hard Sigmoid?

蓝色 z 字型曲线(Hard Sigmoid 函数)可以用拥有相似变化规律的曲线(激活函数 activation function)代替。

Sigmoid

激活函数中最常见的一种是Sigmoid函数,这里也以Sigmoid激活函数为例。
在这里插入图片描述

对于 sigmoid 函数,不同参数变化对应的曲线变化如下图。
参数变化对应的曲线变化
在这里插入图片描述

ReLU

在这里插入图片描述
在这里插入图片描述

注意:使用1个Sigmoid可以模拟hard sigmoid函数,使用2个ReLU可以模拟hard sigmoid函数。

问题:为什么ReLU比Sigmoid更好?

How to decrease Model Bias?

在这里插入图片描述

The Function With Unknown Parameters

在这里插入图片描述

What does this function do?

接下来讨论 y表达式 在做什么事情

下面先分析Sigmoid函数括号中在做什么事情。

Sigmoid函数括号中在做什么事情

Sigmoid函数括号中的计算用矩阵乘法表示如下。

在这里插入图片描述

下面分析Sigmoid函数在做什么事情。

Sigmoid函数在做什么

下面分析y表达式在做什么事情。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将所有的位置参数W,b统称为θ。

在这里插入图片描述

Define Loss From Training Data

在这里插入图片描述

如果参数很少,可以暴力枚举所有可能的参数,找出使得损失最小的模型参数。但是,上述过程说明参数向量θ中有很多参数,所以不能使用暴力枚举的方式。

在这里插入图片描述

上图中, ∑ n e n \sum_n e_n nen表示n个样本预测值与标签的差值之和。

Optimization of New Model

给参数向量θ一个初始值,求L对 θ i , i = 1 , 2 , . . . n \theta_i, i=1,2,...n θi,i=1,2,...n 的导数,梯度下降找到最优参数。
在这里插入图片描述
在这里插入图片描述

但是在实际操作中,在求Gradient的时候,如果有N个数据,一般会把这N个数据分成一个一个的Batch(一批;批处理),也就是对N个数据进行分组,设每个Batch中有B个数据。

但是假设这个B足够大,从而让L跟L1会很接近也是有可能的。之前算Loss的时候是把所有的Data都拿出来进行计算,但是可以在实际操作的时候,每次会先选一个 Batch ,用这个Batch 来算 L1,根据这个 L1 来算 Gradient,用这个 Gradient 来更新参数;接下来再选下一个 Batch 算出 L2,根据L2 算出 Gradient,然后再更新参数;再取下一个 Batch 算出 L3,根据 L3算出 Gradient,再用 L3 算出来的 Gradient 来更新参数。在这种情况下,并不是拿 L 来算Gradient。实际上是拿一个 Batch算出来的L1 L2 L3…来计算 Gradient,把所有的 Batch 都看过一次,叫做一个Epoch,每一次更新参数叫做一次 Update。

注意:Update 跟 Epoch 是不一样的东西,每次更新一次参数叫做一次Update,把所有的 Batch都看过一遍,叫做一个Epoch。

在这里插入图片描述

Batch Size 是超参数

Experimental Results

使用上述模型,只有一层非线性操作时,与线性模型的正确率对比如下所示。

在这里插入图片描述

可以把这个同样的事情再反覆地多做几次,刚才用x*w+b,再通过 Sigmoid Function 得到 a。可以把 a 再乘上另外一个 w’,再加上另外一个 b’,再通过 Sigmoid Function或 RuLU Function,得到 a’。

在这里插入图片描述

非线性操作次数(隐藏层个数)是超参数

增加非线性操作次数(隐藏层层数),正确率对比如下图所示。
在这里插入图片描述

在这里插入图片描述

横轴就是时间,纵轴是观看的人次(千人),红色的线代表的是真实的数据,蓝色的线是预测出来的数据。

通过图发现,在低点的地方,红色的数据是每隔一段时间,就会有两天的低点,在低点的地方,机器的预测还算是比较准确的。

但是在画红圈的地方,机器高估了真实的观看人次,这一天有一个很明显的低谷,但是机器没有预测到这一天有明显的低谷,它是晚一天才预测出低谷。这天最低点是除夕,Model根本不知道除夕是什么,因为它只是通过前56天的值来预测下一天。

Neural Network & Deep Learning

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题:为什么不做 Fat Learning(所有神经元放入一个隐藏层) 而要做Deep Learning(所有神经元放入多个隐藏层)?

问题:为什么不继续增加隐藏层层数?
在这里插入图片描述

对于上面的例子和实验结果,虽然4个隐藏层的模型在训练集上表现更好,但是要选择3个隐藏层的模型,因为现实问题中更关注模型在测试集上的表现。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值