人工智能自学心得

前言

这应该不是一篇科普文。 自从几个月前开始关注Artificial Intelligence (AI)和Machine Learning (ML),我读过不少科普的文章。从中有一定的收获,大概对AI和ML有一些感觉了,其中有一些科普文章有一定的深度。但更多的感觉是,想真正了解AI和ML,掌握技术并且能够应用到实际的项目中去,那些科普文的内容是不够的,更何况可能有些作者本人的理解也不够深入,写的更是皮毛上的皮毛。很多都是看着很轻松,貌似看完觉得自己懂了一些,其实好像什么也没懂。

 

如果真想掌握技术的话,这不是一条好的途径。有的时候必须得Learn XXX the hard way。但同时,如果按照课本一张一张读,在教室一节一节课的上,又太慢了,尤其对于很多想自学的人不是很可行。同时,技术太多,技术进展又太快,已经不在学生阶段又想用学生阶段的方式来学,估计得越学越跟不上了。

很多人都有这个苦恼吧,我也有。这里我给不出什么灵丹妙药般神奇的解决方案,只是来分享下我自己亲测过的一些与AI和ML相关的资源吧。

1. Udacity Machine Learning Nanodegree

这算是我Machine Learning的启蒙。虽然说之前也看过不少别的课程或者视频了,但因为付钱上了这个课程,就要赶紧写作业,做project。人就是得靠外在动力驱使才能干的更好吧,性本贱。。。

我从这门课里收获还是蛮大的,但并不是说这个nanodegree好。相反,除了这门课里的五六个project还算不错,助教interactively批改认真之外,真的不值得花钱去上这门课。因为一是这个nanodegree的课都是Udacity里的免费课,二是有些老师我确实很不喜欢。如果可以说不礼貌的话,我要说有些老师教的就是屎,尤其是Georgia tech的这两个人,Charles Isbell and Michael Littman。如果他们对你的口味,就请忽略我的评论吧。

 

我在另一篇文章里详细列出了这个nanodegree的课程表(Udacity ML Nanodegree Syllabus)。主要来说,就是四块:

1) Model Evaluation and Validation

2) Supervised Learning

3) Unsupervised Learning

4) Reinforcement Learning

个人感觉其中Reinforcement Learning要比supervised/unsupervised Learning要难,完全不像一个概念。这个Reinforcement Learning的概念跟后面UC Berkeley的AI课讲的差不多,现在Machine Learning和Artificial Intelligence的分类比较杂,具体对待吧。这个RL的project是train一个很简单的self-driving car,用到了Q-learning的概念,当时做这个project的时候挺享受的。个人理解是这种RL得大量的试错,并且能否预先定义一个参数少并且够用的states对training的结果和速度非常重要。

如果你上了Udacity里的这五门课:

Intro to Machine Learning, Instructors: Katie Malone, Sebastian Thrun

Machine Learning for Trading, Instructors: Tucker Balch, Arpan Chakraborty

Machine Learning, Instructors: Charles Isbell, Michael Littman

Machine Learning: Unsupervised Learning, Instructors: Charles Isbell, Michael Littman

Reinforcement Learning: Charles Isbell, Michael Littman

那么这个Nanodegree里讲的内容就是这些课的子集。你只需要去Github下载课堂的project自己做就好了(Github udacity/machine-learning)。当然,是不会有人给你改作业的,你也拿不到这个小证书,但这些都真的很重要吗,可能每个人自己知道吧。

这门课没有教你code from scratch,基本就是教怎么用python的Sklearn的包。我做过的课堂project就放在这里了(Udacity_MachineLearning_Nanodegree Project Solutions).

 

2. Stanford CS231n class, Convolutional Neural Networks for Visual Recognition. (CS231n Convolutional Neural Networks for Visual Recognition)

李飞飞和另几个老外的课,非常非常推荐。既简单又深入。简单到你只要会python,会基本的数学就能上手。深入到,他们带着你从最简单的一些regression编到非常复杂的Convolutional Neural Network, LSTM, Recursive Neural Network。甚至用自己写的python程序编deep dream那种creepy的照片!注意,这里不用任何的deep learning的package。把作业都做完需要更多的时间,但一遍之后真正就掌握了,再不用听别人跟你扯什么是backpropagation,什么是卷积神经网络了。满打满算,从刚开始看class notes到编完一个复杂的Conv Net,我用了三周的时间,中间也花了不少时间自己推公式,思考对比,还算是比较值。做完后写了个小总结(Github Convolutional Neural Net from Scratch),LSTM那些我暂时还没有搞。

 

3. UC Berkely CS188 Class, Intro to AI (Berkeley AI Materials).

这门课我没有做作业,也没有很仔细的看课件,我是把所有的课程视频看了一遍。个人感觉,目前网络上能找到的最好的AI课程了吧,没有之一。AI的概念我不是很清楚,我感觉整个行业也有些模糊(以上说的神经网络应该算是AI吧),这个课里讲的AI很多是关于decision making, planning等等的,涉及到很多agent, state, action, policy, search等等的概念。还讲到很多的贝叶斯网络,markov model,hidden markov model等等的。

顺便说一句,Udacity上最早的MOOC课大概就是Intro to Artificial Intelligence,Sebastian Thrun和Peter Norvig教的(都是standford faculty),这个课讲的内容与UC Berkeley的课很像,但Berkeley的课更深入也更好一些。

 

4. Youtube channel

很神奇的是,Youtube里有很多个人或者组织办的channel,就是来讲课的。想想现在教学的方式真的是在变化,当然,能对传统教学的模式有多大冲击就是另一个话题了。

其中两个channel推荐:

Siraj Raval,这个印度小哥讲课很短(5-10分钟),非常炫酷,讲着讲着就唱一段Rap,听他的课觉对不犯困。而且他讲的东西都很应用很前沿,一开始接触有种惊叹的感觉。然而,在我试着跑他的模板Code并加以自己尝试之后,观点有所转变。这哥们很多code都是直接wrap别人的,造成的后果就是特别乱,package用的很杂。不知道为啥,反正他的很多模板code我都没有跑成功。多说一句,这哥们刚开始跟Udacity合作,开办了个人的AI课程。卧槽,印度人的这种能装逼能吹的能力真的得好好学一学。不管怎样,还是挺适合刚入门的人开开眼界的。

sentdex,一个美国本科小哥,完全非科班出身。可以看出来他自己对Machine Learning和AI并不是理解很深入,讲的基本上都是用Sklearn的包。但好处是他还有个个人网页 (Python Programming Tutorials),可以很方便的查一些内容。另外,这个小哥讲的非常入门,而且我亲测的,他讲的几乎所有的code都能跑,他也会手把手教你怎么安装一些软件或者package。虽然不够深入不够炫酷,但对于初学者来说,这种直接就能跑,也不用自己找bug的教程还是比较省心的。因为他讲的浅,所以基本一个月后你就不用去follow他了。

 

5. Udacity Artificial Intelligence Nanodegree & Udacity Self-driving Car Nanodegree

我还参加的Udacity AI nanodegree,之前搞的那个Machine Learning Nanodegree也搞完了。另外,我一个要好的学造汽车的哥们,也参加了Udacity Self-driving Car Nanodegree。

这两个一月份刚刚开始,都是第一期。模式跟以往的Udacity Nanodegree很不一样。以往的Nanodegree的课基本都是免费的公开课,而这两个的课都没用公开。另外,之前的Nanodegree都没有时间限制,你要是快的话,一个月就能全部结束。但这两个都要按部就班一个term一个term搞,一个term三个月吧。

从另一个角度看,就知道目前AI在社会有多火了。这两个课程都是要报名的,而且名额有限。也许是Udacity在搞饥饿营销吧。第一期的报名人数大大超过了名额。

从目前的课表看,这个AI nanodegree term 1的内容跟UC Berkeley的AI课很相似。而self-driving car的第一期教computer vision,主要就是让你用OpenCV以及用Tensorflow和Keras搞一搞神经网络。

 

6. 我亲测过的一些材料会挑一些共享在Github上,欢迎来李继尧的Github瞅一瞅,能批评指正那更是感激不尽了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然!下面是一个简单的自学人工智能的路线图供您参考: 1. 数学基础:学习线性代数、概率论和统计学。这些是人工智能的基础,对于理解算法和模型非常重要。 2. 编程基础:学习一种或多种编程语言,如Python或Java。熟悉基本的编程概念和数据结构。 3. 机器学习:了解机器学习的基本概念和算法,如回归、分类、聚类等。掌握常见的机器学习库,如scikit-learn。 4. 深度学习:学习神经网络和深度学习的原理。了解常见的深度学习框架,如TensorFlow和PyTorch。 5. 自然语言处理:了解自然语言处理的基本技术,如文本分类、命名实体识别等。掌握常见的自然语言处理库,如NLTK和spaCy。 6. 计算机视觉:学习计算机视觉的基本概念和技术,如图像分类、目标检测等。熟悉常见的计算机视觉库,如OpenCV。 7. 强化学习:了解强化学习的原理和算法,如Q-learning、深度强化学习等。掌握常见的强化学习库,如OpenAI Gym。 8. 部署和优化:学习如何将模型部署到生产环境,并进行性能优化和调试。 9. 实践项目:完成一些实际的人工智能项目,如图像分类、情感分析等。这将帮助您巩固所学知识,并提升实践能力。 请注意,这只是一个简单的路线图,您可以根据自己的兴趣和需求进行调整。此外,不断阅读相关文献、参加在线课程和加入社区讨论也是自学人工智能的有效方式。祝您在自学人工智能的过程中取得成功!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值