吴恩达机器学习笔记-神经网络:表述(Neural Networks: Representation)

  • 非线性假设

我们之前学的,无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。例如大于100个变量,我们希望用这100个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合,即便我们只采用两两特征的组合,我们也会有接近5000个组合而成的特征。这对于一般的逻辑回归来说需要计算的特征太多了。

                                  

 

假设我们希望训练一个模型来识别视觉对象(例如识别一张图片上是否是一辆汽车),我们怎样才能这么做呢?一种方法是我们利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上一个个像素的值(饱和度或亮度)来作为特征。假如我们只选用灰度图片,每个像素则只有一个值(而非 RGB值),我们可以选取图片上的两个不同位置上的两个像素,然后训练一个逻辑回归算法利用这两个像素的值来判断图片上是否是汽车。假使我们采用的都是50x50像素的小图片,并且我们将所有的像素视为特征,则会有 2500个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有约个(接近3百万个)特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

                                                          

  • 神经元和大脑 

神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器。神经网络逐渐兴起于二十世纪八九十年代,应用得非常广泛。但由于各种原因,在90年代的后期应用减少了。但是最近,神经网络又东山再起了。由于近些年计算机的运行速度变快,才足以真正运行起大规模的神经网络。我们能学习数学,学着做微积分,大脑能处理各种不同的令人惊奇的事情。似乎如果你想要模仿它,你得写很多不同的软件来模拟所有这些五花八门的奇妙的事情。不过能不能假设大脑做所有这些,不同事情的方法,不需要用上千个不同的程序去实现。相反的,大脑处理的方法,只需要一个单一的学习算法就可以了?

 如果你在青蛙身上插入第三只眼,青蛙也能学会使用那只眼睛。因此,这将会非常令人惊奇。如果你能把几乎任何传感器接入到大脑中,大脑的学习算法就能找出学习数据的方法,并处理这些数据。从某种意义上来说,如果我们能找出大脑的学习算法,然后在计算机上执行大脑学习算法或与之相似的算法,也许这将是我们向人工智能迈进做出的最好的尝试。人工智能的梦想就是有一天能制造出真正的智能机器。

  • 模型表示Ⅰ

每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input),并且有一个输出/轴突(output)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。

                                       

神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输入,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)。 

                                         

       我们设计了类似于神经元的神经网络如下,其中X1,X2和X3是输入单元,我们将原始数据输入给它们。a1,a2和a3是中间单元,它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算hθ(x)。 第一层为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit)

                                                          

        对于上图所示的模型,激活单元和输出分别表达为。我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION )

                                       

  • 模型表示Ⅱ

利用向量化的方法会使得计算更为简便。

                                   

其实神经网络就像是logistic regression,只不过我们把logistic regression中的输入向量[x1-x3]变成了中间层的,我们可以把中间层看成更为高级的特征值,也就是x0,x1,x2,x3的进化体。这些更高级的特征值远比仅仅将x变成次方厉害,也能更好的预测新数据。 这就是神经网络相比于逻辑回归和线性回归的优势。

  • 样本和直观理解Ⅰ

        在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。

       神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。我们可以用这样的一个神经网络表示AND 函数:

                                                                

      接下来再介绍一个OR函数: 

                                                                  

     下图的神经元(两个权重分别为 10,-20)可以被视为作用等同于逻辑非(NOT):

                                                                       

  • 样本和直观理解Ⅱ 

      二元逻辑运算符(BINARY LOGICAL OPERATORS)当输入特征为布尔值(0或1)时,我们可以用一个单一的激活层可以作为二元逻辑运算符,为了表示不同的运算符,我们只需要选择不同的权重即可。我们可以利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。例如我们要实现XNOR 功能(输入的两个值必须一样,均为1或均为0)。

                                                               

  • 多类分类

       如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。 

                                                          

      输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类 。神经网络算法的输出结果为四种可能情形之一:

                                                 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值