注意这个L是所有的e加和平均,也就是说是整个数据集的数据都输入一遍得到的误差。
实际的训练过程中,我们会把数据集划分为几个Batch,每一个Batch算一个L用于更新参数也就是一次Update(之前我们说的每次都会把所有数据输入做一个Upate,其实就是Batch大小就是数据集大小),完整的过一遍Batch叫一个epoch
那为什么要分成一个Batch一个Bacht呢,跳转。
在实际训练中,举一些例子:
那么一个完整的机器学习流程就走完了。
接下来看一看我什么要用Sigmoid作为激活函数,用ReLU(Rectified Linear Unit)可以吗。
这里的2i想表示的是连个Relu组成一个Sigmoid,其实这是个超参数没有什么区别?
至于哪一个比较好,课程说的是ReLu没有解释原因。
一些实验结果:2017-2020是训练数据,2021是测试数据。
我们还可以做什么其他事情吗?
我们可以将上述过程反复多做几次,这个次数也是一个超参数
最后,我们需要给这个函数参数学习的过程起一个好名字。
但是这个把戏已经在90年内玩臭了。
所以后来起了一个新的名字。一排Neuron叫做一个Hidden Layer,很多Hidden Layer就叫Deep,整个技术就叫做Deep Learning。
接下来人们就开始把神经网络越叠越深。
其实要训练这么深的神经网络是有诀窍的。我们后面会提到。
但我们在这里考虑一个问题:我们所做的事情就是用Sigmoid或Relu去拟合一个未知的函数,理论上来说,只要有足够多的激活函数,就可以逼近连续函数。所以我们其实是不是只要一排激活函数,也就是一层就足够了。那么Deep有什么意义呢。
所有一个观点Fat Neuron NetWork也可以达到Deep的效果,Deep只不过是噱头而已。但实际上,Deep还是有意义的,这个我们之后会提到。
是不是越深越好?
在训练的情况下效果更好了,测试的时候反而变差了。这就是过拟合现象。
所以我们在对未知数据预测的时候,会选择三层的这个神经网络。