西瓜书第五章 神经网络
本文是周志华老师《机器学习》第五章神经网络的学习笔记。
首先什么是神经网络,最广泛的一种定义是:
神经网络是由具有适应性的简单单元组成的广泛并行连接的网络,它的组织能够模拟生物神经网络系统对真实世界物体所作出的交互反应。
其中,神经网络最基本的成分是神经元模型(neuron)。在生物神经网络中,当神经元内的电位超过某个阈值,则会被激活,兴奋起来向其他神经元发送化学物质。最早将这一神经元模型抽象起来的是1943年提出的M-P神经元,该神经元将接受$n$个来自其他神经元的信号,并将其带权组合并与阈值比较,并通过激活函数处理。(关于激活函数可以看这里的介绍)
感知机与多层网络感知机(Perceptron)由两层神经元组成,输出层为M-P神经元,形式化地表示为:$y=f(\sum_iw_ix_i-\theta)$。
其中的权重$w$通过“奖罚”策略来学习得到,具体由下式可得:
w_i=w_i+\eta(y-\hat{y})x_i可以看出,当预测正确时,权重不变,当错误时,则根据错误程度进行修正。 事实上,只要数据是线性可分的,感知机就能在有限步中收敛。同时, ...
读书月报1809
新学期又开始了,九月初把论文投完了却一桩心事,后续各类杂事又纷至沓来,不甚烦扰,阅读量又有所下降。读了三本书,恶棍列传,科学及其编造和清华园日记,最后一本在kindle上买了快一年了才读完。
恶棍列传博尔赫斯很有意思的一本短篇集,讲述了若干个所谓“恶棍”的有趣故事,从海盗到牛仔,人物迥异笔法跳脱,几乎没有任何多余的描述和渲染,接近白描的手法,介乎说书人和史家之间的语气,从历史的虚虚实实中拾掇出十几个小故事。
科学及其编造感觉很烧脑的一份科普小册子,主要讲科学哲学里为科学做有条件辩护的方面。不知道是哲学著作本身原因还是翻译过来的原因,用词语法在我看来有些故弄玄虚,读起来很涩。摘几个点吧:
自然科学的目标是扩展和改进我们关于自然世界运作的普遍知识。
(讨论水车的发展)古代中国人具有基于实践经验的工艺知识,而德贝利多的处理却包含了科学知识。
清华园日记季羡林年少的日记。其实日记里的内容相比于他愿意将自己的光明的辉煌的堕落的愚蠢的青春真诚地公开出来这一点相比其实不值一提了。潦草读完,就记得大师年轻时也是常人,拖延症,伸手要钱,眼高手低还喜欢打牌(记得有一段日子 ...
Python字符串拾遗 --流畅的python
文本和字节序列这一节开始复习python3中的字符串处理,相比python2中糟糕繁琐复杂易错的字符串系统,python3大大改进了这一方面。相关的jupyte notebook文件在这里。
字符与字节我们通常所说的字符串即字符的序列,那么如何定义字符呢?py3里直接定义为“Unicode字符”,Unicode标准中,有如下区分:
字符标识 又称码位 由十进制来表示是一个0~1114111的数字,在Unicode标准中,通常用4~6个十六进制数表示,前缀为U+,所以我们通常看到的例如“U+1D11E”及为一个字符标识。
编码 即字符的具体表述,编码是码位到字节序列转换的算法,例如UTF-8中,大写字母A(U+20AC)的编码是\x41,在UTF-16LE中,编码为\x41\x00
12345678# 例子 s = "喵喵喵"print("字符串‘喵喵喵’的长度:", len(s))b = s.encode('utf-8')# 对字符串编码,可以看出一个喵被编码成三位print("字符串的utf-8编码 ...
读书月报1808
神奇的是,论文ddl前的八月,按理来说应该忙到死,结果读的书比之前较为清闲的几个月还多。这个月一共读了5本书,还是先上全家福吧。
郁金香热说实话,看这本书的起因倒是因为比特币。很多人将这类区块链货币比作曾经的郁金香热,虽然多多少少知道这起事件是一场泡沫,对此的了解也就仅限于历史书上的一句话。众所周知的,历史上上的一句话的背后可能有无数重要的细节(“我们走了一些弯路”)。于是,顺理成章的找来这本书想一探究竟。
现在看来,历史上的郁金香热来的太快就像龙卷风,走的也快,风卷残云之后留下一片狼藉。其时间之短以至于前后加起来不过三四年。最早是由奥斯曼土耳其帝国传入荷兰,在一小批园艺爱好者之间流传。然而,投机分子的嗅觉是最敏感的,他们就像闻到了腥味的鲨鱼,很快就开始从事郁金香的交易。然而,如果仅仅是一小撮投机分子也掀不起太大的波澜,很快,普通民众就注意到这一红海,开始了全民炒郁金香(花是用来看的不是用来炒的?)。和想象中的不同,郁金香热的主要参与者以及泡沫破灭后损失最惨重的都是荷兰当时城市中较为底层的群众,这类群众的财富水平相较顶层仍有不可逾越的鸿沟,但是和乡下的农民相比似乎又显得富裕(很 ...
Python字典和集合拾遗 --流畅的python
字典和集合本章对python中字典和集合的内容做一些拾遗,主要内容来自流畅的python第三章。建议通过Jupyter Notebook来试验本文代码,关于Jupyter Notebook使用可以阅读这里, 本文代码已经放在这里。
本章内容适合对python有一定了解的读者。通过本章你可以了解到:
字典和集合的基本使用
如何处理字典中不存在的键
字典和集合为何比列表高效
一些简单字典变种的介绍
映射我们知道,字典的本质是键(key)和值(value)的映射,在python中,除了字典之前还有一些其他的特殊映射类型,但是它们都是基于collections.abc.Mapping的。
可散列需要注意的是,这些映射类型对key是有要求的,即只有可散列的数据类型才能用作映射的键值。那么什么是可散列的数据类型呢:
从定义上来说,任何实现了__hash__()和__qe__()的对象都是可散列的,前者将key值映射到另一个空间,后者则用来比较两个键值是否相同。
具体而言,所有原子不可变的数据类型都是可散列的(str,bytes和数值),frozenset也 ...
读书月报1807
七月中有两周左右的防风时间,原以为能有空多读点书,但是扬泰锡常几个城市跑来跑去,倒也没落下多少阅读时间。原计划7月完成的现代建筑15讲的后面几章的总结以及反乌托邦三部曲的分别也没有做,只能拖到八月了,希望不会拖到九月份。
简单聊一下七月度的几本书吧。
与机器人同行其实挺后悔为啥会买这本书的,文笔和情节都有些幼稚,感觉像是高中生的习作,全篇读完只能说是偶有亮点。
时间移民大刘的一部中短篇集子,其中有些内容在流浪地球里面其实已经看过了。 其实看的时候不难发现,三体中的许多概念都是在大刘的中短篇中先试水,然后在成熟应用在三体中的。相比三体的饕餮盛宴,这些开胃小菜可能更具有实验性,当然,也会存在部分文章质量较低。
除去已经读过的,这里面《吞食者》和《微纪元》都有一些新颖的设定,《西洋》则是开了一个历史的玩笑,谈不上精巧但是趣味横生。另外这套书的序 《第五位面壁者的冥思》,也是值得一读的。
乌克兰拖拉机简史这本书最初就是被奇异的书名所吸引,书名让我想起了禅与摩托车修理和灾难物理学奇事。 当然,正文其实和乌克兰拖拉机关系不大,其所起到的作用大概是一个引线,在情节有些疲 ...
读书月报1806
六月初写完论文之后总算轻松了一阵子,虽然还有期末考试,但是说到底也没花太多精力。因此,还是有时间读几本书的,总共是完成了五本书的阅读。其中《紫禁城的荣光》,《我们》是前几个月就开了头,这个月终于收尾了。此外还读了《异乡异客》,《空谷幽魂》,《十三层空间》。
照例还是先上全家福。
空谷幽魂这本书算手头最后一本没读完的阿加莎的侦探小说了,其他只剩下阿加莎的剧本捕鼠器和《阿加莎克里斯蒂侦探笔记》。 读多了阿婆的作品,现在暂时也有些审美疲劳了,暑期如果有时间还是把买来吃了好久的灰的几本福尔摩斯英文版读一点吧。回到这本书,其实这本书花了太多的篇幅来讲情爱部分了,乃至我都有些忘了这是一本侦探小说。A喜欢B,但是A的性格不适合和B做夫妻,而娶了非常仰慕A的C,但是仍然经常去找B乱搞。而且B对C也抱有可怜和喜爱的态度,C也认B为她的好朋友但是她又不知道自己丈夫A和B乱搞。B又有一个追求者D,B对D也挺喜欢但是仍然无法接受。此时有一个E又开始喜欢上D,D一直求而不得恨上B的同时也慢慢开始对E有好感。同时A在很久之前疯狂地爱过F,但是后来受不了F的控制欲最终摆脱了她。后来ABCDE一起到亲戚的乡间别 ...
CNN简史 A Brief History of Convolutional Neural Network
今天我们来回顾一下CNN发展的历史,为什么要做这个总结呢,除了本身对科学史感一点兴趣外,追踪整个CNN发展的思路也是非常有趣的事。我们知道科学的发展往往不是一往无前的,不是按照教科书上编排那样诞生的。举一个可能和大家直觉相悖的例子,打火机早于火柴被发明,而ReLU比tanh更早被应用在神经网络中。
本文需要读者对CNN有一点点了解,包括基础的卷积池化操作是怎么完成的等等。
很久很久以前我们知道,神经网络这一概念最早是生物界提出的,而人工智能界的神经网络很大程度上是在模拟人类的神经元。虽然业界对我们是否需要继续仿生这条路,还是开辟一条不同于生物神经网络的路还有不少的争议,但是读完很多论文我发现现代人工神经网络受生物研究的影响可能比我们想象中要更大。影响到CNN起源的相关研究是有关视觉皮层的,其中较著名的是Hubel 和Wiesel1968年做出的工作。在这项工作前,人们已经对这个领域有一些了解。我将他们罗列出来。
首先我们人类的大脑有$10^11$的神经元,每个神经元上有1000个轴突,也就是说有$10^14$个神经连接。
另外每只人类的眼睛有$10^8$个视觉接收器(比如视锥 ...
读书月报1805
这个五月就读了一本半的书,感觉最近读书速度下降很多,而且意兴也不高,很多书开了个头然后就没有读下去了。六月份把论文投出去了,在九月初新一轮ddl之前的这个暑假应该能有不少时间读书吧。
这个月读的是甲骨文丛书中地中海三部曲的第一本,君士坦丁堡之战:说起来这本书给我的感觉就是很新,这个新体现在两个方面,首先是题材上,我对地中海那儿的历史人文都不算了解,其次写作风格上也和其他我读过的书不同,大概的笔触是介于史记和传记之间的一种风格(倒是让我想起来之前翻了四五十页就放下的德国人写的那本拿破仑传)。因此整本书读下来还是有种酣畅的感觉,一边是正值巅峰的穆斯林世界,一边是苟延残喘的罗马帝国荣光,一朝城破,君士坦丁堡从此更名伊斯坦布尔。 看书的时候很自然想到了同时期的中国,1453年的中国还处在明朝景泰年间,是年蒙古也先称汗,为大明的威胁埋下了伏笔。大明在和游牧民族的斗争中,拥有两样重要的战场利器发挥了重要的作用,一个就是大炮,一个则是城墙。但是在君士坦丁堡之战中,这两件事物则是被双方分别拥有————拜占庭的城墙和苏丹的大炮。君士坦丁的城墙保护了这座城市上千年,在墙根下市民击退过无数敌人,除了被 ...
【西瓜书】第四章 决策树
决策树是一种常见的机器学习方法,因为它的处理流程和人类做决策时思考的方式很类似,因此具有很强的可解释性。
基本流程举个例子来说决策树的基本流程,假设你是一个女生,现在家里给你介绍了一个相亲对象,你的决策就是决定是否和这个男生相处下去。那么首先第一眼看到这个男生,你发现这个男生长得很一般,如果你是个极端的颜控的话,此时可能就会把不帅的筛选掉了。好,我们假设你对这点不那么在意,那么接下来聊天发现这个男生还木有钱,也许你还能忍受;再深入了解发现此男还很自私,到这里可能你就做出拒绝的决策了。如果用树的结构来构建整个过程,“帅不帅”,“有没有钱”,“性格好不好”等等这些特征都是树上的一个节点,每经过一个节点,不同类型的数据就可能会分开进入不同的后续处理。到某个叶子节点时,也就是你已经做出来最后的决策,对满足从根节点到这个叶子节点的路径上所有节点条件的数据,都会做出相同的判断。
用算法伪代码描述如下:
在决策树生成的递归过程中,处理节点时可能遇到三种情况会导致递归返回:
当前节点包含的样本都属于同一类别,无需划分
当前属性集为空,或者所有样本在所有属性上取值相同 ...