01.06 人工智能时代,Web 前端能做什么(二)?

由于篇幅过长,上文 只简单介绍了一些人工智能的概念,本篇我们将展开 Web 方面的应用。


人工智能时代,Web 前端能做什么(二)?


一、AI 应用场景

针对一些场景,做了一下简单的分类,如图:


人工智能时代,Web 前端能做什么(二)?

二、AI 如何影响前端

1.数据可视化,依赖 D3.js,ECharts,WebGL


人工智能时代,Web 前端能做什么(二)?

2.模型可视化
用可视化的手段去解释模型,辅助算法同学调参

。最简单的一个应用前端同学肯定非常熟悉,我们来看下图:


人工智能时代,Web 前端能做什么(二)?

是的,曲线函数和曲率我们很难记住,但是有相应的工具,会让一些数据和计算变得简单易懂


3.

相关技术
提到人工智能,和前端密切相关的几个 JS 类库有:

  • tensorflow.js
    基于 tensorflow.js Node 的 tvnet 算法,可以提取视频中的稠密光流。
  • deeplearning.js
  • kera.js

高性能计算:

  • asm.js
  • WebAssembly
  • GPU
  • Opencv,前端做 CV 算法,物体跟踪、图像处理、特征检测等等


人工智能时代,Web 前端能做什么(二)?


大家可能发现一个问题,一般的 tensorflow 模型动辄几百兆,在前端怎么跑呢?这就不得不提到 MobileNet,这是针对于移动端模型提出的神经网络架构,能极大地减少模型参数量,同理也能用到浏览器端上。

更多细节可以查看该文章:《前端与人工智能》,介绍非常到位。

三、如何做?

既然前端和人工智能有如此多的交集,那么我们该从何做起呢?不要着急,我们先来看一个完整的人工智能项目包含哪些内容。


人工智能时代,Web 前端能做什么(二)?

上图中,可以看到一个完整的人工智能项目是由:算法,数据,工程三部分构成

工程部分我们可以理解为「大前端」,主要包含 5 部分:

  1. 人机交互
  2. 数据可视化
  3. 产品 Web
  4. 算法执行
  5. 模型训练

四、简单应用


人工智能时代,Web 前端能做什么(二)?


1.Tranck.js
就是纯浏览器的图像算法库,通过 JS 计算来执行算法逻辑

2.regl-cnn
浏览器端的数字识别类库,与 track.js 不同的是,它利用浏览器的 WebGL 才操作 GPU,实现了 CNN。


人工智能时代,Web 前端能做什么(二)?


3.ConvNetJS
浏览器端做深度学习算法训练的工具,官网地址

4.Amazon Rekognition
基于同样由 Amazon 计算机视觉科学家开发的成熟且高度可扩展的深度学习技术,每天能够分析数十亿张 Prime Photos 图像。

5.对比学习:Keras 搭建 CNN,RNN 等常用神经网络

6.机器学习:MachineLearning

更多内容可以查看:
1.浏览器里运行的人工智能
2.前端在人工智能时代能做些什么

五、深度学习

深度学习,是英文 Deep Learning 的直译。它是实现机器学习的其中一种方式。机器学习还包含其它实现方案。


人工智能时代,Web 前端能做什么(二)?


深度学习里,用到了人工神经网络,这是一个用计算机模拟大脑神经元运作模式的算法。同时,这个人工神经网络的隐藏层数量还必须足够多,才能构成深度神经网络。然后喂之以大量的训练数据,就是深度学习了。

换一个角度,如果隐藏层数量不多,而是每个隐藏层里包含的神经元数量很多,在形态上,它就是一个往宽度发展的神经网络结构。这时,可能就叫广度学习了。

目前,深度学习还是主流,它的训练效率,优于广度学习。

我们可以体验腾讯的一个深度学习案例:


人工智能时代,Web 前端能做什么(二)?

更多有趣应用:
1.TensorFlowJS 学习
2.如何利用 TensorFlow.js 部署简单的 AI 版「你画我猜」图像识别应用


六、明确几个概念


人工智能时代,Web 前端能做什么(二)?


机器学习对我们来说确实陌生,所以一定要从明确一些常用的概念,这样才能提升学习的兴趣。我们来说一些可能会涉及到的内容(我也是正在摸索,目前就知道这些,逃~)

1.精确率
是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。

2.召回率
是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了

3.监督学习
监督学习涉及到标注数据,计算机可以使用所提供的数据来识别新的样本。
监督学习的两种主要类型是分类和回归。在分类中,训练的机器将把一组数据分成特定的类。

4.无监督学习
在无监督学习中,数据是未标注的。由于现实中,大多数的数据都是未标注的,因此这些算法特别有用。


无监督学习分为聚类和降维。

5.强化学习
强化学习使用机器的历史和经验来做出决策。强化学习的经典应用是游戏。与监督和无监督学习相反,强化学习不注重提供「正确」的答案或输出。


七、机器学习算法有哪些?

提到机器学习,大家肯定都会自然联想到需要很强的算法功底。没错,确实如此,所以我们需要对算法有一些了解。


人工智能时代,Web 前端能做什么(二)?


那么机器学习主要涉及到哪几类算法呢,我们来看看:

  • 模式识别
  • 计算机视觉
  • 数据挖掘
  • 统计学习
  • 语音识别
  • 自然语言处理

八、机器学习涉及学科

主要围绕在这几方面:线性代数、微积分、概率和统计。


人工智能时代,Web 前端能做什么(二)?


线性代数概念Top 3:

  1. 矩阵运算
  2. 特征值/特征向量
  3. 向量空间和范数

微积分概念Top 3:

  1. 偏导数
  2. 向量值函数
  3. 方向梯度

统计概念Top 3:

  1. 贝叶斯定理
  2. 组合学
  3. 抽样方法

九、计算机视觉

OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows、Android 和 Mac OS 操作系统上。


人工智能时代,Web 前端能做什么(二)?


它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

应用领域:
1、人机互动
2、物体识别
3、图像分割
4、人脸识别


5、动作识别
6、运动跟踪
7、机器人
8、运动分析
9、机器视觉
10、结构分析
11、汽车安全驾驶

OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。

OpenCV 还提供了机器学习模块,你可以使用正态贝叶斯、K最近邻、支持向量机、决策树、随机森林、人工神经网络等机器学习算法。

这里推荐几个相关学习网站:
1.官网
2.OpenCV教程
3.图像对比


十一、总结


人工智能时代,Web 前端能做什么(二)?


AI 涉及到很多的领域,并不是我们三言两语就能够说的明白。要真正的应用起来,还有很多的路要走。

我相信,随着技术的发展,更多的场景将接入 AI,而 Web 则是其中的一个重要环节。加上 Web 跨平台特性,以及「算法-数据-工程」的驱动,未来在该领域一定会大放异彩。

很喜欢这句话:AI makes life better. FE makes AI better.



人工智能时代,Web 前端能做什么(二)?

快来关注我吧,一起成长,一起研究 Web 的点点滴滴。


分享到:


相關文章: