聊聊传统算法系统和机器学习系统的一点不同
2017-04-25 14:51
253 查看
这里就简单聊聊传统算法系统与机器学习系统的一点不同。
1
传统算法系统
传统算法系统,是已经给定了一个算法处理逻辑,那么你给我的输入,我按照这个算法处理逻辑进行处理,就能得到相应的输出。如下图:
2
机器学习系统
而机器学习系统,是给定我们数据的输入输出(这里先指监督学习),让我们从这些数据中学习出算法,以后,通过这个学习到的算法模型进行给定输入的判断,得到输出。如下图:
3
例子:
在我们传统的算法系统中,我们的要求是,给定一个数n,让我们输出1+2...+n的结果。
我们很容易由等差数列求和公式得到算法程序如下:
根据上面算法流程,我们来了一个数n,直接用程序跑一下,就能得到结果!
那我们的机器学习系统是否也能够直接编写判断逻辑算法呢?
用一个机器学习最经典的入门例子来解释,手写数字识别。
比如我们要判断一个手写数字是几。按照我们的思维逻辑,我们需要写10个if else来分别判断是不是0,是不是1,....是不是9
比如我们判断是不是2,就会有下面判断
恩,看起来我们好像完成任务了。
但是,if(满足是2的条件)
这个满足是2的条件怎么写呢?
我们先看看2是什么样子,如下:
我们可以根据这个标准的2和其它数字的特征不同来写嘛,比如2最下面是一行横线,2的中间有个弯弧,等等。
哈哈,看似解决问题了,其它的数字类似,我只要找到和其它数字的不同,就能找到if()中的满足是数字为几的条件。
那么岂不是也就满足要求了,为什么还需要机器学习算法呢?
问题没有这么简单。我们真正碰到的手写数字2,根本就不会有上图2这么标准,各种各样的都有,比如下图:
上图这些数字,我们人眼观察还是能够大部分认识是2,但是它跟我们刚刚说的满足2的特征吗?上面好几个都没有最下面一行是横线,等等,我们无法一一列出现实生活中的各种情况。
那么就需要我们的机器学习算法,自动的学习到里面的特征,从而构建出一个机器学习模型,进而帮助我们判断一个手写数字是否为2.和判断一个手写数字是几。
上面这俩个例子,其实从某种程度上,能反应俩种系统的本质区别。欢迎大家指错交流~
原文地址:聊聊传统算法与机器学习的不同
1
传统算法系统
传统算法系统,是已经给定了一个算法处理逻辑,那么你给我的输入,我按照这个算法处理逻辑进行处理,就能得到相应的输出。如下图:
2
机器学习系统
而机器学习系统,是给定我们数据的输入输出(这里先指监督学习),让我们从这些数据中学习出算法,以后,通过这个学习到的算法模型进行给定输入的判断,得到输出。如下图:
例子:
我们很容易由等差数列求和公式得到算法程序如下:
# include <stdio.h> double get_sum(int n) { double ans; ans = n(1+n)/2.0; //等差数列求和公式 return ans; } int main(void) { double res; int n; printf("please input an integer:\n"); scanf("%d",&n); res = get_sum(n); printf("%lf\n",res);
}
根据上面算法流程,我们来了一个数n,直接用程序跑一下,就能得到结果!
那我们的机器学习系统是否也能够直接编写判断逻辑算法呢?
用一个机器学习最经典的入门例子来解释,手写数字识别。
比如我们要判断一个手写数字是几。按照我们的思维逻辑,我们需要写10个if else来分别判断是不是0,是不是1,....是不是9
比如我们判断是不是2,就会有下面判断
if(满足是2的条件){ printf(这个手写数字是2);}else{
printf(这个手写数字不是2);}
恩,看起来我们好像完成任务了。
但是,if(满足是2的条件)
这个满足是2的条件怎么写呢?
我们先看看2是什么样子,如下:
我们可以根据这个标准的2和其它数字的特征不同来写嘛,比如2最下面是一行横线,2的中间有个弯弧,等等。
哈哈,看似解决问题了,其它的数字类似,我只要找到和其它数字的不同,就能找到if()中的满足是数字为几的条件。
那么岂不是也就满足要求了,为什么还需要机器学习算法呢?
问题没有这么简单。我们真正碰到的手写数字2,根本就不会有上图2这么标准,各种各样的都有,比如下图:
上图这些数字,我们人眼观察还是能够大部分认识是2,但是它跟我们刚刚说的满足2的特征吗?上面好几个都没有最下面一行是横线,等等,我们无法一一列出现实生活中的各种情况。
那么就需要我们的机器学习算法,自动的学习到里面的特征,从而构建出一个机器学习模型,进而帮助我们判断一个手写数字是否为2.和判断一个手写数字是几。
上面这俩个例子,其实从某种程度上,能反应俩种系统的本质区别。欢迎大家指错交流~
原文地址:聊聊传统算法与机器学习的不同
相关文章推荐
- AI 自动研发机器学习系统,DeepMind 让算法学习强化学习
- 深度学习系统相比较传统的机器学习系统,针对常见的分类问题,精度究竟能有多大提升?
- 机器学习实战python版归一化数值和测试kNN算法以及构建完整可用系统
- AI 自动研发机器学习系统,DeepMind 让算法学习强化学习
- 推荐系统算法学习导论
- 系统算法学习总结
- 模式识别学习笔记[2]——聚类分析之系统聚类法,k-均值算法
- [转载]关于文件系统和磁盘驱动的一点学习心得
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- 关于嵌入式系统学习的一点经验总结
- 一天一点学习Linux之文件系统的手动挂载
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- Coursera公开课笔记: 斯坦福大学机器学习第十一课“机器学习系统设计(Machine learning system design)”
- 深入学习算法的一点拙见
- 深入学习算法的一点拙见
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- 新手学习Linux系统的一点见解
- 不同数据库系统NULL判断的一点细节
- 验证不同的机器系统分配的字节不一样
- 学习算法的一点体会