神经网络
在自动驾驶系统中,车辆会通过摄像头和传感器不断收集周围环境的数据,并指导车辆完成相应动作。车辆的传感器主要完成探测周围物体位置及预测其运动趋势的任务,摄像头则完成对周围物体进行识别以及对交通标志进行分类的任务。摄像头在对图像分类过程中使用的算法是机器学习中的神经网络算法,本章主要介绍神经网络算法的相关概念。
本章首先介绍神经网络会用到的一些基础概念,包括线性回归,逻辑回归,代价函数,梯度下降,然后介绍神经网络模型,前向传播算法,反向传播算法和正则化下一章利用神经网络模型结合tensorflow工具完成对交通标志进行分类的实践。
Tom Mitchell给出的机器学习定义如下:“a computer program is said to learn from experience E, with respect to some task T, and some performance measure P, if its performance on T as measured by P improves with experience E.“即完成任务的过程中积累经验,得到一个能更好完成任务的程序或模型的过程。在实际的应用过程中,就是通过收集的包括自变量和因变量的数据集拟合一个函数,使得这个函数有新的自变量输入时,可以得到一个尽可能准确的结果。
线性回归
首先介绍最简单的线性模型,以使用房间面积作为特征,房价作为输出构建线性模型,
这个模型就是最简单的一元一次线性方程, 如图所示,
x号表示训练集,绿色实线是使用机器学习确定权重weight以后得到的线性模型。当有新的size输入时,使用训练得到的模型预测房价。
在机器学习中,一般将数据集中的自变量称为特征(feature),影响因子称为权重(weight),因变量称为标签(label)。利用数据集拟合线性方程的过程就称为线性回归。
当数据集有多个特征时,线性方程可以表示为:
或
代价函数
为了衡量预测模型性能的优劣,引入代价函数,理论上只要表示预测值和真实值之间差异的函数都可以表示代价函数,例如线性方程常用的代价函数为:
逻辑回归使用的代价函数将在后边的小节给出。
梯度下降
当只有一个特征时,如下图所示,代价函数可以表示为一条以权重 θi θ i 为自变量,代价函数值为因变量的曲线,一种找到能够使代价函数值最小的 θ1 θ 1 的值的算法称为梯度下降算法,这种算法使用代价函数对权重求导数,找到能够使代价函数下降最快的 θ1 θ 1 的前进方向,在这一方向上更新 θ1 θ 1 的值,重新计算代价函数,求导,再更新……最终找到梯度为0时的 θ1 θ 1 的值。