近期小结
一、学习python
学习python的基本语法
因为之前有过其他语言的编程基础,所以学起来并不是很费力,基础部分很快就过了一遍,主要是python有一些很方便的操作,比如对列表切片,for in等,这些都自己写了一遍代码。下面是我学习python基础时写的两篇博文。
学习python的常用库
python之所以这么流行,就是因为里面有各种方便的库供大家使用,因为我学习python主要是为了以后机器学习做准备,所以主要学习了机器学习相关的库,像numpy、pandas、seaborn、sklearn。下面是我学习库时写的博文。
python学习小结
学习一门新的知识的时候,学会类比。我学习python的时候就类比Java去学习,这样会加快学习的效率,并且理解起来也会更快。由于python中numpy可以方便的对矩阵进行操作,所以学习完python后,就可以利用里面的库函数写一些机器学习的代码了。
二、学习机器学习
k近邻
k近邻算法在机器学习里面是相对简单的一个算法,但是由于每次进行预测都需要对所有数据进行重新运算一遍,所以在一些小的项目中可以使用,或者可以与其他算法结合使用。
掌握程度: 基本原理了解,能看懂其实现的python代码。
线性回归
线性回归在我看来就是找一个函数来拟合当前的数据分布,所以关键点在于寻找这个函数。而找这个函数的过程中,间接的产生了一个目标函数(损失函数),然后目的就转换成了让损失函数最小化,这个可以使用梯度下降进行计算得到。经过数学推导最终得出了线性回归中权重参数和输入输出的关系。
掌握程度:基本原理了解,看的懂数学推导以及python实现代码
决策树
决策树主要就是那个树的建立过程,建树的时候要遵循把熵值变小的原则,然后基于此给出了ID3以及GINI系数的构造方式。
掌握程度 : 基本原理大概了解,给一组信息能够按照算法构造一棵决策树,没有使用python代码实现过
贝叶斯
贝叶斯的核心理论就是贝叶斯公式,我只学习了朴素贝叶斯。那个公式相对比较容易理解,但是利用贝叶斯进行机器学习的时候,难点在于如何建立模型,用哪个指标代替概率值,我利用贝叶斯仿照别人的代码写了一个拼写检查器,觉得难点就在于,这个拼写检查器并不是直接套公式,而是经过转换,使用了其他的指标充当概率。
掌握程度 : 基本原理大概了解,并在此基础上写了一个拼写检查器
支持向量机
支持向量机主要目的是寻找一个更好的曲线来拟合当前数据集,使得这个曲线和每个类别的数据距离足够远,这样能避免过拟合,对于支持向量机只看明白了个大概原理,知道是干什么的。
掌握程度 : 了解整个过程,可以使用sklearn工具里的支持向量机
神经网络
我目前对神经网络的浅显的理解就是神经网络是一个超强的线性回归,因为神经网路允许中间多一些隐含层,所以就是的神经网咯能更好拟合当前的曲线,只要神经元个数足够多,就能拟合任意分布的数据集,但是神经网络的弊端也在于此,它会造成过拟合。
学习完神经网络基本概念后,参考网上的代码自己实现了一个神经网络,并且也学习了TensorFlow中怎么构建神经网络。
掌握程度 :对神经网路里面一些名词的含义了解了
三、论文阅读
整个暑期期间读了五篇论文,但是自己感觉效果并不是很好,大多数时间对论文只停留在字面意思的理解,因为对这方面知识缺少背景,所以刚开始读起来比较吃力,最后有几篇是主题差不多的,都是在讲关于人脸方面问题,所以通过不断的阅读,然后查阅资料,建立起对这个方面的背景了解。
在人脸方面我读的五篇中有三篇都提到了关于使用图片细节或者图片深度相关信息进行反人脸欺诈。所以在读了两篇后再读第三篇就不会那么吃力。
在以后的学习中也要加强论文阅读能力,提高自己对文献的理解能力,并能进行创新得出自己的结论。