Coursera Machine Learning 神经网络模型

文章目录
  1. 1. 非线性假设函数
  2. 2. 神经网络表示
    1. 2.1. 神经元
    2. 2.2. 神经网络
    3. 2.3. 前向传播的向量化实现
  3. 3. 非线性分类实例
    1. 3.1. 逻辑与
    2. 3.2. 逻辑或
    3. 3.3. 异或非
  4. 4. 多分类问题

非线性假设函数

  既然前面已经有效果不错的线性回归和逻辑回归模型了,那么我们为什么还需要神经网络模型呢?试想,在面对一个复杂庞大的数据集时,若使用线性回归我们势必要增加大量的特征才能够较好的拟合数据。比如说现在有$n$个特征,要生成所有的平方项,则其数量大约在$\mathcal{O}(n^2/2)$左右,显然次数越高其数量增长速度越快。举个例子,现在我们有一个50*50像素的黑白照片数据集,训练目标是判断图片中是否包含有车辆。若我们选取每个像素来作为特征的话,那么特征数量$n$则为2500(如果是RGB彩色图片的话,则是7500),则其所有的平方项特征大约在三百万左右! 显然这是不切实际的,因此我们必须另辟蹊径。幸运的是,神经网络能为我们提供更为复杂的模型表示。

车辆检测

神经网络表示

神经网络是一种用来模拟人类大脑神经元工作的学习方法。

神经元

生物意义上的神经元由以下三部分组成:

  • 细胞体(处理信息)
  • 树突(输入端)
  • 轴突(输出端)

神经元

而在人工神经网络中,“神经元”则是一个简化的逻辑单元。其中的输入则是$x_1\cdots x_n$这些特征(其中$x_0$叫bias unit,恒为1),输出则是由假设函数计算得出,处理输入的信息则是采用各种激活函数(常用的有Sigmoid函数等),特别的还有称为权重的$\theta$参数,用来对输入给予不同的权重。

逻辑单元

神经网络

神经网络由若干层(layer)组成。第一层叫做“输入层”,最后一层叫做“输出层”,中间还有若干个“隐藏层”。

神经网络

神经网络

前向传播的向量化实现

前向传播

为了将前向传播用向量化方法实现,我们引入一个新的变量: $z_k^{(j)}$表示第$j$层第$i$个单元激活函数里的参数。

因此有$z^{(j)} = \Theta^{(j-1)}a^{(j-1)}$,$a^{(j)} = g(z^{(j)})$。若最后一层为第$k$层,则最终的结果为 $h_\Theta(x) = a^{k} = g(z^{(k)})$

非线性分类实例

逻辑与

逻辑与

逻辑或

逻辑或

异或非

这是一个由多个层组合起来的更复杂的函数表示。

异或非

多分类问题

输出层可以有多个输出单元,第$i$个单元为1表示输入的样本属于第$i$类。

多分类问题

分享到 评论