可能有朋友不知道贪心科技是干什么的,我会从以下三个方面聊一聊我的学习体验。

l 贪心科技的介绍

l 针对ML(机器学习)中级课程的学习体验

l 自身的收获

1.贪心科技

贪心科技是一家成立于2018年,追求极致、有情怀的教育科技公司,目前专注在泛AI领域的在线教育。

核心团队由微软、谷歌、亚马逊、百度等企业的科学家、资深算法工程师组成,其中绝大部分毕业于海内外最顶尖学府如CMU、USC、哥大、耶鲁等等。

贪心科技的课程主要分为以下三类:初级课程、中级课程、高级课程。

每种课程的定位都不同,面向的人群不同,需要的基础也不同。

在贪心学院学习,是一种怎样的体验?-编程之家
在贪心学院学习,是一种怎样的体验?-编程之家
在贪心学院学习,是一种怎样的体验?-编程之家

2.针对ML(机器学习)中级课程的学习体验

我现在正在学习的是机器学习的课程,需要 Python
代码基础,属于中级班,采用网课的形式,结合问答、代码编程、项目作业、专人助教答疑的授课形式让像我这样的在校学生或者希望从事AI岗位的职场人士入门机器学习。

在贪心学院学习,是一种怎样的体验?-编程之家

有关的课程大纲在官网上就能看到,课程分为18章。

聊学习体验嘛,我想直接从算法教学和实操案例入手,毕竟学了知识的最终目的还是要自己能写出来代码,能跑项目。

体重预测案例

我现在一共学习了三章,第一章内容是人工智能基础,这章并没有牵扯到什么算法,概念性的基础知识偏多。

这章的案例是利用身高预测体重,其实说来算是给学员一个认识机器学习思想的小例子。

零基础入门的人如果能在一开始就对机器学习的过程有一个整体的认识,那么后续的学习其实就只是在此基础上去扩充自己对于不同类型数据的处理方式、不同算法的原理以及这些算法代码实现过程的知识库罢了,所以我觉得第一章去建立整体框架的教学思想这点很好。

在贪心学院学习,是一种怎样的体验?-编程之家

这个案例告诉我一个完整的机器学习建模过程主要分为四个步骤:数据处理、特征工程、建模、验证。

的确如此,像后续章节的股价预测、银行客户是否开始账户等等,都只是改变了数据处理的规则和利用的算法,整体的思想过程依旧没有逃离这四层步骤的框架。

来看看第一章代码。
在贪心学院学习,是一种怎样的体验?-编程之家

可以看到,已经书写好的代码会加上详细的注释,告诉我们这些是做什么的。

我们需要做的地方会用 TODO
标注出来,每一个案例需要完成的地方是不同的。

这个案例只需要我们实例化一个线性回归的模型,并利用划分的训练数据进行训练。

上面四个框便是一个完整的机器学习过程,但是相对来说比较简单。

线性回归+股价预测案例

第二章学到的主要是线性回归的知识,从一元的线性回归模型讲起,然后结合向量和矩阵的知识延伸到多元回归。

李文哲老师从目标函数的概念入手,一步一步手推目标函数。

在贪心学院学习,是一种怎样的体验?-编程之家

并告诉我们关于如何使得目标函数最小的解法,然后再一步步手推目标函数求解参数的公式。

在贪心学院学习,是一种怎样的体验?-编程之家
在贪心学院学习,是一种怎样的体验?-编程之家

算法的东西并不是说简单的利用一行代码实现就好,必须要去明白其后面的数学知识,这可能也是为什么大家觉得机器学习的东西学起来会比较难的原因。

但是我想像李文哲老师这样一步步手推的教学方式,是能够让我们每个人都很清晰的认识到该算法的意义和背后逻辑的。

而在推导了一元以后,结合后续矩阵的知识,自然而然就上升到了多元。

李文哲老师同样从概念入手一步步将目标函数和求解的相关过程展现在教学ppt上。

在贪心学院学习,是一种怎样的体验?-编程之家

然后后面紧跟的就是代码实现,这里的实现方式分为两种,包括利用
Sklearn 自带的库来解决,和利用 Numpy 的计算方法实现。

为了加深我们的印象我们要做的就是利用 Numpy
方法手动输入上一步推导的参数公式来实现求解。

在贪心学院学习,是一种怎样的体验?-编程之家

然后就是关于股价预测的案例,在经过李文哲老师详细的介绍线性回归知识以后,算法的逻辑我们已经很清楚了,这个案例就是利用历史数据来预测未来五天的股价。

在贪心学院学习,是一种怎样的体验?-编程之家

就像第一章介绍的机器学习整体思路一样,只是这里对数据有几个比较重要的处理:排序、去NAN值、归一化处理,来看一下代码。
在贪心学院学习,是一种怎样的体验?-编程之家

这里关于建模的过程并没有使用 Numpy 的方法,而是直接利用了
Sklearn 库,但其实我们已经清楚了其内部的实现方式,就算不用 Sklearn的方法,也可以用 Numpy 实现,理解原理才是重点。

逻辑回归+梯度下降+银行案例

第三章的内容主要是涉及到逻辑回归的分类问题和梯度下降算法。

这样说起来内容好像很少,但是所涉及到的知识其实相对第二章来说是偏多的。

像条件概率、最大似然估计、逻辑函数的求导等等,但是李文哲老师本人是南加州大学的博士,这些概念的东西他结合自己的理解讲解的很细致,而且紧跟在每个知识点后面的问题也可以引发自己对该知识点的思考。

在贪心学院学习,是一种怎样的体验?-编程之家
在贪心学院学习,是一种怎样的体验?-编程之家

关于使用最大似然估计求解参数的方法,这里李文哲老师引入了一个简单的投掷硬币的问题,通过最大化概率,求导最大似然估计函数,进而实现对参数的估计。

在贪心学院学习,是一种怎样的体验?-编程之家

然后从这个较为基础的问题引出了有关逻辑回归的最大似然估计,对于乘积形式的逻辑回归函数如何简化,李文哲老师详细的介绍了取对数转化成加法、在目标函数前加负号将最大值的求解转化为对最小值求解的思想。

我本人对这些是比较熟悉的,因为去年考研期间写了很多利用最大似然估计法求参数的题。

但是就算原来并没有接触过这个,也是能听明白的,因为取log我们中学也学过。

在贪心学院学习,是一种怎样的体验?-编程之家

简化了目标函数,如何才能求解呢?

第一章线性回归中求导,将导数设置为零的思想还行嘛?

于是针对这两个问题,李文哲老师介绍了利用循环迭代思想的梯度下降方法。

同样是先介绍概念、然后以一个二元函数为例利用梯度下降法迭代,对比直接求导解得解析解的方式让我们了解算法的思想。

在贪心学院学习,是一种怎样的体验?-编程之家

这其中涉及到一个学习率的概念,李文哲老师通过一张轮廓图清晰明了的说出了学习率在梯度下降算法中的重要性。

在贪心学院学习,是一种怎样的体验?-编程之家

而后是逻辑回归采用梯度下降法求解参数
W,b的方法,李文哲老师同样是一步一步手推。

在贪心学院学习,是一种怎样的体验?-编程之家
在贪心学院学习,是一种怎样的体验?-编程之家

第三章算法的知识到这里基本就结束了,案例是预测银行客户是否开设账户。

整体的建模过程依旧是如第一章的四个步骤,但是数据处理的方式和采用的算法发生了变化。

这个案例会介绍一种处理类别变量的方法——独热编码。而关于模型构建后的评估方法也会有些介绍,比如针对标签数据不平衡采用的精确率、召回率、F1-SCORE等等。

编写代码时需要我们做的为以下内容:

l 利用pd.get_dummies将变量转化为类型型变量

l 构造训练数据、划分数据为训练和测试数据

l 初始化逻辑回归模型并利用训练数据训练

l 计算F1-SCORE,进行评估

在贪心学院学习,是一种怎样的体验?-编程之家

3.体验和自身的收获

体验

我觉得看上面的案例大家就能看出来,只想说手推算法太酷了啊,我不仅听得懂我还能自己写一遍。

结合案例利用代码一遍遍巩固机器学习的建模思想,且在不同案例中针对不同的数据类型引入不同的数据处理方式,这种从问题出发学习解决办法的思想让我觉得接受度很高。

手推算法、从浅至深的知识体系、案例问题的逐层分析和逐层代码实现…我觉得这样的授课方式我很喜欢。

收获

到目前为止,用了不到一个月的时间听课,查资料,跟着老师的步骤敲代码,虽然只学习了三章,但是收获是很多的。

我觉得主要分为以下两点:知识方面、认知方面。

知识方面:

毋庸置疑,听完课,记笔记,交了作业代码以后我对于线性回归、逻辑回归的原理和应用有了更深层次的认识。

本科阶段毕业论文用了多元 logistic
回归的分析方法预测房地产市场的风险状态概率,那时候只是用 Spss
软件操作,并不太知道里面的原理是什么,听了李文哲老师手推的过程,我才明白为什么算出来的是一个概率值。

而像对于各种数据如何处理、对于模型的验证等这些也是我原来没有接触过的。

认知方面:

机器学习算是我上个月刚刚开始接触的一门新学科,在学习之前我的认知如普罗大众一样,觉得人工智能也好,机器学习也好,都是一门相对高深的学科。

但是通过这一个月的学习,我觉得并没有想象的那么难,是那种对未知的不熟悉放大了心底的恐惧。

李文哲老师第一章的课程便是关于人工智能基础概念的讲解,介绍了什么是人工智能、机器学习和深度学习的概念、给出了AI的学习路径。

他对人工智能现状、应用和发展前景的看法让我受益匪浅。

就像李文哲老师说的:“如何将人工智能的思想和应用融入自身所从事的职业是当代职场人士应该去深度思考的问题。”

我会带着这个问题把课程学完的。