一、引子
对于非线性的分类问题,当自变量较多的时候,用之前的回归的方法就会非常复杂,因为在我们要拟合的函数项的可能性会爆炸。
例如,如果我们有100个自变量(x1、x2、x3...x100),如果只考虑最后是二阶的函数,那么特征就有:x1、x1^2、 x1x2、x1x3...x100、x100^2, 复杂度是O(n^2)
那么这种输入很多的情况会怎么出现呢?
计算机视觉!!
随便一张可辨认内容的图片,像素都是几百几千朝上的。
假如有一张50*50像素的图片,那么这张图片上一共就有2500个像素点,如果我们要构造二阶的拟合函数,那么特征数量就会是百万级的!!!
二、神经元与大脑
神经网络其实是个很早就被提出了,曾经因为受限于硬件水平而销声匿迹,近几年才重新热起来。
相关的生物学原理与脑干切除手术有关,就不详述了。
三、模型表示
1.单个神经元
真正的神经细胞由细胞体和突起组成。
而突起又分为树突和轴突。树突接收多个其他神经细胞的冲动,而轴突向多个其他神经细胞传递冲动。
因此,模仿生物细胞建立模型——Logistic unit(逻辑单元)。
logistic unit
在我们的神经网络模型中,逻辑单元包括输入和输出,决定如何输出的函数叫激活函数(g(z)),而决定x在z中系数的Θ又叫作权重。
参考之前逻辑回归使,会有一个常数项。所以,在某个神经元之前的所有神经元中,有时会设置一个值永远固定为1的单元,叫做bias unit(偏置单元??)。
2.神经网络
由多层的神经元组成的网络。
第一层被叫做输入层(input layer);输出最后值之前的最后一个网络叫作输出层(output layer),输出层只有一个神经元;中间的叫做隐藏层(hidden layer),因为这种层的结果我们不需要去理解。
3. 参数表示
- ai(j)→j层的第i个神经元的activation(激活??)
- Θ(j)→由第j层到第j+1层的映射权重矩阵,这个矩阵的尺寸取决于j层和j+1层的单元数。
若s(j)表示第j层的单元数,则Θ(j)的维度为:(s(j+1))*(s(j)+1)。s(j)+1,加的是偏置单元。
前向传播
其实与之前的回归差不多,但是之前是一次性把那么多特征纳入到一次训练中,而神经网络前向传播是把这个过程拆分给了多个层去完成,这样比较适合并行计算。
四、应用
1.非线性分类问题:XOR/XNOR
XOR,异或
XNOR<=>NOT(XOR)互斥反或
都是非线性的
XOR(红“x”为false,蓝“o”为true,如果图例反过来则表示XNOR)
可以通过AND、OR、NAND、NOR这些线性的分类问题来构造
AND
令z=20x1+20x2-30
h(z)=1/(1+e^(-z))
注意!!这里我作图的时候把蓝色“x”当成false,红色“o”当成true,后面OR的图像又不一样了(懒得改了,意会即可)
OR
令z=20x1+20x2-10
h(z)=1/1(e^(-z))
蓝色“o”是true,红色“x”是false
具体表格就不放了
NOT x
z=10-20x
(NOT x1)AND(NOT x2)
蓝色“o”是false,红色“x”是true
终于,我们凑齐了XNOR的两种可能情况,一种是两个同为true(x1 AND x2),另一种是两个同为false((NOT x1)AND(NOT x2)),这是第一层到第二层;用OR将这两种情况(即两个节点)再关联起来,则会得到XNOR的结果,这是第二层到第三层。
这样的XNOR的逻辑网络就总共有三层,包括bias unit,总共有7个节点
2.多分类
one-vs-all
之前在回归方法中就说过多分类,方法是一样的,最后输出的不是一个数字,而是一个向量,向量的模约等于1,为1的维度即对应着输入哪一类
网友评论