目前,人工智能已经成为火越来越多的一个方向。普通程序员如何转向人工智能在胡志是一个问题。这篇文章是我对这个问题的答案的存档版本。与最初的答案相比,内容有所增加。
一.目的
本文的目的是提供一种简单、流畅且易于实现的学习方法,帮助“普通”程序员进入人工智能领域。在这里,我对普通程序员的定义是:拥有本科知识;平时工作很忙;我手头的数据有限。因此,这篇文章更像是AI的入门教程“从头开始”。
超人人工智能
二。人工智能导论
人工智能,也称为人工智能,不仅仅包括机器学习。过去,符号和逻辑被认为是实现人工智能的关键,但现在基于统计的机器学习占主导地位。最近激烈的深度学习只是机器学习的一个子项目。目前,可以说学习人工智能主要是学习机器学习。然而,人工智能并不等同于机器学习,这一点在进入这个领域时必须清楚地理解。推荐阅读周老师写的《机器学习导论》,了解人工智能领域的发展历史。下面的问题是:人工智能的门可以通过吗?事实上,过马路是不好的。我们以机器学习为例。在学习过程中,你将面临大量复杂的公式,实际项目中缺乏数据,以及参数调整困难。如果只是因为你认为这个方向将来会“着火”,那么这些困难很容易放弃。考虑到普通程序员的特点,如果你想学习这么难的学科,答案是否定的,只要开发出合适的学习方法。
机器人学习或解决问题
三。学习方法
学习方法的设置只是为了回答以下问题:
我要学什么
我如何学习
我如何学习
这三个问题总结如下:
学习目标、学习政策和学习计划。学习的目标是明确的,即进入人工智能领域。这个目标不大,所以更容易实现。
“一个大目标是找到足够的理由让你在将来放弃它。
学习策略可以概括为“兴趣第一,实践与学习相结合”。
简而言之,首先是培养兴趣,然后将实践融入到研究中,以螺旋提升。这种学习方式很有效,人们不容易放弃。一旦你有了学习策略,你就可以制定一个学习计划,也就是所谓的学习路线。以下是学习路线的介绍。
四。学习路线
我推荐的学习路线如下:
图1人工智能领域学习路线图
该研究路线设计如下:
首先,我们应该了解这个领域,建立一个全面的视野,培养足够的兴趣,然后开始学习机器学习的基础。在这里,我们应该选择从浅到深的课程,该课程应该有足够的实验来进行实战。打好基础后,我们已经对机器学习有了很好的了解,可以用机器学习来解决实际问题。此时,机器学习方法仍然可以被视为黑箱。
在积累了实战经验之后,我们可以考虑继续学习。此时,有两种选择:深入学习或继续机器学习。深入学习是目前最热门的机器学习方向。这些方法中的一些不同于传统的机器学习,所以它们可以单独学习。
除了深入学习之外,机器学习还包括统计学习和综合学习等实用方法。如果条件足够,两者可以同时学习,并且两者都有一些共同的规则。
学习后,你已经有了很强的知识储备,可以参加更困难的实战。
此时,有两种选择。业界可以选择查看开源项目并阅读代码来更改代码。学者们可以查看特定领域的论文,并希望发表论文来解决问题。不管是哪一个,他们都需要有良好的知识和强大的编码能力,这样他们就能很好地检查和锻炼。经过这个阶段,它可以说是人工智能的大门。
“主人进门,在个人中练习”。这条路会自己走。
以下是每个阶段的详细介绍:
如果你永远不会这样做,你永远也不会知道图钉在说这句话
0。领域知识
在学习任何知识之前,第一步是了解什么是知识
它能做什么
它的价值在哪里
如果你不了解这些事情,那么学习本身就是一艘没有方向的船。你不知道去哪里航行,你可能很容易冒沉没的风险。
理解这些问题后,你可以培养兴趣。兴趣是最好的向导。学习的动力和坚持可以让你应付接下来的几个阶段。
至于机器学习是什么,它能做什么,以及它与深度学习和人工智能的关系,我可以从机器学习中读到我的博客:
你准备好了吗?
1。知识准备
如果你离开学校太久或者觉得你的基础不牢固,你最好提前准备好复习。“如果一个工人想做好事,他必须首先使用他的工具”。以下准备工作并不多,但足以应付以后的学习阶段。
数学:复习以下基本知识。线性代数:矩阵乘法;大数:推导;概率论:条件和后验概率。在以后的学习过程中,可以根据需要补充一些其他知识。
英语:保留一个在线英语词典,比如Iciba,它可以毫无困难地阅读一些英语信息页面。
FQ :你可以随时随地去谷歌。这是一个非常重要的工具。并不是说百度不能检查,但是在很多情况下,谷歌的搜索结果比百度几十页的搜索结果更有效,尤其是在搜索英语关键词时。节省时间是学习效率的一个重要提高。
2。机器学习
吴安德鲁的机器学习是机器学习的第一门课程。
本课程具有以下特点:难度适中,有足够的实战实例,非常适合初学者。这里不推荐CS 229课程。原因如下:
时间: CS 229太早了。一些知识已经跟不上今天的发展,目前最热门的神经网络已经消失。库瑟拉参加了两堂关于神经网络的课。非常详细;
教学: NG在CS 229中的教学有点不成熟,这可能是面对网络教学的原因。有很多问题他没有说清楚,下面的人也很容易发脾气。你经常不关心那些人的问题。这在Coursera上有了明显的改进,你会发现NG的教学水平有了很大的提高。他会教你从浅到深,告诉你当你遇到不懂的单词和术语时不要担心。更重要的是,推导和图表不应该太完美,非常详细和清晰。这确实是一个强有力的建议。
描述: CS 229的描述质量比Coursera上的要差。Coursera中文字幕的翻译已经被很多人检查过了,质量得到了保证。
作业: CS 229没有作业。虽然你可以做一些,但是没有人会看它。这不如Coursera每周的截止日期作业好,每份作业都附有分数。更重要的是,每一项任务都有实际的例子,这样你就可以用手练习,用完全的成就感看到自己的成就。
3 .实践项目
完成基础课程后,你将对机器学习有初步的了解。现在使用它们没有问题。你可以把机器学习算法当作黑匣子,把数据放进去,你就会得到结果。
在实战中,你需要更加关注如何获取数据以及如何调整参数。
如果你有时间,最好自己做一个简单实用的项目。这里我们需要选择一个应用方向,不管是图像(计算机视觉)、音频(语音识别)还是文本(自然语言处理)。
这里我们建议选择图像字段。有许多开源项目,介绍很简单。OpenCV可用于开发。已经实现了神经网络和SVM等机器学习算法。项目完成后,你可以向Github开放源代码,然后不断改进它。实战项目完成后,你可以继续深入研究。此时,你有两种选择:深入学习和连续机器学习。
深度结构化学习
4。深入研究
深度学习:深度学习是目前最热门的研究方向。它具有以下特点:知识更新迅速、零碎,并且没有对这本书进行系统的解释。因此,学习资源相对分散。以下是一些资源介绍。不推荐的部分并不意味着坏,但在这个开始阶段是不合适的:
推荐,UFL DL :一个非常好的基本DL教程,也是吴安德鲁写的。有非常详细的推导和翻译,翻译质量非常高。
推荐,深度学习(论文) : 2015年关于自然的论文是三位丹尼尔在深度学习领域写的,阅读完整。它给人一种建造高房子的感觉,其他的山都在天空下显得矮小。强烈推荐。如果只有一篇论文能被阅读来理解深入研究,我推荐这篇论文。这篇论文有一个同名的中文译本。
推荐,神经元网络和深度学习:这本书的作者非常擅长用通俗易懂的语言表达深刻的真理。虽然没有翻译,但阅读并不难。
推荐,递归神经网络:告诉你什么是基于实际案例的RNN。整个课程结束后,你将对RNN是如何工作的有一个清晰的了解,这种影响甚至在阅读几篇相关论文时都没有发现。
不推荐,机器学习神经元网络-多伦多大学| Coursera :深入研究创始人教授的课程的最大问题是太难了,老人的发音有时不太标准。
不推荐,深度学习( Book ) :这也是丹尼尔写的一本书,他进行了深度学习,但感觉这本书是第二作者,也就是他的学生写的。已经说了很多内容,但是我不想说什么,只是从报纸上告诉你,所以直接阅读报纸可能更合适。
不推荐,CS 231 N :李菲菲的课程非常有名,专门为CNN服务。然而,这门课最大的问题之一是没有字幕。虽然有YouTube的自动字幕,但还是没有。
连续性的概念
5 .继续机器学习
深度学习不一定是未来的主流,至少一些丹尼尔这样认为。传统的机器学习具有以下特点:知识系统化和相对经典的书籍。统计学习(代表支持向量机)和综合学习(代表AdaBoost )是实践中使用的许多技术。以下是相关资源:
推荐,机器学习(周志华) :如果是在过去,PRML是第一本关于机器学习的经典教科书,但是现在在周老师的书出版后,情况就不再是这样了。首先,我推荐读周老师的书。这本书有一个特点,那就是没有比这更困难的理由可以用简洁明了的语言来表达。正如周小姐的名言:“在反映你的水平的地方,说难的话比说容易的话容易,说难的话真的太简单了”。
不推荐,模式识别和机器学习:现阶段不推荐。PRML采用贝叶斯观点看待许多机器学习方法,这也是PRML的一个特点。但是对于初学者来说,这种观点是没有必要的。此外,这本书没有中文译本,所以在这个阶段很容易放弃。
6 .开源项目
当知识储备充足时,研究可以再次转移到实践阶段。此时的实践仍然可以分为两个步骤,学习经典的开源项目或发表高质量的论文。开源项目的学习应该尽可能地以优化为目标,仅仅阅读代码的学习效果往往不是很好。所有优秀的开源项目都可以在Github中搜索。这里,以深入研究为例。有许多优秀的开源库供深入学习,如Torch、ANO等等。这里有两个:
推荐,deep learnotoolbox :一个早期的深度学习库,用MATLAB语言编写,更适合从刚学过的课程转移到学习。不幸的是,提交人不再坚持。
推荐,张量流: Google的开源库,现在拥有超过40000颗星星,非常棒,支持移动设备。
7。会议文件
一门好课程会向你推荐一些论文。一些著名的技术和方法经常在一些重要的会议上诞生。因此,阅读前几年的会议论文是一种深入的研究方法。在这一点上,论文中的一些内容会驱使你去学习你不擅长的数学部分。有时你觉得数学储备不足,所以你经常需要学习一些补充课程。当你读完足够多的论文后,在这个阶段,如果你是学校的学生,你可以选择一门学科并学习它来发送论文。一般来说,纸是工作的产物。有时,基于实验的论文通常要求你编写代码或者基于开源项目。因此,开源项目的学习和会议论文的工作是相关的。两者可以同时学习。关于在哪里看论文,你可以看看CCF推荐排名,看看在这个领域有什么好的会议。以下是图像和机器学习领域的两个顶级会议:
CVPR :与另外两次会议ICCV和ECCV一起,它被称为计算机视觉领域的三次会议。请注意,会议主页每年都在变化,因此搜索需要与年份一起添加。
中性信息处理系统会议:简称NIPS,许多重要的著作都在它上面发表,比如一篇关于CNN的重要论文。
8。免费学习
免费学习:我们到了,可以说我们已经走进了这扇门。在这里你可以根据自己的兴趣自由学习。上一阶段不推荐的学习资源也可以随意学习。以下是评论:
CS 229 : NG的讲义非常好,其中SVM的推导非常清楚,希望学习SVM推荐。
机器学习的神经元网络:丹尼尔的观点不同于人类。看看神经网络对视图的提示会给你怎样的感觉。事实上,阅读本课程也相当于阅读论文,因为几乎每个班级都有论文在参考资料中阅读。
CS 231 N :用于视觉识别的卷积神经网络:最新知识和详细工作。中国应该有一个翻译字幕并寻找字幕的团队。
PRML :作为一本经典的机器学习书,有必要阅读它。它将给你一个不同的机器学习视角。
五.摘要
这篇文章的目的是帮助那些不太了解人工智能但想进入这个领域的学生。这仅仅是因为很难专攻这一领域,需要多年的积累和努力。在进行领域学习之前,充分了解自己的特点并制定适当的学习方法是非常重要的。首先,我们必须充分了解这个领域,培养兴趣。在学习中,我们应该坚持循序渐进的学习方针,不要急于学习太多的资源。结合学习和实践的策略,不要只读,而要有成就感。学习资源时,应该有足够的目的,不是看学习开源项目的代码,而是写开源项目。不是为了发论文而写论文,而是为了做某事而写论文。如果学习资源对你来说太难了,那不一定意味着这是你的问题。这可能是学习资源的演讲者或作者的问题。一个能够简单地解释困难问题的人是一个真正的人。因此,我们必须学习高质量的资源,而不是不分青红皂白。最后,记得饶有兴趣地学习。学习时间很长,过程也很困难,只有兴趣是你坚持和克服困难的最佳帮助。
我想和所有在学习海洋中航行的人分享这篇文章。我是一个普通的程序员,刚刚进入人工智能领域,仍然有许多缺点。我希望这篇文章能帮助每个人。
领取专属 10元无门槛券
私享最新 技术干货