吴恩达深度学习教程中文笔记

8 月 8 日,吴恩达在他自己创办的在线教育平台 Coursera 上线了他的人工智能专项课程(Deep Learning Specialization)。此课程广受好评,通过视频讲解、作业与测验等让更多的人对人工智能有了了解与启蒙,国外媒体报道称:吴恩达这次深度学习课程是迄今为止,最全面、系统和容易获取的深度学习课程,堪称普通人的人工智能第一课。这些课程专为已有一定基础(基本的编程知识,熟悉 Python、对机器学习有基本了解),想要尝试进入人工智能领域的计算机专业人士准备。介绍显示:“深度学习是科技业最热门的技能之一,本课程将帮你掌握深度学习。”

在这 5 堂课中,学生将可以学习到深度学习的基础,学会构建神经网络,并用在包括吴恩达本人在内的多位业界顶尖专家指导下创建自己的机器学习项目。Deep Learning Specialization 对卷积神经网络 (CNN)、递归神经网络 (RNN)、长短期记忆 (LSTM) 等深度学习常用的网络结构、工具和知识都有涉及。

课程中也会有很多实操项目,帮助学生更好地应用自己学到的深度学习技术,解决真实世界问题。这些项目将涵盖医疗、自动驾驶、和自然语言处理等时髦领域,以及音乐生成等等。Coursera 上有一些特定方向和知识的资料,但一直没有比较全面、深入浅出的深度学习课程——《深度学习专业》的推出补上了这一空缺。

课程的语言是 Python,使用的框架是 Google 开源的 TensorFlow。最吸引人之处在于,课程导师就是吴恩达本人,两名助教均来自斯坦福计算机系。完成课程所需时间根据不同的学习进度,大约需要3-4个月左右。学生结课后,Coursera 将授予他们 Deep Learning Specialization 结业证书。

“我们将帮助你掌握深度学习,理解如何应用深度学习,在人工智能业界开启你的职业生涯。”

吴恩达在课程页面中提到。

GitHub地址项目 GitHub 地址

OpenAI 重磅发布深度强化学习资源

在项目主页中,OpenAI 提供了非常完整的使用教程,包括 Spinning Up 的详细介绍、各种环境下的安装方法、收录的算法,以及实验实现的教程等。除此之外,OpenAI 也提供了丰厚的学习资料,包括:强化学习的入门基础、结合 Spinning Up 学习 RL 的课程、论文推荐、实验练习和基准结果参考等。给人的第一印象就是,要想在深度强化学习上从 Zero 到 Hero,天天逛这个网站就够了。

线性代数与张量开放课程

数学是机器学习的基础。斯坦福大学教授 Stephen Boyd 联合加州大学洛杉矶分校的 Lieven Vandenberghe 教授出版了一本基础数学书籍《Introduction to Applied Linear Algebra》,从向量到最小二乘法,分三部分进行讲解并配以辅助资料。此外,这本书也是斯坦福 EE103 课程、UCLA EE133A 课程的教材,由剑桥大学出版社出版(允许网络公开)。

该书还可用于自学,并辅以在线提供的资料,例如下面这份 470 页的 PPT.

人工智能、机器学习和认知计算

近日,IBM 发布了《人工智能、机器学习和认知计算入门指南

几千年来,人们就已经有了思考如何构建智能机器的想法。从那时开始,人工智能 (AI) 经历了起起落落,这证明了它的成功以及还未实现的潜能。如今,随时都能听到应用机器学习算法来解决新问题的新闻。从癌症检测和预测到图像理解和总结以及自然语言处理,AI 正在增强人们的能力和改变我们的世界。

现代 AI 的历史包含一部伟大的戏剧应具有的所有要素。上世纪 50 年代,随着对思维机器及阿兰·图灵和约翰·冯·诺依曼等著名人物的关注,AI 开始崭露头角。尽管随后经历了数十年的繁荣与萧条,并被寄予了难以实现的厚望,但 AI 和它的先驱们仍然一直在努力前行。如今,AI 展现出了它的真正潜力,专注于应用并提供深度学习和认知计算等技术。

新一代人工智能的时间线
新一代人工智能的时间线

Python 交互式的学习资源

Project Python 是一本免费的交互式书籍,它通过使用图形、动画和游戏来教你用 Python编写代码。后面你还将学到解决经典计算机科学问题的方法,软件设计的原则,以及如何分析算法性能。即使基础薄弱你也不会感到吃力。交互书籍覆盖的内容包括:

  • 功能,抽象和风格
  • 变量和表达式
  • 循环和条件
  • 调试
  • 参数,返回值和范围
  • 动画; 鼠标和键盘输入
  • 列表和 for 循环
  • 读写文本文件
  • 嵌套循环
  • 物理模拟
  • 类和对象
  • 递归
  • 排序
  • 分析算法
  • 分类算法分析
  • 堆栈,队列和词典
  • 链接列表
  • 图表

23 个 Pandas 核心操作

Pandas 是基于 NumPy 构建的库,在数据处理方面可以把它理解为 NumPy 加强版,同时 Pandas 也是一项开源项目。它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及非浮点数据。在本文中,基本数据集操作主要介绍了 CSV 与 Excel 的读写方法,基本数据处理主要介绍了缺失值及特征抽取,最后的 DataFrame 操作则主要介绍了函数和排序等方法。

读取 CSV 格式的数据集

pd.DataFrame.from_csv(“csv_file”)

或者

pd.read_csv(“csv_file”)

读取 Excel 数据集

pd.read_excel("excel_file")

将 DataFrame 直接写入 CSV 文件

如下采用逗号作为分隔符,且不带索引:

df.to_csv("data.csv", sep=",", index=False)

基本的数据集特征信息

df.info()

基本的数据集统计信息

print(df.describe())

将 DataFrame 输出到一张表

print(tabulate(print_table, headers=headers))

当「print_table」是一个列表,其中列表元素还是新的列表,「headers」为表头字符串组成的列表。

列出所有列的名字

df.columns

删除缺失数据

df.dropna(axis=0, how='any')

返回一个 DataFrame,其中删除了包含任何 NaN 值的给定轴,选择 how=「all」会删除所有元素都是 NaN 的给定轴。

替换缺失数据

df.replace(to_replace=None, value=None)

使用 value 值代替 DataFrame 中的 to_replace 值,其中 value 和 to_replace 都需要我们赋予不同的值。

检查空值 NaN

pd.isnull(object)

检查缺失值,即数值数组中的 NaN 和目标数组中的 None/NaN。

删除特征

df.drop('feature_variable_name', axis=1)

axis 选择 0 表示行,选择表示列。

将目标类型转换为浮点型

pd.to_numeric(df["feature_name"], errors='coerce')

将目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。

将 DataFrame 转换为 NumPy 数组

df.as_matrix()

取 DataFrame 的前面「n」行

df.head(n)

通过特征名取数据

df.loc[feature_name]

对 DataFrame 使用函数

该函数将令 DataFrame 中「height」行的所有值乘上 2:

df["height"].apply(*lambda* height: 2 * height)

或者:

def multiply(x):
return x * 2
df["height"].apply(multiply)

重命名行

下面代码会重命名 DataFrame 的第三行为「size」:

df.rename(columns = {df.columns[2]:'size'}, inplace=True)

取某一行的唯一实体

下面代码将取「name」行的唯一实体:

df["name"].unique()

访问子 DataFrame

以下代码将从 DataFrame 中抽取选定了的行「name」和「size」:

new_df = df[["name", "size"]]

总结数据信息

# Sum of values in a data frame
df.sum()
# Lowest value of a data frame
df.min()
# Highest value
df.max()
# Index of the lowest value
df.idxmin()
# Index of the highest value
df.idxmax()
# Statistical summary of the data frame, with quartiles, median, etc.
df.describe()
# Average values
df.mean()
# Median values
df.median()
# Correlation between columns
df.corr()
# To get these values for only one column, just select it like this#
df["size"].median()

给数据排序

df.sort_values(ascending = False)

布尔型索引

以下代码将过滤名为「size」的行,并仅显示值等于 5 的行:

df[df["size"] == 5]

选定特定的值

以下代码将选定「size」列、第一行的值:

df.loc([0], ['size'])

自然语言处理最新教材开放下载

乔治亚理工大学 Jacob Eisenstein 教授开放了自然语言处理领域的最新教材《Natural Language Processing》,该教材 2018 年 6 月第一版的 PDF 已经在 GitHub 上开放下载。这本书的内容主要分为四大章节,即 NLP 中监督与无监等学习问题、序列与解析树等自然语言的建模方式、语篇语义的理解,以及后这些技术最在信息抽取、机器翻译和文本生成等具体任务中的应用。

Eisenstein 将这一本非常完善的教材称之为「Notes」,它是在乔治亚理工大学学习自然语言处理相关领域所需要了解的基础。例如在介绍自然语言处理理论与方法的课程 CS4650/7650 中,这本开放书籍就作为标准的课程教材。

CS4650/7650 2018 春季课程需要阅读 GitHub 目录下 eisenstein-nlp-notes-jan-10-2018.pdf 文件,而另外一个文件 eisenstein-nlp-notes.pdf 会包含一些章节上的更新,不过它会在整个学期内进行。Eisenstein 表示这本开放书籍也可以用于其它研究或课程,书籍上的任何误差或反馈都能直接发邮件给作者。

自然语言处理是令计算机能访问人类语言的一组方法。在过去的十年中,自然语言处理已经深入了我们的日常生活:自动机器翻译在网站和社交媒体中已经无处不在、文本分类确保了电子邮箱在海量垃圾邮件中屹立不倒、搜索引擎已经不再只是字符匹配与网络分析,它已经能理解高维度的复杂语言,还有近来对话系统的兴起也令信息的分享与交互更高效。

这些强大的应用其实都基于一套通用的思想,即利用算法、语言规则、逻辑和统计知识理解自然语言。这本书的目的是提供这些思想与技术的基础,并应用于各种实际的任务中。此外,这本书除了详细的概念与算法,同时还包括一些高阶主题,读者可按需求学习与阅读。

此前,机器之心网站做了详细的课程介绍

GitHub地址项目 GitHub 地址

吴恩达《机器学习思维》公开预订

人工智能、机器学习和深度学习正在改变众多行业。吴恩达一直在写一本书:机器学习思维(Machine Learning Yearning),教你如何构建机器学习项目。本书的重点不在于教授机器学习算法,而在于如何使机器学习算法发挥作用。一些技术类的 AI 课程会给你一个锤子;而这本书教你,如何使用机器学习这把锤子。如果你渴望成为 AI 的技术领导者并想学习如何为你的团队设定方向,这本书将会对你有帮助。

阅读《Machine Learning Yearning》后,您将获取以下内容:

  • 如何了解到 AI 项目最有前途的方向;
  • 如何诊断机器学习系统中的错误;
  • 如何在复杂设置中构建 ML,例如不匹配的训练/测试集;
  • 如何建立一个 ML 项目来比较与人类的表现;
  • 如何了解何时以及如何应用端到端学习、迁移学习和多任务学习。

从之前的经验看,学习如何制定这些“战略性”决策的唯一方法是,在研究生课程或公司中,通过多年积累的经验来培养。我正在写的这本机器学习思维,希望可以帮你快速获得这项技能,以便可以更好地构建新一代人工智能系统。

这本书大约有 100 页,包含许多易于阅读的只有 1 – 2 页的章节。如果你希望在每章完成后收到草稿,请注册邮件列表。点击注册网站后,可以免费收到最新完成的章节。同时,你可以看到一封吴恩达写给大家的名为《你如何组织一个 AI 项目?》的公开信,详细阐述了这本书将涵盖的内容以及他写这本书的目的。

UC Berkeley 在线课程:数据科学、机器学习、推理重采样

近日,伯克利 RISE 实验室在教育网络平台上开放了一门免费的数据科学入门课程,该课程面向那些需要学习数据科学而又缺少数学及编程经验的人,除了数据科学基础,也涵盖了机器学习课程。

数据科学基础系列课将从头开始教授计算和推理思想。它涵盖了从测试假设,应用统计推断,可视化分布和绘制结论等所有内容,值得一提的是,所有编程作业都是在 Python 中编写代码并使用真实世界的数据集。

其中一门课程会让学生基于从不同国家收集的多年来的经济数据跟踪全球经济增长。另一门课程会使用细胞样本数据集来创建能够诊断乳腺癌的分类算法。在现实世界中进行数据科学的探索,能够使前沿的统计学和计算机科学概念更加直观,并且适合于每一个普通人。

在这个日益变得数据驱动化的世界中,Data 8X 课程为学生提供了一个机会,无论他们身处世界的哪一个角落、年纪多大、有什么样的教育背景,都可以学习如何使用、理解和应用数据科学概念。参与课程的学员只需要在网站提供的 Jupyter Notebook 编程环境下学习和完成作业,其中包含了开始编码所需的所有工具,无需任何复杂的安装过程或陡峭的学习曲线。本课程不要求学员具备任何统计学、计算机科学或编程经验。三门免费课程包括:

  • 数据科学基础: 使用 Python 进行计算思维,通过使用流行的编程语言 Python,教授计算思维的基础知识,这是当今数据驱动世界的基本技能。
  • 重采样思维: 通过重采样的推理思维教导如何使用推理思维根据随机样本中的数据对未知数作出结论。
  • 预测和机器学习: 教授如何使用机器学习,专注于回归和分类,自动识别数据模式并做出更好的预测。

UC Berkeley 深度强化学习开放课程

UC Berkeley 最近发布了 CS 294: Deep Reinforcement Learning, Fall 2017 —— 深度强化学习的开放课程资源(中文翻译),这个课适合已经有一定机器学习基础的同学学习。同时,该课程主题选择深度增强学习,即紧跟当前人工智能研究的热点,又可作为深度学习的后续方向,值得推荐。

深度强化学习可以说是人工智能领域现在最热门的方向,吸引了众多该领域优秀的科学家去发掘其能力极限。而深度强化学习本身也由于其通用性备受各个应用领域推崇,从端对端游戏控制、机器人手臂控制、推荐系统,甚至也来到了自然语言对话系统。然而如何在日新月异,几乎每日都在更新迭代的深度强化学习的进展中保持好节奏,那是这篇文章带给大家的建议和思考。

RStudio 2018 大会资料下载

2018 年 R 语言盛会:RStudio 大会官方发布了会议的全部资料。大会发布了呈现在各种主题上的网络研讨会和视频,涵盖软件包,产品(包括开源和商业),邀请演讲嘉宾,以及常规问答录音 —— 所有材料将免费提供。R 语言作为数据科学,数理统计学的专业核心学科,本次大会更将材料分类为:

  • RStudio 基础
  • RStudio 连接
  • Shiny 交互数据分析处理平台基础
  • Shiny 进阶
  • 数据科学基础
  • 高级数据科学
  • sparklyr R 语言到 Spark 连接软件库

是一份非常有价值的学习与科研材料。

GitHub地址项目GitHub地址

MIT 通用人工智能开放课程

继开放自动驾驶课程深度学习入门课程之后,MIT 近期又开放了一门偏工程的人工智能课程 —— MIT 6.S099: Artificial General Intelligence(通用人工智能),官方介绍该课程将采用工程方法探索建立人类智能的可能研究路径。与MIT 深度学习入门课程相比(6.S191: Introduction to Deep Learning),这门课程更偏工程和业内,同时也请到了非常多的大咖加盟。除了 MIT 自家的教授和其他高校研究者的日常课程,还有 5 次课程邀请到了相关从业者,包括特斯拉的AI研究中心负责人 Andrej Karpathy、波士顿动力CEO Marc Raibert、OpenAI 的联合创始人 Ilya Sutskever 等都讲带来各自领域的演讲。

这门课将用工程方法探索建立类人智能的可能研究路径。

讲座将介绍目前对计算智能的理解,以及深度学习、强化学习,计算神经科学、机器人技术,认知建模、心理学等领域的深入见解,还将包括人工智能安全和道德伦理等方面的课程。这一系列课程将力图让学生了解最先进的机器学习方法、相关局限性以及如何克服这些限制。该课程还将包括几次业界嘉宾讲座。

MIT 深度学习开放课程

在开放了 MIT 6.S094 深度学习与自动驾驶开放课程之后,MIT 近期又开放了一门更偏概述的深度学习课程 —— MIT 6.S191: Introduction to Deep Learning(深度学习入门),官方介绍该课程为一门对深度学习算法和应用的入门课程(An introductory course on deep learning algorithms and their applications)。

Coursera 和其他高校开放的深度学习入门课程已不少,与已有课程相比,本课程的一大亮点可能是业内一票应用大咖公司的案例介绍,包括谷歌、英伟达、IBM 以及中国公司腾讯,都对本课程提供了案例分享,并在每个部分都提供了实验室支持。

吴恩达深度学习课程笔记更新

此前汇总的一份《吴恩达深度学习系列课程,笔记及代码汇总》,最近又有大神进行了笔记更新。Tess Ferrandez 在 SlideShare 网站上分享了的一份《Notes from Coursera Deep Learning courses by Andrew Ng》更获得吴恩达的推荐。这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习,还适合机器学习从业者和研究者复习基本概念。这不仅仅是一份课程笔记,同时还是一套信息图与备忘录。笔记 PDF 版网盘备用链接。

Google AI 线上机器学习开放课程

Google 发布了一套使用 TensorFlow API 进行机器学习的速成课程(MLCC):节奏紧凑、内容实用 —— 最重要的,是提供完整的中文服务。机器学习速成课程共 15 课时讲解,25 节课程,以及 40 多项练习。包含一系列视频讲座课程、实际案例分析和实践练习,以及基于:California Housing Data Set 数据集的实验练习指导。

通过该课程,能了解 Google 专家针对机器学习方面的关键概念提供的最佳做法,包括 ——

  • 机器学习与传统编程有何不同?
  • 什么是损失,如何衡量损失?
  • 梯度下降法的运作方式是怎样的?
  • 如何确定我的模型是否有效?
  • 怎样为机器学习提供我的数据?
  • 如何构建深度神经网络?

同时,该机器学习速成课程并不会假定或要求您预先掌握机器学习方面的任何知识。但是,为了能够理解课程中介绍的概念并完成练习,您最好满足以下前提条件:

  • 掌握入门级代数知识。 您应该了解变量和系数、线性方程式、函数图和直方图(熟悉对数和导数等更高级的数学概念会有帮助,但不是必需条件)。
  • 熟练掌握编程基础知识,并且具有一些使用 Python 进行编码的经验。 机器学习速成课程中的编程练习是通过 TensorFlow 并使用 Python 进行编码的。您无需拥有使用 TensorFlow 的任何经验,但应该能够熟练阅读和编写包含基础编程结构(例如,函数定义/调用、列表和字典、循环和条件表达式)的 Python 代码。

课程地址:https://developers.google.com/machine-learning/crash-course/