标签归档:斯坦福大学

斯坦福大学自然语言处理经典入门课程-Dan Jurafsky 和 Chris Manning 教授授课

AINLP

这门课程录制于深度学习爆发前夕,授课是斯坦福教授 Dan JurafskyChristopher Manning 教授,两位都是自然语言处理领域的神牛:前者写了《Speech and Language Processing》(中文译名:自然语言处理综论),目前第三版SLP3还在更新中;后者写了《Foundations of Statistical Natural Language Processing》(中文译名:统计自然语言处理)和《Introduction to Information Retrieval》(中文译名:信息检索导论),这几本书几乎是NLPer的必读书。这门课程适合NLP入门学习,可以了解基本的自然语言处理任务和早期经典的处理方法,以及和信息检索相关的一些方法。我把这门课程整理了一下按章节放在了B站,感兴趣的同学可以关注。

斯坦福自然语言处理经典入门课程-第一讲课程介绍及第二讲正则表达式

https://www.bilibili.com/video/av95374756/

斯坦福自然语言处理经典入门课程-第三讲编辑距离

https://www.bilibili.com/video/av95620839/

斯坦福自然语言处理经典入门课程-第四讲语言模型

https://www.bilibili.com/video/av95688853/

斯坦福自然语言处理经典入门课程-第五讲拼写纠错

https://www.bilibili.com/video/av95689471/

斯坦福自然语言处理经典入门课程-第六讲文本分类

https://www.bilibili.com/video/av95944973/

斯坦福自然语言处理经典入门课程-第七讲情感分析

https://www.bilibili.com/video/av95951080/

斯坦福自然语言处理经典入门课程-第八讲生成模型判别模型最大熵模型分类器

https://www.bilibili.com/video/av95953429/

斯坦福自然语言处理经典入门课程-第九讲命名实体识别NER

https://www.bilibili.com/video/av96298777/

斯坦福自然语言处理经典入门课程-第十讲关系抽取

https://www.bilibili.com/video/av96299315/

斯坦福自然语言处理经典入门课程-第十一讲最大熵模型进阶

https://www.bilibili.com/video/av96314351/

斯坦福自然语言处理经典入门课程-第十二讲词性标注

https://www.bilibili.com/video/av96316377/

斯坦福自然语言处理经典入门课程-第十三讲句法分析

https://www.bilibili.com/video/av96675221/

斯坦福自然语言处理经典入门课程-第十四、十五讲概率句法分析

https://www.bilibili.com/video/av96675891/

斯坦福自然语言处理经典入门课程-第十六讲词法分析

https://www.bilibili.com/video/av96676532/

斯坦福自然语言处理经典入门课程-第十七讲依存句法分析

https://www.bilibili.com/video/av96676976/

斯坦福自然语言处理经典入门课程-第十八讲信息检索

https://www.bilibili.com/video/av96736911/

斯坦福自然语言处理经典入门课程-第十九讲信息检索进阶

https://www.bilibili.com/video/av96738129/

斯坦福自然语言处理经典入门课程-第二十讲语义学

https://www.bilibili.com/video/av96738928/

斯坦福自然语言处理经典入门课程-第二十一讲问答系统

https://www.bilibili.com/video/av96739766/

斯坦福自然语言处理经典入门课程-第二十二讲文本摘要二十三讲完结篇

https://www.bilibili.com/video/av96740680/

斯坦福自然语言处理经典入门课程-第一讲课程介绍及第二讲正则表达式

AINLP

这门课程录制于深度学习爆发前夕,授课是斯坦福教授 Dan Jurafsky 和 Christopher Manning 教授,两位都是自然语言处理领域的神牛:前者写了《Speech and Language Processing》(中文译名:自然语言处理综论),后者写了《Foundations of Statistical Natural Language Processing》(中文译名:统计自然语言处理基础),这两本书几乎是NLPer的必读书。这门课程适合NLP入门学习,可以了解基本的自然语言处理任务和早期经典的处理方法。

这是第一讲课程介绍和第二讲正则表达式的相关内容,实话实说,正则表达式在工作中用得相当之多了。

斯坦福大学深度学习自然语言处理课程CS224N 2019 全20个视频分享

AINLP

近期一直关注着斯坦福大学深度学习自然语言处理课程CS224N在油管上的视频更新情况,直到昨天看到他们分享了第20个视频资源:

Stanford CS224N: NLP with Deep Learning | Winter 2019 | Lecture 20 – Future of NLP + Deep Learning

结合斯坦福大学CS224n官网课程Schedule,大概率这门课程的视频官方应该分享完了:CS224n: Natural Language Processing with Deep Learning Stanford / Winter 2019

通过youtube-dl以及bypy两个神器这里再次更新一下CS224n的20个课程视频,感兴趣的同学可以关注我们的公众号AINLP,回复'cs224n'获取全部视频合集:

最后列一下cs224N的相关资源:

课程主页:
http://web.stanford.edu/class/cs224n/index.html

官方课程视频网站:
http://onlinehub.stanford.edu/cs224

官方油管视频List:
https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z

课程除视频以为的相关资料都可以从schedule下载,包括ppt等:
http://web.stanford.edu/class/cs224n/index.html#schedule

课程优秀项目网站:
http://web.stanford.edu/class/cs224n/project.html

B站视频链接:
https://www.bilibili.com/video/av46216519

参考:
2019斯坦福CS224n深度学习自然语言处理课程视频和相关资料分享

深度学习实践:从零开始做电影评论文本情感分析

AINLP

最近读了《Python深度学习》, 是一本好书,很棒,隆重推荐。

本书由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。由于本书立足于人工智能的可达性和大众化,读者无须具备机器学习相关背景知识即可展开阅读。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。

各方面都很好,但是总感觉哪里有点欠缺,后来想想,可能是作者做得太好了,把数据预处理都做得好好的,所以你才能“20行搞定情感分析”,这可能也是学习其他深度学习工具过程中要面临的一个问题,很多工具都提供了预处理好的数据,导致学习过程中只需要调用相关接口即可。不过在实际工作中,数据的预处理是非常重要的,从数据获取,到数据清洗,再到基本的数据处理,例如中文需要分词,英文需要Tokenize, Truecase或者Lowercase等,还有去停用词等等,在将数据“喂”给工具之前,有很多事情要做。这个部分,貌似是当前一些教程有所欠缺的地方,所以才有了这个“从零开始做”的想法和系列,准备弥补一下这个缺失,第一个例子就拿《Python深度学习》这本书第一个文本挖掘例子练手:电影评论文本分类-二分类问题,这也可以归结为一个情感分析任务。

首先介绍一下这个原始的电影评论数据集aclIMDB: Large Movie Review Dataset, 这个数据集由斯坦福大学人工智能实验室于2011年推出,包含25000条训练数据和25000条测试数据,另外包含约50000条没有标签的辅助数据。训练集和测试集又分别包含12500条正例(正向评价pos)和12500负例(负向评价neg)。关于数据,更详细的介绍可参考该数据集的官网:http://ai.stanford.edu/~amaas/data/sentiment/, paper: Learning Word Vectors for Sentiment Analysis, 和数据集里的readme。

然后下载和处理这份数据:Large Movie Review Dataset v1.0,下载链接;

http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz

下载之后进行解压:tar -zxvf aclImdb.tar.gz,可以用tree命令看一下aclImdb的目录结构:

tree aclImdb -L 2

继续进入训练集正例的目录看一下: cd aclImdb/train/pos/:

这个里面包含了12500篇英文评论,我们随机打开一个看一下里面的文本内容:

vim 1234_10.txt

I grew up watching this movie ,and I still love it just as much today as when i was a kid. Don't listen to the critic reviews. They are not accurate on this film.Eddie Murphy really shines in his roll.You can sit down with your whole family and everybody will enjoy it.I recommend this movie to everybody to see. It is a comedy with a touch of fantasy.With demons ,dragons,and a little bald kid with God like powers.This movie takes you from L.A. to Tibet , of into the amazing view of the wondrous temples of the mountains in Tibet.Just a beautiful view! So go do your self a favor and snatch this one up! You wont regret it!

继续阅读

Coursera上博弈论相关课程(公开课)汇总推荐

AINLP

博弈论(Game Theory)很有意思,大家可能首先想到的就是赌博,据说博弈论最早源于赌博策略和数学,下面是来自维基百科的解释:

博弈论(英语:game theory),又译为对策论,或者赛局理论,应用数学的一个分支,1944年冯·诺伊曼与奥斯卡·摩根斯特恩合著《博弈论与经济行为》,标志着现代系统博弈理论的的初步形成,因此他被称为“博弈论之父”。博弈论被认为是20世纪经济学最伟大的成果之一。目前在生物学、经济学、国际关系、计算机科学、政治学、军事战略和其他很多学科都有广泛的应用。主要研究公式化了的激励结构(游戏或者博弈)间的相互作用。是研究具有斗争或竞争性质现象的数学理论和方法。也是运筹学的一个重要学科。

作为互联网广告研发人员,应该或多或少了解一点计算广告学,其中支撑Google, 百度等互联网巨头广告业务的竞价排名机制的核心之一就是博弈论。另外经济学中有很多博弈论的影子,电影“美丽心灵”中的主角数学家约翰纳什,由于他与另外两位数学家在非合作博弈的均衡分析理论方面做出了开创性的贡献,对博弈论和经济学产生了重大影响,而获得1994年诺贝尔经济学奖,纳什均衡则是博弈论课程中不可或缺的一节课。Coursera上有好几门博弈论(Game Theory)相关的课程,这里做个汇总整理。

1. 斯坦福大学的 博弈论(Game Theory)

这门课程早在Coursera诞生之初就有了,后经多次优化,现在有上和下两个部分,这门课程属于博弈论上,重在博弈论基础,需要学习者有一定的数学思维和数学基础,例如基础的概率理论和一些微积分基础知识:

This course is aimed at students, researchers, and practitioners who wish to understand more about strategic interactions. You must be comfortable with mathematical thinking and rigorous arguments. Relatively little specific math is required; but you should be familiar with basic probability theory (for example, you should know what a conditional probability is), and some very light calculus would be helpful.

2. 斯坦福大学的 博弈论二: 高级应用(Game Theory II: Advanced Applications)

上门博弈论课程的续集,关注博弈论的应用,包括机制设计,拍卖机制等:

Popularized by movies such as "A Beautiful Mind", game theory is the mathematical modeling of strategic interaction among rational (and irrational) agents. Over four weeks of lectures, this advanced course considers how to design interactions between agents in order to achieve good social outcomes. Three main topics are covered: social choice theory (i.e., collective decision making and voting systems), mechanism design, and auctions. In the first week we consider the problem of aggregating different agents' preferences, discussing voting rules and the challenges faced in collective decision making. We present some of the most important theoretical results in the area: notably, Arrow's Theorem, which proves that there is no "perfect" voting system, and also the Gibbard-Satterthwaite and Muller-Satterthwaite Theorems. We move on to consider the problem of making collective decisions when agents are self interested and can strategically misreport their preferences. We explain "mechanism design" -- a broad framework for designing interactions between self-interested agents -- and give some key theoretical results. Our third week focuses on the problem of designing mechanisms to maximize aggregate happiness across agents, and presents the powerful family of Vickrey-Clarke-Groves mechanisms. The course wraps up with a fourth week that considers the problem of allocating scarce resources among self-interested agents, and that provides an introduction to auction theory.

3. 东京大学的 博弈论入门课程(Welcome to Game Theory)

入门级博弈论课程,由东京大学推出,英文授课:

This course provides a brief introduction to game theory. Our main goal is to understand the basic ideas behind the key concepts in game theory, such as equilibrium, rationality, and cooperation. The course uses very little mathematics, and it is ideal for those who are looking for a conceptual introduction to game theory. Business competition, political campaigns, the struggle for existence by animals and plants, and so on, can all be regarded as a kind of “game,” in which individuals try to do their best against others. Game theory provides a general framework to describe and analyze how individuals behave in such “strategic” situations. This course focuses on the key concepts in game theory, and attempts to outline the informal basic ideas that are often hidden behind mathematical definitions. Game theory has been applied to a number of disciplines, including economics, political science, psychology, sociology, biology, and computer science. Therefore, a warm welcome is extended to audiences from all fields who are interested in what game theory is all about.

4. 佐治亚理工学院的 组合博弈论(Games without Chance: Combinatorial Game Theory)

这门课程主要关注组合博弈论,覆盖不靠运气游戏背后的数学理论和分析:This course will cover the mathematical theory and analysis of simple games without chance moves.

本课程将讲解如何运用数学理论,分析不含运气步骤(随机步骤)的简单游戏。本课程将探索不含运气步骤(随机步骤)的两个玩家游戏中的数学理论。我们将讨论如何简化游戏,什么情况下游戏等同于数字运算,以及怎样的游戏才算公正。许多例子都是有关一此简单的游戏,有的你可能还没有听说过:Hackenbush(“无向图删边”游戏)、Nim(“拈”游戏)、Push(推箱子游戏)、Toads and Frogs(“蟾蜍和青蛙”游戏),等。虽然完成这门课程并不能让你成为国际象棋或围棋高手,但是会让你更深入了解游戏的结构。

5. 国立台湾大学的 实验经济学: 行为博弈论 (Experimental Economics I: Behavioral Game Theory)

台湾大学王道一副教授 (Associate Professor)的实验经济学课程-行为博弈论:

人是否会如同理论经济学的预测进行决策?这门课将透过每周的课程视频以及课后作业带你了解实验经济学的基本概念。每周将会有习题练习以及指定阅读的期刊论文。你将会参与一些在线的实验、报告论文并且互评其他同学的报告。❖课程介绍(About the course)这是一门进阶的经济学课程,课程目标为介绍实验经济学的基本概念,并且让学生们能开始在这个领域从事自己的相关研究。详细课程目标如下:1.实验经济学的介绍:在上完这堂课之后,学生应能列举经济学各个领域的数个知名实验,并且解释实验结果如何验证或否证经济理论及其他实地数据。2.评论近期相关领域研究:上完这堂课之后,学生应能阅读并评论实验经济学相关的期刊论文。在课堂中,学生将会阅读指定的期刊论文,并且(在视频中)亲自上台报告一篇论文。❖授课形式(Course format)1.本堂课将以视频的形式为主,搭配课后作业的形式来进行。每个同学将阅读一篇实验经济学论文,并录像成两段各10分钟的介绍视频并后上传至Coursera(或上传到Youku,再复制连接到作业上传区)。第一段期中报告视频请同学介绍该论文所描述的实验设计,第二段,也就是期末报告视频则介绍实验结果。此外每位同学至少需观看其他两位同学的呈现内容,并给予评论。2.这堂课将简单地运用以下赛局(博弈)概念:奈许均衡/纳什均衡(Nash Equilibrium)混合策略均衡(Mixed Strategy Equilibrium)子赛局完美均衡/子博弈精练纳什均衡(SPNE)共识/共同知识(Common Knowledge)信念(Belief)

注:本文首发“课程图谱博客”:http://blog.coursegraph.com
同步发布到这里, 本文链接地址:http://blog.coursegraph.com/coursera上博弈论课程博弈论公开课汇总推荐 http://blog.coursegraph.com/?p=782

斯坦福大学深度学习与自然语言处理第四讲:词窗口分类和神经网络

AINLP

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,以下为相关的课程笔记。

第四讲:词窗口分类和神经网络(Word Window Classification and Neural Networks)

推荐阅读材料:

  1. [UFLDL tutorial]
  2. [Learning Representations by Backpropogating Errors]
  3. 第四讲Slides [slides]
  4. 第四讲视频 [video]

以下是第四讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
继续阅读

斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示

AINLP

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,以下为相关的课程笔记。

第三讲:高级的词向量表示(Advanced word vector representations: language models, softmax, single layer networks)

推荐阅读材料:

  1. Paper1:[GloVe: Global Vectors for Word Representation]
  2. Paper2:[Improving Word Representations via Global Context and Multiple Word Prototypes]
  3. Notes:[Lecture Notes 2]
  4. 第三讲Slides [slides]
  5. 第三讲视频 [video]

以下是第三讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
继续阅读

斯坦福大学深度学习与自然语言处理第二讲:词向量

AINLP

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,以下为相关的课程笔记。

第二讲:简单的词向量表示:word2vec, Glove(Simple Word Vector representations: word2vec, GloVe)

推荐阅读材料:

  1. Paper1:[Distributed Representations of Words and Phrases and their Compositionality]]
  2. Paper2:[Efficient Estimation of Word Representations in Vector Space]
  3. 第二讲Slides [slides]
  4. 第二讲视频 [video]

以下是第二讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
继续阅读

斯坦福大学深度学习与自然语言处理第一讲:引言

AINLP

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,他本人是德国人,大学期间涉足自然语言处理,在德国读研时又专攻计算机视觉,之后在斯坦福大学攻读博士学位,拜师NLP领域的巨牛 Chris ManningDeep Learning 领域的巨牛 Andrew Ng,其博士论文是《Recursive Deep Learning for Natural Language Processing and Computer Vision》,也算是多年求学生涯的完美一击。毕业后以联合创始人及CTO的身份创办了MetaMind,作为AI领域的新星创业公司,MetaMind创办之初就拿了800万美元的风投,值得关注。

回到这们课程CS224d,其实可以翻译为“面向自然语言处理的深度学习(Deep Learning for Natural Language Processing)”,这门课程是面向斯坦福学生的校内课程,不过课程的相关材料都放到了网上,包括课程视频,课件,相关知识,预备知识,作业等等,相当齐备。课程大纲相当有章法和深度,从基础讲起,再讲到深度学习在NLP领域的具体应用,包括命名实体识别,机器翻译,句法分析器,情感分析等。Richard Socher此前在ACL 2012和NAACL 2013 做过一个Tutorial,Deep Learning for NLP (without Magic),感兴趣的同学可以先参考一下: Deep Learning for NLP (without Magic) - ACL 2012 Tutorial - 相关视频及课件 。另外,由于这门课程的视频放在Youtube上,@爱可可-爱生活 老师维护了一个网盘链接:http://pan.baidu.com/s/1pJyrXaF ,同步更新相关资料,可以关注。
继续阅读

斯坦福大学机器学习第八课“神经网络的表示(Neural Networks: Representation)”

AINLP

斯坦福大学机器学习第八课“神经网络的表示(Neural Networks: Representation)”学习笔记,本次课程主要包括7部分:

1)  Non-linear hypotheses (非线性hypotheses)

2)  Neurons and the brain (神经元和大脑)

3)  Model representation I (模型表示一)

4)  Model representation II (模型表示二)

5)  Examples and intuitions I (例子和直观解释一)

6)  Examples and intuitions II (例子和直观解释二)

7)  Multi-class classification (多类分类问题)

以下是每一部分的详细解读。

1)  Non-linear hypotheses (非线性hypotheses)

非线性分类器:

我们之前谈过线性回归,逻辑回归,当我们遇到一些比较复杂的分类问题时,是否还有其他选择?例如,对于多项式回归:

多项式回归-我爱公开课-52opencourse.com

可以得到如下的非线性分类器:

非线性分类-我爱公开课-52opencourse.com
假设这是一个房价预测问题,不过这一次不再是预测房价(回归问题),而是预测未来6个月是否能售出(分类问题)。如果有100个独立特征,例如:

房价问题特征-我爱公开课——52opecourse.com

那么,当我们任取两个特征作为组合特征时,大约可以得到5000个特征(O(n^2));当我们任取3个特征作为组合特征时,大约可以得到170000(O(n^3))个特征.

这样的问题还有很多,例如在计算机视觉的汽车检测问题中,对于一副汽车图片来说,你可以轻易的辨别出这是一辆汽车,但是在计算机或者相机“眼里”,这只是一堆像素的数字矩阵而已:

计算机视觉汽车检测-我爱公开课-52opencourse.com

所以,对于汽车检测问题,我们需要一堆汽车图片:

汽车图片训练集-我爱公开课——52opencourse.com

和一堆非汽车图片作为训练集:

非汽车图片训练集-我爱公开课-52opencourse.com

训练一个用于汽车检测的分类器,对于一个测试图片,判断是否是汽车:

汽车检测测试-我爱公开课-52opencourse.com

一种方法是从每辆汽车是取两个像素点作为样本的特征,然后通过学习算法来训练分类器:

训练样本-我爱公开课-52opencourse.com

那么这些正负例(汽车 or 非汽车)训练样本可以用图形表示如下:

正负例样本-我爱公开课——52opencourse.com

假设每幅图片有50 * 50 = 2500个像素,那么每个样本有2500个像素点可以选择,如果是是二次项组合特征,大约有3百万个特征组合:

正负例样本—我爱公开课-52opencourse.com

对于这样的有着大量特征的分类问题,除了逻辑回归,是否还有其他的学习算法?接下来,我们将引入神经网络(Neural Networks),一种试图模拟人类大脑的学习算法,这个算法,对于复杂的假设空间和复杂的非线性问题有很好的学习能力。

2)  Neurons and the brain (神经元和大脑)

神经网络:

  • 起源于尝试让机器模仿大脑的算法;
  • 在80年代和90年代早期非常流行,慢慢在90年代后期衰落;
  • 最近得益于计算机硬件能力,又开始流行起来:对于很多应用,神经网络算法是一种“时髦”的技术;

大脑很神奇,可以让我们去听,去看,去触,也可以做数学题,做微积分,做很多神奇的事情,要模仿大脑,似乎需要我们写很多程序来做不同的事情?但是恰恰与此相反,做这些事情仅仅需要一个学习算法。下面是两个例子,是神经科学家做的非常酷的两个实验,这些实验可以说明我们仅需一种学习算法就可以模拟很多事情。

听觉皮层实验:

听觉皮层实验-我爱公开课-52opencourse.com

上图是大脑的一部分,红色的部分是听觉皮层,用来处理耳朵收集的声音信号并让大脑理解。神经科学家做了一个实验,切断耳朵和听觉皮层的联系,并且连接眼睛和听觉皮层,这样从眼睛采集的信号不再传送到视神经而是听觉皮层,这样做得最终结果是听觉皮层将会学习“看"。

体感皮层实验:

体感皮层实验-我爱公开课-52opencourse.com

上图的红色区域是体感皮层,主要身体的触觉,与听觉皮层实验相似,如果我们做相似的实验,那么体感皮层也将学会”看“。

上述两个实验统称为神经重布线实验(neuro-rewiring experiments), 这些实验给我们的感觉就是同样的一块儿脑组织既可以处理视觉,也可以处理听觉,还可以处理触觉,也许就存在一种学习算法来处理视觉信号,听觉信号和触觉信号。如果我们能近似模拟或实现大脑的这种学习算法,我们就能获得绝大部分大脑可以完成的功能,因为大脑可以自己去处理不同类型的数据。以下是一些模拟大脑传感器的例子:

大脑传感器-我爱公开课—52opencourse.com

包括:用舌头去“看”;回声定位或者声纳定位;触觉皮带-方向感(向小鸟一样感知方向);给青蛙植入第三只眼。

这些都是很酷的例子,也许人类的AI之梦并不遥远了!

3)  Model representation I (模型表示一)

大脑中的神经元:

神经网络的目标就是模拟大脑中的神经元或网络,因此在介绍hypotheses的表示之前,先让我们来看一看大脑中神经元:

大脑中的神经元-我爱公开课-52opencourse.com

注:关于这一块儿,由于不太熟悉,即使听Andrew Ng 老师的课也有很多糊涂的地方,于是Google了一下神经网络,发现了一个非常不错的介绍神经网络的材料《神经网络入门(连载)》,以下转载自该连载中对于大脑中的神经元的描述,我觉得非常清楚:

在人的生命的最初9个月内,这些细胞以每分钟25,000个的惊人速度被创建出来。神经细胞和人身上任何其他类型细胞十分不同,每个神经细胞都长着一根像 电线一样的称为轴突(axon)的东西,它的长度有时伸展到几厘米[译注],用来将信号传递给其他的神经细胞。神经细胞的结构如图1 所示。它由一个细胞体(soma)、一些树突(dendrite) 、和一根可以很长的轴突组成。神经细胞体是一颗星状球形物,里面有一个核(nucleus)。树突由细胞体向各个方向长出,本身可有分支,是用来接收信号 的。轴突也有许多的分支。轴突通过分支的末梢(terminal)和其他神经细胞的树突相接触,形成所谓的突触(Synapse,图中未画出),一个神经 细胞通过轴突和突触把产生的信号送到其他的神经细胞。

每个神经细胞通过它的树突和大约10,000个其他的神经细胞相连。这就使得你的头脑中所有神经细胞之间连接总计可能有l,000,000,000,000,000个。这比100兆个现代电话交换机的连线数目还多。所以毫不奇怪为什么我们有时会产生头疼毛病!

神经细胞利用电-化学过程交换信号。输入信号来自另一些神经细胞。这些神经细胞的轴突末梢(也就是终端)和本神经细胞的树突相遇形成突触 (synapse),信号就从树突上的突触进入本细胞。信号在大脑中实际怎样传输是一个相当复杂的过程,但就我们而言,重要的是把它看成和现代的计算机一 样,利用一系列的0和1来进行操作。就是说,大脑的神经细胞也只有两种状态:兴奋(fire)和不兴奋(即抑制)。发射信号的强度不变,变化的仅仅是频 率。神经细胞利用一种我们还不知道的方法,把所有从树突上突触进来的信号进行相加,如果全部信号的总和超过某个阀值,就会激发神经细胞进入兴奋 (fire)状态,这时就会有一个电信号通过轴突发送出去给其他神经细胞。如果信号总和没有达到阀值,神经细胞就不会兴奋起来。这样的解释有点过分简单 化,但已能满足我们的目的。

注意对于我们的这幅图来说,比较关键的是树突(dendrite)是输入(input wires),轴突(axon)是输出(output wires).

现在我们模拟大脑中的神经元结构建立一个简单的模型-Logistic unit:
神经元模型-我爱公开课-52opencourse.com

其中x_1, x_2, x_3称为输入(来自与其他神经元的输入信号), x_0称为偏置单元(bias unit), \theta称为权重或参数, h_\theta(x)称为激活函数(activation function), 这里的激活函数用了sigmoid(logistic) function:

g(z) = \frac{1}{1+e^{-z}}

将多个神经元组织在一起,我们就有了神经网络,例如如下的三层结构的神经网络:

神经网络模型-我爱公开课-52opencourse.com

image

第一层称为输入层,第二层是隐藏层,第三层是输出层,注意输入层和隐藏层都存在一个偏置(bias unit). 其中:

a^{j}_i = j层第i个单元的激活函数

\Theta^{(j)} = 从第j层映射到第j+1层的控制函数的权重矩阵

对于上图,我们有如下的公式表示:

神经网络数学表示-我爱公开课-52opencourse.com

如果神经网络在第j层有s_j个单元,在第j+1层有s_{j+1}个单元,那么权重矩阵\Theta^{(j)}的纬度是s_{j+1} \times (s_j + 1)

4)  Model representation II (模型表示二)

前馈网络:向量化实现

上一节我们讲到的神经网络称为前馈网络,也称前向网络,这种网络只在训练过程会有反馈信号,而在分类过程中数据只能向前传送,直到到达输出层,层间没有向后的反馈信号,因此被称为前馈网络。感知机( perceptron)与BP神经网络就属于前馈网络。我们已经给出了这个神经网络的模型表示,但是不够简洁,下面我们来向量化这个模型(具体的过程推荐看视频,以下仅给出总结):

前馈网络向量化实现-我爱公开课-52opencourse.com

其他的网络结构:

除了上述的前馈网络外,神经网络还有其他的一些网络结构,譬如:
神经网络其他结构-我爱公开课-52opencourse.com

其中第一层仍是输入层,最后一层第四层数输出层,中间两层是隐藏层。

5)  Examples and intuitions I (例子和直观解释一)

本节和下一节的例子均是“逻辑代数”中的逻辑函数,因此有必要在这里交代一点逻辑代数的背景,以下文字摘录自清华大学出版社的《电子技术基础》6.2节,电子书链接来自Google book,同时会在例子的介绍中引用该书中的一些基本定义:

逻辑代数是描述客观事物逻辑关系的数学方法,它首先是由英国数学家乔治*布尔提出,因此也称为布尔代数,而后克劳德*香农将逻辑代数应用到继电器开关电路的设计中,所以又称为开关代数。和普通代数一样,在逻辑代数中用字母表示变量与函数,但变量与函数的取值只有0和1两种可能。这里的0和1已不再表示数量的大小,只代表两种不同的逻辑状态。我们把这种二值变量称为逻辑变量,简称为变量,这种二值函数称为逻辑函数,简称为函数。

非线性分类器例子-异或(XOR)/同或(XNOR)

我们的目标是利用神经网络实现一个逻辑代数中的同或运算,因此首先介绍一下同或运算和异或运算:

同或逻辑和异或逻辑是只有两个逻辑变量的逻辑函数。如果当两个逻辑变量A和B相同时,逻辑函数F等于1,否则F等于0,这种逻辑关系称为同或。反之,如果当两个逻辑变量A和B相异时,逻辑函数F等于1,否则F等于0,这种逻辑关系称为异或。

下图是一个同或预算的示例,其中x_1, x_2是二值变量(0, 1):

神经网络同或运算-我爱公开课-52opencouse.com

可以将其对应到一个非线性分类器,如下图所示:

同或逻辑非线性分类器-我爱公开课-52opencourse.com

同或逻辑和异或逻辑互补:

同或运算and异或运算-我爱公开课-52opencourse.com

同或运算和异或运算是逻辑代数中的复合运算,因此下面我们先介绍三种最基本的逻辑运算(与逻辑运算、或逻辑运算、非逻辑运算),同时分别介绍其对应的神经网络实现,最后将这几种基本的逻辑运算组合,形成最终的同或逻辑运算的神经网络。

与(AND)逻辑运算示例:

相信大家对于与(AND)运算很熟悉,其基本的表达式如下:

与逻辑运算表达式-我爱公开课-52oencourse.com

我们可以用一个简单的神经网络(一个神经元)表示与逻辑运算:

与逻辑运算神经元模型-我爱公开课-52opencourse.com

其中激活函数h_\Theta(x)可以用如下公式表示:
与逻辑运算神经网络hypothese表达式——我爱公开课-52opencourse.com

这里的激活函数是sigmoid(logistic) function,其图形表示如下:

激活函数-gmoid function-我爱公开课——52opencourse.com

对于g(z)来说,当z>=4.0时,g(z)约等于1;当z<=-4.0时,g(z)约等于-1. 对于上述激活函数,将二值(0, 1)变量x_1, x_2代入,我们得到如下的对应表:

与逻辑真值表-我爱公开课——52opencourse.com

可以看出,这里的神经网络激活函数h_\Theta(x)近似等于与逻辑运算。

或(OR)逻辑运算示例:

同理,我们也给出一个简单的神经网络模型来模拟或(OR)逻辑运算:

或逻辑运算神经网络模型-我爱公开课-52opencourse.com

将二值(0, 1)变量x_1, x_2代入,得到如下的或逻辑运算对应表:

或逻辑运算对应表-我爱公开课——52opencourse.com

6)  Examples and intuitions II (例子和直观解释二)

继续上一节的例子,我们介绍第三个基本的逻辑运算:非(NOT)逻辑运算

用一个简单的神经网络模型来模拟非(NOT)逻辑运算:

非逻辑运算-我爱公开课——52opencourse.com

得到的对应表如下:
非逻辑运算真值表-我爱公开课-52opencourse.com

非逻辑运算仅针对一个输入值,我们来表示一个略微复杂的逻辑表达式:

复杂逻辑表达式-我爱公开课-52opencourse.com

这个表达式等于1的前提是”当且仅当x1=x2=0".

可以用神经网络模拟如下:
两个非逻辑运算的神经网络模型-我爱公开课-52opencourse.com

好了,有了上述三个基本逻辑运算的基础和相关的神经网络模型表示,我们可以将其组合为一个略微复杂的”同或(XNOR)逻辑运算的神经网络“:

同或逻辑运算神经网络图-我爱公开课-52opencourse.com

对于这个神经网络,这里稍作一点解释,同或运算的表达式如下:

F = A \odot B = AB + \overline{A}\overline{B}

上图中第二层隐藏网络a1和a2分别代表了A And B和Not A And Not B,a1和a2又做了一次或逻辑运算就得到了同或逻辑运算。该神经网络对应的输出与同或运算的真值表相同:

同或运算真值表-我爱公开课——52opencourse.com

第6节的手写数字识别(分类)的演示请读者自行观看视频,此处略。

7)  Multi-class classification (多类分类问题)

逻辑回归的笔记中,我们谈到了多类分类问题,而神经网络同样可以应用于多类分类问题,只不过在表达上略有区别。首先来看一个机器视觉中分类的例子:

机器视觉分类问题-我爱公开课-52opencourse.com

对于一个输入图片,需要识别其属于行人、轿车、摩托车或者卡车中的一个类型,这是一个多类分类的问题。用神经网络表示如下:

机器视觉神经网络分类模型-我爱公开课-52opencourse.com

其中输出h_\Theta(x)是一个4维向量,如下表示:

神经网络输出多分类问题表示-我爱公开课——52opencourse.com

当向量的某个元素为1,其他为0时,代表分类结果为某个为1元素所对应的类别。这与之前逻辑回归中的多类分类表示不同,在逻辑回归中,输出y属于类似于{1, 2, 3,4}中的某个值,而非一个向量。因此,如果要训练一个多类分类问题的神经网络模型,训练集是这样的:

多类分类问题神经网络模型训练集-我爱公开课——52opencourse.com

特别注意y^{(i)}是一个向量。

本章到此结束,下一讲将会将神经网络的学习问题。转载请注明出处"我爱公开课”,谢谢。

参考资料:

第八课“神经网络的表示”的课件资料下载链接,视频可以在Coursera机器学习课程上观看或下载: https://class.coursera.org/ml
PPT   PDF

http://en.wikipedia.org/wiki/Neural_network

http://en.wikipedia.org/wiki/Artificial_neural_network

神经网络编程入门

神经网络入门连载

http://library.thinkquest.org/29483/neural_index.shtml

http://home.agh.edu.pl/~vlsi/AI/xor_t/en/main.htm

http://en.wikipedia.org/wiki/NOR_logic

http://en.wikipedia.org/wiki/Logic_gate

清华大学出版社的《电子技术基础》,google book