你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

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

2020 年 4 月 01 日

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

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


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


备受瞩目的深度学习

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


年份事件
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 年 4 月 01 日 10:001182

评论

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

JVM笔记 -- JVM的发展以及基于栈的指令集架构

秦怀杂货店

JVM JVM笔记

IDEA 敏捷开发技巧——实时模版

程序员小航

IDEA IntelliJ IDEA

正则表达式.02 - 量词与贪婪

insight

正则表达式 3月日更

Dubbo 进行一次微服务调用的时序图

跳蚤

Centos7 systemctl 启动Java应用

黄敏

Java Linux Centos 7 部署

开课啦基于 dubbo-go 的服务端技术升级实战

apache/dubbo-go

云原生 dubbo 微服务治理 dubbo-go dubbogo

springboot 2.4.0 knife4j 3.0.1接口文档框架

黄敏

springboot SpringBoot 2 Knife4j

使用Android版VMware Horizon Client连接到云桌面

梅花鹿鹿

如何让别人访问到你的本地项目? Ngrok免费实现内网穿透

xiezhr

ngrok 内网穿透 3月日更

HBase分布式部署

Fong

大数据 运维 部署

学大数据应该怎么入门--大数据学习之路

大数据技术指南

大数据 大数据学习 3月日更

旧区块链思维面临淘汰

CECBC区块链专委会

区块链

加快推进数据确权与资产化 发挥区块链技术信用机制优势

CECBC区块链专委会

区块链

工具软件与开源

行人23

开源 SaaS

Java安装教程

Sakura

28天写作 28天挑战 3月日更

Linux时间同步-NTP服务器

黄敏

Linux ntp

SpringBoot启用HTTPS

黄敏

jdk https openssh springboot

中台建设落地浅谈

Man

中台 数字化转型

产品经理是个很务虚的岗位吗?

涛哥

产品经理

超干货 (实战经验)结合公司业务分析离线数仓建设实践

五分钟学大数据

大数据 数据仓库 28天写作 3月日更

35万一枚的比特币,家里电脑想挖一枚要多长时间?答案只有3个字

CECBC区块链专委会

比特币

程序员之禅(五)十条准则

每天读本书

读书笔记 每天读本书

《精通比特币》学习笔记(第三章)

棉花糖

区块链 学习笔记 3月日更

翻译:《实用的Python编程》04_01_Class

codists

Python

微服务实践之分布式定时任务

万俊峰Kevin

go 微服务 微服务架构 定时任务 延迟任务

浅淡python中with的用法,上下文管理器

极客新人

浅谈微服务架构

跳蚤

《撬动星球的头部效应-绝非偶然》读书笔记

SilentMacUser

极客时间 读书笔记 产品经理 知识星球 极客大学产品经理训练营

打造移动版的开发环境

雨夜的博客

php vagrant 移动版开发环境

能源区块链研究|中国内蒙古自治区为减少能源消耗 禁止比特币采矿

CECBC区块链专委会

比特币

Hbase详解

Fong

大数据 运维 概念

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

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