神经网络是什么

  1. 说明:
    我们在机器学习中谈论的神经网络是指“神经网络学习”,即机器学习与神经网络这两个学科领域的交叉部分。

  2. 生物学意义上神经网络的最基本成分是神经元,计算机科学中的神经网络的最基本成分是神经元模型

  3. 最广泛的一种定义是:
    神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。
    这里的简单单元,指的就是神经元模型。
    对于后半句话,其实我们可以不考虑神经网络是否真的模拟了生物神经网络,只需将1个神经网络视为包含了许多参数的数学模型,这个模型是由若干个函数相互嵌套而得。

神经元模型

  1. 1943年,McCulloch and Pitts将生物神经网络中的神经元作用原理抽象成一直沿用至今的“M-P神经元模型”。
  2. 在这个模型中,神经元接收到n个来自其他神经元传递过来的输入信号,这些信号有不同的权重,接收到的总输入值会被与神经元的阈值(临界值)进行比较,在经过响应(又称激活)函数处理后产生输出。
  3. 理想的响应函数是阶跃函数,可以直接将输入值映射为0/1,但由于其具有不连续、不光滑的缺点,常常采用Sigmod函数作为阶跃函数,可以将较大范围的输入值映射到(0,1),故又称挤压函数。

神经网络的学习

  1. 学什么: 如上所述,神经网络是一个包含许多参数、由若干函数相互嵌套而得的数学模型。(例如10个神经元组成的网络,就包含了10个阈值和90个连接权重)一般情况下,给定训练数据集,权重和阈值通过学习来得到。
  2. 如何学: 如果阈值看作固定输入,那么只需针对权重学习。学习规则很简单,对训练样例,如果预测正确,则权重不发生改变;否则根据偏差大小对错误进行调整。

多层神经网络

  1. 让我们首先来认识一个基本的,不属于多层的神经网络——感知机。它是由两层神经元组成的,输入层和输出层。其中输入层负责接受外界的输入信号并传递给输出层,即不负责函数处理,输出层神经元属于M-P神经元,会进行激活函数处理。也就是说,感知机它只拥有一层功能神经元,这就使得它的学习能力十分有限。
  2. 怎么办呢?我们需要在输入层和输出层中间加入更多的功能神经元,这些中间层被称为隐藏层。只需包含隐层,就可称为多层神经网络。例如,单隐层神经网络共包含三层:输入,隐藏和输出。
  3. 神经网络多为层级结构,每层神经元与下一层神经元全互联,不存在同层l和跨层连接。这样的结构称为多层前馈神经网络。注意,前馈不意味着信号不能相候船,而是指网络拓扑结构上不存在环或回路。

深度学习

  1. 理论上来说,参数越多的模型复杂度越高,“容量”越大,这意味着它能完成更复杂的学习任务。但是呢,这也就意味着复杂模型训练起来更困难。而随着云计算、大数据时代的到来,计算能力的大幅提高极大地提升了训练的效率,训练数据的大幅增加则可降低过拟合风险。这使得以深度学习为代表的复杂模型开始受到人们关注。
  2. 典型的深度学习模型是很深层的神经网络。多隐层神经神经网络有一下两种有效的训练手段。
    ① 无监督逐层训练
    基本思想:“预训练+微调”。
    每次训练一层隐节点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入,这称为“预训练”。
    在预训练全部完后曾后,再对整个网络进行“微调”训练。
    应用:DBN 深度信念网络
    ②权共享
    基本思想:让一组神经元使用相同的连接权重。
    应用: CNN 卷积神经网络
  3. 理解深度学习的另一个角度。
    无论DBN还是CNN,其多隐层堆叠,每层对上一层的输出进行处理的机制,可看作是在对输入信号进行逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化成与输出目标联系更密切的表示,使得原来仅基于最后一层输出映射难以完成的任务成为可能。
    换言之,通过多层处理,逐渐将初始的底层特征转化为高层特征表示后,用简单模型即可完成复杂的分类等学习任务。由此可以将深度学习理解为进行“特征学习”。

出处:周志华《机器学习》

神经网络基础知识梳理相关推荐

  1. Python基础知识梳理(一)

    Python基础知识梳理: 转载于:https://blog.51cto.com/10412806/2095116

  2. C#基础知识梳理系列十:异常处理 System.Exception

    C#基础知识梳理系列十:异常处理 System.Exception 参考文章: (1)C#基础知识梳理系列十:异常处理 System.Exception (2)https://www.cnblogs. ...

  3. python语法基础知识总结-Python基础知识梳理 - 第01部分

    在开始Python基础知识梳理前, 先安装下环境. 以下过程是在Linux操作系统, root用户下进行的, 主要安装了2.7版本的python, 和pip, ipython, virtualenv等 ...

  4. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  5. 深度学习:神经网络基础知识总结

    [神经网络基础知识总结]: 定义: 人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它 ...

  6. python入门题目及答案_Python基础自测题答案和基础知识梳理

    Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...

  7. mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为"参数",输出值称 ...

  8. Js基础知识梳理系列

    小序:总是感觉自己的技术一直在原地踏步,想学习一些新的技术,但学起来很吃力,而且总是没有什么实际的收获,似乎进入了所谓的"瓶颈期".问了一些前辈是否也遇到过同样的问题,他们给我的解 ...

  9. python理论知识选择题_Python基础自测题答案和基础知识梳理

    Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...

最新文章

  1. cannot import name ‘izip‘ from ‘itertools‘
  2. leetcode算法题--二叉树中的列表★
  3. BZOJ 3910 并查集+线段树合并
  4. 聊聊缓存机制:双写兜兜转转,又回到了串行化
  5. linux中匿名用户怎么登陆_Linux网络配置 | FTP 实战-匿名用户登录
  6. Leecode刷题热题HOT100(4)——寻找两个正序数组的中位数
  7. Spring cloud Gateway(二) 一个Http请求的流程解析
  8. yolov3代码详细解读
  9. 白话空间统计二十四:地理加权回归(六)ArcGIS的GWR工具参数说明一
  10. Three.js的人物动画与交互
  11. C语言知识点——函数参数
  12. [资源分享]yslow 与firebug 修复版本Firefox35【绿色版本下载】
  13. python定义一个矩形类_矩形类Python
  14. 中国新鲜杏子行业市场供需与战略研究报告
  15. IKBC键盘win键失效
  16. Unity全面的面试题(包含答案)
  17. 微信商家收款码怎么申请
  18. cpu2017的526.blender编译出错原因
  19. 用koomail有条不紊分类管理邮件
  20. 深圳市华宇讯科技有限公司(卖座网)打靶归来

热门文章

  1. iOS-FXDanmaku弹幕库介绍、相关技术分享
  2. LeetCode-135-Candy
  3. CentOS 7磁盘格式化
  4. linux 调试利器gdb, strace, pstack, pstree, lsof
  5. 《深入理解计算机系统》读书随笔-位操作
  6. 20个经典要诀学好英语
  7. NSHelper.showAlertTitle的两种用法 swift
  8. Spring Cloud - Feign调用问题
  9. finecms设置伪静态后分享到微信不能访问怎么处理
  10. 【转载】Linux命令行常用光标移动快捷键