免费哈佛课程:Python人工智能导论

‘免费哈佛课程:Python人工智能导论’

 

初学者在学习人工智能时面临的最大问题之一是选择最好的资源。因为有数不清的资源可供选择。哈佛大学开设的CS50’s Introduction to Artificial Intelligence with Python是一个学习人工智能的极好资源。

在7周的课程中,你将首先学习数学逻辑和图搜索算法的基本概念。然后,你还将学习机器学习、神经网络和语言模型。更重要的是,在完成本课程的过程中,你还将构建几个有趣的项目。

如果你想在学习本课程之前恢复你的编程基础,可以参考CS50x Introduction to Computer Science(也是免费的),以便迅速掌握编程和计算机科学的基础知识。

接下来,让我们来回顾一下课程内容。

课程链接:CS50’s Introduction to Artificial Intelligence with Python

 

1. 搜索 

 

给定两点A和B,搜索算法的目标是找到A和B之间的路径。而最优解通常是A和B之间的最短路径。例如,可以找到任意两个地点之间的最短路线的导航应用就是搜索算法的一个示例。

这个关于搜索的第一个模块涵盖以下主题:

  • 深度优先搜索(DFS)
  • 广度优先搜索(BFS)
  • 贪婪最佳优先搜索
  • A*搜索 
  • 极小极大算法
  • Alpha-beta剪枝

以下是你将为这个模块构建的项目:

  • 两个演员之间的分隔度(灵感来自于六度分隔理论游戏)
  • 一个玩井字棋的人工智能 

链接:搜索

 

2. 知识

 

第二个模块专注于基于知识的代理人,他们使用现有知识来得出结论。

因此,搜索(第一个模块)和知识模块都以图形算法和数学逻辑为基础。在随后的模块中,你将学习有关机器学习和优化的知识。

这个关于知识的第二个模块涵盖以下内容:

  • 命题逻辑 
  • 蕴涵
  • 推理 
  • 模型检查 
  • 解析 
  • 一阶逻辑

你将构建以下项目:

  • 骑士:一个解决逻辑谜题和玩猜数字游戏的程序
  • 构建一个玩扫雷的人工智能

链接:知识 

 

3. 不确定性 

 

概率是学习机器学习时最重要的概念之一。这个模块将教授你概率和随机变量的基本概念。你将完成两个有趣的项目来结束这个模块。

这个模块涵盖以下内容:

  • 概率 
  • 条件概率 
  • 随机变量 
  • 独立性
  • 贝叶斯网络 
  • 采样 
  • 马尔可夫模型 
  • 隐藏马尔可夫模型 

你将构建以下项目:

  • 一个根据重要性对网页排序的人工智能 
  • 一个评估一个人具有特定遗传特征可能性的人工智能

链接:不确定性

4. 优化

优化是一种重要的数学工具,可以解决各种广泛的问题。本质上,优化允许您从一组解中找到最优解。

本模块涵盖以下优化算法:

  • 局部搜索
  • 爬山法
  • 模拟退火
  • 线性规划
  • 约束满足
  • 回溯搜索

在本模块中,您将构建一个生成填字游戏的人工智能。

链接:优化

5. 学习

这个模块允许您探索机器学习以及各种机器学习算法的细节。您将学习监督学习、无监督学习和强化学习范式。

涵盖的主题包括:

  • 最近邻分类
  • 感知器学习
  • 支持向量机
  • 回归
  • 损失函数
  • 正则化
  • 马尔科夫决策过程
  • Q学习
  • K均值聚类

以下是本模块的项目:

  • 预测客户是否完成在线购买
  • 使用强化学习让AI学会玩Nim游戏

链接:学习

6. 神经网络

本模块专注于深度学习基础知识。除了学习深度学习的基础知识,您还将学习如何使用TensorFlow构建和训练神经网络。

以下是神经网络模块涵盖的主题概览:

  • 人工神经网络
  • 激活函数
  • 梯度下降
  • 反向传播
  • 过拟合
  • Tensorflow
  • 图像卷积
  • 卷积神经网络
  • 循环神经网络

为了完成您的学习,您将参与一个交通标志识别项目。

链接:神经网络

7. 语言

这个最后的模块专注于自然语言处理。从语言处理的基础知识到transformers和attention,以下是该模块涵盖的主题列表:

  • 句法
  • 语义学
  • 上下文无关文法
  • N-gram
  • 词袋
  • 注意力
  • transformers

以下是本模块的项目:

  • 一个解析器,解析句子并提取名词短语
  • 遮罩词预测

链接:语言

总结

从图算法到机器学习、深度学习和语言模型,本课程涵盖了人工智能中的若干基础主题。

我相信每周参加讲座、复习讲座笔记并完成项目的过程将是一次很棒的学习经历。祝学习愉快!

[Bala Priya C](https://twitter.com/balawc27)是来自印度的开发者和技术作家。她喜欢在数学、编程、数据科学和内容创作的交叉领域工作。她的兴趣和专业领域包括DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编程和咖啡!目前,她正在通过编写教程、操作指南、观点文章等,学习并与开发者社区分享自己的知识。