神经网络能够解决许多复杂的问题,而其中最典型的两类问题就是回归问题和分类问题。本文就来简单介绍一下究竟什么是回归问题。
所谓回归问题,就是一种需要来拟合的问题,例如我们有一个待拟合的散点图,如图7.12所示,我们要解决的问题就是获得一条线来尽可能的穿过最多的点。
图7.12 待拟合散点图示例
传统方法中,我们可以考虑采用一次函数、二次函数等来拟合这些点,拟合的结果可能如图7.13所示,显然如果我们用一次函数也就是直线来拟合这些点并不合适,而用二次函数来拟合确实十分合适的。所以利用传统方法解决拟合问题时,我们需要提前确定好拟合所采用的函数形式。
图7.13 一次函数或二次函数拟合
而如果采用神经网络来进行拟合,只需要把所有的点都作为训练集输入,不用确定使用何种形式的函数直接开始训练,训练好了就可以获得一条比较接近我们所期望的曲线。我们的神经网络需要一个输入和一个输出,输入为x,给一个输入都会有一个y,也就是会确定一个散点,如果网络训练的合适,这些散点就会很接近样本的散点分布,我们也就解决了这个回归问题。
对应生活中的实际问题,比如每个点的横坐标代表年份,纵坐标代表某个地区的房价,这样我们训练出的网络就具有了预测房价的功能!这就是生活中实际的回归问题,类似的问题还有很多,不过某些问题并不是靠一个输入决定的,所以如果没有合适的输入量,预测的房价可不会那么准确哦。
神经网络解决的第二类典型问题就是分类问题,它要求训练好的网络最后的输出为问题的分类,本小节就来简单介绍一下究竟什么是分类问题。
分类问题简单来说就是给我们的样本进行类别的划分,在我们的实际生活中经常会面临这类问题。例如我们会把猫和狗分成不同的类,具体到不同品种,猫和狗各自又会分不同的类型,这就是一种分类问题。
抽象成散点来说,如图7.17所示,我们可以将图中的散点按照坐标分为两类,两种类型分别大致分布在各自的区域中。我们如果要解决这个分类问题,就要让训练好的网络具有两个输入节点,分别输入x坐标和y坐标;还要具有两个输出节点,输出分类编码。我们经常采用的分类编码在计算机学科中被称为独热编码(One-hot),比如如图7.17的散点分类中,我们一共分为两类,可以让输出10代表第一类,01代表第二类。推广到多分类上,我们可以让100代表第一类,010代表第二类,001代表第三类。
图7.17 散点分类
关于二分类问题的输出也可以不采用独热编码,可以只有一个输出,输出的范围在0~1之间,代表输入被认定为是第一类或第二类的概率,这种情况下,输出层的激活函数一般采用Sigmoid函数。