机器学习发展到今天,大致可以分为以下两大类:传统的机器学习算法和深度学习算法
传统机器学习算法常用的有:(包括但不限于)
参考: https://blog.csdn.net/jrunw/article/details/79205322
1.SVM(支持向量机support vector machine)
要将两类分开,想要得到一个超平面,最优的超平面是到两类的 margin 达到最大,margin就是超平面与离它最近一点的距离;它主要应用于二分类问题,通过定位两类数据在几何空间中的边缘,来确定分类器。恰好能“最好地”将两类数据分开,这样的超平面(或曲面)就是SVM分类器。
这样的超平面在两类数据之间,同时应该具备如下两个条件:
- 最近距离最远:两类数据中,每类数据都有一个点距离该超平面的距离是最近的,而“最好的”超平面要这个两个最近距离的和尽可能的远;
- 等距:超平面距离两类数据最近的点的距离是相等的;
2.Adaboost(级联算法)
级联增强就是把若干个分类效果并不好的分类器综合起来考虑,会得到一个效果比较好的分类器。
3.决策树
根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。

4.随机森林
在源数据中随机选取数据,组成几个子集,S 矩阵是源数据,有 1-N 条数据,A B C 是feature,最后一列C是类别,由 S 随机生成 M 个子矩阵,这 M 个子集得到 M 个决策树。
将新数据投入到这 M 个树中,得到 M 个分类结果,计数看预测成哪一类的数目最多,就将此类别作为最后的预测结果成 M 个子矩阵。
5.逻辑回归
当预测目标是概率这样的,值域需要满足大于等于0,小于等于1的,这个时候单纯的线性模型是做不到的,因为在定义域不在某个范围之内时,值域也超出了规定区间。
这个模型需要满足两个条件 大于等于0,小于等于1
大于等于0 的模型可以选择 绝对值,平方值,这里用 指数函数,也一定大于0
小于等于1 用除法,分子是自己,分母是自身加上1,那一定是小于1的了

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
再做一下变形,就得到了 logistic regression 模型

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
通过源数据计算可以得到相应的系数了

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
最后得到 logistic 的图形

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
6.K最邻近(K nearest neighbours)
给一个新的数据时,离它最近的k个点中,哪个类别多,这个数据就属于哪一类
eg:要区分 猫 和 狗,通过 claws 和 sound 两个feature来判断的话,圆形和三角形是已知分类的了,那么这个 star 代表的是哪一类呢
k=3时,这三条线链接的点就是最近的三个点,那么圆形多一些,所以这个star就是属于猫

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
7.K 均值
想要将一组数据,分为三类,粉色数值大,黄色数值小
最开心先初始化,这里面选了最简单的 3,2,1 作为各类的初始值
剩下的数据里,每个都与三个初始值计算距离,然后归类到离它最近的初始值所在类别

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
分好类后,计算每一类的平均值,作为新一轮的中心点

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
几轮之后,分组不再变化了,就可以停止了

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
8.神经网络
Neural Networks 适合一个input可能落入至少两个类别里
NN 由若干层神经元,和它们之间的联系组成
第一层是 input 层,最后一层是 output 层,中间层称为hidden层(若干个隐层神经元)
input 输入到网络中,被激活,计算的分数被传递到下一层,激活后面的神经层,最后output 层的节点上的分数代表属于各类的分数,下图例子得到分类结果为 class 1
同样的 input 被传输到不同的节点上,之所以会得到不同的结果是因为各自节点有不同的weights 和 bias
这也就是 forward propagation

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
9.马尔科夫(Markov Chains)
Markov Chains 由 state <状态>和 transitions<转换> 组成;
eg:根据这一句话 ‘the quick brown fox jumps over the lazy dog’,要得到 markov chain步骤,先给每一个单词设定成一个状态,然后计算状态间转换的概率

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
这是一句话计算出来的概率,当你用大量文本去做统计的时候,会得到更大的状态转移矩阵,例如 the 后面可以连接的单词,及相应的概率

转存失败重新上传取消
转存失败重新上传取消

转存失败重新上传取消
生活中,键盘输入法的备选结果也是一样的原理,模型会更高级
深度学习算法:
经典的网络框架有很多,检测网络如rcnn系列,yolo,ssd等;识别网络有LeNet,Googlenet,AlexNet,ResNet等,后续补充