文章目录

  • 深度学习基本概念
  • Function
  • Loss
  • Optimization
  • 引入深度学习
  • hyperparameters
  • 参考资料


深度学习基本概念

Function

上一个例子中,拟合的曲线是线性的,显然过于简单了。如果真实的函数是一个比较复杂的曲线,应该如何构造函数(也就是Model,带未知参数的函数)呢?



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习


上图展示了如何拟合一个复杂的函数,就是一系列的sigmoid函数加上常数。



李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_02


对于平滑的曲线函数,可以通过在曲线上取多个点形成的折线函数来近似,如上图所示。

这样就形成了新的Model



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_03


下图所示蓝色虚线框内式子李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_04展开的情况



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_05


李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_04的结果记作李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_07,带入到sigmoid函数



李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_08


将sigmoid函数的结果记作李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_09,计算得到最终的李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_10



李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_11


最终的函数计算流程如下所示



李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_12


将所有未知参数放入一个向量 李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_13



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_14


回到机器学习训练的三个步骤,现在已经定义好了函数,也就是Model,接下来是定义损失函数和优化。



李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_15


Loss

Loss的计算方式和之前还是一样的,只不过现在的未知参数换成了 李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_13



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_17


Optimization

最后是优化模型,找到使Loss最小的模型参数,仍然是用梯度下降法。



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_18


反复迭代,直到满足迭代次数或者梯度向量为零向量(参数较多情况下几乎不可能)



李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_19


这里引入了新的概念 batch,将总的训练集随机划分成一个个 batch,用每一个 batch 计算一个 Loss,计算梯度,更新一次李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_13,所有的 batch 都算过一遍后叫作一个 epoch。因此一般一个 epoch 包含若干个 update。



李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_21


sigmoid函数也可以用 ReLU 函数代替,它们被称作 Activation function(激活函数)



李宏毅2022《机器学习/深度学习》——学习笔记(2)_激活函数_22


引入深度学习

激活函数可以嵌套,把上一层激活函数的结果作为下一层激活函数的输入,这样函数的未知参数就会更多了,模型也更加复杂。



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_23


每个 sigmoid 函数叫做 Neuron(神经元),整体就叫做 Neuron Network(神经网络),每一层激活函数叫做 hidden layer(隐藏层)。由于有很多层隐藏层,意味着 deep,所以叫深度学习。



李宏毅2022《机器学习/深度学习》——学习笔记(2)_机器学习_24


hyperparameters

人手设的东西叫 hyperparameters(超参数),目前有

  • 李宏毅2022《机器学习/深度学习》——学习笔记(2)_深度学习_25(学习速率)
  • 函数中有几个 sigmoid
  • batch size 的大小
  • layer的层数。

什么是超参数?

机器学习模型中一般有两类参数:一类需要从数据中学习和估计得到,称为模型参数(Parameter)—即模型本身的参数。比如,线性回归直线的加权系数(斜率)及其偏差项(截距)都是模型参数。还有一类则是机器学习算法中的调优参数(tuning parameters),需要人为设定,称为超参数(Hyperparameter)。比如,正则化系数λ,决策树模型中树的深度。

参数和超参数的区别:
模型参数是模型内部的配置变量,需要用数据估计模型参数的值;模型超参数是模型外部的配置,需要手动设置超参数的值。机器学习中一直说的“调参”,实际上不是调“参数”,而是调“超参数”。

参考资料

(强推)李宏毅2021/2022春机器学习课程