人工智能是怎样学习的?(面向小白的科普文)

人工智能是怎样学习的?(面向小白的科普文)


DATE: 2018-05-10 09:38:16

前言

如今,物联网、大数据、人工智能、区块链之类的新技术新概念炒的火热,作为信息行业的从业者,对各时髦技术至少要有科普级别的了解。本文聚集人工智能,简单讲解机器学习的原理。

人工智能是怎样学习的?

作者:弈心逐梦

人工智能通过学习,可以学会识别文字、学会聊天,甚至可以学会下围棋,熟练的掌握了原本是人类才能掌握的技能,并且比人类做的更好。比如人工智能阿法狗先后将李世石和柯杰两位围棋界的世界冠军斩落马下。

人工智能的本质是程序员们开发的一款软件,就像购物软件、游戏软件一样,俗称电脑。但它是怎样学会人类技能呢?

首先将人类的技能数学化,将看图、说话、下棋这样的行为通过数学的方法转换为电脑可以认识别数值,然后让电脑存储大量的行为与数值对应关系。当电脑发现新行为时,只要在存储信息中寻找和当前行为最接近的值就可以了。 本文以听音乐的行为来说明人工智能,即电脑听到一首歌就知道这首歌是《好汉歌》。

(1) 将人类的行为用数学方式描述

人工智能就是让电脑学会人的行为,就像妈妈教宝宝听儿歌。宝宝不理解“儿歌”这个词语代表什么含义,但当儿歌响起时,宝宝能够手舞足蹈做出反应。 人工智能对音乐的理解就像宝宝对儿歌的理解,不知道儿歌是什么含义,但可以做出相应的反应。 对电脑来说,人类的丝竹乐它是不能理解的。但是,它可以理解歌曲抽象后的数值队列。最简单的抽象方式是用声音的尖锐程度记录音乐。例如: 人工智能听到的音乐是:“大河向东流哇,天上的星星参北斗哇” 将歌曲做数学计算,生成的数值对列是:“005 105 107 207 206 105 105 …” 人工智能将“005 105 107 207 206 105 105 …”这一串数列存起来,意味着它能听出这首歌曲是《好汉歌》,即使它不会因听到歌曲而说走就走,它依然能认出这首歌。

(2) 让电脑存储大量的行为与数值匹配的数据

随着宝宝的成长,他(她)听过的歌曲越来越多后,可以记住更多的儿歌,还可以在听到儿歌时知道,自己曾经听过这首曲子。甚至,当听到唢呐版或钢琴版的儿歌时,宝宝也能分辨出自己听过这首曲子。 同样,当我们对人工智能多一点要求的时候,就需要他有更强的辨别歌曲的能力,能识别更多的曲子。 这需要人工智能听很多首曲子,然后将这些曲子以数值的方式记住。存储大量歌曲信息的过程是人工智能的学习期,也可以说我们在训练人工智能。 经过大量的听歌,即专业术语所讲的样本训练后,人工智能培训成了这样的思维: 《大鱼》:“113 112 113 116 113 112 …” 《红颜旧》:“127 116 117 111 112 …” …… 在人工智能的思维中,有大量的歌曲与数列的对应关系。 当听到相同的歌曲时,人工智能立马能够回想起自己听过。当人工智能听到唢呐版或钢琴版时,同一首曲子由不同乐器演奏版本,虽然音色不同,但旋律和节奏基本是相同的。所以在人工智能的思维中,会认为与原有曲子的数值队列大约相同。所以也可以找到最接近的那首曲子。

(3) 让电脑开始工作

当宝宝的智力再次成长后,不仅能分辨出更多的儿歌,还可以在听到新儿歌时联想到之前听过的某一首相似的儿歌。 这样的联想能力尽管是人类思维的一大特点,但人工智能依然可以做到。 人工智能想做到这一点,需要基于前两步积累。人工智能不但要知道怎么分析识别音乐,还要听过大量的音乐才可以。 人工智能的思维过程和人的思维过程类似,听到一首曲子A时,会回想之前听过的曲子并不停的在心里比较,最终回想起一首节奏、旋律差不多的曲子B时,会发现:A和B两首曲子的风格接近,很类似。 电脑与人脑在想这个问题的时候,区别在于:回忆听过的曲子时,电脑会计算出精确的相似度,而人脑只会有一个大概的印象。

总结

人工智能的学习过程是对人类学习新知识时思维过程的模仿。先以数学的方式了解要学习的内容(听歌,得到特殊数值),然后学习大量的样本(听很多的歌曲),最后在遇到新的问题时,计算出与样本最接近的值(听新歌,回忆以前听过的最风格接近的歌曲)。 人工智能就这样诞生了

版权声明

翼安博客


首发 翼安博客,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读
Git for windows 修改Home路径(版本号:2.14)
前人留下的网络资料有解决1.9版本的这个问题,但对2.14版本已经不再适用。前人资料:http://www.cnblogs.com/fenpho/p/6208896.htmlhttp://www.cnblogs.com/xunzhiyou/p/5028789.html实际操作后,修改/etc/profile文件后,重新开始GitBash并没有生效。由于Git的默认路径在C:\Users\Admin
489

thinkphp6设置Content-type解决header添加不生效问题
thinkphp6设置Content-type解决header添加不生效问题原生php只需要加入header就可以实现输出各种格式的文件内容,如header("Content-type:text/css");然而,在thinkphp6中却不能生效。response总会自动的将内容以网页的形式输出。即自动添加<html>、<body>等标签,无法达到预期的效果。tp6框架中提
4990

每天上班都像上坟一样难受,怎么办?三条妙招让上班像踏青
经常听到身边有些朋友抱怨,说每天上班的心情就想上坟。然而,真是如此么?小编相信,每位上班像上坟的朋友,身边不会缺少这样的朋友:每天上班精神抖擞,很有干劲,心情愉悦就像是来踏青一样。他们是怎么做到的呢?其实,上班不愉快无非就是上班时心情不好,感觉焦虑。要知道,这些都是可以解决的!人的一生,就是适应、利用、创造法则的一生。法则就是自然法则、社会秩序和公司规章制度。最无力的时候只能去学习、适应法则,成长
3180

CSDN-markdown编辑器示意效果
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗Ctrl+B斜体Ctrl+I引用Ctrl+Q插入链接Ctrl+L插入代码Ctrl+K插入图片Ctrl
1425

php开发遇到的Access denied for user
php开发遇到的Accessdeniedforuser'root'@'localhost'(usingpassword:NO)首发:2017-09-2413:44:38环境:CentOS6.5+php5.3.3在php开发过程中,我遇到了一个问题:在命令行中登录Mysql完全正常,然而PHP代码读取数据库却出了问题。报错如下:Accessdeniedforuser'root'@'localhost
3233

Linux环境C C++起Socket Server监听8080端口的代码实现
代码抄录自《UNUX网络编程卷一》,在实现开发环境中调试通过,经测试发现可以正常监听。(2017-09-0621:56:31)开发环境:CentOS,g++,VIM功能:C++实现Socket通信的Server端,实现监听8080端口接收到的消息。#include#include/*SeeNOTES*/#include#include#include#include#include#include
2722

CentOS 系统简易搭建FTP服务(四步足矣)
本文作者之前在CSDN发过(2017-09-0313:09:28),现在入驻本站。网上有很多的FTP搭建步骤,但普遍很繁琐,个人临时使用太麻烦。本次实验使用腾讯云服务器CentOS简易搭建FTP服务器,四行命令足矣完成基本使命。yuminstallvsftpdservicevsftpdstartuseradd-m-d/home/uftp-s/sbin/nologinuftppasswduftp目前
2496

linux中查看C C++程序或调用其中某个函数(类)消耗内存的方法实现
验证C/C++程序或调用其中某个函数(类)消耗内存的方法:获取进程ID,调用/proc/[pid]/status查看消耗的内存页(4KB/内存页)进程ID获取方法UNIX环境高级编程中提到的getpid(),可以获取。头文件``查看内存信息sprintf(FILE_NAME,"/proc/%d/statm",pid);FILE*fp=fopen(FILE_NAME,"r");fscanf(fp,"
2609

Linux(Android)系统Root实现原理
方案主旨思想是查找系统漏洞,让本身具有root权限的进程执行打开root权限的操作。重烧engboot.img方案Android版本有user版本和eng版本的区别,其中eng版本可以用于开发调试,所以本身可以开启root权限。通过重烧engboot.img版本来获取root权限。这个原理理解起来很简单,原理章节不再详述。死锁问题root需要考虑两个问题:(1)root权限的获取;(2)root权
2987

Ubuntu中Apache2启动失败报错Job for apache2.service failed because the cont...
Ubuntu中Apache2启动失败报错Jobforapache2.servicefailedbecausethecont...为解决这个问题,花了一个下午,参考了120多条网络博文,很有成就感。但实际上是由于一个简单的配置原因导致的问题,希望以后可以更加细心。-最初的现象,php代码没有解析phpinfo输出内容是显然,只是代码,并没有成功解析php代码。事后分析,是Apache2服务的问题。-
3513

解决Python报错IndentationError unindent does not match any outer indentation level
解决Python报错IndentationError:,unindent,does,not,match,any,outer,indentation,level,,DATE:,2017-09-08,21:12:29,Windows平台Python开发中,遇到一个问题:,IndentationError:,unindent,does,not,match,any,outer,indentation,le
1552

解决升级php版本后mail发送邮件失败问题
解决升级php版本后mail发送邮件失败问题DATA:2018年07月09日16:27:21CentOS7系统php版本从5.3升级至5.6后,原本的邮件发送功能失效。查阅资料解决并笔记之。php发送邮件主要代码实现$headers="MIME-Version:1.0"."\r\n";$headers.="Content-type:text/html;charset=iso-8859-1"."\r
1523