1.非线性假设
对于下图中的两类点,如果只考虑两个特性,需要使用非线性的多项式才能很好的建立一个分类模型,如:
但是假如存在成百上千的相关特征,如果希望使用这些特征来构建一个非线性的多项式模型,特征组合后的数量十分惊人。比如将100个特征进行两两组合为,也存在近5000个组合,更别提为了获取更多的相关性而采取三三组合等等。
多于多特征的数据,增加特征并不是一个好的选择。以汽车分类为例,汽车图片为50*50像素大小,将每个像素视为一个特征,图中模型通过汽车图片的两个像素点构建模型。但是光靠两个像素点(即两个特征),分类效果肯定很差。如果此时两两特征进行组合构建一个多项式模型,会出现约三百万的特征:
2.神经网络
2.1 模型表示1
下图中整个流程被称为前向传播:
- 是输入单元(input units),第一层layer1称为输入层(input layer)
- 是中间单元,负责将数据处理并传递给下一层,中间层layer2(可以是多层)称为隐藏层(hidden layers)
- 第三层layer3为输出层(output layer)
- 输出层经过(之前的逻辑回归中称为逻辑函数,在神经网络中称为激活函数)处理后输出最终结果(其实在每一层间都使用了激活函数)
- 输入层和隐藏层会增加一个偏差单位(bias unit),相当于中的
关于图中的标记如下:
- 表示第层的第i个激活单元
- 表示第层映射到第层的权重矩阵(权重即之前模型中系数的概念),上图中的的大小为3*4,其中3为第2层的激活单元数,4为第1层的激活单元数加上1
2.2 模型表示2
将上述公式转换为向量表示会更加简便:
- 以第一个式子为例,将其转换为,其中的2表示和第二层相关。以此类推,上述隐藏层单元的计算式子变为:
当时:
将向量展开后如下:
- 隐藏层到输出层的向量表示和前面类似,其中:
- 以上过程全部针对的是训练集中的一个样例,如果需要将整个训练集进行前向传播,则需要将向量替换为矩阵
2.3 神经网络和逻辑回归的区别
神经网络和逻辑回归有着许多相似的地方,以隐藏层到输出层为例:在逻辑回归中的变为神经网络中的。由于中的每个值都是经过第一层计算后的值,可以视为更加高级的特征值(相较于),而不同的可以学习到不同的高级特征
综上,在逻辑回归中只能使用数据中的原始特征,虽然可以使用组合这些特征,但是会依旧会受到原始特征的限制。在神经网络中,原始特征作为输入层,后面不断深入的网络层会使用到前一层的高级特征,并非原始特征
2.4 多分类
在上述网络中,最终输出层只有一个神经元,即只能表示二分类,为了表示多分类的结果,可以在输出层多设置几个神经元,比如当时表示预测结果为第一类:
3.参考
https://www.bilibili.com/video/BV164411b7dx?p=43-49
http://www.ai-start.com/ml2014/html/week4.html