神经网络
如果我们的模型特征数很大
要包含所有的二次项甚至3次项甚至更高
我们知道如果有n个特征值
则二次项的个数是O(n2)级别,三次项O(n3)
什么时候会拿到如此多的特征数
比如图像处理领域,我们输入的一张图片,每一个像素点都是一个特征值
在计算机严眼中,图片就是一个大的像素矩阵
你的算法可能会选一些像素点作为最主要的特征点进行参考,然后得到一个将图片进行分类
假如是一张50*50像素的图片,如果是灰度图,他的像素值在0-255,那么一张图的特征点会有637500个特征点。如果是彩色的RGB将有接近200W个像素点。我们用线性回归很难处理这么多特征点的数据集。这样我们会不知道如何选择我们的模型函数
于是我们引入了神经网络这一算法
神经网络是模仿人类的神经元,每个神经元都有树突(输入)和轴突(输出)
结构如下(第一层最后一层分别叫做输入层输出层,中间的叫隐藏层)
每条连线上都有对应的权重(参数),同时每层还会有一个偏置量,这个偏置量一般不会画出来,但是计算的时候会用上
对于第i层来说,θ构成了一个参数矩阵,参数的上标表示层数,参数的第一个下标表示当前层的第i个元素,第二个下标表示对应的前一层的第j个元素
所以对应的参数矩阵的维度是:当前层的元素个数*(前一层元素个数+1)
得到的新的元素放到激活函数g()里,得到的结果就是这个节点的值
通过神经网络,我们可以搭建更复杂的模型,同时使得计算变得简单
另外,当神经网络处理多元分类问题时
我们的会采用下图的向量形式表示输出的结果。即表示是哪个物体,那个物体对应的位置为1,向量里别的位置都为0