神经网络是在模仿大脑中的神经元或者神经网络时发明的。因此,要解释如何表示模型假设,我们先来看单个神经元在大脑中是什么样的。如下图,我们的大脑中充满了神经元,神经元是大脑中的细胞,其中有两点值得我们注意,一是神经元有细胞主体,二是神经元有一定数量的输入神经。这些输入神经叫做树突,可以把它们想象成输入电线,它们接收来自其他神经元的信息,神经元的输出神经叫做轴突,这些输出神经是用来给其他神经元传递信号或者传送信息的。简而言之,神经元是一个计算单元,它从输入神经接受一定数目的信息,并做一些计算,然后将结果通过它的轴突传送到其他节点,或者大脑中的其他神经元。右下图是一组神经元的示意图,神经元利用微弱的电流进行沟通,这些弱电流也称作动作电位,其实就是一些微弱的电流,所以如果神经元想要传递一个消息,它就会就通过它的轴突发送一段微弱电流给其他神经元。这是一条连接到输入神经或者连接另一个神经元树突的神经,接下来这个神经元接收这条消息做一些计算。它有可能会反过来将在轴突上的自己的消息传给其他神经元。这就是所有人类思考的模型:我们的神经元把自己的收到的消息进行计算并向其他神经元传递信息。这也是我们的感觉和肌肉运转的原理,如果你想活动一块肌肉,就会触发一个神经元给你的肌肉发送脉冲,并引起你的肌肉收缩。如果一些感官,比如说眼睛想要给大脑传递一个消息,那么它就像这样发送电脉冲给大脑。

Neuron model:logistic unit

在一个神经网络里,或者说在我们在电脑上实现的人工神经网络里,我们将使用一个非常简单的模型,来模拟神经元的工作。我们将神经元模拟成一个逻辑单元,当画一个黄色圆圈时(黄色小圈代表一个单一的神经元,下图所示),你应该把它想象成作用类似于神经元的东西,然后我们通过它的树突或者说它的输入神经传递给它一些信息,然后神经元做一些计算,并通过它的输出神经,即它的轴突输出计算结果,当画一个像这样的图表时,就表示对h(x)的计算,h(x)等于1除以1+e的负θ转置乘以x。通常,x和θ是参数向量。这是一个简单的模型,甚至说是一个过于简单的模拟神经元的模型。它被输入x1、x2和x3,然后输出一些类似这样的结果。当绘制一个神经网络时,通常只绘制输入节点x1、x2和x3。但有时也可以这样做:增加一个额外的节点x0,这个x0节点,有时也被称作偏置单位或偏置神经元,但因为x0总是等于1,所以有时候会画出它,有时不会画出,这取决于它是否对例子有利。现在讨论最后一个关于神经网络的术语,有时我们会说这是一个神经元,一个有s型函数或者逻辑函数作为激励函数的人工神经元。在神经网络术语中,激励函数只是对类似非线性函数g(z)的另一个术语称呼,g(z)等于1除以1加e的-z次方。到目前为止,θ一直被称为模型的参数,以后大概会继续将这个术语与“参数”相对应,而不是与神经网络。在关于神经网络的文献里,有时可能会看到人们谈论一个模型的权重,权重其实和模型的参数是一样的东西。

神经网络其实就是不同的神经元组合在一起的集合,具体来说,就是我们输入单元x1、x2和x3(如下图),有时候也可以画上额外的节点x0. 这里有个神经元,我们写成a1(2),a2(2),a3(2)。然后再次说明,我们可以在这里添加一个a0,和一个额外的偏度单元,它的值永远是1,最后我们在最后一层有第三个节点,正是这第三个节点,输出假设函数h(x)计算的结果。再多说一点关于神经网络的术语网络中的第一层也被称为输入层,因为我们在这一层输入我们的特征项x1、x2和x3,最后一层也称为输出层,中间的两层也被称作隐藏层,隐藏层不是一个很合适的术语,但是直觉上我们知道在监督学习中,你能看到输入,也能看到正确的输出。而隐藏层的值,你在训练集里是看不到的。它的值不是x,也不是y,所以我们叫它隐藏层。稍后我们会看到神经网络可以有不止一个的隐藏层,但在这个例子中,我们有一个输入层—第1层、一个隐藏层—第2层和一个输出层—第3层。但实际上任何非输入层或非输出层的层就被称为隐藏层。

为了解释神经网络具体的计算步骤,下图有些记号要解释,使用a上标(j)、下标i表示第j层的第i个神经元或单元。具体来说,a上标(2)、下标1,表示第2层的第一个激活值,所谓激励(activation)是指由一个具体神经元读入计算并输出的值。此外,神经网络被这些矩阵参数化,θ上标(j) 将成为一个波矩阵控制着从一层,比如说从第一层到第二层或者第二层到第三层的作用。下图的第一个隐藏单元是这样计算它的值的:a(2)1等于s函数或者说s激励函数,也叫做逻辑激励函数,作用在这种输入的线性组合上的结果。第二个隐藏单元,等于s函数作用在这个线性组合上的值。参数矩阵控制了来自三个输入单元、三个隐藏单元的映射。因此θ1的维数将变成3。θ1将变成一个3乘4维的矩阵。更一般的, 如果一个网络在第j层有sj个单元,在j+1层有sj+1个单元,那么矩阵θ(j),即控制第j层到第j+1层映射的矩阵的维度为sj+1* (sj+1)。所以θ(j)的维度是sj+1行、sj+1列。

斯坦福大学公开课机器学习:Neural network-model representation(神经网络模型及神经单元的理解)的更多相关文章

  1. 斯坦福大学公开课机器学习:advice for applying machine learning | diagnosing bias vs. variance(机器学习:诊断偏差和方差问题)

    当我们运行一个学习算法时,如果这个算法的表现不理想,那么有两种原因导致:要么偏差比较大.要么方差比较大.换句话说,要么是欠拟合.要么是过拟合.那么这两种情况,哪个和偏差有关.哪个和方差有关,或者是不是 ...

  2. 第19月第8天 斯坦福大学公开课机器学习 (吴恩达 Andrew Ng)

    1.斯坦福大学公开课机器学习 (吴恩达 Andrew Ng) http://open.163.com/special/opencourse/machinelearning.html 笔记 http:/ ...

  3. 斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)

    怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也 ...

  4. 斯坦福大学公开课机器学习:Neural Networks,representation: non-linear hypotheses(为什么需要做非线性分类器)

    如上图所示,如果用逻辑回归来解决这个问题,首先需要构造一个包含很多非线性项的逻辑回归函数g(x).这里g仍是s型函数(即 ).我们能让函数包含很多像这的多项式,当多项式足够多时,那么你也许能够得到可以 ...

  5. 斯坦福大学公开课机器学习: neural networks learning - autonomous driving example(通过神经网络实现自动驾驶实例)

    使用神经网络来实现自动驾驶,也就是说使汽车通过学习来自己驾驶. 下图是通过神经网络学习实现自动驾驶的图例讲解: 左下角是汽车所看到的前方的路况图像.左上图,可以看到一条水平的菜单栏(数字4所指示方向) ...

  6. 斯坦福大学公开课机器学习: machine learning system design | error analysis(误差分析:检验算法是否有高偏差和高方差)

    误差分析可以更系统地做出决定.如果你准备研究机器学习的东西或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统.拥有多么复杂的变量,而是构建一个简单的算法.这样你可以很快地实现它.研究机 ...

  7. 斯坦福大学公开课机器学习:machine learning system design | error metrics for skewed classes(偏斜类问题的定义以及针对偏斜类问题的评估度量值:查准率(precision)和召回率(recall))

    上篇文章提到了误差分析以及设定误差度量值的重要性.那就是设定某个实数来评估学习算法并衡量它的表现.有了算法的评估和误差度量值,有一件重要的事情要注意,就是使用一个合适的误差度量值,有时会对学习算法造成 ...

  8. 斯坦福大学公开课机器学习: machine learning system design | prioritizing what to work on : spam classification example(设计复杂机器学习系统的主要问题及构建复杂的机器学习系统的建议)

    当我们在进行机器学习时着重要考虑什么问题.以垃圾邮件分类为例子.假如你想建立一个垃圾邮件分类器,看这些垃圾邮件与非垃圾邮件的例子.左边这封邮件想向你推销东西.注意这封垃圾邮件有意的拼错一些单词,就像M ...

  9. 斯坦福大学公开课机器学习:advice for applying machine learning - deciding what to try next(设计机器学习系统时,怎样确定最适合、最正确的方法)

    假如我们在开发一个机器学习系统,想试着改进一个机器学习系统的性能,我们应该如何决定接下来应该选择哪条道路? 为了解释这一问题,以预测房价的学习例子.假如我们已经得到学习参数以后,要将我们的假设函数放到 ...

随机推荐

  1. Docker inspect - format格式化输出 - 运维笔记

    Docker --format 参数提供了基于 Go模板 的日志格式化输出辅助功能,并提供了一些内置的增强函数. 什么是模板?上图是大家熟悉的 MVC 框架(Model View Controller ...

  2. Docker容器学习梳理 - 基础知识(1)

    Docker是PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源.Docker是通过内核虚拟化技 ...

  3. 最近新明白的SQL小知识

    1.partition by和order by 先看三个小需求: ①查询出各个类编号的书本的数量. select count (类编号) as 数量, 类编号 from Books group by ...

  4. js控制css时注意

    font-size:10px--------e.style.fontSize="10px " 属性名:font-size--------fontSize; 属性值:10px---- ...

  5. 结对项目https://github.com/bxoing1994/test/blob/master/源代码

    所选项目名称:文本替换      结对人:曲承玉 github地址 :https://github.com/bxoing1994/test/blob/master/源代码 结对人github地址:ht ...

  6. VS2015 导航栏 查看每个cpp文件中类以及类成员函数的框框

    这个可以查看每个cpp文件中类以及类成员函数的框框叫导航栏! 怎么打开导航栏可以再百度.

  7. opencv学习笔记(四)

    ROI---设定感兴趣的区域(region of interest) 定义: Mat imageROI; //方法一:通过Rect指定矩形区域 imageROI=image(Rect(500,250, ...

  8. 『编程题全队』Beata阶段项目复审

    小组的名字和链接 优点 缺点,bug 报告(部分包括建议) 最终名次 想不出队名 1. 界面简洁大方2. 有搜索功能 1. 已经完成的活动缺了点提示界面2. 似乎界面有一点点卡顿目标实现:基本实现找到 ...

  9. Docker(二十)-Docker容器CPU、memory资源限制

    背景 在使用 docker 运行容器时,默认的情况下,docker没有对容器进行硬件资源的限制,当一台主机上运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU.内存和磁盘资源.如果不 ...

  10. Docker(十四)-Docker四种网络模式

    Docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看: none模式,使用--net=none指定,该模式关闭了容器的网络功能. host模式 ...