2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

深度学习的数学(一):神经网络和深度学习

  • 2020-04-01
  • 本文字数:1535 字

    阅读完需:约 5 分钟

深度学习的数学(一):神经网络和深度学习

编者按:本文节选自图灵程序设计丛书 《深度学习的数学》一书中的部分章节。


深度学习 是人工智能的一种具有代表性的实现方法,下面就让我们来考察一下它究竟是什么样的技术。

备受瞩目的深度学习

在有关深度学习的热门话题中,有几个被媒体大肆报道的事件,如下表所示。


年份事件
2012 年在世界性的图像识别大赛ILSVRC中,使用深度学习技术的Supervision方法取得了完胜
2012 年利用谷歌公司开发的深度学习技术,人工智能从 YouTube 的视频中识别出了猫
2014 年苹果公司将Siri 的语音识别系统变更为使用深度学习技术的系统
2016 年利用谷歌公司开发的深度学习技术,AlphaGo 与世界顶级棋手对决,取得了胜利
2016 年奥迪、宝马等公司将深度学习技术运用到汽车的自动驾驶中


如上表所示,深度学习在人工智能领域取得了很大的成功。那么,深度学习究竟是什么技术呢?深度学习里的“深度”是什么意思呢?为了解答这个疑问,首先我们来考察一下神经网络,这是因为深度学习是以神经网络为出发点的。

神经网络

谈到神经网络的想法,需要从生物学上的 神经元( neuron) 开始说起。


从生物学的扎实的研究成果中,我们可以得到以下关于构成大脑的神经元的知识(1 - 2 节)。


(i) 神经元形成网络。


(ii) 对于从其他多个神经元传递过来的信号,如果它们的和不超过某个固定大小的值(阈值),则神经元不做出任何反应。


(iii) 对于从其他多个神经元传递过来的信号,如果它们的和超过某个固定大小的值(阈值),则神经元做出反应(称为点火),向另外的神经元传递固定强度的信号。


(iv) 在 (ii) 和 (iii) 中,从多个神经元传递过来的信号之和中,每个信号对应的权重不一样。



将神经元的工作在数学上抽象化,并以其为单位人工地形成网络,这样的人工网络就是神经网络。将构成大脑的神经元的集合体抽象为数学模型,这就是神经网络的出发点。

用神经网络实现的人工智能

看过以往的科幻电影、动画片就知道,人工智能是人们很早就有的想法。那么,早期研究的人工智能和用神经网络实现的人工智能有哪些不同呢?答案就是用神经网络实现的人工智能能够自己学习过去的数据。


以往的人工智能需要人们事先将各种各样的知识教给机器,这在工业机器人等方面取得了很大成功。



而对于用神经网络实现的人工智能,人们只需要简单地提供数据即可。神经网络接收数据后,会从网络的关系中自己学习并理解。

“人教导机器”类型的人工智能的问题

20 世纪的“人教导机器”类型的人工智能,现在仍然活跃在各种领域,然而也有一些领域是它不能胜任的,其中之一就是模式识别。让我们来看一个简单的例子。


例题 有一个用 8×8 像素读取的手写数字的图像,考虑如何让计算机判断图像中的数字是否为 0。


读取的手写数字的图像如下图所示。



这些图像虽然大小和形状各异,但都可以认为正解是数字 0。可是,如何将这些图像中的数字是 0 这个事实教给计算机呢?


要用计算机进行处理,就需要用数学式来表示。然而,像 例题 这样的情况,如果使用 20 世纪的常规手段,将“0 具有这样的形状”教给计算机,处理起来会十分困难。况且,如下所示,对于写得很难看的字、读取时受到噪声影响的字,虽然人能够设法辨认出来是 0,但要将这种辨认的条件用数学式表达,并教给计算机,应该是无法做到的。



从这个简单的 例题 中可以看出,“人教导机器”类型的人工智能无法胜任图像、语音的模式识别,因为要把所有东西都教给计算机是不现实的。


不过,在 20 世纪后期,对于这样的问题,人们找到了简单的解决方法,那就是神经网络以及由其发展而来的深度学习。如前所述,具体来说就是由人提供数据,然后由神经网络自己进行学习。


如此看来,神经网络似乎有一些不可思议的逻辑。然而,从数学上来说,其原理十分容易。本书的目的就是阐明它的原理。


图书简介http://www.ituring.com.cn/book/2593



2020-04-01 10:002568

评论

发布
暂无评论
发现更多内容

JMX客户端及对commons-pool的监控,java工程师面试视频

Java 程序员 后端

JVM性能优化(三)G1垃圾收集器,附大厂真题面经

Java 程序员 后端

kotlin 如何解决 java 开发痛点,让程序员 happier,java中级程序员面试

Java 程序员 后端

Kubernetes 稳定性保障手册 -- 可观测性专题,今晚我们通宵学习SpringCloud

Java 程序员 后端

Json的FastJson与Jackson,java阻塞队列原理

Java 程序员 后端

JSP、EL表达式、JSTL标签,rabbitmq源码分析持久化

Java 程序员 后端

JVM性能优化(四)提高网站访问性能之Tomcat优化,java程序开发实用教程邱加永答案

Java 程序员 后端

JSP 标准标签库(JSTL),javaee教程视频

Java 程序员 后端

JVM总体概述,java高级编程内容

Java 程序员 后端

kubebuilder实战之三:基础知识速览,Java学习的三个终极问题及学习路线规划

Java 程序员 后端

JNI开发之方法签名与Java通信(二),mongodb入门篇

Java 程序员 后端

JVM性能优化(三)G1垃圾收集器(1),java原理书籍

Java 程序员 后端

JVM类加载你真的【了解】了吗(1),网易的朋友给我这份339页的Java面经

Java 程序员 后端

JVM类加载你真的【了解】了吗,java项目面试题

Java 程序员 后端

Kubernetes官方java客户端之七:patch操作,深入浅出Java

Java 程序员 后端

JVM的YGC,这次被它搞惨了!,rabbitmq实战指南pdf最新版

Java 程序员 后端

kafka扫盲——别等面试官一问三不知了,linux操作系统教程

Java 程序员 后端

Kafka的生产者原理及重要参数说明,Java码农是如何进入腾讯的

Java 程序员 后端

krpano全景之内置函数---asyncloop roundval 等(不定期更新)

Java 程序员 后端

Kubernetes 常用命令大全,linux入门经典书籍

Java 程序员 后端

JVM探究:全面解析OOM异常,都在这了,mysql数据库基础与实例教程孔祥盛

Java 程序员 后端

Kafka 的 replica 同步机制(ISR与OSR列表数据相互转换)

Java 程序员 后端

kubernetes下的jenkins如何设置maven,java异步请求原理

Java 程序员 后端

Kafka-探险---生产者源码分析---核心组件,Java数据库题目大全

Java 程序员 后端

kubebuilder实战之八:知识点小记,java面试具体场景的解决方案

Java 程序员 后端

Jib使用小结(Maven插件版),Java程序员面试必备的知识点

Java 程序员 后端

JPA基本使用,Java虚拟机学习集锦是我攒来的

Java 程序员 后端

JVM 内存模型,百度笔试题百度校招面试经验

Java 程序员 后端

JVM--运行时数据区与内存模型,java开发基础知识点

Java 程序员 后端

jvm运行时内存是怎么分布的?,java多线程编程技术第二版下载

Java 程序员 后端

JWT单点登录,小甲鱼数据结构百度云

Java 程序员 后端

深度学习的数学(一):神经网络和深度学习_AI&大模型_涌井良幸,涌井贞美_InfoQ精选文章