coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络

1 神经网络提出

前面所学线性回归和逻辑回归,在面对以下问题时,并不能很好的画出分类边界:
coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络
这类问题是非线性的(多项式回归),但是这种函数会因为特征量的增多导致二次项数的剧增。 比如在图像识别中,一个50×50像素的图片,拥有的特征量为2500,那么它的二次项数为2500*2500/2,大约为3百万个。
基于以上情况,提出神经网络。

2神经网络算法

2.1 神经元

神经网络由一个个神经元组成,神经元可抽象成以下形式:
coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络
模型解释如下:模型的输入是x1,x2,x3通过参数(权重)θ1,θ2…,并使用逻辑函数**(压缩),得到输出结果。

2.2 神经网络

下图为一个三层神经网络模型。第一层为输入层,第二层为隐藏层,第三层为输出层。 每条边上有一个权值θ
coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络
a(j)i :第j层单元i的“激励”

θ(j):第j层到第j+1层单元的权值矩阵。

若第j层单元数为sj,第j+1层单元数为sj+1,则θ(j)ϵsj+1∗(sj+1)。

+1来自于“偏置节点”的Θ(j)中的加法x0和Θ(j)0。

比如: If layer 1 has 2 input nodes and layer 2 has 4 activation nodes. Dimension of Θ(1) is going to be 4×3 where sj=2 and sj+1=4, so sj+1×(sj+1)=4×3.
coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络
在bp神经网络中,我们使用sigmoid函数作为激励函数。即g(z),也就是我们逻辑回归中使用的函数。

3应用

3.1简单的AND 和OR运算

神经网络可以计算复杂的非线性函数,那么到底是怎么计算的呢?下面通过小例子一步步说明:
coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络
X取0或1,并给定权重,得到图中的运算输出真值表。此时这个神经元就表示“and”运算。

更换权重,为-10,20,20可以得到OR运算更换为10,-20可得到NOT 运算。

3.2 多个神经元构成神经网路

以上三个简单例子都可以通过单个神经元运算得到,但是要表示XOR(异或),就需要多个神经元共同作用:
coursera-Machine Learning--吴恩达-week4--学习笔记--神经网络
通过组合不同功能的神经元,得到一个更为复杂的神经元。
如上图,先通过“and”运算(红色权重,得到a1(2))和“not”运算(蓝色权重得到a2(2)),综合两者输出,再通过”OR”运算(绿色权重),最终得到“XOR”运算结果。

参考

1.吴恩达https://www.coursera.org/learn/machine-learning/supplement/jtFHI/lecture-slides
2.csdn博主最小森林https://blog.csdn.net/u012052268/article/details/78677470