NNDL 神经网络与深度学习 第1章 绪论——学习笔记
Table of Contents generated with DocToc
标题选中可以看到目录导航哦
绪论
要开始学习神经网络与机器学习,我们也要开始了解一些基础知识。
介绍
我们要学的神经网络与深度学习都是人工智能的子领域。
- 神经网络:一种以(人工)神经元为基本单元的模型
- 深度学习:一类机器学习问题,主要解决贡献度分配问题
对于学习该知识,我推荐
以及练手用的
同时我们还需要知道相关顶会:
比如
- 人工智能:全球人工智能顶会 NeurIPS、国际表征学习大会 ICLR、国际机器学习大会 ICML、国际先进人工智能协会 AAAI、国际人工智能联合会议 IJCAI
- 自然语言处理:计算语言学年会 ACL、自然语言处理经验方法会议 EMNLP
- 计算机视觉:IEEE国际计算机视觉与模式识别会议 CVPR、国际计算机视觉大会 ICCV
人工智能
什么是人工智能?
简而言之,人工智能(artificial intelligence)就是让机器具有人的智能。如果你觉得抽象的话,一个具体的解释就是,1950年,Alan Turing 提出的著名的图灵测试:“一个人在不接触对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的。”
人工智能研究什么?
为了让机器具有人的智能,人工智能的研究领域主要分为三类:
- 感知:计算机视觉、语音信息处理
- 学习:模式识别、机器学习、强化学习
- 认知:主要包括
- 语言:自然语言处理
- 记忆:知识表示
- 决策:规划、数据挖掘
并且主要分为两个流派:
- 符号主义流派:通过分析人类智能的功能,用计算机符号运算来实现,优点在于可解释性强,又叫逻辑主义。
- 连接主义流派:通过分析人类智能的实现过程,用神经元结构来实现,优点在于高效,又叫仿生学派。
发展历史
如何开发一个人工智能系统?
解释
我们需要了解一些相关的技术解释
机器学习(Machine Learning)
机器学习,是从有限的观测数据中得到一般性的规律,再利用该规律对未知数据进行预测。或者说,机器学习就是一个构建映射函数的过程。
传统的机器学习流程即如下:(特征即数据)
为什么称传统机器学习是浅层学习:
浅层学习(Shallow Learning):不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取。
而如何进行特征学习,就是表示学习的内容。
表示学习
数据表示是当前机器学习的核心问题,而表示学习就是解决该问题的途径。
表示学习,是一种可以自动从输入信息中学习出有效特征,提高机器学习模型的性能的算法。
表示学习的关键在于解决语义鸿沟。也就是,解决底层特征和高层语义的不一致,简而言之就是类似于解决这种(我有一辆车的图片,但是我怎么从图片提取出我想要的车的特征)问题。原因是人们对文本、图像的理解是无法从字符串或者图像的底层特征直接获得,这也是计算机无法直接获取到的。
表示学习有两个核心问题,即“什么是好的表示” “如何学习到好的表示”。
当然这个问题太模糊,但一般而言,一个好的表示具有以下几个优点:
- 应该具有很强的表示能力。
- 应该使后续的学习任务变得简单。
- 应该具有一般性,是任务或领域独立的
如何表示特征
机器学习中,我们通常有两种方式表示特征:局部(符号)表示和分布式表示。
局部表示:又叫离散表示或符号表示。局部表示通常可以表示为 one-hot 向量的形式。
one-hot向量
它有两个优点:
-
- 具有很好的解释性,利于人工归纳和总结特征,并通过特征组合进行高效的特征工程。
特征工程是将原始数据转化成更好的表达问题本质的特征的过程,使得将这些特征运用到预测模型中能提高对不可见数据的模型预测精度。
-
- 通过多种特征组合得到的表示向量通常是稀疏的二值向量,用于线性模型时计算效率会有极大的提升。
缺点显而易见:
-
- one-hot向量维度很高,且不能扩展。
- 2)不同向量直接的相似度为 0,无法知道向量之间的相似度。
分布式表示:分布式表示通常可以表示为低维的稠密向量。
和局部表示相比,分布式表示的表示能力强,向量维度低,向量之间容易计算相似度。
O(N)个参数表示O(2^k)区间,k为非0参数,且k < N
具体我们可以用颜色的例子来讲解:


深度学习(Deep Learning)
一个好的表示学习策略必须具备一定的深度,所谓“深度”是指原始数据进行非线性特征转换的次数.如果把一个表示学习系统看作一个有向图结构,深度也可以看作从输入节点到输出节点所经过的最长路径的长度。
这样我们就需要一种学习方法可以从数据中学习一个“深度模型”,这就是深度学习。其主要目的是从数据中自动学习到有效的特征表示。
深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP)[Minsky,1961],即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响。
我们可以把浅层学习看作是求解单一的非线性函数,而深度学习则是在浅层基础之上进行嵌套:
目前,深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题.只要是超过一层的神经网络都会存在贡献度分配问题,因此可以将超过一层的神经网络都看作深度学习模型。
神经网络
神经元之间可以接收和传递信息,信息通过突触传递,一个神经元只有两种状态:兴奋和抑制。通过研究,有加拿大的心理学家Donald Hebb提出了赫布原则:
“当神经元 A的一个轴突和神经元B很近,足以对它产生影响,并且持续地、重复地参与了对神经元B的兴奋,那么在这两个神经元或其中之一会发生某种生长过程或新陈代谢变化,以致于神经元A作为能使神经元B兴奋的细胞之一,它的效能加强了。”
- 人脑有两种记忆:长期记忆和短期记忆。短期记忆持续时间不超过一分钟。如果一个经验重复足够的次数,此经验就可储存在长期记忆中。
- 短期记忆转化为长期记忆的过程就称为凝固作用。
- 人脑中的海马区为大脑结构凝固作用的核心区域。
而人工神经网络是为模拟人脑神经网络而设计的一种计算模型,它从结构、实现机理和功能上模拟人脑神经网络。
人工神经网络主要由大量的神经元以及它们之间的有向连接构成,其输出由输入通过权重综合计算再输入到激活函数得到。因此考虑三方面:
- 神经元的激活规则
主要是指神经元输入到输出之间的映射关系,一般为非线性函数。 - 网络的拓扑结构
不同神经元之间的连接关系。 - 学习算法
通过训练数据来学习神经网络的参数。
一个阶层型的神经网络主要结构如下图所示:
神经网络发展史
神经网络的发展大致经过五个阶段。
第一阶段:模型提出
在1943年,心理学家Warren McCulloch和数学家Walter Pitts最早描述了一种理想化的人工神经网络,并构建了一种基于简单逻辑运算的计算机制。他们提出的神经网络模型称为MP模型。
MP模型
阿兰·图灵在1948年的论文中描述了一种“B型图灵机”。(赫布型学习)
1951年,McCulloch和Pitts的学生Marvin Minsky建造了第一台神经网络机,称为SNARC。
Rosenblatt [1958]最早提出可以模拟人类感知能力的神经网络模型,并称之为感知器(Perceptron),并提出了一种接近于人类学习过程(迭代、试错)的学习算法。
感知器
第二阶段:冰河期
1969年,Marvin Minsky出版《感知器》一书,书中论断直接将神经网络打入冷宫,导致神经网络十多年的“冰河期”。他们发现了神经网络的两个关键问题:
- 1)基本感知器无法处理异或回路。
- 2)电脑没有足够的能力来处理大型神经网络所需要的很长的计算时间。
1974年,哈佛大学的Paul Webos发明反向传播算法(BP算法),但当时未受到应有的重视。
1980年,Kunihiko Fukushima(福岛邦彦)提出了一种带卷积和子采样操作的多层神经网络:新知机(Neocognitron)
第三阶段:反向传播算法引起的复兴
1983年,物理学家John Hopfield对神经网络引入能量函数的概念,并提出了用于联想记忆和优化计算的网络(称为Hopfield网络),在旅行商问题上获得当时最好结果,引起轰动。
1984年,Geoffrey Hinton提出一种随机化版本的Hopfield网络,即玻尔兹曼机。
1986年, David Rumelhart和James McClelland对于联结主义在计算机模拟神经活动中的应用提供了全面的论述,并重新发明了反向传播算法。
1986年,Geoffrey Hinton等人将引入反向传播算法到多层感知器。
1989 年,LeCun等人将反向传播算法引入了卷积神经网络,并在手写体数字识别上取得了很大的成功。
第四阶段:流行度降低
在20世纪90年代中期,统计学习理论和以支持向量机为代表的机器学习模型开始兴起。
相比之下,神经网络的理论基础不清晰、优化困难、可解释性差等缺点更加凸显,神经网络的研究又一次陷入低潮。
第五阶段:深度学习的崛起
第五阶段:深度学习的崛起
2006年,Hinton等人发现多层前馈神经网络可以先通过逐层预训练,再用反向传播算法进行精调的方式进行有效学习。
- 深度神经网络在语音识别和图像分类等任务上的巨大成功。
2013年,AlexNet:第一个现代深度卷积网络模型,是深度学习技术在图像分类上取得真正突破的开端。
- AlexNet不用预训练和逐层训练,首次使用了很多现代深度网络的技术
随着大规模并行计算以及GPU设备的普及,计算机的计算能力得以大幅提高。此外,可供机器学习的数据规模也越来越大。在计算能力和数据规模的支持下,计算机已经可以训练大规模的人工神经网络。
深度学习应用
AI领域
- 语音识别:可以使得词错误率从1/4下降到1/8
- 计算机视觉:目标识别、图像分类等
- 自然语言处理:分布式表示、机器翻译、问题回答等
- 信息检索、社会化网络
三个Deep:
- Deep Blue(深蓝)
- Deep QA(QuestionAnsweringSystem)
- Deep Learning
注
第一章结束,实践学习 numpy 库。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)