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 的點點滴滴。


分享到:


相關文章: