Deep Learning Specialization on Coursera

作者归档:admin

Deep Learning Specialization on Coursera

Gilbert Strang教授的MIT公开课:数据分析、信号处理和机器学习中的矩阵方法

线性代数的相关课程里,我最推崇的还是MIT Gilbert Strang教授的线性代数课程,关于这方面资源的介绍,可以参考我们之前那篇文章:那些值得推荐和收藏的线性代数学习资源

最近发现他依然活跃在教学一线,在MIT 2018春季学期开设了一门的相关课程:Matrix Methods in Data Analysis, Signal Processing, and Machine Learning

这门课程可以翻译为“数据分析、信号处理和机器学习中的矩阵方法”,课程主页的配图特别能说明问题:

以下是该课程资源链接,感兴趣的同学可以参考:

课程主页:https://ocw.mit.edu/courses/mathematics/18-065-matrix-methods-in-data-analysis-signal-processing-and-machine-learning-spring-2018/
课程官方视频:https://www.youtube.com/playlist?list=PLUl4u3cNGP63oMNUHXqIUcrkS2PivhN3k
爱可可老师B站搬运链接:https://www.bilibili.com/video/av53055190/

OpenResty完全开发指南:构建百万级别并发的Web应用

推荐一门有意思的课程:OpenResty 从入门到实战

对服务端工程师来说,如果你的工作中涉及 Nginx、高性能、高并发、动态控制、性能测试、分析等,那么,不论你使用什么开发语言和平台,OpenResty 都是不可多得的高性能开发利器。

但我发现,有不少人没接触过 OpenResty,是时候打开服务端新世界的大门了。

作为一个兼具开发效率和性能的服务端开发平台,OpenResty 并不像其他开发语言一样从零开始搭建,而是基于成熟的开源组件—— Nginx 和 LuaJIT。

其核心是基于 Nginx 的一个 C 模块(lua-nginx-module),这个模块将 LuaJIT 嵌入到 Nginx 服务器中,并对外提供一套完整的 Lua API,透明地支持非阻塞 I/O,提供了轻量级线程、定时器等高级抽象。

围绕这个模块,OpenResty 构建了一套完备的测试框架、调试技术和由 Lua 实现的周边功能库。

你可以用 Lua 进行字符串和数值运算、查询数据库、发送 HTTP 请求、执行定时任务、调用外部命令等,还可以用 FFI 的方式调用外部 C 函数。

这基本上满足了服务端开发所需要的全部功能,所以,OpenResty 的适用范围早已超出了反向代理和负载均衡。

这就意味着,掌握了 OpenResty,就能同时拥有脚本语言的开发效率和迭代速度,以及 Nginx C 模块的高并发和高性能优势。

通过丰富的 lua-resty 库,OpenResty 逐渐摆脱了 Nginx 的影子,形成了自己的生态体系,在 API 网关、软 WAF 等领域被广泛使用。

据我了解,OpenResty 现在是已经是全球排名第五的 Web 服务器了,我们常用的 12306 的余票查询功能、京东的商品详情页,这些高流量的背后,都是 OpenResty 在默默地提供服务。

说到这里,特别想为你推荐一个人——温铭。

他是 OpenResty 软件基金会主席,《OpenResty 最佳实践》作者,前 360 开源技术委员会委员。

他在互联网安全公司有 10 多年的工作经验,之前一直从事高性能服务端的开发和架构,负责开发过云查杀、反钓鱼和企业安全产品。

后来得知,温铭也是为一个新系统做技术选型时偶然了解到 OpenResty 的,那时他还是个 Pythoner,不喜欢 Nginx C 模块的艰涩,还想享受它的高性能。

鱼与熊掌都想兼得, 怎么办呢?OpenResty 满足了他的需求。

但是,目前市面上的 OpenResty 学习资料非常少,官方只提供了 API 文档,并没有入门和进阶的文档,网上找的资料也不够系统。

可以说,大部分的 OpenResty 使用者都是摸着石头过河,过程相当痛苦(他自己就是其中之一)。

所以,他在极客时间开了个课专门讲 OpenResty,目的很明确:帮你快速入门,建立 OpenResty 完整知识体系,进而真正掌握这款开发利器。

像他自己说的那样:写出正确的 OpenResty 代码和写出高性能的优质 OpenResty 代码之间,相差十万八千里。

而跨越这个巨大鸿沟的零件,就散落在 OpenResty 开源项目的源码、文档、issue、PR、幻灯片、邮件列表中,需要你把它们串联起来,形成一个完整的学习路径和知识图谱。

提前要了几篇专栏的文章,结合目录,我大致梳理了一下,如果用一句话概括这个专栏,我觉得是:“从实战中来,到实战中去”:

专栏中的不少代码,都取自开源 OpenResty 的测试案例和实际的开源项目,让你在入门之初,就了解真实的使用场景。

文章中还穿插了多个视频,内容都取自真实开源项目的功能点和 PR。通过视频,可以更加直观地看到,刚学到的知识点是怎样在实际中应用的。

最后的实战部分,看着也挺带劲,哥们会带你用 OpenResty 从零搭建一个微服务 API 网关,如果你想独立搭建一个更简单、更高性能的 API 网关,这部分内容可别错过。

从实际的开源项目中学习,再到实际的开源项目中去实战,将实战融入完整的知识体系,这逻辑没毛病,要是学完没有收获,直接来找我。

另外,我看哥们还挺走心,专门列了几个学习 OpenResty 的重点,会在专栏里着重讲解那种,有好几个特别「戳」我,这回跟着好好补补课:

同步非阻塞的编程模式

不同阶段的作用

LuaJIT 和 Lua 的不同之处

OpenResty API 和周边库

协程和 cosocket

单元测试框架和性能测试工具

火焰图和周边工具链

性能优化

关于学习这个课需要什么基础,直接引用温铭原话,他比我总结得好:

OpenResty 是在 Nginx 和 LuaJIT 的基础上搭建的,所以 Nginx 和 LuaJIT 的基础知识还是需要的。

但你只要了解很少的 Nginx 知识,就可以学习 OpenResty 了。

少到什么程度呢?涉及到的 Nginx 的知识,我只用一节课就介绍完了。所以,即使你从没接触过 Nginx 也没关系。

要知道,OpenResty 并不等同于 Nginx,OpenResty 这个项目存在的目的之一,就是让你感知不到 Nginx 的存在。

从编程语言的角度看,Lua 是一种很容易理解的语言,你只要能看懂它的代码,并不需要独立写出复杂的 Lua 代码,就可以完成专栏的学习了,我会用少数几节课带你入门 Lua,达到 OpenResty 的使用水准。

哥们写的有点长,我总结就一句:

放心学,学得会,能用着。

给 Java 新手的入门指南:零基础学 Java

极客时间新课 零基础学 Java:PayPal 技术专家手把手带你入门 Java,快速掌握 Java 编程技巧 http://gk.link/a/103ol

作为最受欢迎的编程语言之一,Java 已经走过了20多个年头。从已经落寞的诺基亚到现在火热的电商系统,我们都能看到 Java 语言的身影。虽然这几十年来,也都陆续有众多其它语言出现,但它们在普及程度上仍然无法与 Java 相提并论。

所以,我也认为,在未来十年,Java 仍将会是最受欢迎的编程语言。如果你想成为一名合格的后端工程师,并且想入职知名的互联网公司,那我推荐你深入学习 Java。原因如下:

薪水高。Java 工程师的月薪普遍在 10k-50k 之间,相比于一般职位,可谓“高薪”。

工作岗位较多。包括阿里巴巴、京东、去哪儿网、亚马逊在内的知名公司都在使用 Java 语言。

生态非常成熟。Java 不仅仅只是一种主流编程语言,它同时也代表着一整个活跃的生态系统。你在大数据、微服务、云计算等热门领域都能看到它的身影。

可以说,学好了 Java,不愁没有用武之地,未来的开发之路会非常宽广。

对于初学者而言,一开始很容易被各种编程语言的抽象概念吓倒。比如常量、字符类、对象、封装、继承、等等,虽然字都认识,但就是搞不明白什么意思,有时候如果过于关注某个概念的字面含义,反而更容易跑偏。

另外,好不容易把这些抽象的概念都弄懂了,但却不知道该怎样把它们串起来写出完整可用的程序。往往脑子里有思路,就是不知道怎样用代码体现出来。

我觉得这些问题其实很正常,编程语言并不像我们平常讲话用的语言那样是人和人之间交流的语言,它更像是一种人和动物之间交流的语言,两者的思维方式和行为方式是完全不同的,所以从理解一门编程语言到熟练运用,这中间还有不少的路要走。

为了让更多零基础的同学更快上手 Java,领略到 Java 这门应用最为广泛的编程语言的魅力,我给打算入门或正在学习 Java 的读者们,推荐臧萌在极客时间推出的《零基础学 Java》视频课程。

之所以推荐这个课程,主要是下面 3 个原因:

形式上,这门课拒绝死记硬背式的讲解,而是通过大量比喻、类比来辅助你理解抽象概念。让你边理解,边学习,掌握语法后的本质,从而不再视编程语言为“天书”。

内容上,会贯穿 Java 核心知识点,带你从最基础的语法讲起,到循环控制、再到类、面向对象、多态和继承以及多线程等高阶内容,带你全面掌握 Java 开发核心,让你学完之后可以独立运用 Java 写一些小型应用程序,从而把自己头脑中的想法变成实际可以运行的程序,体验到创造的乐趣。

除此之外,课程还设计了各种大大小小的习题演练,让你通过动手实践来更深入地掌握各个知识点,在实战中不断磨练编程技能。课程的最后,臧萌老师会带着你用 Java 完成一款小游戏的设计,这个项目会贯穿课程中涉及到的所有核心知识点,完成这个项目,你就能够把学到的知识融会贯通,完成从学习一门编程语言到使用一门编程语言的转变。

臧萌是谁?

臧萌,现任 PayPal 数据处理组技术负责人,《Java入门 1 2 3》一书的作者,曾帮助过数万名读者顺利入门 Java。

他先后在 Sybase,eBay,盛大,亚马逊,携程,PayPal 等公司工作,方向包括 ETL,GUI,IaaS,大数据,安全等。他多年来专注于Java,有10多年一线软件设计和开发经验,对 Java 语言和软件开发有深刻的认识。

另外不得不说,他的 Java 入门高口碑书籍《Java 入门123》,豆瓣评分 9.2,被称为 Java 入门图书的“战斗机”,累计 7 次印刷,售出超过 3w 册,通俗易懂的讲解风格也获得了众多读者的好评。

你将获得什么?

为了让你更清晰地了解Java入门需要掌握的核心知识点,臧萌老师为你梳理了 Java 入门的学习路径。结合《零基础学 Java》课程讲解,学完后你将完全掌握 Java 核心语法,并用 Java 编写出能够解决某个具体问题的应用程序,真正做到学以致用。

课程共分为六个章节。

第一章 Java 编程基础

会抽出编程语言中通用的语法点来讲述,让你学会写出符合语法规范的代码,逐步适应与计算机进行沟通的方式,即“你告诉我要做什么,数据在哪里,我来执行”。

第二章 Java 面向对象编程

会慢慢让你熟悉面向对象的思想,以类和对象的方式,花式组织代码和数据,从而能够让你的程序解决更为复杂的问题。学完后,你可以深刻理解 Java 面向对象的思想带来的好处,并利用它们来解决实际问题。

第三章 Java 中的异常处理

当代码执行出现错误时,Java 会通过异常机制来告诉我们“臣妾做不到啊!”。为了避免程序崩溃,会带你学会如何处理程序的异常,如何结合代码逻辑来快速排查和解决程序的问题。

第四章 Java 中的常用工具类和新语法

编程中有一个很重要的原则,就是“不要重复发明轮子”。各种常用的类库就相当于各种现成的轮子,我们直接使用就可以了,而不需要用代码重复实现一遍。在这一章,会带你学习 Java 提供的数据结构相关类,文件和网络 I/O 相关类以及一些新增的常用语法,从而让你能够更高效地解决一些常见问题场景。

第五章 Java 中的线程

一个线程可以简单的理解为一个 CPU 的核,是驱动程序运行的发动机。这一章中,你将学会如何在一个程序中使用多个线程。多个线程就像是多个工人在一起干活,协调好资源很重要,协调不好,工程进度就会受到拖累。这是这一章学习的重点,也是难点。

第六章 Java 编程实战

这一篇中涉及的方向很多,包括必备工具,Java 平台,常用类库,程序设计,游戏程序大练兵等。安排这些内容的目的就一个:让你可以开始独立设计和编写程序,为下一步的学习做好准备。

最后,还要嘱咐一句,学习编程语言,可以速成,但是掌握一门编程语言,没有速成的方法。一个人可以五天学会游泳,但是没有人可以五天成为游泳健将——无论这个人身体素质有多好。因此,想掌握一门编程语言的程,也需要多学多用。对一门编程语言的掌握程度,也是随着代码量和用它解决的问题的数量慢慢增长的。

Facebook工程师:从工程角度,系统掌握Python

推荐FB资深工程师景霄开设的《Python核心技术与实战》新专栏,从工程的角度,重新理解 Python,做到真正的“即学即用” http://gk.link/a/103fc

作者介绍:
景宵

本科毕业于武汉大学电子工程系(专业第一),后进入哥伦比亚大学攻读计算机硕士学位。

毕业后顺利入职Facebook,目前在核心组Feed Ranking,从事机器学习的相关工作。

这个专栏是从工程的角度来讲解Python这门编程语言,不会死抠一些很偏的知识点,相反,会从实际出发,以工作中遇到的实例为主线,去讲解Python的知识点和应用。本专栏中基于Python最新版本3.7,有大量独特的案例和见解,以及不少作者本人阅读源码后的体会,并且难易兼顾,专栏中既有简单的基础知识,也有进阶的课程,会尽量的做到“老少皆宜”。

你将获得:
从工程角度掌握 Python 高阶用法
独立开发 Python 项目的能力
完整的 Python 学习路径
硅谷一线工程师的独家经验分享
新目录
一、Python基础知识

方法:如何逐步突破,成为Python高手(Jingxaio)
工具:为什么必学Jupyter Notebook ? (Yuannan)
列表和元祖,到底用哪一个?(Jingxaio)
字典、集合,你真的了解吗? (Jingxiao)
深入浅出字符串 (Jingxiao)
Python“黑箱”:输入与输出 (Tan)
修炼基本功:条件与循环 (jingxiao)
提高程序的稳定性:异常处理 (jingxiao)
不可或缺的自定义函数(Jingxiao)
简约不简单的匿名函数(Jingxiao)
你好,面向对象(上)(Tan)
你好,面向对象(下)(Tan)
搭建积木:Python 模块化 (Tan)
答疑(一)(jingxiao)

二、Python进阶核心知识

Python对象的比较、复制 (Jingxiao)
值传递、引用传递or其他,Python里参数是如何传递的?(jingxiao)
强大的装饰器 (jingxiao)
metaclass:是潘多拉魔盒还是阿拉丁神灯 ?(Yuannan)
深入理解迭代器和生成器 (Tan)
揭秘Python协程 (Tan)
Python并发编程之Future (jingxiao)
Python并发编程之Asyncio (jingxiao)
你真的懂Python GIL(全局解释器锁)吗?(yuannan)
带你解析Python垃圾回收机制(Tan)
SWIG:TensorFlow等流行框架背后的Python/C++混合编程技术(Yuannan)
答疑(二)(jingxiao)

三、规范:编写高质量的Python程序

活都来不及干了,还有空注意代码风格?!【yuannan】
学会合理分解代码,提高代码可读性 (Tan)
如何合理运用assert?(Jingxiao)
巧用上下文管理器和With语句精简代码 (Jingxiao)
真的有必要写单元测试吗 (jingxiao)
pdb & cProfile:调试和性能分析的法宝(Jingxiao)
答疑(三)(jingxiao)

四、实战:带你搭建量化交易系统 (Tan)

初探量化世界
RESTful & Socket: 搭建你的交易后台核心
Pandas & Numpy: 策略与回测系统
Kafka & Rabbitmq: 自动化交易流水线
Mysql: 日志和数据存储系统
Django: 搭建监控平台
答疑(四)

五、分享:技术见闻和感想 (Jingxiao)

硅谷一线工程师的工作日常
细数服务器端开发的注意事项
提高市场竞争力:如何成为一个全栈工程师?

景霄目前从事机器学习的相关工作,主要负责是人工智能的推荐排序系统与算法。他曾领导多个上亿用户级产品的开发与落地,可以说工程与实战经验非常丰富。最近,他把自己的「工程角度」Python学习法整理了出来,跟极客时间合作了《Python核心技术与实战》专栏,希望带你从工程的角度,重新理解 Python,做到真正的“即学即用”。

近几年,Python 的受欢迎程度可谓是扶摇直上,加入 Python 学习大营的人越来越多。不过,随之而来的是,竞争越来越激烈。迷茫的声音也越来越多,我经常看到粉丝在后台留言:

Python程序员都有哪些发展方向?大概都有哪些技能点?

刚学了半年多 Python,想找个薪资高一点的工作,有什么建议吗?

想学 Python 爬虫,要从哪里开始入手?

想成为机器学习工程师,该怎样才能拿到 Offer ?

……

其实,大家迷茫的根本原因,是对 Python 的职业成长路径不清楚,也不了解各个阶段对应的核心知识点。因此,我给大家整理了一份「 Python 职业成长路径图」,涵盖Python程序员职场发展的4个方向,也列出了各个方向需要掌握的核心知识点,分享给你。

入门Python,夯实基础,掌握Python核心知识,比如基本的数据结构、面向对象编程、并发编程等等,成为一名合格的Python工程师;

Web工程师:当你掌握了Python中高阶知识,再去学一些单元测试、Flask框架、数据库使用等,就可以往Web工程师发展;

爬虫工程师:如果你对爬虫感兴趣,这是个不错的选择。你的知识库还需要再添加一块内容:学习爬虫开发;

数据分析工程师:大数据、数据分析这几年大火,相对应的,你还需要学习Matplotlib绘图、Pandas、10大核心算法等内容;

机器学习工程师:跟这个方向相关的词,还有“高薪”、“稀缺”,不过想成为机器学习工程师并非易事,你需要花更多的时间和精力去专研深度学习。

可以说,不管你往哪个方向发展,都非常有前景,特别是数据分析工程师和机器学习工程师。不过,想成为 Python 高手,找到一个好方向固然重要,更重要的是你的学习方法是否正确。

我认识这么一个牛人,他在读大学的时候才开始接触编程,但一路进入哥伦比亚大学计算机系读研、毕业后进入 Facebook 做机器学习工程师,他是怎么做到的呢?

他说,不光他自己,包括他在Facebook 认识的编程牛人们,都特别善于从「工程角度」、以实用为出发点来思考和学习一门语言。

方法是:花很短的时间看完基础语法,然后去了解一些重难点、易错点,最后自己亲自动手完成一个项目,达到融会贯通的效果。这样下来,可能几周时间就掌握得差不多了。

你看,这样从「工程角度」去学习和理解一门语言,会让你达到事半功倍的效果。

再跟你重点介绍一下,这位牛人叫景霄,是Facebook资深工程师。目前从事机器学习的相关工作,主要负责是人工智能的推荐排序系统与算法。他曾领导多个上亿用户级产品的开发与落地,可以说工程与实战经验非常丰富。

最近,他把自己的「工程角度」Python学习法整理了出来,跟极客时间合作了《Python核心技术与实战》专栏,希望带你从工程的角度,重新理解 Python,做到真正的“即学即用”。

相比市面上大多数理论且远离实际工程的学习资料,这个专栏特点很明显:

1.他不会死抠一些很偏的知识点,而是从实际出发,以工作中遇到的实例为主线,去讲解 Python 的核心技术和应用;

2.有完整的Python学习路径,从基础语法到高级用法,再到项目实战开发。让你把学到知识点通过项目都串联起来,形成你自己的Python 学习框架图;

3.整个专栏内容都是基于 Python 最新的3.7版本来讲解,告别网上那些陈旧不更新的学习内容,毋庸置疑,Python 3才是Python的未来。

具体地,《Python核心技术与实战》分成以下四个模块。

1.Python基础入门

必学知识:【Python基础数据结构】【Python基础语法】【文件操作】【错误与异常处理】【Python面向对象】【模块化】

第一步,你必然需要掌握的Python基础知识。这个专栏不仅仅只讲基础概念、操作,同时也为你整理了很多进阶难度的知识,或是一些重难点、易错点等需要注意的地方。

2.Python进阶核心知识

必学知识:【Python协议】【Python高级语法】【Python正则表达式】【Python并发编程】【垃圾回收机制】【项目实战】

第二步,进阶 Python 的核心知识点,比如装饰器、并发编程等等。如果你的工作只是写100行以下的脚本程序,可能不怎么会用得到。但如果你做的是大型程序的开发,则非常有必要。

3.规范:编写高质量的Python程序

这部分着重于教你把程序写得更加规范、更加稳定,用具体的编程操作和技巧,教你提高代码质量。比如,如何合理地分解代码、运用 assert,如何写单元测试等等。

4.Python实战,串联整个知识体系:带你搭建量化交易系统

必学知识点:【RESTful】【Socket】【Pandas】【Numpy】【Kafka】【RabbitMQ】【MySQL】【Django】

真正要掌握一门编程语言,仅仅学会分散的知识点是不够的,还必须要把知识点串联起来,做一些中型的项目才能有更深的领悟与提高。这部分,景霄用量化交易系统这个具体的实战案例,带你综合运用前面所学的Python知识。

再提一句

这个专栏里的所有内容都基于Python最新的3.7版本来讲解,其中包含着景霄大量的独家解读、案例,以及不少他阅读源码后的发现和体会。同时,在层次划分上,景霄希望能难易兼顾,循序渐进。专栏中既有核心的基础知识,也有高级的进阶操作,尽量做到“老少皆宜”。

李航老师《统计学习方法(第二版)》出版及统计学习方法第一版PPT课件下载

李航老师《统计学习方法(第二版)》出版了,以下是相关介绍。

内 容 简 介

统计学习方法即机器学习方法,是计算机及其应用领域的一门重要学科。
本书分为监督学 习和无监督学习两篇,全面系统地介绍了统计学习的主要方法。
包括感知机、k 近邻法、朴素贝 叶斯法、决策树、逻辑斯谛回归与最大熵模型、
支持向量机、提升方法、EM 算法、隐马尔可夫 模型和条件随机场,以及聚类方法、
奇异值分解、主成分分析、潜在语义分析、概率潜在语义分 析、马尔可夫链蒙特卡罗法、
潜在狄利克雷分配和 PageRank 算法等。除有关统计学习、监督学 习和无监督学习的概
论和总结的四章外,每章介绍一种方法。叙述力求从具体问题或实例入手, 由浅入深,
阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。
为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,
列出了主要参 考文献。 本书是统计机器学习及相关课程的教学参考书,
适用于高等院校文本数据挖掘、信
息检索及自然语言处理等专业的大学生、
研究生,也可供从事计算机应用相关专业的研发人员 参考。

第二版序言

《统计学习方法》第一版于2012年出版,讲述了统计机器学习方法,主要是一些常用的监督学习方法.
第二版增加了一些常用的无监督学习方法,由此本书涵盖了传统统计机器学习方法的主要内容.
在撰写《统计学习方法》伊始,对全书内容做了初步规划.第一版出版之后,即着手无监督学习方法
的写作.由于写作是在业余时间进行,常常被主要工作打断,历经六年时间才使这部分工作得以完成.
犹未能加入深度学习和强化学习等重要内容,希望今后能够增补,完成整本书的写作计划.
《统计学习方法》的出版正值大数据和人工智能的热潮,生逢其时,截至2018年4月本书共印刷21次,
133,000册,得到了广大读者的欢迎和支持.有许多读者指出本书对学习和掌握机器学习技术有极大的
帮助.也有许多读者通过电子邮件、微博等方式指出书中的错误,提出改进的建议和意见.一些高校
将本书作为机器学习课程的教材或参考书.有的同学在网上发表了读书笔记.有的同学将本书介绍的
方法在计算机上实现.清华大学深圳研究生院袁春老师精心制作了第一版十二章的课件,在网上公布,
为大家提供教学之便.众多老师、同学、读者的支持和鼓励,让作者深受感动和鼓舞.在这里向所有
的老师、同学、读者致以诚挚的谢意!
能为中国的计算机科学、人工智能领域做出一点微薄的贡献,感到由衷的欣慰,同时也感受到作为知
识转播者的重大责任,让作者决意把本书写好.也希望大家今后不吝指教,多提宝贵意见,以帮助继
续提高本书的质量.在写作中作者也深切体会到教学相长的道理,经常发现自己对基础知识的掌握不
够扎实,整个过程帮助自己对相关知识进行了深入的学习,受益匪浅.
本书是一部机器学习的基本读物,要求读者拥有高等数学、线性代数和概率统计的基础知识.书中主
要讲述统计机器学习的方法,力求系统全面又简明扼要地阐述这些方法的理论、算法和应用,使读者
能对这些机器学习的基本技术有很好的掌握.针对每个方法,详细介绍其基本原理,基础理论,实际
算法,通常给出细致数学推导和具体实例,帮助读者理解,也便于日后复习.
第二版增加的无监督学习方法的初稿,王泉、陈嘉怡、柴琛林、赵程绮等帮助做了认真细致的校阅,
提出了许多宝贵意见,在此谨对他们表示衷心的感谢.清华大学出版社的薛慧编辑一直给予非常专业
的指导和帮助,在此也对她表示衷心的感谢.
由于作者水平有限,本书一定存在不少错误,恳请各位专家、老师、同学、读者批评指正.

李 航
2018年4月23日

目录

第一篇 监督学习
    
第二篇 无监督学习
第13章 无监督学习概论        
13.1.1 无监督学习基本原理
13.1.2 基本问题
13.1.3 机器学习三要素
13.1.4 无监督学习方法

第14章 聚类方法
14.1 聚类的基本概念
14.1.1 相似度或距离
14.1.2 类或簇
14.1.3 类与类之间的距离
14.2 层次聚类
14.3 k均值聚类
14.3.1 模型
14.3.2 策略
14.3.3 算法
14.3.4 算法特点
本章概要
继续阅读
习题
参考文献             

第15章 奇异值分解
15.1 奇异值分解的定义与性质
15.1.1 定义与定理
15.1.2 紧奇异值分解与截断奇异值分解
15.1.3 几何解释
15.1.4 主要性质
15.2 奇异值分解的计算
15.3 奇异值分解与矩阵近似
15.3.1 弗罗贝尼乌斯范数
15.3.2 矩阵的最优近似
15.3.3 矩阵的外积展开式
本章概要
继续阅读
习题
参考文献

第16章 主成分分析
16.1 总体主成分分析
16.1.1 基本想法
16.1.2 定义和导出
16.1.3 主要性质
16.1.4 主成分的个数
16.1.5 规范化变量的总体主成分
16.2 样本主成分分析
16.2.1 样本主成分的定义和性质
16.2.2 相关矩阵的特征值分解算法
16.2.3 数据局正的奇异值分解算法
本章概要
继续阅读
习题
参考文献

第17章 潜在语义分析
17.1 单词向量空间与话题向量空间
17.1.1 单词向量空间
17.1.2 话题向量空间
17.2 潜在语义分析算法
17.2.1 矩阵奇异值分解算法
17.2.2 例子
17.3 非负矩阵分解算法
17.3.1 非负矩阵分解
17.3.2 潜在语义分析模型
17.3.3 非负矩阵分解的形式化
17.3.4 算法
本章概要
继续阅读
习题
参考文献

第18章 概率潜在语义分析
18.1 概率潜在语义分析模型
18.1.1 基本想法
18.1.2 生成模型
18.1.3 共现模型
18.1.4 模型性质
18.2 概率潜在语义分析的算法
本章概要
继续阅读
习题
参考文献

第19章 马尔可夫链蒙特卡罗法
19.1 蒙特卡罗法
19.1.1 随机抽样
19.1.2 数学期望估计
19.1.3 积分计算
19.2 马尔可夫链
19.2.1 基本定义
19.2.2 离散状态马尔可夫链
19.2.3 连续状态马尔可夫链
19.2.4 马尔可夫链的性质
19.3 马尔可夫链蒙特卡罗法
19.3.1 基本想法
19.3.2 基本步骤
19.3.3 马尔可夫链蒙特卡罗法与统计学习
19.4 Metropolis-Hastings算法
19.4.1 基本原理
19.4.2 Metropolis-Hastings算法
19.4.3 单分量Metropolis-Hastings算法
19.5 吉布斯抽样
19.5.1 基本原理
19.5.2 吉布斯抽样算法
19.5.3 抽样计算
本章概要
继续阅读
习题
参考文献

第20章 潜在狄利克雷分配
20.1 狄利克雷分布
20.1.1 分布定义
20.1.2 共轭先验
20.2 潜在狄利克雷分配模型
20.2.1 基本想法
20.2.2 模型定义
20.2.3 概率图模型
20.2.4 随机变量序列的可交换性
20.2.5 概率公式
20.3 LDA的吉布斯抽样算法
20.3.1 基本想法
20.3.2 算法的主要部分
20.3.3 算法的后处理
20.3.4 算法
20.4 LDA的变分EM算法
20.4.1 变分推理
20.4.2 变分EM算法
20.4.3 算法推导
20.4.4 算法总结
本章概要
继续阅读
习题
参考文献

第21章 PageRank算法
21.1 PageRank的定义
21.1.1 基本想法
21.1.2 有向图和随机游走模型
21.1.3 PageRank的基本定义
21.1.4 PageRank的一般定义
21.2 PageRank的计算
21.2.1 迭代算法
21.2.2 幂法
21.3.3 代数算法
本章概要
继续阅读
习题
参考文献

第22章 无监督学习方法总结
22.1 无监督学习方法的关系和特点
22.1.1 各种方法之间的关系
22.1.2 无监督学习方法
22.1.3 基础及其学习方法
22.2 话题模型之间的关系和特点
参考文献

附录A 梯度下降法
附录B 牛顿法和拟牛顿法
附录C 拉格朗日对偶性
附录D 矩阵的基本子空间
附录E KL散度的定义和狄利克雷分布的性质
                  
索引

有同学将第一版相关的机器学习算法用python实现了一遍,可以参考:

https://github.com/WenDesi/lihang_book_algorithm (致力于将李航博士《统计学习方法》一书中所有算法实现一遍)

最后附上清华大学深圳研究生院袁春老师精心制作了第一版十二章的课件,关注公众号AINLP,回复”tongjixuexi”获取:

极客时间新课:Web 协议详解与抓包实战

极客时间新课《Web 协议详解与抓包实战》视频课,访问课程主页:http://gk.link/a/103bR

发现大部分技术人,多多少少都会遇到下面的困惑,比如:

AJAX 跨域访问时总被浏览器的同源策略阻止,其背后的原理及符合其设计思想的解决方案是什么?

缓存可以提升性能,但什么样的 HTTP 消息才会被浏览器或者代理服务器缓存呢?

抓包时收到 4xx 或者 5xx HTTP 响应码,这意味着服务器端发生了什么?

当我们维护 HTTPS 连接时,如果要优化TLS/SSL 的卸载性能,应该从哪里入手?

定位问题时,发现本地的 TCP 连接状态中出现了FIN_WAIT、CLOSE_WAIT 或者TIME_WAIT,都是什么原因引起的?应该如何解决?

想要提升 TCP 连接的传输速度,可服务器上相关的系统参数多达数十个,究竟该怎么调整?

时下逐渐普及的 IPv6 ,在报文上到底与 IPv4 协议有何差别?

你会发现,这些问题其实都和 Web 协议密切相关。我常常听到身边人抱怨“学不动了”,之所以会这样,大多是因为没有掌握好互联网体系中的底层知识。这些知识点相对稳定,而其他时刻变化的知识点是构建在这些知识点之上的。一旦掌握好,就可以长久使用,并且保持快速学习的能力。

Web 协议就是其中非常重要的一个模块。虽然它常常要兼容 internet 中非常古老或者有着突破性创新的浏览器或者服务器,从而也在时刻进化,但只要我们抓住它设计时背后的指导原则,系统地将 Web 协议转化为我们头脑中的结构体知识,就可以对我们学习前后端开发框架、面向连接的编程语言、各种分布式组件、架构设计、微服务编程等都起到事半功倍的效果。

可以说,无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速、高效地解决问题,Web 协议一定是你绕不过去的一道坎。熟练掌握各种常用 Web 协议,可以帮你在工作中轻松应对各种网络难题。

如果你是前端工程师,可以快速定位问题的根源在后端还是前端,对网页性能的提升会有更多的思路。

如果你是后端工程师,可以更清晰地理解Web容器的工作原理,在网络层面快速缩小问题范围。

如果你是运维工程师,可以更明确地规划硬件及网络资源,对于故障节点的恢复也会有更系统的解决方案。

如果你是测试工程师,可以对压测工具的原理有更深入的理解,对RPC测试用例的构造也会更全面。

如果你是架构师,将会对分布式系统下的高可用架构设计和性能优化等问题有更加体系化的认识。

可是,想要真正掌握 Web 协议,并没有想象中那么容易。我发现大部分人在学习时,都卡在下面这些问题上:

Web协议的体系庞大,大多概念过于抽象,导致初学者很容易从入门到放弃。

很难快速上手,就算弄懂了复杂的概念,工作中一遇到复杂问题,还是一头雾水,不知道如何下手。

网上有很多文章可以参考,但要不就是知识点零散,要不就是解释得蜻蜓点水,无法深入到底层。

市面上相关的课程很少,要不就是仅仅讲述某一个协议,要不就是只从理论出发来讲解,实战性不强。

除此之外,很少有人会在文章或课程里通过抓包去把 Web 协议的各个细节呈现出来,然后掰开揉碎了讲给大家。基于此,我推荐你陶辉老师在极客时间开的《Web 协议详解与抓包实战》视频课,完全从实战出发,在关键场景中结合抓包工具进行实战分析,为你深入浅出地讲解常见 Web 协议涉及到的核心知识,并彻底掌握这些协议。

陶辉是谁?

陶辉,现在是智链达 CTO。他曾担任阿里云高级专家,也在华为、腾讯、思科等公司从事过服务器端的研发工作。相信陶辉来讲 Web 协议详解与抓包实战,一定会带给你不一样的收获。为什么这么说?

在华为他负责 iMAP 网管系统的研发,在通过 SNMP 等协议管理众多网络设备的过程中,对路由器交换机如何处理协议栈、选择路由、转发报文等流程有了深入的理解;

在腾讯QQ空间,通过使用自定义的、基于 TCP 的 Qzone 协议传递巨量的数据,他对如何设计出高性能、可扩展的应用协议有了丰富的实践经验;

在思科他从事 Nginx 服务的研发,对 Web 服务器如何高效地处理 HTTP 协议有了全面的认识;

在阿里云作为 VPC 软件自定义网络项目中的管理系统架构师,他通过基于 Intel DPDK 自建网关、自定义网络层协议等工作,对 IDC 内部网络系统有了深刻了解。

在《Web 协议详解与抓包实战》视频课中,陶辉老师会把自己十几年积累的第一手经验毫无保留地分享给大家。

你能获得什么?

陶辉老师会跟你一起从应用层到底层,通过具体问题和场景来学习 Web 协议。具体来说,你可以有下面 4 点收获。

1. 深入理解常用 Web 协议

课程将基于应用场景深入介绍Web协议栈中最常用的HTTP/1.1、Websocket、HTTP/2.0、TLS/SSL、TCP、IP协议,这些协议处在 OSI 网络栈中的不同层级,每一层对上层协议封装、隐藏其下层协议的实现细节,而上层协议必须理解其相邻下层协议解决了什么问题,有哪些约束条件。陶辉老师会带你自上而下的学习这些协议的语法、应用场景,以建立起结构体的知识体系。

2. 快速定位和解决网络疑难杂症

网络问题最为复杂,它涉及到多样化的客户端、技术相对封闭的网络设备、层层可能修改消息的代理服务器、快速迭代中的源服务器等,当客户端与服务器由于编程、配置错误造成系统故障时,相比在某一端使用经验式的排除法查错,从网络层面定位问题更为科学、快速而有效。

3. 掌握常见抓包工具及报文分析方法

陶辉老师会配合抓包实践来带你深入了解协议细节。关于抓包工具的学习,则会遵循“即用即学”的原则,用到什么学什么,让你快速上手。

对于HTTP报文的抓包实践,主要使用 Chrome 浏览器提供的开发者工具 Network 面板,同时也将使用到 curl、telnet 命令行来模拟 HTTP 请求的发送。Wireshark是这门课程的主要抓包工具,包括过滤器、各面板的使用、如何基于统计分析报文等。对于服务器端的抓包我们会使用 tcpdump工具,并配合 Wireshark 分析报文。

4. 熟悉 Web 协议的架构和设计原则

HTTP 最初用于解决人与机器的通讯,了解指导其设计原则的REST架构,就能理解在空间上它如何应对全球性的巨型分布式网络,在时间上如何应对数十年的技术变迁。

在分层架构下各层都有其待解决的核心问题,TLS/SSL协议面对的是如何使用非对称加密协商密钥及验证身份,TCP协议面对的则是可控流量下的可靠传输,IP协议则关注报文在主机间的可达性,带着这些需求及约束,便可从容应对变化。

深入浅出计算机组成原理:计算机底层知识第一课

极客时间刚刚上线了一门新课: 深入浅出计算机组成原理 ,作者徐文浩老师上来就告诉大家他是做自然语言处理创业的,很有意思,其实我心理想,敢开这些CS基础课的,都是牛人,能学这些课程的同学,都在夯实地基,我就想看看他是如何深入浅出讲这门课的。

对于程序员来说,计算机组成原理相关知识重要吗?

不知道大家有没有发现各个大学计算机系的培养计划,它们都有差不多十来门核心课程。其中,“计算机组成原理”却是入门和底层知识的第一课。

为什么这样说?想象一下,一名赛车手不知道赛车的内部构成和工作原理,你觉得他能驾驭赛车,在专业赛事中夺冠吗?

同样的道理,要成为一名优秀的软件工程师,写得一手好程序,就要了解计算机是怎么工作的,深入计算机组成原理。

我们直接用肉眼来看,计算机是由CPU、内存、显示器这些设备组成的硬件,而大部分人工作后从事的是软件开发,显然,在硬件和软件之间需要一座桥梁,而“计算机组成原理”就扮演了这样一个角色,它既隔离了软件和硬件,也提供了让软件无需关心硬件,就能直接操作硬件的接口。

简单地说,你只需要对硬件有原理性的理解,就可以信赖硬件的可靠性,安安心心用高级语言来写程序。无论是写操作系统、编译器这样的硬核代码,还是写Web应用、手机App这样的应用层代码,你都可以做到心里有底。

如上图,学习组成原理之后,向下,你可以学习数字电路相关的课程,向上,你可以学习编译原理、操作系统这些核心课程。它会让你真正对计算机的知识有一个全局的了解。

当然,这门课还可以直接解决你在并发编程、性能优化中经常遇到的一些困惑,比如CPU Cache的原理是什么,CPU和I/O之间是如何通信的,虚拟内存是要解决什么问题。

如果你看过倚天屠龙记,会发现张无忌几个时辰,就把别人几十年没有练成的乾坤大挪移学会了,最根本的原因,是他有“九阳神功”练就的内功底子!

同样的,深入学习这门“底层知识”,就是在练扎马步、核心肌肉力量,提升你自己的“根骨”和“资质”,从而拔高你发展的上限。

如何系统的学习?

作为计算机底层知识第一课,当然不那么好啃,概念多,太抽象,难理解,不好学以致用。我身边不少想打好这门“硬核内功”的工程师,大都是买了资料,前面100页已经发黄了,后面500页从来没有打开过;不少非科班出身的程序员,直接说“这些书根本看不懂”,典型的“买书如山倒,读书如抽丝”。

在这里特别推荐个靠谱的学习资料,极客时间的新专栏《深入浅出计算机组成原理》,在考研统考的4门核心基础课程中,极客时间已经出了数据结构与算法、操作系统,计算机网络相关的3门很受欢迎的计算机基础课程,这是第4门也是非常重要的第一课,等你做了多年开发以后,会发现,原来这么多年就是围绕这4门课程打转。

这个课的作者是徐文浩,一个目前正在创业的工程师。7岁开始接触代码,近30年的码龄,毕业于上海交通大学计算机系,在 Trilogy Software 写过各种大型企业软件,也曾任 MediaV 技术总监,从零开始搭建支撑每天百亿流量的广告算法系统,提升了十倍以上的广告收入和 ROI;2016年底进军人工智能领域,创办 BotHub.AI,成为唯一进入 F8 大会开发者代表的中国公司。

为什么推荐这门课程?

极客时间平台我本身一直都很认可和信任,更重要的是我看了目录和内容,感觉确实不错,为了针对性的解决大家学习中的困难,徐文浩在专栏中结合自己多年硬件研究和软件开发经验,通过日常工作实际场景+硬件发展历史+软件开发案例,深入浅出的为你讲解计算机组成原理的核心知识,教你真正看懂、学会、记住,从源头理解软、硬件的共同之处,洞悉性能问题的本质,学以致用。

为了方便大家的学习,徐文浩老师特地整理了一份学习脑图,希望你对将要学习的内容有个总纲的了解,做到心中有数。

你能获得什么?

1、学以致用的计算机底层知识

专栏会以日常开发中的真实案例,帮你理解计算机的各个组件是怎么运作的,遇到问题的根源是什么,从知识→应用→知识,形成闭环,学以致用。

比如说,CPU里面的冒险和分支预测的策略,就好像在接力赛跑里面后面几棒的选手早点起跑,如果交接棒没有问题,自然占了便宜,但是如果没能交接上,就会吃个大亏。

2、30+计算机组成原理核心要点

作者会把整个的计算机组成原理通过指令、计算、CPU、存储系统和IO串起来,以一个程序的执行过程进行逐层分解,从历史视角讲清楚“是什么”,结合案例讲清楚“怎么做”,带你搞懂计算机组成原理中最核心、最重要的内容。

3、洞悉性能问题的本质

学习计算机组成原理,其实就是理解计算机是怎么运作的,以及为什么这么运作。在此基础上,我们才能又快又准地优化性能,提升效率。而我们想要解决性能问题,其实就是在此基础上,去关注时钟周期时间、每条指令的平均时钟周期数CPI、指令数。

4、组成原理在工业界的实际应用

理解了计算机各个组件的运作之后,还将手把手带你实操。利用存储器层次结构设计大型 DMP 系统,并通过 Disruptor,跟你一起感受 CPU 的风驰电掣,让你真正学有所用。

“练拳不练功,到老一场空”。做一个真正的工程师,越早弄清楚计算机的底层原理,在你的知识体系中“储蓄”起这些知识,也就意味着你有越长的时间来收获学习知识的“利息”。长久的“复利效应”,会让你的未来走的更远更轻松。

那些值得推荐和收藏的线性代数学习资源

关于线性代数的重要性,很多做机器学习的同学可能会感同身受,这里引用“牛人林达华推荐有关机器学习的数学书籍”这篇文章中关于线性代数的一段话:

线性代数 (Linear Algebra):

我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要。这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的。我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是

Introduction to Linear Algebra (3rd Ed.) by Gilbert Strang.

这本书是MIT的线性代数课使用的教材,也是被很多其它大学选用的经典教材。它的难度适中,讲解清晰,重要的是对许多核心的概念讨论得比较透彻。我个人觉得,学习线性代数,最重要的不是去熟练矩阵运算和解方程的方法——这些在实际工作中MATLAB可以代劳,关键的是要深入理解几个基础而又重要的概念:子空间(Subspace),正交(Orthogonality),特征值和特征向量(Eigenvalues and eigenvectors),和线性变换(Linear transform)。从我的角度看来,一本线代教科书的质量,就在于它能否给这些根本概念以足够的重视,能否把它们的联系讲清楚。Strang的这本书在这方面是做得很好的。

而且,这本书有个得天独厚的优势。书的作者长期在MIT讲授线性代数课(18.06),课程的video在MIT的Open courseware网站上有提供。有时间的朋友可以一边看着名师授课的录像,一边对照课本学习或者复习。

https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/
(注:这里我修正了一下链接,原文链接已经没有了)

那么这里首推的线性代数学习资源就是 Gilbert Strang 教授的这门线性代数课程了,除了上面链接中官方主页的英文原版外,国内网易公开课也早已引进并有同步翻译。

1. 麻省理工公开课:线性代数

http://open.163.com/special/opencourse/daishu.html

课程介绍:

“线性代数”,同微积分一样,是高等数学中两大入门课程之一,不仅是一门非常好的数学课程,也是一门非常好的工具学科,在很多领域都有广泛的用途。它的研 究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。本课程讲述了矩阵理论及线性代数的基本知识,侧重于那些与其他学科相关的内容, 包括方程组、向量空间、行列式、特征值、相似矩阵及正定矩阵。

课程主讲人:Gilbert Strang 教授

吉尔伯特-斯特朗:1934年11月27日出生,是美国享有盛誉的数学家,在有限元理论、变分法、小波分析及线性代数方面均有所建树。他对教育的贡献尤为 卓著,包括所著有的七部经典数学教材及一部专著。斯特朗自1962年至今担任麻省理工学院教授,其所授课程《线性代数导论》、《计算科学与工程》均在 MIT开放课程软件(MIT OpenCourseWare)中收录,获得广泛好评。

我大概在2013年学习过这门课程,也花了很多时间找这门课程的书籍资源,最终锁定了这本书的第四版英文版电子版:Introduction to Linear Algebra_4ED_Strang ,感兴趣的同学可以关注我们的公众号AINLP,后台回复”xiandai”获取下载链接。

2. 3Blue1Brown: Essence of linear algebra(线性代数的本质)

如果说上面 Gilbert Strang 教授的线性代数课程和书籍都是大部头,那么鼎鼎大名的3Blue1Brown出品的这个线性代数的本质系列视频就是开胃菜,总共14个小视频,视频控制在9-18分钟之间,很适合短时间快速温习。不过这套视频的评价也很高,以下是来自《3Blue1Brown:“线性代数的本质”完整笔记》的点评:

我最早系统地学习线性代数是在大二时候,当时特意选修了学校物理系开设的4学分的线代,大概也就是比我们自己专业的线代多了一章向量空间的内容,其实最后上完发现,整个课程内容还是偏向于计算,对线性代数的几何直觉少有提起,对线性代数的实际运用更是鲜有涉及。同济的那本薄薄的如同九阴真经一般的教材,把线性代数讲的云里雾里,当时一个人在自习教室度过多少不眠之夜,一点一点去思考其概念定理背后的实际意义,多半也是边猜边想,苦不堪言。直到多年以后,有幸在网上听到了MIT的Strang老师开设的线代公开课,才对一些基础概念渐渐明朗,虽然至今又过去了很多年,但是对一些本质的理解,依然清晰。
不过,仔细想想,国内的教材写的云里雾里,才促使了我自发的思考,如果一切得来太容易,也许就不会那么刻骨铭心。我很早之前就想过这个问题,国内的教科书作者简直就是在下一盘大棋,自己出版的书写的高深莫测,翻译国外的书又翻译的含糊曲折,那么留给学生的只有两条路,要么去看原版的英语书,要么就是自己一点点看云雾缭绕的国产书,边猜边想边证明,不管走哪条路,都能走向成功。

最近,在youtube上看到了3Blue1Brown的Essence of linear algebra这门课,有种如获至宝的感觉,整个课程的时间并不长,但是对线性代数的讲解却十分到位,有种浓缩版的Gilbert Strang线代课程的感觉。希望通过这个课程,重温一下Linear Algebra。

这个视频,可以在油管上看官方原版:Essence of linear algebra
也可以在B站上观看:线性代数的本质 – 01 – 向量究竟是什么?
https://www.bilibili.com/video/av5987715/

3. Immersive Linear Algebra

用交互式可视化方法学习数学估计是很多同学梦寐以求的,前两天看到这条微博:

《英文版的线性代数电子书:Immersive Linear Algebra》该书是今天 Hacker News 首页头条。号称是全球第一个全交互式图形的线代电子书。

所以在这里收藏一下,有空的同学可以试一下这个在线学习线性代数的网站,不过看似还有最后两个章节没有完成:http://immersivemath.com/ila/index.html

4. Matrix Algebra for Engineers

http://coursegraph.com/coursera-matrix-algebra-engineers

香港科技大学的面向工程师的矩阵代数(Matrix Algebra for Engineers),该课程介绍的全部是关于矩阵的知识,涵盖了工程师应该知道的线性代数相关知识。学习这门课程的前提是高中数学知识,最好完成了单变量微积分课程之后选修该课程效果更佳。

This course is all about matrices, and concisely covers the linear algebra that an engineer should know. We define matrices and how to add and multiply them, and introduce some special types of matrices. We describe the Gaussian elimination algorithm used to solve systems of linear equations and the corresponding LU decomposition of a matrix. We explain the concept of vector spaces and define the main vocabulary of linear algebra. We develop the theory of determinants and use it to solve the eigenvalue problem. After each video, there are problems to solve and I have tried to choose problems that exemplify the main idea of the lecture. I try to give enough problems for students to solidify their understanding of the material, but not so many that students feel overwhelmed and drop out. I do encourage students to attempt the given problems, but if they get stuck, full solutions can be found in the lecture notes for the course. The mathematics in this matrix algebra course is presented at the level of an advanced high school student, but typically students would take this course after completing a university-level single variable calculus course.

这门课程有个lecture-notes可以直接下载:
http://www.math.ust.hk/~machas/matrix-algebra-for-engineers.pdf

5. Mathematics for Machine Learning: Linear Algebra

http://coursegraph.com/coursera-linear-algebra-machine-learning

伦敦帝国理工学院的 面向机器学习的数学-线性代数课程(Mathematics for Machine Learning: Linear Algebra),这个课程属于Mathematics for Machine Learning Specialization 系列,该系列包含3门子课程,涵盖线性代数,多变量微积分,以及主成分分析(PCA),这个专项系列课程的目标是弥补数学与机器学习以及数据科学鸿沟:Mathematics for Machine Learning。Learn about the prerequisite mathematics for applications in data science and machine learning

In this course on Linear Algebra we look at what linear algebra is and how it relates to vectors and matrices. Then we look through what vectors and matrices are and how to work with them, including the knotty problem of eigenvalues and eigenvectors, and how to use these to solve problems. Finally we look at how to use these to do fun things with datasets – like how to rotate images of faces and how to extract eigenvectors to look at how the Pagerank algorithm works. Since we’re aiming at data-driven applications, we’ll be implementing some of these ideas in code, not just on pencil and paper. Towards the end of the course, you’ll write code blocks and encounter Jupyter notebooks in Python, but don’t worry, these will be quite short, focussed on the concepts, and will guide you through if you’ve not coded before. At the end of this course you will have an intuitive understanding of vectors and matrices that will help you bridge the gap into linear algebra problems, and how to apply these concepts to machine learning.

6. 可汗学院公开课:线性代数

http://open.163.com/special/Khan/linearalgebra.html

网易公开课引进翻译的可汗学院线性代数公开课,总共143集,每集短小精悍:

在这个课程里面,主讲者介绍了线性代数的很多内容,包括:矩阵,线性方程组,向量及其运算,向量空间,子空间,零空间,变换,秩与维数,正交化,特征值与特征向量,等等。以上这些内容是线性代数的关键内容,它们也被广泛地应用到现代科学当中。

关于线性代数学习资源,还有很多,这里仅仅抛砖引玉,欢迎大家留言提供线索。

最后,提供一个线性代数学习资源的“大礼包”,包括Gilbert Strang 教授线性代数英文教材第四版电子版,香港科技大学的面向工程师的矩阵代数课程notes,以及从其他地方收集的线性代数网盘资源,感兴趣的同学可以关注我们的公众号AINLP,回复”xiandai”获取:

注:原创文章,转载请注明出处“课程图谱博客”:http://blog.coursegraph.com

本文链接地址:那些值得推荐和收藏的线性代数学习资源 http://blog.coursegraph.com/?p=1014

Geoffrey Hinton 大神面向机器学习的神经网络公开课及相关视频资料

Geoffrey Hinton 大神的”面向机器学习的神经网络(Neural Networks for Machine Learning)“公开课早在2012年就在 Coursera 上开过一轮,之后一直沉寂,直到 Coursera 新课程平台上线,这门经典课程已开过多轮次,之前我们在《深度学习课程资源整理》隆重推荐过。

1月15日,Geoffrey Hinton 大神在twitter上宣布:

My Coursera MOOC “Neural Networks for Machine Learning” was prepared in 2012 and is now seriously out of date so I have asked them to discontinue the course. But the lectures are still a good introduction to many of the basic ideas and are available at https://www.cs.toronto.edu/~hinton/coursera_lectures.html

大意是这门在Coursera上的MOOC课程是在2012年准备的,现在有点过时了,所以要求他们(Coursera)停止提供这门课程。但是这门深度学习课程依然是介绍神经网络相关基础概念的好资料,所以课程视频依然保留在多伦多大学hinton大神的主页下,感兴趣的同学可以直接观看:https://www.cs.toronto.edu/~hinton/coursera_lectures.html

我试了一下Coursera,发现如果之前注册过,还能打开这门课程,但是一旦是非登录状态后,这门课程已经无法在Coursera上找到了:

https://www.coursera.org/learn/neural-networks

这样稍微有点遗憾,不能在Coursera上做相关的Quiz,感兴趣的同学可以参考课程图谱上早期关于这门课程的评论:

http://coursegraph.com/coursera_neuralnets

“宗派大师+开拓者直接讲课,秒杀一切二流子!”

“巨牛级别的人物来开课,我也不说啥了。”

“还有什么好说的呢?Deep Learning必修课程啊!”

该课程最后在Coursera上开课的时间大概在2018年11月份:

http://coursegraph.com/coursera-neural-networks

最后,如果你觉得访问多伦多Hinton教授主页那个教程页面不方便,这里提供早期从Coursera上下载的课程版本,包括视频、PPT、英文字幕等,关注AINLP公众号,回复“hinton”获取:

注:原创文章,转载请注明出处“课程图谱博客”:http://blog.coursegraph.com

本文链接地址:Geoffrey Hinton 大神面向机器学习的神经网络公开课及相关视频资料 http://blog.coursegraph.com/?p=985

Andrew Ng 老师新推的通俗人工智能课程以及其他相关资料

Andrew Ng 老师是我的偶像,他在普及机器学习和深度学习的道路上纵情向前,这不他又在 Coursera 上新推了一门通俗人工智能课程:AI For Everyone(全民AI)

http://coursegraph.com/coursera-ai-for-everyone

这门课程面向大众进行AI科普,将于2019年年初开课,目前已经可以注册课程。AI不仅适用于工程师,这门非技术性人工智能课程将帮助学习者了解机器学习和深度学习等相关技术,以及将AI应用于自己组织中的问题和机会。 通过这门课程,学习者将会了解当前人工智能可以或者不能做的事情。最后,学习者将了解AI如何影响社会以及我们将如何应对这种技术变革。

AI is not only for engineers. This non-technical course will help you understand technologies like machine learning and deep learning and spot opportunities to apply AI to problems in your own organization. You will see examples of what today’s AI can – and cannot – do. Finally, you will understand how AI is impacting society and how to navigate through this technological change.

If you are a non-technical business leader, “AI for Everyone” will help you understand how to build a sustainable AI strategy. If you are a machine learning engineer or data scientist, this is the course to ask your manager, VP or CEO to take if you want them to understand what you can (and cannot!) do.

下面,我们细数一下Andrew Ng老师在机器学习&深度学习&人工智能科普道路上的孜孜不倦:

0. 斯坦福大学公开课 :机器学习课程

http://open.163.com/special/opencourse/machinelearning.html

这是 OpenCourse 刚刚兴起时流传的机器学习课程,来自斯坦福大学课堂录制,Andrew Ng老师亲授,难度相对大一些,印象最深的还是那个奔跑在林间无人驾驶视频:

人工智能的发展到已经进入了一个瓶颈期。近年来各个研究方向都没有太大的突破。真正意义上人工智能的实现目前还没有任何曙光。但是,机器学习无疑是最有希望实现这个目标的方向之一。斯坦福大学的“Stanford Engineering Everywhere ”免费提供学校里最受欢迎的工科课程,给全世界的学生和教育工作者。得益于这个项目,我们有机会和全世界站在同一个数量级的知识起跑线上。

1. Andrew Ng 老师的 机器学习课程(Machine Learning)

http://coursegraph.com/coursera-machine-learning

Coursera创办之初的扛鼎之作,Andrew Ng老师为Mooc时代亲自打造的机器学习课程,难度简化了不少,机器学习入门首选课程。这门课程从一开始诞生就备受瞩目,据说全世界有数百万人通过这门课程入门机器学习。课程的级别是入门级别的,对学习者的背景要求不高,Andrew Ng 老师讲解的又很通俗易懂,所以强烈推荐从这门课程开始走入机器学习。课程简介:

机器学习是一门研究在非特定编程条件下让计算机采取行动的学科。最近二十年,机器学习为我们带来了自动驾驶汽车、实用的语音识别、高效的网络搜索,让我们对人类基因的解读能力大大提高。当今机器学习技术已经非常普遍,您很可能在毫无察觉情况下每天使用几十次。许多研究者还认为机器学习是人工智能(AI)取得进展的最有效途径。在本课程中,您将学习最高效的机器学习技术,了解如何使用这些技术,并自己动手实践这些技术。更重要的是,您将不仅将学习理论知识,还将学习如何实践,如何快速使用强大的技术来解决新问题。最后,您将了解在硅谷企业如何在机器学习和AI领域进行创新。 本课程将广泛介绍机器学习、数据挖掘和统计模式识别。相关主题包括:(i) 监督式学习(参数和非参数算法、支持向量机、核函数和神经网络)。(ii) 无监督学习(集群、降维、推荐系统和深度学习)。(iii) 机器学习实例(偏见/方差理论;机器学习和AI领域的创新)。课程将引用很多案例和应用,您还需要学习如何在不同领域应用学习算法,例如智能机器人(感知和控制)、文本理解(网络搜索和垃圾邮件过滤)、计算机视觉、医学信息学、音频、数据库挖掘等领域。

这里有老版课程评论,非常值得参考推荐:Machine Learning

http://coursegraph.com/coursera_ml

3. Andrew Ng (吴恩达) 深度学习专项课程 by Coursera and deeplearning.ai

http://coursegraph.com/coursera-specializations-deep-learning

这是 Andrew Ng 老师离开百度后推出的第一个深度学习项目(deeplearning.ai)的一个课程: Deep Learning Specialization ,课程口号是:Master Deep Learning, and Break into AI. 作为 Coursera 联合创始人 和 机器学习网红课程Machine Learning” 的授课者,Andrew Ng 老师引领了数百万同学进入了机器学习领域,而这门深度学习课程的口号也透露了他的野心:继续带领百万人进入深度学习的圣地。

作为 Andrew Ng 老师的粉丝,依然推荐这门课程作为深度学习入门课程首选,并且建议花费上 Coursera 的课程,一方面可以做题,另外还有证书,最重要的是它的编程作业,是理解课程内容的关键点,仅仅看视频绝对是达不到这个效果的。参考:《Andrew Ng 深度学习课程小记》和《Andrew Ng (吴恩达) 深度学习课程小结》。

4. Machine Learning Yearning

Andrew Ng 老师在今年推的一个机器学习经验的小册子,前段时间完成所有章节的写作,我看了英文版,全书几乎没有公式,主要是机器学习实践经验的分享,很不错的总结,对于机器学习从业人员来说,可以时不时的拿来参考一下。这本书似乎有一个准中文翻译网站,不太确定是否是官方的,将这本书翻译为《机器学习训练秘籍》,感兴趣的同学也可以在这里读中文版。

最后分享一下之前收集的Andrew Ng老师的相关课程资料和书籍,来源于互联网,包括早年机器学习课程的视频,深度学习课程的作业整理,Machine Learning Yearning的英文版和中文版等,感兴趣的同学可以关注我们的微信公众号: AINLP, 回复”ng”获取:

注:原创文章,转载请注明出处“课程图谱博客”:http://blog.coursegraph.com

本文链接地址:Andrew Ng 老师新推的通俗人工智能课程以及其他相关资料 http://blog.coursegraph.com/?p=949