Random Tech Thoughts

The title above is not random

AI Class 结束了

AI Class 结束了,昨天收到了 Statement of Accomplishment。这学期的很多周末都花在了做作业上,最后看到这个还是挺开心的。

AI Class Statement of Accomplishment

总体来说课程不难,但涉及的面很广。上课的一个很大的感受是,讲课好的老师可以帮你节省很多看书的时间,而且有些方法的思想只有在视频里才可以很好的展示。我买了 Artificial Intelligence A Modern Approach (AIMA) 这本书,在课程开始前按照课程涉及内容看了一些,速度比较慢。课程开始之后比较忙,一般只遇到不太明白的地方才看,明显感觉到比没上过课时看起来轻松很多。可惜的是本科和硕士阶段我很少遇到这样的老师,上课和自己看书的效果差不多。

课程涉及内容的一个不完整的列表如下,帮助我自己记录从这门课里学到哪些东西。有同学想看 AIMA 这本大部头又不知道如何选重点可以参考。

  • Introduction
    • Agent model
    • Different types of environments
  • Search algorithm
    • BFS, DFS, A*-search
  • Probabilistic Inference
    • Bayes network
    • Conditional independence
    • Conditional dependence (这个我完全记不起来以前学概率统计时有没有涉及。A B 两个独立事件,如果他们同时会影响事件 C,那么在给定事件 C 的情况下,A B 不独立。)
    • D-separation (从 Bayes 网络的结构直接推断几个事件是否条件独立。)
  • Machine Learning
    • Supervised/Unsupervised learning
    • SPAM detection (介绍的就是跟 Paul Graham 用的那个方法。)
    • Lapalace smoothing
    • k Nearest Neighbors
    • k-Means clustering
    • EM algorithm (这个没弄明白)
  • Logic and Planning
    • First order Logic
    • Planning in the belief state
    • Situation Calculus
    • Markov Decision Process: 在 Stochastic and Fully Observable 的环境中使用 (A* 之类的算法仅适用于 Deterministic 的环境中。)
    • Reinforcement Learning: 在不知道 Reward 和 Transition model 的情况下使用
      • Q-learning
    • Scheduling
  • Hidden Markov Model
    • 上这门课之后终于明白这个 HMM 是干啥的了
  • Particle filter
    • 很简单很漂亮的算法,算法的效率还很高,可以处理非常复杂的概率分布
    • 因为期中考试的原因,课程里没有给 quiz,讲的也不太清楚,后来看了其他学校的材料弄明白的
    • 跟 HMM 一样,可以用来解决 localization problem (给定地图,如何判断自己究竟在哪里)
  • Games
    • Alpha-beta pruning
    • Dominant Strategy
    • Pareto Optimal
    • Equilibrium (纳什均衡)
  • Computer Vision
    • Perspective projection (小孔成像之类的东西,用镜头可以提高进光量)
    • Invariance, Greyscale Images
    • Extracting features
      • 用 vertical/horizontal fiter 来找图像中物体的边缘
      • Prewitt Mask, Gaussian Kernel, Harris Corner detector
    • 从二维图像重建三维信息
      • 用两个相机,根据图像的差异计算距离
      • Alignment problem: 计算 disparity 需要将不同图像中的相同物体对应起来
  • Robotics
    • 描述对象:Kinematic 只考虑位置,Dynamic 还考虑速度
    • 用 Dynamic Programming 做 path lanning
  • Natural Language Processing
    • Language models (统计模型,考虑语法的模型)
    • 统计模型
      • letter based model,建立 n-gram model 后可以检测单词属于那种语言
      • 用 gzip 做语言分类的方法很巧妙
      • Segmentation: 分词,一个方法是选取一个分段,使得其中词连续出现的概率最大
      • Spelling correction
    • 考略语法的模型
      • Probabilistic Context Free Grammar (PCFG)
      • Lexicalized Probabilistic Context Free Grammar (LPCFG)
      • Machine Translation

课程开始介绍的可以认为是 AI 里基础的一些方法,最后介绍的 Games, Computer Vision, Robotics, NLP 都是很大的领域,这门课里只是非常简单的涉及到。

明年 2 月开始还有很多精彩的课程,我目前注册了三门,到时候看时间充裕程度选择最感兴趣的好好上。

Comments