从业这么久了,做了很多项目,一直对机器学习的基础课程鄙视已久,现在回头看来,系统的基础知识整理对我现在思路的整理很有利,写完这个基础篇,开始把AI+cv的也总结完,然后把这么多年做的项目再写好总结。
学习路线
第一步:数学
主要为微积分、概率统计、矩阵、凸优化
第二步:数据结构/算法
常见经典数据结构(比如字符串、数组、链表、树、图等)、算法(比如查找、排序)
同时,辅助刷leetcode,提高编码coding能力
第三步:Python数据分析
掌握Python这门语言、和基本的数据分析、数据处理知识
第四步:机器学习
掌握常见经典的模型/算法(比如回归、决策树、SVM、EM、K近邻、贝叶斯、主题模型、概率图模型,及特征处理、模型选择、模型选择等等)
同时,辅助刷kaggle,培养对数据、特征的敏锐
第五步:深度学习
掌握神经网络、CNN、RNN、LSTM等常见经典模型、以及三大DL框架
同时,配套课程利用TensorFlow等开源框架做做DL等相关实验:http://blog.csdn.net/v_JULY_v/ ... 61301
第六步:CV应用扩展
整理几个基础的概念。
下面,我们来看一看几种常见的机器学习问题。
线性回归
就是用一条直线去最佳的拟合数据,我们有这样的函数表达式,我们会发现,大部分的点都不会正好落在直线上。所以,我们有这样的函数来评价在当前参数下,函数的偏差值,通常称为代价函数(Cost Function)。
梯度下降
为了使得我们的偏差最小,就要使用一种优化的算法,可以使用最小二乘法,这里我想讲一下梯度下降法。
天黑了,雾很大,你要下山,为了下的快,需要每一步都沿着山坡斜率最大的方向走,在一维微积分中称为导数,多维中称作梯度,经过一段时间,你可以走到山底。
你需要让Cost最小,但是,你可能会走到局部极小值点,然而那里并不是全局最小,这是梯度下降的一个缺点,当然我们可以通过一些方法来尽量避免这种情况出现。
对率回归
也叫逻辑斯蒂回归,就是俗称的逻辑回归,这虽然听起来是回归,但是这是用来做分类的。
我们使用一种叫做sigmoid的s型函数,经过训练之后,我们设定一个阈值为0.5,若y>=0.5,我们就认为这个数据是1类,否则是0类。
神经网络
最初是用来模拟人的大脑结构的数学模型,不要被这个看起来高大上的名字吓住,其实它不过是一个分层的有向图。
有输入层、隐藏层和输出层,其中隐藏层可以有多个,每一个小圈都是一个神经元。输入层是一组输入的数值,我们将每一个数乘上对应边的权重在加起来就可以得到对应的下一层神经元上,依次计算下去。
过拟合与欠拟合
深度学习
- 多层的神经网络
- 增加了卷积核
- 增加了时间序列,有了对之前神经元输入值的记忆
机器学习的应用
将语音信号进行处理后解码,转换为对应的文本。
根据用户个人的兴趣爱好进行个性化推荐。