内容来源:2017年6月24日,美登科技前端架构师邓鋆在“腾讯Web前端大会 TFC 2017”进行《一名前端工程师的机器学习之旅》演讲分享。IT 大咖说做为独家视频合做方,经主办方和讲者审阅受权发布。
前端
阅读字数:1980 | 4分钟阅读算法
美登科技前端工程师邓鋆分享本身的机器学习之旅心路历程。编程
多元输入。现有的输入从最先的键盘鼠标到如今的触屏,之后可能会是语音和手势。网络
另一个方面就是因人而异。我认为多年之后,可能每一个用户看到同一个产品的交互都是不同的。在人工智能面前,咱们要作的事情再也不是一个产品,也许会为每个用户创造一个新的产品,用最适应这个用户的方式去改造他的体验。前端工程师
以及信息层次丰富。信息应该有一种层次化的表达,应该跟随人的注意力和一些细节的动做主动把一些信息展现出来,而其它的信息更可能是保留在背后,在整个应用中做为一个暂时没有接触到的部分。可是当你须要它的时候,它可以第一时间跳到你面前。架构
还有就是VR和AR。经过近几年反复的推广,这两个技术已是开始小有成果的状态了。但何时前端用户交互之间能被这两个技术所颠覆,目前还是未知数。机器学习
人工智能在近几年的突破巨大,主要体如今几个方面。第一个是硬件的突破,第二个是算法的突破,第三个是大数据的存储。这三件事促使了如今机器学习的领域一次又一次大的爆炸。函数
机器学习赋予了计算机“不须要特定的编程而可以自行学习”的能力,经过训练来解决特定的简单问题。学习
传统编程最开始是人类去发现需求,而后人类把需求转化成一个抽象的设计。要实现它必需要有客户端各类程序和服务端巨大的库,在此基础之上再去作相应的开发,逐步分解并解决每个子问题。最后还须要人或者机器来进行测试。而真正交给机器去作的一步只有运行,其它步骤都是须要人工进行操做的。测试
在机器学习的方式下,首先假设要解决一个特定的问题,第一个步骤仍是了解需求,能够预见未来有一天机器可以去发现人类的需求,而后机器去找寻需求的规律。机器自动经过大量的数据、实验,找到这些事情相互的关联,这个过程是彻底没有人工参与的。咱们只是设定了网络结构和目标函数,除此以外的思考过程都是机器完成的,机器会本身在过后在验证它的方式。因为机器须要吃掉大量的数据,因此人类须要准备数据。最后由机器完成执行,人类辅助机器作测试与纠错。
如上图所示,右边区域是咱们的问题,黄色区域里面有不少的点是咱们所收集到的数据,背景色是咱们找到的解。这幅图展示的就是经过浅层学习找到了问题的解。可是浅层学习有一个巨大的缺点就是特征须要人工提早作抽取和处理。
深度学习从结构上和浅层学习有巨大的区别,咱们引入了不少hidden layers。如图所示,在一次乘法、一次加法、一次取极值以后,到最后输出结果。深度学习就是这样一个公式。
硬件最大的变化就是对GPU的使用愈来愈频繁。人工智能深度学习的函数、公式内部涉及的是大量的浮点运算。这些函数在GPU出现以后,有大量的浮点运算就交给GPU。事实上,深度学习在GPU上的执行效率多是在CPU上的30~50倍。GPU也给机器学习带来了巨大的促进做用。
千里之行始于足下,咱们的第一个目标是想要知道用户喜欢多大的字体,这是一个很简单同时也颇有用的事。不一样年龄用户喜欢的字体大小都是不同的,老年人比较喜欢偏大的字体,可是年轻人或使用电脑显示器的会倾向于使用小的字体。这个就是机器学习很擅长解决的预测。
第一步是数据的采集。先要有大量的数据,什么用户喜欢多大的字体。第二步就是训练,把以前采集到的数据经过机器学习的方式去训练,让这个网络拥有根据新用户的特征能判断出用户喜欢多大字体的能力。还有服务,就是把它最终用到应用内,对前端开放,让前端程序可以获得这些用户信息。再而后就是实际的把这些东西作到前端应用上去。
预测服务咱们一般会用softmax,要判断一个用户属于哪一个类别,使用softmax来对它进行预测。
在没有预先知道有几个类别的时候,可使用k-means让机器学习告诉咱们是怎样的状况,指定分类的数量,而后机器学习自动帮助咱们完成分类。
t-SNE是一个很好的降维方式。降维有一个很大的做用就是数据可视化,咱们能直观地看到这些数据的分布。另外一个做用是寻找最近点的命令。
CNN用于处理机器视觉,RNN和LTSM是作流式处理。
DeepQ Learning是近年来机器学习的一个热点,当机器有几种选择的时候,它会尽可能让机器去预测哪一个选择最好,而后看这个选择是否和机器预测的同样。这就意味着当咱们要解决这类问题的时候,不须要预先准备测试数据,这个算法能够本身学习。
预训练与组合网络。预训练是机器学习中很重要的部分,当你须要解决的问题有些复杂的时候,能够预训练网络的部分组合,这样能够大幅提升网络的训练速度。
还有就是规则化调整与网络简化,以及极端偏见和理性仲裁者。
实际上咱们接下来准备去探索一些其它的事情,好比语义搜索、功能推荐、智能推荐、流失防止和催化转化,以及自动化兼容性测试。
值得一提的是谷歌发布了deeplearn.js,正式拉开了在前端作机器学习的工业化序幕。
今天的分享就到这里,谢谢你们!