认识人工智能中的机器学习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
认识人工智能中的机器学习
自2016年以来,大数据、人工智能和机器学习已然替代电商、O2O、互联网金融等传统领域,成为众多科技公司投资未来的热门主题。
这篇文章将带你简单的认识人工智能中的机器学习。
首先你要知道,机器学习(Machine Learning)也是学习的一种体现形式,不过,它是计算机自我认知、自我学习的过程。
顺便说一句,机器都在学习,你还有什么理由不努力。
1. 固定思维
实际上,机器学习的内容和本质和传统编程就是两个概念,在我们讲解机器学习之前,我们先来看看大家都熟知的一段常规程序:
public static void main(String args[]){
werld!”);
}
有没有感觉很熟悉?这段程序在编译后,就做了一件事情,会在控制台打印一句话“Hello werld!”。不难理解,这是程序员在告诉程序,每次运行时都做了同样的事情,即输出指定的字符串。
这是固定的思维及结果,很显然,我们的程序不会自己想着修改一下werld为world,因为很明显,这是程序员写错了一个单词,而当其他程序员看到这段代码,根据自我学习积累的经验,很容易发现这个错误并能更正过来。
2. 实现变化
接下来,我们再来看看游戏编程中的一个简单策略,比如,某个英雄拥有”闪避”的属性,对于对手相同的攻击输出,却有不同的伤害结果。要实现这个功能,其实代码的思想如下:
boolean attack(Hero hero){
Boolean attackResult = Math.random() > hero.getDodge()?true:false;
if(attackResult){
;
hero.reduceHp(10);
}
}
以上代码不难理解,hero是代表被攻击的英雄,Math.random是获取一个随机数,hero.getDodge代表被攻击英雄的闪避能力。通过随机数的机制,使得我们程序的相同输入却有不同的输出。
3. 自我学习
机器学习的核心是学习算法和大数据,在此,我们通过一个简单的示例来给大家说明。
在机器学习(ML)中,基本的任务是从数据中学习一个预测分析规则,这是从历史数据中学习到的知识。
如果预测的的结果是一个数字,那么这是在解决一个回归的问题,例如“明日下午3点整腾讯的股价是多少?”,虽然这个问题就非常复杂,但是如果可以结合股市完整的历史数据进行模式训练,再结合一切可能影响股票的新闻、经济数据、政策法规等与股价有关的信息,确实能得到一个值,但这个值和结果值匹配上的可能性可能也不高。
那么,我们把难度降低一些,例如“明日下午3点整腾讯的股价会涨还是跌?”,在相同的历史数据的情况下,我们采用不同的算法,通过优化训练因子训练的二分类预测器的预测结果的准确率将大大提高,如果你是要解决“买入、卖出还是持有”的问题,那么这又变成了一个多分类问题。
因此,机器学习的一种有效学习方式是通过对历史的数据进行学习,当然,数据量必须是大数据,这样才能代表客观存在的规律,并由算法进行训练得到对应的分类器,当新的一条数据输入分类器,可以得到对应的分类结果,而这个结果不是由程序员的if ... Else ...控制,而是由经过海量数据学习得到的一个有经验分类器控制输出。
分类器也是在不断进化,随着更多历史数据的加入,分类器会自我进行优化,且基于历史客观存在的数据,不断进行自我测试以保证其对未知数据决策的准确性。