**************************************

注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的《机器学习》课程笔记。博主深感学过课程后,不进行总结很容易遗忘,根据课程加上自己对不明白问题的补充遂有此系列博客。本系列博客包括线性回归、逻辑回归、神经网络、机器学习的应用和系统设计、支持向量机、聚类、将维、异常检测、推荐系统及大规模机器学习等内容。

**************************************

神经网络:表达

非线性假说

使用非线性的多项式项,能够帮助我们建立更好的分类模型。假设我们有非常多的特征,例如大于100个变量,我们希望用这 100个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合,即便我们只采用两两特征的组合(x1x2+x1x3+x1x4+...+x2x3+x2x4+...+x99x100),我们也会有接近 5000个组合而成的特征。这对于一 般的逻辑回归来说需要计算的特征太多了。

这样的问题还有很多,例如在计算机视觉的汽车检测问题中,对于一副汽车图片来说,你可以轻易的辨别出这是一辆汽车,但是在计算机或者相机“眼里”,这只是一堆像素的数字矩阵而已:

所以,对于汽车检测问题,我们需要一堆汽车图片和一堆非汽车图片作为训练集,训练一个用于汽车检测的分类器

假使我们采用的都是 50x50 像素的小图片,并且我们将所有的像素视为特征,则会有 2500 个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有约 25002/2  个(接近3百万个)特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

我们模拟大脑中的神经元结构建立一个简单的模型-Logistic unit:

我们设计出了类似于神经元的神经网络,效果如下:

其中x1,x2,x3是输入单元(input units),我们将原始数据输入给它们。 a1,a2,a3是中间单元,它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算 h(x)。 神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。上图为一个3 层的神经网络,第一层成为输入(InputLayer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加了一个偏差单位(bias unit)。

模型表示二

相对与使用循环来编码,利用向量化的方法会使得计算更为简便。

其实神经网络就像是 logistic regression,只不过我们把 logistic regression 中的输入向量[x1~x3]变成了中间层的[a(2)1~a(2)3],  我们可以把a0,a1,a2,a3看成更为高级的特征值,也就是 x0,x1,x2,x3的进化体,并且它们是由x与决定的,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将 x次方厉害,也能更好的预测新数据。 这就是神经网络相比于逻辑回归和线性回归的优势。

特征和直观解释

我们的目标是利用神经网络实现一个逻辑代数中的同或运算,因此首先介绍一下同或运算和异或运算:
同或逻辑和异或逻辑是只有两个逻辑变量的逻辑函数。如果当两个逻辑变量A和B相同时,逻辑函数F等于1,否则F等于0,这种逻辑关系称为同或。反之,如果当两个逻辑变量A和B相异时,逻辑函数F等于1,否则F等于0,这种逻辑关系称为异或。

将其对应到一个非线性分类器,如下图所示:

先介绍三种最基本的逻辑运算(与逻辑运算、或逻辑运算、非逻辑运算),同时分别介绍其对应的神经网络实现,最后将这几种基本的逻辑运算组合,形成最终的同或逻辑运算的神经网络。

左图的神经元(三个权重分别为-30,20,20)可以被视为作用同于逻辑与(AND);中图的神经元(三个权重分别为-10,20,20)可以被视为作用等同于逻辑或(OR);右图的神经元(两个权重分别为  10,-20)可以被视为作用等同于逻辑非(NOT):

我们可以利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。例如我们要实现 XNOR  功能(输入的两个值必须一样,均为 1 或均为0),即  XNOR=(x1ANDx2)OR((NOTx1)AND(NOTx2))

上图中第二层隐藏网络a1和a2分别代表了A And B和Not A And Not B,a1和a2又做了一次或逻辑运算就得到了同或逻辑运算。该神经网络对应的输出与同或运算的真值表相同。

多分类问题

当我们有不止两种分类时(也就是 y=1,2,3….),比如我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有 4个值。例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。 输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每
一个数据在输出层都会出现[a b c d]T,且a,b,c,d中仅有一个为1,表示当前类。下面是该神经网络的可能结构示例:

当向量的某个元素为1,其他为0时,代表分类结果为某个为1元素所对应的类别。这与之前逻辑回归中的多类分类表示不同,在逻辑回归中,输出y属于类似于{1, 2, 3,4}中的某个值,而非一个向量。因此,如果要训练一个多类分类问题的神经网络模型,训练集是这样的:

******************

作者:hao_09

时间:2015/8/13

文章地址:http://blog.csdn.net/lsh_2013/article/details/47454079

******************

机器学习:神经网络之表达相关推荐

  1. 深度丨如何理解和评价机器学习中的表达能力、训练难度和泛化性能

    来源: Eric Jang 的个人博客 非常感谢王家兴 (Jiaxing Wang) 把这个博客文章翻译成中文. 当我在阅读机器学习相关文献的时候, 我经常思考这项工作是否: 提高了模型的表达能力: ...

  2. 图神经网络的表达能力,究竟有多强大?

    来源:AI科技评论 作者 | Mr Bear 编辑 | 丛 末 近年来,随着图神经网络在各个领域的火热应用,越来越多的学者试图从图论的角度对图神经网络的表达能力进行理论分析,并基于这些理论分析开发出了 ...

  3. 如何理解和评价机器学习中的表达能力、训练难度和泛化性能

    来源: Eric Jang 的个人博客 非常感谢王家兴 (Jiaxing Wang) 把这个博客文章翻译成中文. 当我在阅读机器学习相关文献的时候, 我经常思考这项工作是否: 提高了模型的表达能力: ...

  4. 常用激活函数--小白角度 TensorFlow 机器学习 神经网络 选取

    常用激活函数--小白角度TensorFlow 机器学习 神经网络 选取 先简单介绍一下激活函数 常用激活函数review 1.阶跃函数 2.Sigmoid函数(logistic函数) 3.Hyperb ...

  5. 干货!用神经网络来表达隐式场景流

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 在深度学习革命之前,许多感知算法(perception algorithm) 直接运行时优化(runtime optimization) ...

  6. 大数据----机器学习---神经网络

    1.神经网络与深度学习的发展历程: 2.神经网络与大脑神经元 神经网络的起源.结构.个体间的信息交互方式是以我们大脑神经元为模板的,我们的大脑神经元如下所示: 3.神经网络源头--M-P神经元模型 M ...

  7. 吴恩达机器学习 -- 神经网络学习

    9.1 非线性假设 无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大. 吴恩达老师举了一个例子: 当我们使用 的多次项式进行预测时,我们可以应用的很好. 之前课程学习过 ...

  8. 深度学习 2 机器学习 神经网络 卷积神经网络

    机器学习 无监督学习 监督学习 半监督学习 强化学习 经验中总结提升 遗传算法 适者生存不是者淘汰 什么是神经网络 Neural Network 人工神经元 数学模型 计算机模型 人工神经网络在外界信 ...

  9. Educoder 机器学习 神经网络 第三关:反向传播算法

    任务描述 相关知识 数据集介绍 神经网络是如何训练 前向传播 交叉熵 反向传播 sklearn中的神经网络 编程要求 测试说明 任务描述 本关任务:用sklearn构建神经网络模型,并通过鸢尾花数据集 ...

最新文章

  1. 详解MTK系统中字符转换问题
  2. 【Linux】线程同步之信号量同步
  3. ASP.NET中UpdatePanel与jQuery同时使用所遇问题解决
  4. html下拉嵌套只读,html组件不可输入(只读)同时任何组件都有效
  5. TreeView 用法(有代码)
  6. 10次课( find命令、文件名后缀)
  7. OCP考试题库(精准无比)
  8. Dos命令 --复制文件(夹)
  9. STM32 Bootloader开发记录 3 固件签名校验
  10. ORACLE DG断档处理
  11. 神秘AI变脸软件风靡全球,让你秒变身迪士尼在逃主角
  12. Linux进程间通信(上)
  13. 防止系统自动锁屏脚步
  14. 数模--0-1规划问题~Matlab中 intlinprog函数用法简介
  15. 公司酒场被劝“你不喝就不拿我当朋友”,用4种拒酒话术,特管用
  16. 《产品经理深入浅出》PART 6:交互设计
  17. win10安装ubuntu16.04双系统(一)
  18. 结对项目——电子书ReadBook
  19. 以单片机为核心,设计一个节日彩灯控制器
  20. Linux CentOS 7.X下安装部署VNC

热门文章

  1. os.path.basename()
  2. Hive 架构知识体系及语法详解
  3. matlab判断向量组线性相关性的三种方法
  4. matlab简单分析数字滤波器FIR
  5. 贺利坚老师汇编课程47笔记:jmp short和jmp near ptr和jmp far ptr
  6. 三度其三——矢量场的旋度
  7. 积分兑换平台(这是一种剥削么?强烈求拍砖)
  8. 51 nod 1521 一维战舰 时间复杂度O(n),同 Codeforces 567D. One-Dimensional Battle Ships 有详细注释...
  9. java中如何将string 转化成long
  10. 板邓:wordpress标签调用函数大全