zoukankan      html  css  js  c++  java
  • ng机器学习视频笔记(六) ——神经网络基础

    ng机器学习视频笔记(六)

    ——神经网络基础

     (转载请附上本文链接——linhxx)

     

     一、概述

             神经网络,可以理解为输入的内容,经过一系列的内部的处理,得到输出的假设函数。简单的神经网络如下图:

     

              可以看出,三个输入,经过中间的变化,得到输出。中间橙色的圈,称为神经元。神经元可以分层,下图是三层神经网络模型:

     

              其中,第一层蓝色的圈,叫做输入层;中间一层橙色的圈叫做隐藏层;右边的橙色圈叫做输出层。神经网络有一个输入层和一个输出层,隐藏层可以有多层。神经元的连接方式,称为神经网络的架构。

    二、基本公式

             上图的三层神经网络,ai(j)表示的是第j层、第i个变量。每个变量都是由上一层计算得到的,计算公式如下图:

     

              用zi(j)表示对应的ai(j)的式子中的g函数内部的式子,可以看出,神经元实质上就是输入的变量经过若干个线性变换,得到输出。

     

             上图的xi,都省略了x0,x0一直都是1。另外,g(z)即logistic回归中的g(z)函数,即g(z)=1/(1+e-θTx)

    三、具体例子

             现要使用神经网络实现与、或、非、异或的逻辑运算。

    1、与

             假设有两个特征值x1、x2,他们的取值范围是0或1,y=x1&&x2,由g(z)的公式,可以大致推导出,z=4时y约等于1,z=-4时y约等于0。则可以假设h(x)=g(z)=g(-30+20x1+20x2)(其中x0=1),神经网络如下图所示:

     

             则此时即表示实现了一个具有“与”功能的神经元。

    2、或

             类似与,或可以用如下假设方式:

     

    3、非

             非的表示方式如下:

     

    4、非异或

             非异或(XNOR),即异或的结果再进行非操作。此时,用到了三层的神经网络,中间一层是隐藏层,用于计算异或,并把结果传到第三层进行处理后输出。

             根据异或的公式,可以知道x1 XOR x2,则x1或x2中1个是1的时候结果是1,否则是0,则XNOR则是x1和x2都是1,或者x1和x2都不是1的情况。

             因此,第二层,则计算了x1和x2都是1,或者x1和x2都不是1的情况。分别是红色的圈和蓝色的圈的表示。

             第三层进行或运算,接收第二层的结果。

     

    四、多变量情况

             多变量情况,类似上面的内容,下面是例如要区分一个图片是轿车、人、摩托车、卡车的简易神经网络(没有具体过程,就是粗略模型)。

             实际上,就是将输入的图片的像素点,经过若干隐藏层的处理后,进行输出。

     

    ——written by linhxx

    更多最新文章,欢迎关注微信公众号“决胜机器学习”,或扫描右边二维码。

    博客园这边,我会定期批量发布文章,如果想要实时看到最新的文章,欢迎关注微信公众号"决胜机器学习",里面有我最新的文章。linhxx
  • 相关阅读:
    hdu--1231--并查集<连分量的个数>
    hdu--1272--并查集||图的特点
    hdu--1856--并查集的离散化处理
    hdu--1285 && 4857 --正向 || 逆向拓扑排序 && 优先队列
    hdu--1671--字典树<出现mle怎么解决>
    CF260--C--dp<最大不连续子序列和>
    Hibernate之级联关系配置的作用
    调用JS的方法
    Hibernate映射关系之多对多
    Hibernate映射关系之一对多
  • 原文地址:https://www.cnblogs.com/linhxx/p/8412702.html
Copyright © 2011-2022 走看看