隔壁有个妹纸喷我​,好高兴....给她回复了下

哎呀,没想到是个妹纸,其实我就随便那么一说,没合计妹纸还专门写个檄文声讨我,受宠若惊
其实你的评论一看就比较专业,所以我就去你博客大概扫了一眼,发现个大问题,感觉就是一基层技术人员,所以就没当回事...
包括你写的这个三月的学习思路,基本还是按码农那个路子来的,一上来就要撸起袖子敲代码。
机器学习我肯定是门都没入啦,但要说如何从码农做到架构师做到技术总监,这方面我觉得肯定比你有经验。
我想我俩的水平肯定都不是搞学术,而是搞应用级技术本质上并没有比传统信息系统技术栈复杂多少,长多少,我可以说在传统信息系统中弦哥这样的老程序员掌握的编程思想、编程哲学、架构设计、解决方案选型这方面肯定要甩你几条街的。这些难题同样会在机器学习应用级技术领域出现,也决定了你能走多远。
我想你还年轻,你没见过也不会去想一个程序员的瓶颈,我年纪大点,也带了很多年团队,见过很多在这个瓶颈上痛苦徘徊迷茫的程序员,原因是啥?就是因为你的这种学习思路和方法。
当然年轻人不服就干的精神是非常非常可贵的,支持你这个系列,一起学习,另外也别给自己太大压力哟。

今天我们的学习目标是,搞清楚hand-crafted rules实现人工智能的方式及其缺陷,以及如何识别江湖骗子。

上篇我们讲到在machine learning之前基本都是靠hand-crafted rules去实现所谓人工智能。这部分太简单,一般教科书都是以“我们都知道...”一笔带过,这无疑给不知道的同学带来一记重拳!这篇我们通过两个例子去讲。

弦哥养了个狗子叫二丫,刚领回家的一段时间,只要二狗子撒尿,我就会喊“尿!”,像精神病似的喊了一个月,二狗子建立起了简单的逆向条件反射。

if(有人喊尿)

就蹲下撒尿

一天去遛狗,对面迎来两个妹纸,弦哥大吼一声:“尿!”,二狗子立马蹲下就尿。其中的那个萌妹子:“哇!好聪明的狗狗!”(*萌妹子以为二狗子能听懂指令,感觉狗子具备智能。),另外一个妹纸是机器学习专业的,不以为然,学着弦哥的样子也吼了一声:“尿!”,二狗子立马又蹲下,然而由于刚尿完,所以只能做着蹲的姿势并没有尿,场面比较尴尬...(*如果是小孩就会真正理解尿这个指令的含义,这时候他会说:”daddy,我没有尿!“,而不会把裤子脱了。),这时候机器学习专业妹纸又得意的吼了一声:”不准尿!“,倒霉的二狗子又蹲下了,姿势显得更加猥琐,不解的看着我们...(*所谓的一些智能声控灯也有这个问题,你喊:”不要关灯!“,他也会把灯给你关了。)。我原本打算继续给萌妹子表演狗子拉屎、狗子拜年、狗子打滚、狗子做加法,让妹纸觉得狗子具备小孩的智商,(*这些都可以通过简单的if语句实现,组合起来会让机器看起来更具备智能。)但由于有行家在,只能悻悻的牵着笨狗子走了,搭讪失败!

图为弦哥家只会hand-crafted rules的笨狗子

小结:hand-crafted rules实现的人工智能,其本质就是通过许多if判断语句去实现,然而并不能完成比较复杂的任务,由于需要编写大量的if语句,工作量非常大不说还会经常出现一些可笑的错误,早期的一些所谓智能聊天机器人,基本都是用这种技术。

 

第二个例子,弦哥在东北混,对喊麦十分在行,如果我说,能编写一个叫“社会你弦哥”的智能说唱喊麦机器人,你随便说个五言绝句,“社会你弦哥”就能喊麦唱出来,你信不信?。伪代码如下:

将输入的一首五言诗分成4句;

在每句的第二个字后面随机加上“我、他、那、这”的其中任意一个字;

最后按“咚次哒次”的节奏加重音读出来;

我们运行下这段程序试试,老师来音乐!大家的手举起来嗨~

锄禾我日当午!

汗滴他禾下土!

谁知这盘中餐!

粒粒他艰辛苦!

再来一个, 接着嗨~

离离那原上草!

一岁他一枯荣!

野火我烧不尽!

春风这吹又生!

据说有媒体采访一位专业的音乐评论家,让他谈谈对“MC天佑”喊麦的看法,他只说了一句“请尊重我的专业..."。

小结:基本的hand-crafted rules加上一些其他专业领域的基础知识,就被很多人用来忽悠是人工智能。

这个结论不是我说的,一个国内业界小有名气的朋友私下告诉弦哥,目前人工智能领域市场估值很高,很多创业公司为了骗投资人和政府支持,搞的所谓人工智能产品就是这些东西。

国外也一样,业界知名大牛尼古拉斯·赵四(*没听清名字)在facebook上发过一副漫画,说的也是这个事。

图片来源:台大电机系李宏毅教授机器学习讲义截图

谈个我并不是要说明IT圈比娱乐圈还乱,也不是不尊重业内的老师,毕竟我也搞过什么大数据主动服务之类的玩意,大家都混口饭吃不容易。只是想再次勉励同学们,人工智能没有想象的那么难,不要被业内动辄清华北大斯坦福的title吓到,王健林都说了清华北大不如胆子大,哈哈。比如deep learning已经属于应用级技术,有很多开源项目支撑,可以不太准确的说paper级别的理论咱们也用不到,且在商业应用领域意义也不大。

当然这个系列会越来越难,遇到困难的时候,同学们要有信心、耐心和坚持!

跟着弦哥学人工智能2—HAND-CRAFTED RULES实现的人工智能及其缺陷的更多相关文章

  1. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  2. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  3. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  4. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  5. 跟着鬼哥学so改动,一,准备篇

    图/文 听鬼哥说故事 闲话少说,so的改动,重要性大家都知道,这里从头编写so文件,分析so文件,改动so文件,打算做一个系列的教程,当然,主要是看时间同意. android的sdk配置以及ndk环境 ...

  6. 跟着鬼哥学so改动,二,进行篇

    图/文  听鬼哥说故事 继续上文的内容---------------------------------- 0x1:測试文件的编写 经过上一篇文章的基础学习,如今我们開始进行是用的部分. 既然我们能够 ...

  7. 跟着刚哥学Redis

    NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".是对不同于传统的关系型数据库的数据库管理系统的统称.它泛指非关系型的数据库.随着 ...

  8. 跟着鸟哥学Linux系列笔记0-扫盲之概念

    相关缩写全称: POSIX(Portable Operation System Interface):可携式操作系统接口,重点在于规范内核与应用之间的接口,由IEEE定义发布 IEEE: 美国电气与电 ...

  9. 跟着马哥学python-day02

    1. 运算符 计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.位运算. 1.1 算数运算 以下假设变量:a=10,b= ...

随机推荐

  1. 201521123057 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 常用异常 1.题目5-1 1.1 截图你的提交结果(出现学号) 答: 1.2 自己以前编写的代码中经 ...

  2. 201521123079《java程序设计》第14周学习总结

    PTA反馈问卷 雨课堂反馈问卷 本次作业参考文件 数据库PPT MySql操作视频与数据库相关jar文件请参考QQ群文件. 本周课程设计发布 Java课程设计 本周学习总结 1.1 以你喜欢的方式(思 ...

  3. iScroll在谷歌浏览器中的问题

    通常情况下,我们会使用iScroll.js做移动端的下拉刷新和上拉加载功能,当然,还有很多其他功能. 不过,在使用iScroll的时候,在谷歌浏览器中出现不支持的情况,即,做移动的时候,出现卡顿或是每 ...

  4. hadoop超租约报错:

    解决方法:修改linux打开文件最大限制Java代码 echo "fs.file-max = 65535" >> /etc/sysctl.conf echo " ...

  5. [python学习笔记] py2exe 打包

    遇坑 之前经过折腾,pyinstaller打包文件可以在别的windows7上运行.但是,mfk, 客户说是xp系统.崩溃 使用pyinstaller各种折腾,打包出来的依然是不是有效的win32程序 ...

  6. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  7. JAVA多线程---volatile关键字

    加锁机制既可以确保可见性又可以保证原子性,而volatile变量只能确保可见性. 当把变量声明为volatile时候 编译器与运行时都会注意到这个变量是共享的,不会将该变量上的操作与其他内存操作一起重 ...

  8. 转自知乎(JAVA后台开发可以纯粹用JAVA SE吗?)

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:巴多崽链接:http://www.zhihu.com/question/29663744/answer/45154839来源: ...

  9. Thread.Join 和 Task.Wait 方法

    这两个方法 可以说是类似的功能,都是对当前任务进行等待阻塞,执行完毕后再进行后续处理 talk is cheap, show you code,下面一个是异步执行,一个是加了阻塞,可以对比不同执行结果 ...

  10. 【NOIP】OpenJudge - 15-03:雇佣兵

    #include<stdio.h>//雇佣兵 int main() { ; scanf("%d%d%d",&M,&N,&X); n=N; m=M ...