为什么还需要神经网络?
线性回归和逻辑回归确实可以解决大量的监督学习问题,但是在非线性多项式假设方程中,随着样本集特征数的增多,参数会成指数级的增长,给算法带来几乎不显示的巨大计算压力,此时,我们需要引入神经网络
最典型的神经网络问题就是计算机视觉,每个像素都是一个特征量,组成多项式后参数可以达到百万级别,线性回归和逻辑回归用于解决此类问题已经不现实了
神经网络模型
模型展示
在神经系统中,神经元接受其它细胞传递的信息,然后以电脉冲的形式向目的地提供反馈。依此我们产生类似的神经网络模型:
[x0x1x2]T→[ ]→hθ(x)
- 输入数据层称为输入层,最左端
- 输出数据层称为输出层,最右端
- 中间级称为隐藏层,中间
如:
⎣⎢⎢⎡x0x1x2x3⎦⎥⎥⎤→⎣⎢⎡a1(2)a2(2)a3(2)⎦⎥⎤→hθ(x)

- 注意中间层在向下一层传递时也要加上a0(i)
公式参数
ai(j)="activation" of unit i in layer j,即**函数,是逻辑方程 Θ(j)=matrix of weights controlling function mapping from layer j to layer j+1,即权重 hΘ(x)=logistic function,逻辑方程

- 包括x0,a0(i)在内,设前一层数为sj,下一层层数为s(j+1),则Θ(j)为s(j+1) x (sj + 1)矩阵
矩阵实现向前传播
说话说不清,一图解千愁

- 输入层可以视为a(1)
- 逐层向前传播。每层加上偏移项,对每个**单元进行矩阵运算后带入逻辑方程
-
a(3)最终输出结果,z(i)为矩阵,最终hΘ(x)=a(j+1)=g(z(j+1))
自学习特征
神经网络的中间层其实就是通过前一组权重,带入逻辑方程计算后的得到的新的一组特征,最后由这组神经网络自己获得的特征来求解最终的结果,这样就可以逐层增加或者减少特征

接下来的举例仅贴图
- OR逻辑运算
- XNOR逻辑运算
多类分类
一对多模型
面对多类分类问题,n类则将输出层设置为n个单元,如

则:

每个矢量表示不同的种类,每个矢量内部都是一对多,即只有一个是1
根据学习获得的参数Θ(j),我们进行向前传播,比如获得结果为:
hΘ(x)=⎣⎢⎢⎡0010⎦⎥⎥⎤
则可以确定为第三类,那就是摩托