当前位置: 主页 > 技术方案

人工智能编程入门-机器学习课程需要什么样的条件?|数据科学竞赛攻略

发布时间:2023-06-21 10:10   浏览次数:次   作者:佚名

首要做的是先分析一下,所谓的零基础具体是什么情况呢?是彻头彻尾数学和编程知识都从零开始,相当于高中毕业或者是完全跨专业状态?还是说和互联网沾边的内容有基础了解,只是对人工智能专业课没有经验?

不过不管是哪种,想要进入AI领域,从事相关行业的话,有一个必备的课程是绕不过去的,那就是机器学习

编程学习入门_中文编程·从入门到精通_人工智能编程入门

实际上,机器学习是人工智能的子领域,包含了深度学习。不管是自然语言处理、图像识别还是语音识别,对于不同类型的AI功能,机器学习都是实现它们的基本技术和必不可少的知识,也就是是人工智能的核心。

当你学会这入门AI开发的第一门课程之后人工智能编程入门,才算是对AI有了基本的体系化认知,才可以继续实现后续所有进阶的复杂技术和应用,比如高性能/分布式AI、对话系统、知识图谱、高阶自然语言处理、高阶推荐系统等。

接下来的问题就是,机器学习课程需要什么样的条件?像是我上面说的第二种情况的话,可以自行检查一下这些必要的内容是否都已经熟练掌握;如果是纯粹零基础的话,那就要从头开始学起了,不过不用要求每一门学科都深入研究完全了才进行下面的,可以适当跳过那些边缘知识,只学重点就行。

在这里我要插一句,不要过分心急,一上来就看纯英文的论文期刊,高难的算法书或者说是开始搜索kaggle、DataFunction、天池以及各大厂举办的数据科学竞赛攻略,从我踩雷的经验来讲,那基本相当于白给。。。而且还会因为无从下手,击溃你的积极性。

我们一步步来,先把基本功打好,这样看机器学习里面那些庞杂的代码和难背的公式才不会觉得吃力。

总的来说,机器学习要是想着手开始的话,应该具备以下几方面的知识:

1.高等数学

编程学习入门_人工智能编程入门_中文编程·从入门到精通

主要是微积分。微积分是现代数学的一个基础学科,在机器学习和深度学习中更多用到的是微分。

机器学习在求解最优化问题时依赖于微积分来求解函数的极值,模型的构建也大多是依赖于函数体系。因此,最基本的,拥有扎实的高中数学基础以及有关导数、极限、级数、泰勒公式、多元函数微分学、重积分、曲线与曲面积分等知识。其中求目标函数最优解也可以用到梯度下降法,在机器学习中也是一个很重要的优化算法。

俗话说,大学有一棵很高的树,很多学生挂在上面。。。但是其实现在高数网课有挺多还讲的不错的,比如高数叔、猴博士或者考研数学的汤家凤、宋浩等老师的课,大部分b站上就有。教材的话一般情况下都是用的同济七版《高等数学》。

2.概率论与数理统计

机器学习会用到的有条件概率、贝叶斯公式、概率密度函数及分布函数、各类分布、最大似然法估计、假设检验、线性回归等。

这些对于许多机器学习算法来说都是必不可少的,因为它对现实问题进行建模,通常需要依赖于大量的数据,数据量越大,通常总结出来的规律就会越准确,对于预测效果也越好。 所以往往需要对大量数据先进行统计处理,用概率论来不确定性建模,得到一个估计量,然后不断迭代反馈来减小误差,直到最优化。

视频的话推荐浙江大学概率论与数理统计公开课,想要速成的话高斯课堂也可以,再刷刷吉米多维奇之类练习册里的题,之后就差不多了。书每个大学用的好像都不太一样,可以看自己需要根据评价或推荐来选取。

3.线性代数

编程学习入门_中文编程·从入门到精通_人工智能编程入门

我总感觉线性代数的课上的很玄学,我问了各种专业包括建筑金融生化环材在内的朋友,得出的结论是和学不学互联网专业没关系,好像也不太算专业课,但是又没达到刚刚讲的前两门课对于大学生的统治地位人工智能编程入门,反正可以简而称之为薛定谔的线性代数()

线性代数这一部分内容比较重要,并且难度也是比较大和抽象的。具体需要掌握的知识点有矩阵及其运算、向量空间、特征值与特征向量、线性变换。有些知识会在线性判别分析、主成分分析中应用,还有一些具体的点比如拉普拉斯展开、高斯消元法、协方差矩阵、图的邻接矩阵等等也比较重要。

其实大家在学习线性代数的过程中就能感觉到,它的重点和机器学习的重点重合度比较大,我们老师强调的地方也差不多就上面这些。

关于教材方面,一个过来人的警告:

绝对绝对!不要买下面这本!!!我们当时学校不知道咋想的用的这个,后来听说是中国科学技术大学的一本数学系用的线代教材,现在因为太难已经改用别的教材了,当年号称亚洲第一难,哈哈哈当时学的整个专业的人都崩溃了谁懂。。。

中文编程·从入门到精通_人工智能编程入门_编程学习入门

正常情况下大多数推荐应该是用这本,或者清华大学出版社的也可以。

编程学习入门_人工智能编程入门_中文编程·从入门到精通

中文编程·从入门到精通_编程学习入门_人工智能编程入门

4.Python

按道理来讲C语言、C++、Python都可以,但由于目前很多库和Library都是用python封装,而且一些开源的代码会提供Python接口,调用比较方便,相对于前两者来说还稍微容易好上手一点。

它是一门跨平台的解释型高级动态编程语言,支持命令式编程、函数式编程,完全支持面向对象程序设计,可以把多种不同语言编写的程序融合到一起实现无缝拼接,满足不同应用领域的需求。数据处理是需要编程以及数据库存储数据,因此如何更高效的存储管理调用数据也成为了一个问题。

如果有兴趣的话,也可以看看SQL等数据库以及Hadoop等框架。

对于新手来说Python的安装或许是一个不大不小的问题,还是需要去查一下教程。我们上课时候使用的是默认编程环境IDLE,还有其他的比如pyCharm也看到不少人使用。

如果自学,b站上黑马程序员或者小甲鱼的Python零基础入门都还不错。

5.数据结构与算法

我们是学的全部,不过机器学习用到的应该是其中的图论部分。这个很重要,因为它是深度优化程序性能的基础,可以让你学会如何把现实问题转化为计算机语言表示。

中文编程·从入门到精通_人工智能编程入门_编程学习入门

数据结构是算法的基石,字符串、查找、排序算法是最基础的算法,还有搜索、聚类分析、深度学习(深度卷积神经网络、生成式对抗…)、异常检测等。物理结构分为数组和链表,逻辑结构分为队列、栈、树、图。图论可以模拟成神经网络模型,机器学习中的流形学习、谱聚类等问题可以用它解决。虽然说主要是图论,但是其实像深度广度优先搜索遍历、最小生成树算法、求最短路径算法等还是会用到前面章节的基础内容。

这门课我个人建议是跟着网络上的视频学,因为光看书的话可能会搞不懂理论和实际代码之间的关系,容易一头雾水,尤其是自己做实验题的时候,而且老师讲解的话会顺便带着复习一下编程。

6.贪心科技机器学习课程

当你能大差不差学过上述内容之后(一项不小的工作…),就可以进入到正式的机器学习课程了。我也试过自学很多人推荐的吴恩达、李宏毅的视频课,但是效果一般,可能是因为没有人监督容易摸鱼,也可能是说到底只是在被动地摄取概念,没有真正动手去实现应用,所以最后我还是决定跟着培训班学。

现在市面上已经有很多成熟的人工智能相关课程,我从几个比较有名的机构之中选择了贪心科技,其他同等的比如黑马、达内、深兰等等没有体验过,看评价好像也还行,大家可以自行考虑一下。

我对于贪心的机器学习中级课还是比较满意的,它的优点可以列举为下面几个:

一,培训课程的一大好处就是能系统性学习,而不是东一榔头西一棒槌找不到方向。

这个课也一样,内容覆盖了所有的机器学习核心算法,共分为十五章,每章根据知识点不同又会划分为几个小节,从基础逐层深入,安排比较合理。课程设置比较系统全面,如图所示采用了文字和视频相结合的方式,更容易让人印象深刻。而且李文哲老师的讲解很到位,经常手写一步步地推导公式,还经常会举出浅显易懂的例子,以便加深记忆。

中文编程·从入门到精通_编程学习入门_人工智能编程入门

二,作为练习,不仅每个小节有传统的选择题来考概念的理解,还会有专门的编程题检验学生是否能把数学问题转换为高级程序设计语言的形式思考。

根据难易程度和知识点的不同有所区分,每一个都是不同的知识点,可以自己进行代码的编写,即刻得到输出结果。可以自行对比参考答案,也可以一对一地询问助教老师,及时纠正错误。我们有一个学习交流群,大家会一起在里面讨论问题,学习的气氛很热烈,大家也都比较积极2333

三,案例实战。

每章的最后都会有一个结合生活中的实际例子解决相关问题,总共还有整整五章的大项目作业,在最终自己独立完成之前会有讲解铺垫。我感觉这个是最出彩的地方,以第五章广告点击率预测项目为例,首先介绍了几个常用的特征选择技术,不仅仅可以提升训练效率,也可以通过减少特征来防止模型的过拟合。然后比较了两种用于超参数搜索的方法,分别为网格搜索和贝叶斯优化。

最后要求实现几个任务,包括数据的读取和理解,即把给定的.csv文件读入到内存,并通过pandas做数据方面的统计以及可视化来更深入地理解数据;特征构造;特征的转化,对连续型和类别型分别做不同的处理;从已有的特征中选择合适的特征;模型训练与评估,涉及到上面的网格搜索等技术。

可以说是这个模式让仅仅学懂书本知识的学生转变为能够独挑大梁的企业工程师,是学校专业实验课的进阶版本,因为相比后者,它更具有现实意义,是真正能够运用在AI领域的模型。

关于这个课程,缺点当然也有,第一个是课程有一年的时间限制,这一点对拖延症患者不是很友好;第二是要完成当前页面的题目才能继续下一节的学习,不能跳章。总体而言还是瑕不掩瑜的,如果有跟我一样不想自学的话,贪心的课是一个不错的选择。

7.总结

在完成机器学习课程之后,就像打了个关卡boss一样,可以开启之后的人工智能学习之旅啦。不管是毕业之后想从事AI工作的学生还是需要一些AI技能来参与公司内部项目的人士,都可以根据自己想要深入研究的方向选择不同的领域,NLP、凸优化、强化学习、图神经网络、知识图谱、对话系统等课程也可以根据需求选择性地学习。

如果同学们也想要零基础入门人工智能的话,也可以按照上面的指导试一试,说不定下一个AI大神就是你们呢!