暑假机器学习总结

ML DIP

机器学习学习总结

经过两个月的学习,从对机器学习一点点懵懂认知,到现在对机器学习的基础知识跟体系有一定的认知。如今学习暂告一段落,总结如今学习过的重点知识,可以起到很好的复习作业,也是对两个月以来的交代。以下,我将按照每周学习进度来总结回顾机器学习的知识。

第一周

我们先学习了python编程基础,之后的学习是基于python各种库来实验的。我之前已经比较熟悉python,所以很快就完成这段学习;之后接触numpy,这是C语言为python编写的底层矩阵库,我之前也接触过,但比较浅,不过numpy封装的很好,用起来门槛也很低,很快就上手了;numpy之后就是pandas,它是数据分析常用的库,基于numpy,非常全面,我之前也用过,但基本需要重新学习,pandas比较难用,尤其是IO部分,有细粒度的操作,文档看起来也比较麻烦,没有示例,所以学习的过程中,是遇到问题再去查找方法,后面的学习pandas其实用到的也比较少。

以上内容大概花了两天,算是对机器学习的预备知识的准备。当然期间也学习了简单的使用anaconda,jupyter等工具,不再一一总结了。

之后开始学习基本的图像知识:

图像的部分内容学习后,开始了最基础的机器学习的内容:

图像知识可能在第一周学习,有点不知其有何用的感觉,就算想在思想上重视它,但没有实际用起来,还是难以深刻理解它的重要性吧。谈点个人感受,我其实挺不擅长也不太喜欢处理图像的,大一自己有简单接触过图像处理(跟现在的学的不太一样,而是常规的图像处理,不跟特征,知识等内容关联),虽然不比这些难,但也很吃力。

第二周

第二周主要学习的是分类的基础算法,分别学习K近邻,决策树,逻辑斯蒂回归

最后根据学到的知识完成一个井字棋胜负预测,不过我的模型很一般。这周的知识量不是很大,更多侧重机器学习基础编程,但是感觉学到东西很多的一周。

第三周

这周学习的机器学习非常强大和实用,是现在也很常用的模型:

第四周

这周学习无监督学习,主要是聚类跟降维,不过主要是侧重分析并运用这些技术:

这周机器学习的知识就进入进阶难度了,说实话,我掌握的不太会好,不过算是对机器学习的体系更加了解了。除了以上还有一些其他知识,不过比较零碎,我就不一一总结了。

第五六七八周

这里把深度学习一起总结了吧,这几周感觉学习的不太好。

第六周开始,陆陆续续有许多高大上的报告可以听讲了,了解了许多前沿的应用,思想,算法。从第五周开始也步入了深度学习的大门。

这几周主要学习全连接网络卷积神经网络循环神经网络,理解了很久反向传播卷积运算。其实参考过很多资料,这里就不一一列出了。目前对反向传播也有稍微清晰的了解了,对于卷积,了解了其思想,但对其运算还是只有抽象的认识,反向传播可以说是目前神经网络的基础。全连接网络在理论上是近似的图灵机,不过实用性很差,一般是配合其他网络而使用。而卷积神经网络是针对图像而发明的,在图像处理跟机器视觉应用广泛。而循环神经网络更适用于序列数据,如文本,这在自然语言处理很常用,而由于一般的RNN有局限性,所以有一个LSTM的变体,这个模型我不是很清楚,但它的表现更好(最近好像又出现一个比较厉害的新变体SRU)。

由于神经网络的代码非常难写,写出来也基本不可以重用,我们学习了keras这个基于tensorflow的深度学习框架来实现一些经典的模型。后来应用keras解决了一些基本的图像分类问题。

第七八周陆陆续续的讲座也应该提一提,感觉大大开阔了我的视野。原来我以为深度学习基本都是在对图像上进行工作,好像这样也没什么意思。不过后来发现图像几乎是实现人工智能最基本的办法。而老师们的方向五花八门,问题的复杂度也远超过我的脑容量,深度学习反而变成了实现人工智能的基本工具而已,更多在于对于问题的深入研究和对特征的深入探究。

这几周的学习积极性变得比较差劲了,不过收获还是很多。至少认识到机器学习跟深度学习的基本思想,我觉得未来的程序员都或多或少需要了解这些知识,因为他们可能会用到相应的算法来部署一些人工智能应用到各种设备、各种网站、各种系统中去,而懂得这些知识的人显然能在工作中更胜一筹。

总结

以上大概就是我的总结了,很粗略,也没有讲到具体的数学知识,更多是讲到自己的小小收获跟感受。我不清楚以后是否会从事机器学习相关的工作,但我以后肯定会抱着好奇心继续完善我对这些知识认识,了解里面的新思想,跟上人工智能的潮流,做一个终身学习的人吧。