引入
上一篇文章中我们了解了机器学习中最基本的模型线性模型(Linear models),由于其过于简单(只能调整其斜率w与截距b)无法反映真实数据中多数折线或曲线情况这种限制称为模型偏差(model bias)。下文介绍:如何构建更复杂,误差更小的函数解决问题。
注:此处的bias与线性模型中的b不同。
构建函数
思路
-
折线
选取一个可调整的“标准函数”,让其作为基本元素叠加构造出折线的效果。转折点越多,取用的标准函数越多。
-
曲线
在曲线上取尽量多的点连成折线,将其转化成折线图后,进入折线思路。任何曲线都可以用折线逼近,取的点越多,函数构建越精确。
如上图,将蓝色“标准函数”0+1+2+3,就能构造出红色的模型函数。
构建模型函数
新模型函数为:分段线性曲线(piecewise linear curve)此处选取Sigmoid函数(名字源于其像S型,又称S型函数)作为“标准函数”。极限后为Hard Sigmoid函数。其表达式为:
其中通过调整参数w、b、c,构造不同形状的折线,贴近目标函数。效果如下:
计算参数
-
优化模型函数
类比线性函数的优化过程,分段线性函数加入天数的考虑后如下:
注:对wij的解释:i为参与的标准函数(sigmoid)编号,j为天数的叠加编号。如下:
-
计算操作
所含参数:b(数值)、w、b(偏置bias)、c。通过上一篇文章梯度下降(gradient descent)寻找Loss函数全局最小值(global minima)的方法精确参数。简化操作如下:
-
简化处理
对于大量数据的处理,可部分简化处理,将N组数据随机分成一个一个的批量(batch),根据每一个批量算出来的 L1、L2、L3 来计算梯度,并更新参数。把所有的批量都看一次称为一个回合(epoch)。每算出一个L,计算一个梯度,更新一次参数,称为一次更新(update)。
其他“标准模型”
除Sigmoid函数之外,还有修正线性单元(Rectified Linear Unit,ReLU),二者是常用的激活函数(activation function)。两个ReLU能合成一个Sigmoid函数。下图是ReLU表达式:
注:ReLU相对来说是比Sigmoid函数要好的。
继续优化模型,可以从 x 变成 a,就是将x通过Sigmoid 函数或通过 ReLU 得到 a,把 x 做一连串的运算产生 a,接下来把 a 做同样一连串的运算产生 a′。
注:w, b 和 w′, b′ 不是同一个参数,是增加了更多的未知的参数。
- 这里会出现一个小问题
在由三层到四层深入运算时,发现在训练数据中减小了误差,但是在未知数据中反而增大了误差。这种情况称为过拟合(overfitting)。
深度学习框架
在以上构建函数过程中,Sigmoid 和ReLU 称为神经元(neuron),很多的神经元串联成神经网络(neural network),这是模拟人脑中的称呼。后来将每一排为一层,称为隐藏层(hiddenlayer),隐藏层越多就越深,故称这套技术为深度学习。
标签:task2,函数,Sigmoid,AI,李宏毅,模型,ReLU,折线,线性 From: https://blog.csdn.net/Miss569284/article/details/141755910