机器学习的主要步骤:
神经网络模型的训练过程讲解
机器学习的主要目标就是找到一个误差最小的合适的函数,Machine Learning ≈ Looking for Function。主要有以下方面的应用:
不同模型之间存在差异,主要包括了回归和分类两大ML模型:
其中,回归是在自然科学研究中应用最为广泛的模型,而分类主要是应用在图像或者文字识别中。
找到一个合适的函数的关键就是确定他的未知参数(b,w)
损失函数的定义可以帮助我们验证预测结果与真实结果之间的差异,判断模型的好坏,并进行模型或者函数的调整,其中最常用的Loss函数为MAE和MSE。
优化的过程就是不断寻找最优参数的过程,最开始任意设置一个起始点,以此点为基础,不断寻找Loss最小的点,常用的方法为梯度下降法 (Gradient Descent)
可能存在的问题:局部最优和全局最优问题
不断寻找最优路径,知道接近Loss最小处:
以下为预测数据和真实数据的对比:
如果只考虑前一天的数据来预测可能会存在一定的误差,那么如果考虑前几天或者几十天的数据,是否会有更好的效果呢?
可见,Loss逐渐降低,达到了更加精确的效果。
Linear models are too simple, we need more sophisticated modes.
可以使用分段线性曲线近似连续曲线,如果有足够多的线性线段,就能模拟出连续曲线:
模拟硬函数的方法有sigmoid函数(S型函数)和修正线性单元(Rectified Linear Unit,ReLU)
sigmoid函数的参数:
为了使用更多天数的数据,因此我们需要构建新模型,来包含更多特征
举例说明,假设特征数为3,sigmoid函数个数为3:
以矩阵的形式来构建线性模型,最终又将回归都初试线性函数:
这就类似于一个神经网络,如果再多添加几层,将会形成更加复杂高效的神经网络,这就是深度学习。
之间讲到了线性模型的优化,使用到了梯度下降法,那么非线性模型的优化也同样使用此方法,只不过计算过程可能更复杂,从简单的偏导数到更加复杂的偏导数,实际上就是特征数量增加,所需要求解的偏导数个数增加。
计算流程:
与线性模型求解一样。
将特征拆分运算,可以提高运行效率:
举例说明:
ReLU优点:更简单,用于激活函数在梯度下降的时候收敛更快。
注意:需要两个ReLU函数相加,才能构成一个sigmoid函数。
max函数是括号里的比较和前面的 c′ 的正负有什么关系。c′ 为负数就行了,max函数中的函数保持为正数就行,通过c′来改变函数最后的正负
模拟结果: