文章目录
- 深度学习基本概念
- Function
- Loss
- Optimization
- 引入深度学习
- hyperparameters
- 参考资料
深度学习基本概念
Function
上一个例子中,拟合的曲线是线性的,显然过于简单了。如果真实的函数是一个比较复杂的曲线,应该如何构造函数(也就是Model
,带未知参数的函数)呢?
上图展示了如何拟合一个复杂的函数,就是一系列的sigmoid
函数加上常数。
对于平滑的曲线函数,可以通过在曲线上取多个点形成的折线函数来近似,如上图所示。
这样就形成了新的Model
下图所示蓝色虚线框内式子展开的情况
将的结果记作
,带入到sigmoid函数
将sigmoid函数的结果记作,计算得到最终的
最终的函数计算流程如下所示
将所有未知参数放入一个向量
回到机器学习训练的三个步骤,现在已经定义好了函数,也就是Model
,接下来是定义损失函数和优化。
Loss
Loss的计算方式和之前还是一样的,只不过现在的未知参数换成了
Optimization
最后是优化模型,找到使Loss最小的模型参数,仍然是用梯度下降法。
反复迭代,直到满足迭代次数或者梯度向量为零向量(参数较多情况下几乎不可能)
这里引入了新的概念 batch,将总的训练集随机划分成一个个 batch,用每一个 batch 计算一个 Loss,计算梯度,更新一次,所有的 batch 都算过一遍后叫作一个 epoch。因此一般一个 epoch 包含若干个 update。
sigmoid函数也可以用 ReLU 函数代替,它们被称作 Activation function(激活函数)
引入深度学习
激活函数可以嵌套,把上一层激活函数的结果作为下一层激活函数的输入,这样函数的未知参数就会更多了,模型也更加复杂。
每个 sigmoid 函数叫做 Neuron(神经元),整体就叫做 Neuron Network(神经网络),每一层激活函数叫做 hidden layer(隐藏层)。由于有很多层隐藏层,意味着 deep,所以叫深度学习。
hyperparameters
人手设的东西叫 hyperparameters(超参数),目前有
(学习速率)
- 函数中有几个 sigmoid
- batch size 的大小
- layer的层数。
什么是超参数?
机器学习模型中一般有两类参数:一类需要从数据中学习和估计得到,称为模型参数(Parameter)—即模型本身的参数。比如,线性回归直线的加权系数(斜率)及其偏差项(截距)都是模型参数。还有一类则是机器学习算法中的调优参数(tuning parameters),需要人为设定,称为超参数(Hyperparameter)。比如,正则化系数λ,决策树模型中树的深度。
参数和超参数的区别:
模型参数是模型内部的配置变量,需要用数据估计模型参数的值;模型超参数是模型外部的配置,需要手动设置超参数的值。机器学习中一直说的“调参”,实际上不是调“参数”,而是调“超参数”。
参考资料