您的位置:首页 > 理论基础 > 计算机网络

机器学习之&&Andrew Ng课程复习--- 神经网络的表层结构1

2014-11-08 21:15 211 查看
1.为什么我们要学习神经网络算法?

正如博主前面的文章所述,我们已经有了线性回归和逻辑回归算法,为什么还要研究神经网络?其实神经网络是个很古老的算法,为什么它会在bigData时代成为大家首选,成为时代的宠儿?为了阐述原因、解释算法让我们来看看Ng给我们的几个机器学习的例子,这几个例子的解决都依赖于复杂的非线性分类器。

example1:



考虑这个监督学习分类问题,我们已经有了对应的训练集(如图所示),想想如果大家要用逻辑回归来解决这个问题,需要构造一个包含很多非线性项的逻辑回归函数,如下式:



这里g任然是sigmoid函数(可以参考LR详解),当多项式足够多时我们可能会得到一个非线性分界线来区分正负样本。



当我们只有俩个特征x1、x2时,确实这种方法可以得到很好的效果,因为你可以把x1、x2所有组合包含到多项式中,但是问题来了,当我们遇到的样本,有多个feature,几十个甚至上百个,这时候我们想在sigmoid函数中包含全部可能2次或者多次项几乎不可能(如x1x2,x1x3,x1x4.....x1xn,这时候数量级将达到O(n*n)),而且运算量将非常大,可以看出随着特征数量的增加,特征向量空间极速膨胀,现有LR已经不能满足我们来解决这一类非线性问题了,神经网络现在被大家拿来处理这类输入特征很多的非线性问题。

2.Neurons and The Brain(Background)

神经网络的出现是人们想模仿人类大脑的学习能力,神经网络起源是80、90年代,应用非常广泛,但是在90年代由于各种原因渐渐褪去其色彩,但是如今,神经网络东山再起了,其中一个原因是神经网络是一个计算量偏大的算法,然而如今计算机运行速度的增快才足以真正运行大规模的神经网络,正是这个原因,神经网络对于如今许多应用来说是最先进的技术。设想一下,我们想模拟大脑的学习能力,比如视觉、触觉、运算、思考等,我们难道要对于每一个方面写一个控制算法?那这个学习模型得要多复杂?需要多少个模型?我们能不能用一个单一的学习算法就可以了?probably
YES!这尽管只是一个假设,不过Ng给了我们一些证据。(这里不列举了,无非就是大脑皮层科学家已经证明人类大脑可以自己学习处理不同类型的数据比如视觉、听觉、触觉等数据,比如我们给一只青蛙安装一个有传感器接入大脑的第三只人造眼,青蛙竟然能学习用第三只眼来收集和处理视觉数据(感叹,我们的研究和美国真的差好多。。。。)那神经网络算法应该也可以)。

3.神经网络技术细节(Model Representation)

首先,让我们回顾一下人类大脑思考信号传递的过程(博主自己的理解,有不对望指正),首先人类大脑有许多神经元组成,每个神经元我们可以看做一个计算单元,它有输入(树突)和输出(轴突),当输入信号从外界或者从另一个神经元传来的时候,神经元开始对数据进行计算和处理分析,然后将结果以弱电流脉冲的方式传通过轴突给下一个神经元,一层传递一层。下面让我们来看看一个机器学习的人工神经网络的例子(一个有sigmoid函数或者LR函数作为激励函数的神经元,具体的名词含义后面会讲),如下图所示:



(上图就是一个简单的神经元,我们对于输入通过神经元产生一个输出hθ(x),主要是解决非线性问题,有任何不理解请给我留言)

那么什么是神经网络呢?其实就是这些不同的神经元组合在一起的集合,如下图,一个输入层,一个隐藏层,一个输出层的神经网络(隐藏层有三个神经元参与计算,有任何不理解请给我留言)



接下来让我们来看看上图呈现的计算步骤:



为了更好地解释其计算步骤,我们需要对有些记号进行解释(如上图右侧解释)。下图是每一个隐藏层和最终的假设Hθ(x)的计算过程:



对于控制矩阵的运算理论主要是利用hθ(x) = θX,而x0默认等于1.以上就是我们怎么在数学上定义神经网络的假设。下篇博客我将对这些假设进一步解释说明,谈谈如何有效的计算上面那些式子。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐