[读书笔录]解析卷积神经网络(魏秀参)——目录和绪论

article/2025/9/28 16:59:16

解析卷积神经网络——基础理论篇

*南京大学计算机系机器学习与数据挖掘所(LAMDA)在读博士魏秀参开放了一份较系统完整的 CNN 入门材料《解析卷积神经网络——深度学习实践手册》。这是一本面向中文读者轻量级、偏实用的深度学习工具书,内容侧重深度卷积神经网络的基础知识和实践应用。本书的受众为对卷积神经网络和深度学习感兴趣的入门者,以及没有机器学习背景但希望能快速掌握该方面知识并将其应用于实际问题的各行从业者。
全书共 14 章,除“绪论”外可分为2 个篇章:第一篇“基础理论篇”包括第1~4章,介绍卷积神经网络的基础知识、基本部件、经典结构和模型压缩等基础理论内容;第二篇“实践应用篇”包括第5~14章,介绍深度卷积神经网络自数据准备始,到模型参数初始化、不同网络部件的选择、网络配置、网络模型训练、不平衡数据处理,最终直到模型集成等实践应用技巧和经验。 本系列文章为本人读书学习的摘录以及思考,希望和志同者一起探讨学习(0.0)。*

书籍链接:

http://lamda.nju.edu.cn/weixs/book/CNN_book.pdf
https://pan.baidu.com/s/1pLcaFij
https://drive.google.com/file/d/1sa1aSzYrNtGzXbegL02JtbYw3z3ZE13m/view?usp=sharing

目录

基础理论篇
解析卷积神经网络 目录和绪论
第一章 卷机神经网络基础知识
第二章 卷机神经网络基本部件
第三章 卷积神经网络经典结构

实践应用篇

绪论

(我觉得是没有用的,看看就好。)

引言

阿尔法狗 4 : 1 大胜人类围棋的顶级高手李世石,使其迅速成为全世界热议的话题,也让人们牢牢记住了一个原本陌生的专有名词——“深度学习”(deep learning)。

什么是深度学习?

比起深度学习,“机器学习”一词应更耳熟能详。
机器学习(machine learning )是人工智能的一个分支,它致力于研究如何通过计算的手段,利用经验(experience)来改善计算机系统自身的性能。通过从经验中获取知识,机器学习算法摒弃了人为向机器输入知识的操作,转而凭借算法自身来学到所需所有知识。对于传统机器学习算法而言,“经验”往往对应以“特征”(feature)形式存储的“数据”(data),传统机器学习算法所做的事情便是依靠这些数据产生“模型”(model)。
但是“特征”为何?如何设计特征更有助于算法学到优质模型?……一开始人们通过“特征工程”(feature engineering)形式的工程试错性方式来得到数据特征。可是随着机器学习任务的复杂多变,人们逐渐发现针对具体任务生成特定特征不仅费时费力,同时还特别敏感,很难将其应用于另一任务。此外对于一些任务,人类根本不知道该如何用特征有效表示数据。例如,人们知道一辆车的样子,但完全不知道怎样设计的像素值配合起来才能让机器“看懂”这是一辆车。这种情况就会导致若特征“造”的不好,最终学习任务的性能也会受到极大程度的制约,可以说,特征工程决定了最终任务性能的“天花板”。聪明而倔强的人类并没有屈服:既然模型学习的任务可以通过机器自动完成,那么特征学习这个任务自然完全可以通过机器自己实现。于是,人们尝试将特征学习这一过程也用机器自动的“学”出来,这便是“表示学习”(representation learning)。
表示学习的发展大幅提高了很多人工智能应用场景下任务的最终性能,同时由于其自适应性使得人工智能系统可以很快移植到新的任务上去。“深度学习”便是表示学习中的一个经典代表。深度学习以数据的原始形态(raw data)作为算法输入,经过算法层层抽象将原始数据逐层抽象为自身任务所需的最终特征表示,最后以特征到任务目标的映射(mapping)作为结束,从原始数据到最终任务目标,“一气呵成”并无夹杂任何人为操作。如图所示,相比传统机器学习算法仅学得模型这一单一“任务模块”而言,深度学习除了模型学习,还有特征学习、特征抽象等任务模块的参与,借助多层任务模块完成最终学习任务,故称其为“深度”学习。
这里写图片描述
深度学习中的一类代表算法是神经网络算法,包括深度置信网络(deep belief network)、递归神经网络(recurrent neural network)和卷积神经网络(convolution neural network)等等。特别是卷积神经网络,目前在计算机视觉、自然语言处理、医学图像处理等领域“一枝独秀”,它也是本书将侧重介绍的一类深度学习算法。有关人工智能、机器学习、表示学习和深度学习等概念间的关系可由下图中的韦恩图表示。
这里写图片描述

深度学习的前世今生

虽说阿尔法狗一鸣惊人,但它背后的深度学习却是由来已久。相对今日之繁荣,它一路而来的发展不能说一帆风顺,甚至有些跌宕起伏。追根溯源,深度学习的思维范式实际上是人工神经网络(artificial neural networks),从古溯今,该类算法的发展经历了三次高潮和两次衰落。
第一次高潮是二十世纪四十至六十年代当时广为人知的控制论(cybernetics)。当时的控制论是受神经科学启发的一类简单的线性模型,其研究内容是给定一组输入信号 x 1 , x 2 , … , x n 去拟合一个输出信号 y,所学模型便是最简单的线性加权:f (x, ω) = x 1 ω 1 + · · · + x n ω n 。显然,如此简单的线性模型令其应用领域极为受限,最为著名的是:它不能处理“异或”问题(XOR function)。因此,人工智能之父 Marvin Minsky曾在当时撰文批判神经网络存在的两点关键问题:首先,单层神经网络无法处理“异或”问题;其次,当时的计算机缺乏足够的计算能力满足大型神经网络长时间的运行需求。Minsky对神经网络的批判将其研究在60年代末带入“寒冬”,人工智能产生了很多不同的研究方向,可唯独神经网络好像逐渐被人淡忘。
直到80年代,David Rumelhar和Geoffery E.Hinton 等人提出了反向传播(back propagation)算法,解决了两层神经网络所需要的复杂计算量问题,同时克服了Minsky说过神经网络无法解决异或问题,自此神经网络“重获生机”,迎来了第二次高潮,即二十世纪八十至九十年代的连接主义(connectionism)。不过好景不长,受限于当时数据获取的瓶颈,神经网络只能在中小规模数据上训练,因此过拟合(overfitting)极大困扰着神经网络型算法。同时,神经网络算法的不可解释性令它俨然成为一个“黑盒”,训练模型好比撞运气般,有人无奈的讽刺说它根本不是“科学”(science)而是一种“艺术”(art)。另外加上当
时硬件性能不足而带来的巨大计算代价使人们对神经网络望而却步,相反,如支持向量机(support vector machine)等数学优美且可解释性强的机器学习算法逐渐变成历史舞台上的“主角”。短短十年,神经网络再次跌入“谷底”。甚至当时在一段时间内只要和神经网络沾边的学术论文几乎都会收到类似这样的评审意见:“The biggest issue with this paper is that it relies on neural networks(这篇论文最大的问题,就是它使用了神经网络。)”
但可贵的是,尽管当时许多人抛弃神经网络转行做了其他方向,但如Geoffery E.Hinton和 Yann LeCun等人仍“笔耕不辍”在神经网络领域默默耕耘,可谓“卧薪尝胆”。在随后的30 年,随着软件算法和硬件性能的不断优化,直到2006年,Geoffery E.Hinton等在Science上发表文章提出:一种称为“深度置信网络”的神经网络模型可通过逐层预训练(greedy layer-wise pretraining)的方式有效完成模型训练过程。很快,更多的实验结果证实了这一发现,更重要的是除了证明神经网络训练的可行性外,实验结果还表明神经网络模型的预测能力相比其他传统机器学习算法可谓“鹤立鸡群”。Hinton发表在Science上的这篇文章无疑为神经网络类算法带来了一片曙光。接着,被冠以“深度学习”名称的神经网络终于可以大展拳脚,首先于2011年在语音识别领域大放异彩,其后便是在2012年计算机视觉“圣杯”ImageNet竞赛上强势夺冠,再来于2013年被MIT科技纵览(MIT Technology Review)评为年度十大科技突破之首……这就是第三次高潮,也就是大家都比较熟悉的深度学习时代。其实,深度学习中的“deep”一部分是为了强调当下人们已经可以训练和掌握相比之前神经网络层数多得多的网络模型。不过也有人说深度学习无非是“新瓶装旧酒”,而笔者更愿意将其比作“鸟枪换炮”。正因为有效数据的急剧扩增、高性能计算硬件的实现以及训练方法的大幅完善,三者作用最终促成了神经网络的第三次“复兴”。
细细想来,其实第三次神经网络的鼎盛与前两次大有不同,这次深度学习的火热不仅体现在学术研究领域的繁荣,它更引发相关技术产生了巨大的现实影响力和商业价值——人工智能不再是一张“空头支票”。尽管目前阶段的人工智能还没有达到科幻作品中的强人工智能水平,但当下的系统质量和性能已经足以让机器在特定任务中完胜人类,也足以产生巨大的产业生产力。深度学习作为当前人工智能热潮的技术核心,哪怕研究高潮过段时间会有所回落,但仍不会像前两次衰落一样被人彻底遗忘。它的伟大意义在于,它就像一个人工智能时代人类不可或缺的工具,真正让研究者或工程师摆脱了复杂的特征工程,从而可以专注于解决更加宏观的关键问题;它又像一门人工智能时代人类必需的语言,掌握了它就可以用之与机器“交流”完成之前无法企及的现实智能任务。因此许多著名的大型科技公司,如微软、百度、腾讯和阿里巴巴等纷纷第一时间成立了自己聚焦深度学习的人工智能研究院或研究机构。相信随着人工智能大产业的发展,慢慢的,人类重复性的工作可被机器替代,从而提升社会运转效率,把人们从枯燥的劳动中解放出来参与到其他更富创新的活动中去。
有人说“人工智能是不懂美的”,即便阿尔法狗在围棋上赢了人类,但它根本无法体会“落子知心路”给人带来的微妙感受。不过转念一想,如果真有这样一位可随时与你“手谈”的朋友,怎能不算是件乐事?我们应该庆幸可以目睹并且亲身经历、甚至参与这次人工智能的革命浪潮,相信今后一定还会有更多像阿尔法狗一样的奇迹发生。此时,我们登高望远,极目远眺;此时,我们指点江山,挥斥方裘。正是此刻站在浪潮之巅,因此我们兴奋不已、彻夜难眠。


http://chatgpt.dhexx.cn/article/60jt6RT7.shtml

相关文章

R Talk | 旷视南京研究院魏秀参:细粒度图像分析综述

「R Talk 」是旷视研究院推出的一个深度学习专栏,将通过不定期的推送展示旷视研究院的学术分享及阶段性技术成果。「R」是 Research 的缩写,也是旷视研究院的内部代号;而所有的「Talk」都是来自旷视的 Researcher。「R Talk 」旨在通过一场场…

【Web】控制台操作

浏览器控制台 重定向空白页面使用调用函数eval()执行函数命令使用时间类函数执行代码通过匿名function()执行脚本创建Function对象并执行代码通过apply执行代码通过call执行函数通过成员对象执行函数通过top执行函数通过WINDOW.WINDOW或任何等价值执行函数通过页面事件执行代码…

浏览器控制台Network面板简述

浏览器控制台Network面板简述 如何打开NetWork面板控制台Network的作用面板组成请求列表请求列表每列:查看单个资源的详细信息查看HTTP头信息General部分:Response Headers(响应头)部分:Request Headers (请求头&#…

浏览器随笔 -- 谷歌浏览器控制台使用

谷歌浏览器控制台使用 1. 使用说明2. 整体布局介绍3. Element3.1 页面元素查找&修改css样式3.2 操作HTML元素 4. Console4.1 日志打印4.2 代码编辑器 5. Sources6. Network6.1 接口状态码6.2 接口传参&数据返回 7. Application -- 浏览器存储7.1 cookie 存储7.2 localS…

如何监听浏览器控制台的打印信息?

注意: 拦截并监听控制台打印并不是一个好的行为,为了网站安全请谨慎使用 需求背景 当我们在项目中引入某些第三方依赖时,该第三方依赖会在浏览器控制台打印相关信息,如 stompjs 会打印 stomp 连接情况 今天有个新需求是需要将控…

Chrome 控制台console的用法

转自:http://www.open-open.com/lib/view/open1421131601390.html 原文出处: ctriphire 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的&am…

Chrome控制台console的各种用法(方便调试)

https://www.cnblogs.com/qubernet/p/5794812.html 1、输出信息 console.log(消息内容!); //输出普通信息   console.info(消息内容!); //输出提示信息   console.error(消息内容!);//输出错误信息   console.warn(消息内容&#xff0…

chrome控制台中console的强大

在使用谷歌浏览器进行前端开发的时候,console作为控制台的一个主要方法,相信大家都用过,一般都是用console.log()来输出部分内容,但是console还有很多强大之处,下面主要说一下console的更重强大的地方: 首…

浏览器控制台的一些输出方法---console

1.首选是常见的console.log(); console.log(hello);console.log(hi,friend);在浏览器按F12,控制台输出的是这样的 2.在console.log()里使用%s console.log(Hello, my name is %s,kon);%s会替换成第二个参数 3.在console.log()里使用%c console.log(%c styled te…

Edge浏览器调整控制台位置

默认edge浏览器f12控制台是在右边的,但是个人比较喜欢在下面,显示的全面一些 点击右上角的省略号,出现: 注意这几个图标: 点击第三个,就可以把控制台调到下面啦~

【Chrome】浏览器控制台设置成中文

文章目录 按 F12 或 鼠标右键点击检查打开控制台界面,如下 此时可以看到我们的控制台界面是英文的,这对新手来说可能有点不太友好所以如果需要设置成中文,可以按以下步骤设置 点击控制台中的设置图标,如图所示 找到 Language 选项…

chrome控制台使用

1.输入代码片段的时候 总是遇到 Enter回车代码没敲完 就被执行了 试试使用ShiftEnter 直接在控制台换行 2.当你在控制台计算了一个数值的时候 可以用$_来代替上一个表达式执行的结果 数值计算的 同样适用 3.当时在Element里面选中一个元素时 你可以回到控制台 用$0-$5去输出这个…

谷歌浏览器控制台位置调整

1.如何打开 使用快捷键F12即可 2.如何设置

浏览器控制台接口学习

我们在做项目开发时,想知道一个功能调用了后台哪个接口,我们就可以在浏览器控制台中进行查看。 举一个例子,我们在看博客时,发现这一篇文章写的不错,我们在做点赞这个动作时,调用了哪个接口呢? …

这才是 Chrome 控制台的正确使用方法!太重要了!

Chrome 控制台是很多开发者的必备工具之一,但你真的掌握了它的精髓吗?是否还是全靠 console.log() 排查问题? 其实,控制台的功能远比这更强大,用好控制台,能帮助我们更加准确高效地发现问题、定位问题&…

chrome控制台功能

Chrome开发者工具面板 面板上包含了Elements面板、Console面板、Sources面板、Network面板、 Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。 这些按钮的功能点如下: Elements:查找网页源代码HTML中的任一元素,手动修改任…

Chrome的控制台(Console)的用法(超详细,还未细看)

为什么写了本篇博客: (1)在Chrome浏览器开发者工具介绍;(包括,Network面板介绍,XHR等等)中,遇到了Chrome的控制台(Console);本篇博客就…

【前端新学必入】浏览器控制台的使用

1.选择一个页面按F12键或者(以谷歌浏览器为例,其实浏览器都大同小异)选择右上方的设置旁边的三个点——>更多工具——>开发者工具 进入。 2.常用的五个以及其对应的功能: element:爬网站,把网站复刻一遍 consol…

3、浏览器控制台使用

2.2、基本语法入门 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Title</title></head><body><script>//1. 定义变量 变量类型 变量名 变量值;var score 71;//alert(sco…

浏览器控制台(console对象)

目录 开发者工具console对象console.log方法其他输出方法:debug,info,warn,error方法console.table方法console.assert方法time和timeEnd方法分组方法:group和groupend其他方法命令行APIdebugger语句移动端开发模拟手机视口(viewport)模拟touch事件模拟经纬度远程除错Go…