前言
本文章仅代表作者对于入门神经网络的一些总结,不涉及高深的数学知识。
将深度学习之前我们先来了解一下什么是回归问题,关于回归问题的讲解可以直接百度,这里具体来说就是要让机器观察猫的特征或者一群学生的身高,然后根据这些特征对某种事物进行分类或预测(是否为猫,有多少个男生)
那么怎么解决回归问题呢,我们知道,机器和人不同,它不能用眼睛直观的看到这些特征,它只能看到一堆数字,一串矩阵,因此我们要让机器明白这些特征实际上是让机器在这些数字中找规律的问题。
比如这前六个数是0.14、0.57、1.29、2.29、3.57、5.14,请问第七个是几?我们把这几个数字在坐标轴上标识一下,用曲线连接这几个点,延着曲线的走势可以推算出第七个数字——7,如图:
可是机器并不能像我们人一样随手画一条先就可以这么好的拟合,那么我们怎么办才能让机器拟合这么多点呢?这个时候我们可以让机器随便画一条线y=wx+b,然后不旋转这条线(改变斜率w),还可以不断的平移(改变截距b),在这个过程中不断计算每个点到这条直线的距离(即误差),求出所有的误差之和,和越小就说明约拟合,这样不断的调整,直到误差趋近于0,这种方法就叫:最小二乘法是直接对残差求导找出全局最小,是非迭代法。
问题到这里似乎就解决了,可是我们需要一种适应于各种曲线拟合的方法,那就是下面的梯度下降法(这里记得区分一下最小二乘法和梯度下降法,其本质的区别就在于一个是直接全局最小,一个是先局部最小,逐步迭代,但他们的原理是大致相同的)。
梯度下降法(Gradient Descent)
梯度下降法是一种迭代法,先给定一个,然后向下降最快的方向调整,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。
宏观表现(凸函数)
(拟合过程——左:误差loss 右:梯度下降过程)。
梯度下降法的求解步骤:
(1)确定当前位置的损失函数的梯度,对于w,b,(其值为损失函数对分别对w和b求偏导取反)
(2)用步长乘以损失函数的梯度,得到当前位置下降的距离