Author Archive

標量 | scalar

什麼是標量

標量只有大小概念,沒有方向的概念。通過一個具體的數值就能表達完整。

比如:重量、溫度、長度、提及、時間、熱量等都數據標量。

標量只有大小,沒有方向

 

標量、向量、矩陣、張量的關係

這4個概念是維度不斷上升的,我們用點線面體的概念來比喻解釋會更加容易理解:

  • 點——標量(scalar)
  • 線——向量(vector
  • 面——矩陣(matrix
  • 體——張量(tensor)

標量、向量、矩陣、張量的關係

感興趣的可以通過下面的內容了解詳情:

一文看懂標量

一文看懂向量

一文看懂矩陣

一文看懂張量

 

百度百科和維基百科

百度百科版本

標量(scalar),亦稱「無向量」。有些物理量,只具有數值大小,而沒有方向,部分有正負之分。物理學中,標量(或作純量)指在坐標變換下保持不變的物理量。用通俗的說法,標量是只有大小,沒有方向的量。

查看詳情

維基百科版本

標量是一個的元素欄位,其用於定義一個向量空間。由多個標量描述的量,例如具有方向和幅度,被稱為矢量。在線性代數,實數或場的其它元素被稱為標量,並涉及到在載體通過的操作的向量空間標量乘法,其中載體可以由多個以產生另一矢量相乘。更一般地,可以通過使用任何欄位而不是實數來定義向量空間,例如複數。然後該向量空間的標量將成為相關欄位的元素。

查看詳情

向量 | vector

一文看懂向量vector

什麼是向量?

向量主要有2個維度:大小、方向。

大小:箭頭的長度表示大小

方向:箭頭所指的方向表示方向

向量有大小和方向2個維度

向量的3種表達方式

代數表示

一般印刷用黑體的小寫英文字母(abc等)來表示,手寫用在a、b、c等字母上加一箭頭(→)表示,如

向量的代數表示

 

幾何表示

向量可以用有向線段來表示。有向線段的長度表示向量的大小,向量的大小,也就是向量的長度。

向量的幾何表示

 

坐標表示

在平面直角坐標系中,分別取與x軸、y軸方向相同的兩個單位向量ij作為一組基底。a為平面直角坐標系內的任意向量,以坐標原點O為起點P為終點作向量a。由平面向量基本定理可知,有且只有一對實數(x,y),使得a=xi+yj,因此把實數對(x,y)叫做向量a的坐標,記作a=(x,y)。這就是向量a的坐標表示。其中(x,y)就是點 P 的坐標。向量a稱為點P的位置向量。

向量的坐標表示

在空間直角坐標系中,分別取與x軸、y軸,z軸方向相同的3個單位向量ijk作為一組基底。若為該坐標系內的任意向量,以坐標原點O為起點作向量a。由空間基本定理知,有且只有一組實數(x,y,z),使得a=ix+jy+kz,因此把實數對(x,y,z)叫做向量a的坐標,記作a=(x,y,z)。這就是向量a的坐標表示。其中(x,y,z),就是點P的坐標。向量a稱為點P的位置向量。

當然,對於多維的空間向量,可以通過類推得到。

向量的矩陣表示

向量的矩陣表示

 

標量、向量、矩陣、張量的關係

這4個概念是維度不斷上升的,我們用點線面體的概念來比喻解釋會更加容易理解:

  • 點——標量(scalar
  • 線——向量(vector)
  • 面——矩陣(matrix
  • 體——張量(tensor)

標量、向量、矩陣、張量的關係

感興趣的可以通過下面的內容了解詳情:

一文看懂標量

一文看懂向量

一文看懂矩陣

一文看懂張量

easyai公眾號

 

百度百科和維基百科

百度百科版本

在數學中,向量(也稱為歐幾里得向量、幾何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示為帶箭頭的線段。箭頭所指:代表向量的方向;線段長度:代表向量的大小。與向量對應的量叫做數量(物理學中稱標量),數量(或標量)只有大小,沒有方向。

向量的記法:印刷體記作黑體(粗體)的字母(如a、b、u、v),書寫時在字母頂上加一小箭頭「→」。 如果給定向量的起點(A)和終點(B),可將向量記作AB(並於頂上加→)。在空間直角坐標系中,也能把向量以數對形式表示,例如xOy平面中(2,3)是一向量。

查看詳情

維基百科版本

向量空間(也稱為線性空間)是稱為對象的集合的載體,其可被添加在一起,並乘以由數字(「縮放」),所謂的標量。標量通常被認為是實數,但是也存在標量乘以複數,有理數或通常任何欄位的向量空間。向量加法和標量乘法的運算必須滿足下面列出的某些要求,稱為公理。

歐幾里德向量是向量空間的一個例子。它們代表物理量,諸如力:任何兩個力(同一類型的)可被添加,以產生第三和的相乘力矢量由一實數乘法器是另一個力矢量。同樣,但在更幾何意義上,表示平面或三維空間中的位移的矢量也形成矢量空間。向量空間中的向量不一定必須是箭頭狀對象,因為它們出現在上述示例中:向量被視為具有特定屬性的抽象數學對象,在某些情況下可以將其視為箭頭。

向量空間是線性代數的主題,並且通過它們的維度很好地表徵,粗略地說,它指定了空間中獨立方向的數量。無限維向量空間在數學分析中自然出現,作為函數空間,其向量是函數。這些向量空間通常具有附加結構,其可以是拓撲結構,允許考慮接近度和連續性問題。在這些拓撲中,由規範或內積定義的拓撲更常用,因為它具有距離概念兩個向量之間。特別是Banach空間和Hilbert空間的情況,這是數學分析的基礎。

查看詳情

線性代數(linear algebra)

百度百科版本

線性代數是數學的一個分支,它的研究對象是向量,向量空間(或稱線性空間),線性變換和有限維的線性方程組。向量空間是現代數學的一個重要課題;因而,線性代數被廣泛地應用於抽象代數和泛函分析中;通過解析幾何,線性代數得以被具體表示。線性代數的理論已被泛化為運算元理論。由於科學研究中的非線性模型通常可以被近似為線性模型,使得線性代數被廣泛地應用於自然科學和社會科學中。

查看詳情

 

維基百科版本

線性代數是關於線性方程的數學分支,如

{\ displaystyle a_ {1} x_ {1} + \ cdots + a_ {n} x_ {n} = b,}

線性函數如

{\ displaystyle(x_ {1},\ ldots,x_ {n})\ mapsto a_ {1} x_ {1} + \ ldots + a_ {n} x_ {n},}

和他們通過矩陣和向量空間的表示。線性代數幾乎是所有數學領域的核心。例如,線性代數是幾何的現代表示中的基礎,包括用於定義基本對象,例如線,平面和旋轉。此外,功能分析基本上可以視為線性代數在函數空間中的應用。線性代數也用於大多數科學和工程領域,因為它允許對許多自然現象進行建模,並使用這些模型進行有效計算。對於不能用線性代數建模的非線性系統,線性代數通常用作一階近似。

查看詳情

知識圖譜(Knowledge Graph)

百度百科版本

知識圖譜(Knowledge Graph)又稱為科學知識圖譜,在圖書情報界稱為知識域可視化或知識領域映射地圖,是顯示知識發展進程與結構關係的一系列各種不同的圖形,用可視化技術描述知識資源及其載體,挖掘、分析、構建、繪製和顯示知識及它們之間的相互聯繫。

通過將應用數學、圖形學、信息可視化技術、信息科學等學科的理論與方法與計量學引文分析、共現分析等方法結合,並利用可視化的圖譜形象地展示學科的核心結構、發展歷史、前沿領域以及整體知識架構達到多學科融合目的的現代理論。為學科研究提供切實的、有價值的參考。

查看詳情

 

維基百科版本

知識圖譜是一個知識庫,使用由谷歌和它的服務,以提高其搜索引擎從各種渠道收集信息的結果。信息將在搜索結果旁邊的信息框中顯示給用戶。2012年5月,知識圖譜信息框被添加到谷歌的搜索引擎中,從美國開始,到今年年底將進行國際擴張。知識圖部分由Freebase提供支持。知識圖所涵蓋的信息在發布後顯著增長,在七個月內增加了三倍(覆蓋5.7億個實體和180億個事實),並且能夠回答Google在2016年5月處理的每月1000億次搜索中的「大約三分之一」。知識圖譜因未提供源歸屬或引用而提供答案而受到批評。

來自知識圖譜的信息顯示為搜索結果右側(移動設備頂部)的框。根據Google的說法,這些信息可以從許多來源獲取,包括CIA World Factbook,Wikidata和Wikipedia。2016年10月,谷歌宣布知識圖譜擁有超過700億個事實。沒有關於用於知識圖實現的技術的官方文檔。來自知識圖的信息用於回答Google智能助理和Google Home語音查詢中的直介面頭問題。

查看詳情

 

粒子群演算法(Particle swarm optimization | PSO)

百度百科版本

粒子群演算法,也稱粒子群優化演算法或鳥群覓食演算法(Particle Swarm Optimization),縮寫為 PSO, 是由J. Kennedy和R. C. Eberhart等開發的一種新的進化演算法(Evolutionary Algorithm – EA)。

PSO 演算法屬於進化演算法的一種,和模擬退火演算法相似,它也是從隨機解出發,通過迭代尋找最優解,它也是通過適應度來評價解的品質,但它比遺傳演算法規則更為簡單,它沒有遺傳演算法的「交叉」(Crossover) 和「變異」(Mutation) 操作,它通過追隨當前搜索到的最優值來尋找全局最優。這種演算法以其實現容易、精度高、收斂快等優點引起了學術界的重視,並且在解決實際問題中展示了其優越性。

粒子群演算法是一種並行演算法。

查看詳情

 

維基百科版本

在計算科學中,粒子群優化(PSO)是一種計算方法,通過迭代地嘗試針對給定的質量度量來改進候選解決方案來優化問題。它通過在粒子的位置和速度上根據簡單的數學公式得到一組候選解決方案(這裡稱為粒子)並在搜索空間中移動這些粒子來解決問題。每個粒子的運動受其局部最佳已知位置的影響,但也被引導到搜索空間中最著名的位置,這些位置隨著其他粒子找到更好的位置而更新。預計這會將群體推向最佳解決方案。

PSO最初歸功於Kennedy,Eberhart和Shi,最初用於模擬 社會行為,作為鳥群或魚群中有機體運動的程式化表示。該演算法被簡化並且觀察到執行優化。肯尼迪和艾伯哈特的著作描述了PSO和群體智能的許多哲學方面。Poli對PSO應用進行了廣泛的調查。最近,Bonyadi和Michalewicz 發表了關於PSO理論和實驗工作的綜合評論,並回顧了Sengupta,Basak和Peters的歷史和近期發展以及雜交觀點。

PSO是一種元啟發式演算法,因為它對被優化的問題做出很少或沒有假設,並且可以搜索候選解決方案的非常大的空間。然而,諸如PSO之類的元啟發式並不能保證找到最佳解決方案。此外,PSO不使用被優化的問題的梯度,這意味著PSO不要求優化問題可以如經典優化方法(例如梯度下降和准牛頓方法)所要求的那樣是可微分的。

查看詳情

 

深度學習 – Deep learning | DL

一文看懂深度學習

深度學習有很好的表現,引領了第三次人工智慧的浪潮。目前大部分表現優異的應用都用到了深度學習,大紅大紫的 AlphaGo 就使用到了深度學習。

本文將詳細的給大家介紹深度學習的基本概念、優缺點和主流的幾種演算法。

 

深度學習、神經網路、機器學習、人工智慧的關係

深度學習、機器學習、人工智慧

簡單來說:

  1. 深度學習是機器學習的一個分支(最重要的分支)
  2. 機器學習是人工智慧的一個分支

深度學習、機器學習、人工智慧的關係

目前表現最好的一些應用大部分都是深度學習,正是因為深度學習的突出表現,引發了人工智慧的第三次浪潮。詳情可以看《人工智慧的發展史——3次 AI 浪潮

 

詳細了解人工智慧:《「2019更新」什麼是人工智慧?(AI的本質+發展史+局限性)

詳細了解機器學習:《「75頁PDF免費下載」面向所有人的機器學習科普大全

 

深度學習、神經網路

深度學習的概念源於人工神經網路的研究,但是並不完全等於傳統神經網路。

不過在叫法上,很多深度學習演算法中都會包含”神經網路”這個詞,比如:卷積神經網路、循環神經網路。

所以,深度學習可以說是在傳統神經網路基礎上的升級,約等於神經網路。

深度學習和神經網路的關係

 

大白話解釋深度學習

看了很多版本的解釋,發現李開復在《人工智慧》一書中講的是最容易理解的,所以下面直接引用他的解釋:

我們以識別圖片中的漢字為例。

假設深度學習要處理的信息是「水流」,而處理數據的深度學習網路是一個由管道和閥門組成的巨大水管網路。網路的入口是若干管道開口,網路的出口也是若干管道開口。這個水管網路有許多層,每一層由許多個可以控制水流流向與流量的調節閥。根據不同任務的需要,水管網路的層數、每層的調節閥數量可以有不同的變化組合。對複雜任務來說,調節閥的總數可以成千上萬甚至更多。水管網路中,每一層的每個調節閥都通過水管與下一層的所有調節閥連接起來,組成一個從前到後,逐層完全連通的水流系統。

深度學習類似一個水流系統

那麼,計算機該如何使用這個龐大的水管網路來學習識字呢?

比如,當計算機看到一張寫有「田」字的圖片,就簡單將組成這張圖片的所有數字(在計算機里,圖片的每個顏色點都是用「0」和「1」組成的數字來表示的)全都變成信息的水流,從入口灌進水管網路。

深度學習-將圖片數字化

我們預先在水管網路的每個出口都插一塊字牌,對應於每一個我們想讓計算機認識的漢字。這時,因為輸入的是「田」這個漢字,等水流流過整個水管網路,計算機就會跑到管道出口位置去看一看,是不是標記由「田」字的管道出口流出來的水流最多。如果是這樣,就說明這個管道網路符合要求。如果不是這樣,就調節水管網路里的每一個流量調節閥,讓「田」字出口「流出」的水最多。

這下,計算機要忙一陣了,要調節那麼多閥門!好在計算機的速度快,暴力的計算加上演算法的優化,總是可以很快給出一個解決方案,調好所有閥門,讓出口處的流量符合要求。

深度學習-識別田字

下一步,學習「申」字時,我們就用類似的方法,把每一張寫有「申」字的圖片變成一大堆數字組成的水流,灌進水管網路,看一看,是不是寫有「申」字的那個管道出口流水最多,如果不是,我們還得再調整所有的閥門。這一次,要既保證剛才學過的「田」字不受影響,也要保證新的「申」字可以被正確處理。

深度學習-學習申字

如此反覆進行,知道所有漢字對應的水流都可以按照期望的方式流過整個水管網路。這時,我們就說,這個水管網路是一個訓練好的深度學習模型了。當大量漢字被這個管道網路處理,所有閥門都調節到位後,整套水管網路就可以用來識別漢字了。這時,我們可以把調節好的所有閥門都「焊死」,靜候新的水流到來。

深度學習-學習所有漢字

與訓練時做的事情類似,未知的圖片會被計算機轉變成數據的水流,灌入訓練好的水管網路。這時,計算機只要觀察一下,哪個出水口流出來的水流最多,這張圖片寫的就是哪個字。

深度學習大致就是這麼一個用人類的數學知識與計算機演算法構建起來的整體架構,再結合儘可能多的訓練數據以及計算機的大規模運算能力去調節內部參數,儘可能逼近問題目標的半理論、半經驗的建模方式。

 

傳統機器學習 VS 深度學習

傳統機器學習和深度學習的相似點

傳統機器學習和深度學習的相似點

在數據準備和預處理方面,兩者是很相似的。

他們都可能對數據進行一些操作:

  • 數據清洗
  • 數據標籤
  • 歸一化
  • 去噪
  • 降維

對於數據預處理感興趣的可以看看《AI 數據集最常見的6大問題(附解決方案)

 

傳統機器學習和深度學習的核心區別

傳統機器學習和深度學習的核心區別

傳統機器學習的特徵提取主要依賴人工,針對特定簡單任務的時候人工提取特徵會簡單有效,但是並不能通用。

深度學習的特徵提取並不依靠人工,而是機器自動提取的。這也是為什麼大家都說深度學習的可解釋性很差,因為有時候深度學習雖然能有好的表現,但是我們並不知道他的原理是什麼。

 

深度學習的優缺點

深度學習的優缺點

優點1:學習能力強

從結果來看,深度學習的表現非常好,他的學習能力非常強。

優點2:覆蓋範圍廣,適應性好

深度學習的神經網路層數很多,寬度很廣,理論上可以映射到任意函數,所以能解決很複雜的問題。

優點3:數據驅動,上限高

深度學習高度依賴數據,數據量越大,他的表現就越好。在圖像識別、面部識別、NLP 等部分任務甚至已經超過了人類的表現。同時還可以通過調參進一步提高他的上限。

優點4:可移植性好

由於深度學習的優異表現,有很多框架可以使用,例如 TensorFlowPytorch。這些框架可以兼容很多平台。

 

缺點1:計算量大,便攜性差

深度學習需要大量的數據很大量的算力,所以成本很高。並且現在很多應用還不適合在移動設備上使用。目前已經有很多公司和團隊在研髮針對便攜設備的晶元。這個問題未來會得到解決。

缺點2:硬體需求高

深度學習對算力要求很高,普通的 CPU 已經無法滿足深度學習的要求。主流的算力都是使用 GPUTPU,所以對於硬體的要求很高,成本也很高。

缺點3:模型設計複雜

深度學習的模型設計非常複雜,需要投入大量的人力物力和時間來開發新的演算法和模型。大部分人只能使用現成的模型。

缺點4:沒有”人性”,容易存在偏見

由於深度學習依賴數據,並且可解釋性不高。在訓練數據不平衡的情況下會出現性別歧視、種族歧視等問題。

 

4種典型的深度學習演算法

4種典型的深度學習演算法

卷積神經網路 – CNN

CNN 的價值:

  1. 能夠將大數據量的圖片有效的降維成小數據量(並不影響結果)
  2. 能夠保留圖片的特徵,類似人類的視覺原理

CNN 的基本原理:

  1. 卷積層 – 主要作用是保留圖片的特徵
  2. 池化層 – 主要作用是把數據降維,可以有效的避免過擬合
  3. 全連接層 – 根據不同任務輸出我們想要的結果

CNN 的實際應用:

  1. 圖片分類、檢索
  2. 目標定位檢測
  3. 目標分割
  4. 人臉識別
  5. 骨骼識別

了解更多《一文看懂卷積神經網路-CNN(基本原理+獨特價值+實際應用)

 

循環神經網路 – RNN

RNN 是一種能有效的處理序列數據的演算法。比如:文章內容、語音音頻、股票價格走勢…

之所以他能處理序列數據,是因為在序列中前面的輸入也會影響到後面的輸出,相當於有了「記憶功能」。但是 RNN 存在嚴重的短期記憶問題,長期的數據影響很小(哪怕他是重要的信息)。

於是基於 RNN 出現了 LSTM 和 GRU 等變種演算法。這些變種演算法主要有幾個特點:

  1. 長期信息可以有效的保留
  2. 挑選重要信息保留,不重要的信息會選擇「遺忘」

RNN 幾個典型的應用如下:

  1. 文本生成
  2. 語音識別
  3. 機器翻譯
  4. 生成圖像描述
  5. 視頻標記

了解更多《一文看懂循環神經網路-RNN(獨特價值+優化演算法+實際應用)

 

生成對抗網路 – GANs

假設一個城市治安混亂,很快,這個城市裡就會出現無數的小偷。在這些小偷中,有的可能是盜竊高手,有的可能毫無技術可言。假如這個城市開始整飭其治安,突然開展一場打擊犯罪的「運動」,警察們開始恢復城市中的巡邏,很快,一批「學藝不精」的小偷就被捉住了。之所以捉住的是那些沒有技術含量的小偷,是因為警察們的技術也不行了,在捉住一批低端小偷後,城市的治安水平變得怎樣倒還不好說,但很明顯,城市裡小偷們的平均水平已經大大提高了。

警察們開始繼續訓練自己的破案技術,開始抓住那些越來越狡猾的小偷。隨著這些職業慣犯們的落網,警察們也練就了特別的本事,他們能很快能從一群人中發現可疑人員,於是上前盤查,並最終逮捕嫌犯;小偷們的日子也不好過了,因為警察們的水平大大提高,如果還想以前那樣表現得鬼鬼祟祟,那麼很快就會被警察捉住。為了避免被捕,小偷們努力表現得不那麼「可疑」,而魔高一尺、道高一丈,警察也在不斷提高自己的水平,爭取將小偷和無辜的普通群眾區分開。隨著警察和小偷之間的這種「交流」與「切磋」,小偷們都變得非常謹慎,他們有著極高的偷竊技巧,表現得跟普通群眾一模一樣,而警察們都練就了「火眼金睛」,一旦發現可疑人員,就能馬上發現並及時控制——最終,我們同時得到了最強的小偷和最強的警察。

同時得到了最強的小偷和最強的警察

了解更多《什麼是生成對抗網路 – GAN?(基本概念+工作原理)

 

深度強化學習 – RL

強化學習演算法的思路非常簡單,以遊戲為例,如果在遊戲中採取某種策略可以取得較高的得分,那麼就進一步「強化」這種策略,以期繼續取得較好的結果。這種策略與日常生活中的各種「績效獎勵」非常類似。我們平時也常常用這樣的策略來提高自己的遊戲水平。

在 Flappy bird 這個遊戲中,我們需要簡單的點擊操作來控制小鳥,躲過各種水管,飛的越遠越好,因為飛的越遠就能獲得更高的積分獎勵。

這就是一個典型的強化學習場景:

  • 機器有一個明確的小鳥角色——代理
  • 需要控制小鳥飛的更遠——目標
  • 整個遊戲過程中需要躲避各種水管——環境
  • 躲避水管的方法是讓小鳥用力飛一下——行動
  • 飛的越遠,就會獲得越多的積分——獎勵

遊戲是典型的強化學習場景

你會發現,強化學習和監督學習、無監督學習 最大的不同就是不需要大量的「數據餵養」。而是通過自己不停的嘗試來學會某些技能。

了解更多:《一文看懂什麼是強化學習?(基本概念+應用場景+主流演算法)

 

總結

深度學習屬於機器學習的範疇,深度學習可以說是在傳統神經網路基礎上的升級,約等於神經網路。

深度學習和傳統機器學習在數據預處理上都是類似的。核心差別在特徵提取環節,深度學習由機器自己完成特徵提取,不需要人工提取。

 

深度學習的優點:

  1. 學習能力強
  2. 覆蓋範圍廣,適應性好
  3. 數據驅動,上限高
  4. 可移植性好

深度學習的缺點:

  1. 計算量大,便攜性差
  2. 硬體需求高
  3. 模型設計複雜
  4. 沒有”人性”,容易存在偏見

 

深度學習的4種典型演算法:

  1. 卷積神經網路 – CNN
  2. 循環神經網路 – RNN
  3. 生成對抗網路 – GANs
  4. 深度強化學習 – RL

 

百度百科版本+維基百科

百度百科版本

深度學習的概念源於人工神經網路的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特徵形成更加抽象的高層表示屬性類別或特徵,以發現數據的分散式特徵表示。

深度學習的概念由Hinton等人於2006年提出。基於深度置信網路(DBN)提出非監督貪心逐層訓練演算法,為解決深層結構相關的優化難題帶來希望,隨後提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網路是第一個真正多層結構學習演算法,它利用空間相對關係減少參數數目以提高訓練性能。

深度學習是機器學習中一種基於對數據進行表徵學習的方法。觀測值(例如一幅圖像)可以使用多種方式來表示,如每個像素強度值的向量,或者更抽象地表示成一系列邊、特定形狀的區域等。而使用某些特定的表示方法更容易從實例中學習任務(例如,人臉識別或面部表情識別)。深度學習的好處是用非監督式或半監督式的特徵學習和分層特徵提取高效演算法來替代手工獲取特徵。

深度學習是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。

同機器學習方法一樣,深度機器學習方法也有監督學習與無監督學習之分.不同的學習框架下建立的學習模型很是不同.例如,卷積神經網路(Convolutional neural networks,簡稱CNNs)就是一種深度的監督學習下的機器學習模型,而深度置信網(Deep Belief Nets,簡稱DBNs)就是一種無監督學習下的機器學習模型。

查看詳情

 

維基百科版本

深度學習(也稱為深度結構化學習 或分層學習)是基於學習數據表示的更廣泛的機器學習方法系列的一部分,而不是特定於任務的演算法。學習可以是監督,半監督或無監督。

深度學習架構,如深度神經網路,深度置信網路和遞歸神經網路,已應用於計算機視覺,語音識別,自然語言處理,音頻識別,社交網路過濾,機器翻譯,生物信息學,藥物設計,醫學圖像分析等領域。 材料檢查和棋盤遊戲程序,它們產生的結果可與人類專家相媲美,在某些情況下優於人類專家。

深度學習模型受到生物神經系統中信息處理和通信模式的模糊啟發,但與生物大腦(尤其是人類大腦)的結構和功能特性存在各種差異,這使得它們與神經科學證據不相容。

查看詳情

 

人工神經網路 – Artificial Neural Network | ANN

百度百科版本

人工神經網路(Artificial Neural Network,即ANN ),是20世紀80 年代以來人工智慧領域興起的研究熱點。它從信息處理角度對人腦神經元網路進行抽象, 建立某種簡單模型,按不同的連接方式組成不同的網路。

在工程與學術界也常直接簡稱為神經網路或類神經網路。神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連接方式,權重值和激勵函數的不同而不同。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。

最近十多年來,人工神經網路的研究工作不斷深入,已經取得了很大的進展,其在模式識別、智能機器人、自動控制、預測估計、生物、醫學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智能特性。

查看詳情

 

維基百科版本

人工神經網路(ANN)或連接系統是由構成動物大腦的生物神經網路模糊地啟發的計算系統。神經網路本身不是演算法,而是許多不同機器學習演算法的框架,它們協同工作並處理複雜的數據輸入。此類系統通過考慮示例「學習」執行任務,通常不用任何特定於任務的規則編程。例如,在圖像識別中,他們可能通過分析手動的示例圖像來學習識別包含貓的圖像標記為「貓」或「沒有貓」,並使用結果來識別其他圖像中的貓。他們在沒有任何關於貓的先驗知識的情況下這樣做,例如,他們有毛皮,尾巴,鬍鬚和貓般的面孔。相反,它們會自動從他們處理的學習資料中生成識別特徵。

ANN基於稱為人工神經元的連接單元或節點的集合,其鬆散地模擬生物大腦中的神經元。每個連接,如生物大腦中的突觸,可以將信號從一個人工神經元傳遞到另一個人工神經元。接收信號的人工神經元可以處理它,然後發信號通知與之相連的其他人工神經元。

在常見的ANN實現中,人工神經元之間的連接處的信號是實數,並且每個人工神經元的輸出通過其輸入之和的一些非線性函數來計算。人工神經元之間的聯繫稱為「邊緣」。人工神經元和邊緣通常具有重量隨著學習的進行而調整。重量增加或減少連接處信號的強度。人工神經元可以具有閾值,使得僅在聚合信號超過該閾值時才發送信號。通常,人工神經元聚集成層。不同的層可以對其輸入執行不同類型的轉換。信號可能在多次遍歷各層之後從第一層(輸入層)傳播到最後一層(輸出層)。

人工神經網路方法的最初目標是以與人類大腦相同的方式解決問題。然而,隨著時間的推移,注意力轉移到執行特定任務,導致偏離生物學。人工神經網路已經用於各種任務,包括計算機視覺,語音識別,機器翻譯,社交網路過濾,遊戲板和視頻遊戲以及醫學診斷。

查看詳情

 

乾貨|簡單理解神經網路幾個基礎問題

遷移學習(Transfer learning)

百度百科版本

遷移學習是一種機器學習的方法,指的是一個預訓練的模型被重新用在另一個任務中。遷移學習與多任務學習以及概念飄移這些問題相關,它不是一個專門的機器學習領域。

然而,遷移學習在某些深度學習問題中是非常受歡迎的,例如在具有大量訓練深度模型所需的資源或者具有大量的用來預訓練模型的數據集的情況。僅在第一個任務中的深度模型特徵是泛化特徵的時候,遷移學習才會起作用。

深度學習中的這種遷移被稱作歸納遷移。就是通過使用一個適用於不同但是相關的任務的模型,以一種有利的方式縮小可能模型的搜索範圍。

查看詳情

 

維基百科版本

遷移學習是機器學習中的一個研究問題,它側重於存儲在解決一個問題時獲得的知識並將其應用於不同但相關的問題。例如,在學習識別汽車時獲得的知識可以在嘗試識別卡車時應用。這一研究領域與學習轉移的心理學文獻的悠久歷史有一定關係,儘管兩個領域之間的正式關係是有限的。

查看詳情

長短期記憶網路 – Long short-term memory | LSTM

一文看懂長短期記憶網路 - LSTM

什麼是 LSTM?

長短期記憶網路——通常被稱為 LSTM,是一種特殊的 RNN,能夠學習長期依賴性。由 Hochreiter 和 Schmidhuber(1997)提出的,並且在接下來的工作中被許多人改進和推廣。LSTM 在各種各樣的問題上表現非常出色,現在被廣泛使用。

LSTM 被明確設計用來避免長期依賴性問題。長時間記住信息實際上是 LSTM 的默認行為,而不是需要努力學習的東西!

所有遞歸神經網路都具有神經網路的鏈式重複模塊。在標準的 RNN 中,這個重複模塊具有非常簡單的結構,例如只有單個 tanh 層。

RNN中,只有單個tanh層

LSTM 也具有這種類似的鏈式結構,但重複模塊具有不同的結構。不是一個單獨的神經網路層,而是四個,並且以非常特殊的方式進行交互。

LSTM有4個神經網路層

不要擔心細節。稍後我們將逐步瀏覽 LSTM 的圖解。現在,讓我們試著去熟悉我們將使用的符號。

不同符號的含義

在上面的圖中,每行包含一個完整的向量,從一個節點的輸出到其他節點的輸入。粉色圓圈表示逐點運算,如向量加法;而黃色框表示學習的神經網路層。行合併表示串聯,而分支表示其內容正在被複制,並且副本將轉到不同的位置。

 

LSTM的核心思路

LSTM 的關鍵是細胞狀態,即圖中上方的水平線。

細胞狀態有點像傳送帶。它貫穿整個鏈條,只有一些次要的線性交互作用。信息很容易以不變的方式流過。

LSTM 的關鍵是細胞狀態,即圖中上方的水平線

LSTM 可以通過所謂「門」的精細結構向細胞狀態添加或移除信息。

門可以選擇性地以讓信息通過。它們由 S 形神經網路層和逐點乘法運算組成。

LSTM 可以通過所謂「門」的精細結構向細胞狀態添加或移除信息

S 形網路的輸出值介於 0 和 1 之間,表示有多大比例的信息通過。0 值表示「沒有信息通過」,1 值表示「所有信息通過」。

一個 LSTM 有三種這樣的門用來保持和控制細胞狀態。

如果對詳細的技術原理感興趣,可以看看這篇文章《Illustrated Guide to LSTM』s and GRU』s: A step by step explanation

 

百度百科+維基百科

百度百科版本

長短期記憶人工神經網路(Long-Short Term Memory,LSTM)論文首次發表於1997年。由於獨特的設計結構,LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件。

LSTM的表現通常比時間遞歸神經網路及隱馬爾科夫模型(HMM)更好,比如用在不分段連續手寫識別上。2009年,用LSTM構建的人工神經網路模型贏得過ICDAR手寫識別比賽冠軍。LSTM還普遍用於自主語音識別,2013年運用TIMIT自然演講資料庫達成17.7%錯誤率的紀錄。作為非線性模型,LSTM可作為複雜的非線性單元用於構造更大型深度神經網路。

查看詳情

維基百科版本

長短期記憶(LSTM)單位是遞歸神經網路(RNN)的單位。由LSTM單元組成的RNN通常稱為LSTM網路(或僅稱為LSTM)。公共LSTM單元由單元,輸入門,輸出門和忘記門組成。該單元記住任意時間間隔內的值,並且三個門控制進出單元的信息流。

LSTM網路非常適合基於時間序列數據進行分類,處理和預測,因為在時間序列中的重要事件之間可能存在未知持續時間的滯後。開發LSTM是為了處理在訓練傳統RNN時可能遇到的爆炸和消失的梯度問題。對於間隙長度的相對不敏感性是LSTM相對於RNN,隱馬爾可夫模型和其他序列學習方法在許多應用中的優勢。

查看詳情

 

生成對抗網路 – Generative Adversarial Networks | GAN

一文看懂生成對抗網路GANs

生成對抗網路 – GAN 是最近2年很熱門的一種無監督演算法,他能生成出非常逼真的照片,圖像甚至視頻。我們手機里的照片處理軟體中就會使用到它。

本文將詳細介紹生成對抗網路 – GAN 的設計初衷、基本原理、10種典型演算法和13種實際應用。

 

GAN的設計初衷

一句話來概括 GAN 的設計動機就是——自動化。

人工提取特徵——自動提取特徵

我們在《一文看懂深度學習(概念+優缺點+典型演算法)》中講過,深度學習最特別最厲害的地方就是能夠自己學習特徵提取。

傳統機器學習和深度學習的核心區別

機器的超強算力可以解決很多人工無法解決的問題。自動化後,學習能力更強,適應性也更強。

人工判斷生成結果的好壞——自動判斷和優化

我們在《監督學習》中講過,訓練集需要大量的人工標註數據,這個過程是成本很高且效率很低的。而人工判斷生成結果的好壞也是如此,有成本高和效率低的問題。

而 GAN 能自動完成這個過程,且不斷的優化,這是一種效率非常高,且成本很低的方式。GAN是如何實現自動化的呢?下面我們講解一下他的原理。

 

生成對抗網路 GAN 的基本原理

大白話版本

知乎上有一個很不錯的解釋,大家應該都能理解:

假設一個城市治安混亂,很快,這個城市裡就會出現無數的小偷。在這些小偷中,有的可能是盜竊高手,有的可能毫無技術可言。假如這個城市開始整飭其治安,突然開展一場打擊犯罪的「運動」,警察們開始恢復城市中的巡邏,很快,一批「學藝不精」的小偷就被捉住了。之所以捉住的是那些沒有技術含量的小偷,是因為警察們的技術也不行了,在捉住一批低端小偷後,城市的治安水平變得怎樣倒還不好說,但很明顯,城市裡小偷們的平均水平已經大大提高了。

警察嚴打導致小偷水平提升

警察們開始繼續訓練自己的破案技術,開始抓住那些越來越狡猾的小偷。隨著這些職業慣犯們的落網,警察們也練就了特別的本事,他們能很快能從一群人中發現可疑人員,於是上前盤查,並最終逮捕嫌犯;小偷們的日子也不好過了,因為警察們的水平大大提高,如果還想以前那樣表現得鬼鬼祟祟,那麼很快就會被警察捉住。

經常提升技能,更多小偷被抓

為了避免被捕,小偷們努力表現得不那麼「可疑」,而魔高一尺、道高一丈,警察也在不斷提高自己的水平,爭取將小偷和無辜的普通群眾區分開。隨著警察和小偷之間的這種「交流」與「切磋」,小偷們都變得非常謹慎,他們有著極高的偷竊技巧,表現得跟普通群眾一模一樣,而警察們都練就了「火眼金睛」,一旦發現可疑人員,就能馬上發現並及時控制——最終,我們同時得到了最強的小偷和最強的警察。

同時得到了最強的小偷和最強的警察

 

非大白話版本

生成對抗網路(GAN)由2個重要的部分構成:

  1. 生成器(Generator):通過機器生成數據(大部分情況下是圖像),目的是「騙過」判別器
  2. 判別器(Discriminator):判斷這張圖像是真實的還是機器生成的,目的是找出生成器做的「假數據」

生成對抗網路GANs由生成器和判別器構成

下面詳細介紹一下過程:

第一階段:固定「判別器D」,訓練「生成器G」

我們使用一個還 OK 判別器,讓一個「生成器G」不斷生成「假數據」,然後給這個「判別器D」去判斷。

一開始,「生成器G」還很弱,所以很容易被揪出來。

但是隨著不斷的訓練,「生成器G」技能不斷提升,最終騙過了「判別器D」。

到了這個時候,「判別器D」基本屬於瞎猜的狀態,判斷是否為假數據的概率為50%。

固定判別器,訓練生成器

第二階段:固定「生成器G」,訓練「判別器D」

當通過了第一階段,繼續訓練「生成器G」就沒有意義了。這個時候我們固定「生成器G」,然後開始訓練「判別器D」。

「判別器D」通過不斷訓練,提高了自己的鑒別能力,最終他可以準確的判斷出所有的假圖片。

到了這個時候,「生成器G」已經無法騙過「判別器D」。

固定生成器,訓練判別器

循環階段一和階段二

通過不斷的循環,「生成器G」和「判別器D」的能力都越來越強。

最終我們得到了一個效果非常好的「生成器G」,我們就可以用它來生成我們想要的圖片了。

下面的實際應用部分會展示很多「驚艷」的案例。

循環訓練,2遍越來越強

如果對 GAN 的詳細技術原理感興趣,可以看看下面2篇文章:

生成性對抗網路(GAN)初學者指南 – 附代碼

長文解釋生成對抗網路GAN的詳細原理(20分鐘閱讀)

 

GAN的優缺點

3個優勢

  1. 能更好建模數據分布(圖像更銳利、清晰)
  2. 理論上,GANs 能訓練任何一種生成器網路。其他的框架需要生成器網路有一些特定的函數形式,比如輸出層是高斯的。
  3. 無需利用馬爾科夫鏈反覆採樣,無需在學習過程中進行推斷,沒有複雜的變分下界,避開近似計算棘手的概率的難題。

2個缺陷

  1. 難訓練,不穩定。生成器和判別器之間需要很好的同步,但是在實際訓練中很容易D收斂,G發散。D/G 的訓練需要精心的設計。
  2. 模式缺失(Mode Collapse)問題。GANs的學習過程可能出現模式缺失,生成器開始退化,總是生成同樣的樣本點,無法繼續學習。

擴展閱讀:《為什麼訓練生成對抗網路如此困難?》閱讀這篇文章對數學要求很高

 

10大典型的GAN演算法

GAN 演算法有數百種之多,大家對於 GAN 的研究呈指數級的上漲,目前每個月都有數百篇論壇是關於對抗網路的。

下圖是每個月關於 GAN 的論文發表數量:

關於GANs的論文呈指數級增長

如果你對 GANs 演算法感興趣,可以在 「GANs動物園」里查看幾乎所有的演算法。我們為大家從眾多演算法中挑選了10個比較有代表性的演算法,技術人員可以看看他的論文和代碼。

演算法 論文 代碼
GAN 論文地址 代碼地址
DCGAN 論文地址 代碼地址
CGAN 論文地址 代碼地址
CycleGAN 論文地址 代碼地址
CoGAN 論文地址 代碼地址
ProGAN 論文地址 代碼地址
WGAN 論文地址 代碼地址
SAGAN 論文地址 代碼地址
BigGAN 論文地址 代碼地址

上面內容整理自《Generative Adversarial Networks – The Story So Far》原文中對演算法有一些粗略的說明,感興趣的可以看看。

 

GAN 的13種實際應用

GAN 看上去不如「語音識別」「文本挖掘」那麼直觀。不過他的應用已經進入到我們的生活中了。下面給大家列舉一些 GAN 的實際應用。

生成圖像數據集

人工智慧的訓練是需要大量的數據集的,如果全部靠人工收集和標註,成本是很高的。GAN 可以自動的生成一些數據集,提供低成本的訓練數據。

GANs生成人臉的矢量演算法案例

 

生成人臉照片

生成人臉照片是大家很熟悉的應用,但是生成出來的照片用來做什麼是需要思考的問題。因為這種人臉照片還處於法律的邊緣。

2014年至2017年GANs能力進展的實例

 

生成照片、漫畫人物

GAN 不但能生成人臉,還能生成其他類型的照片,甚至是漫畫人物。

GANs生成的照片

GANs生成的漫畫人物

 

圖像到圖像的轉換

簡單說就是把一種形式的圖像轉換成另外一種形式的圖像,就好像加濾鏡一樣神奇。例如:

  • 把草稿轉換成照片
  • 把衛星照片轉換為Google地圖的圖片
  • 把照片轉換成油畫
  • 把白天轉換成黑夜

用pix2pix從草圖到彩色照片的示例

GANs應用-照片到油畫、馬到斑馬、冬天到夏天、照片到google地圖

 

文字到圖像的轉換

在2016年標題為「 StackGAN:使用 StackGAN 的文本到逼真照片的圖像合成 」的論文中,演示了使用 GAN,特別是他們的 StackGAN,從鳥類和花卉等簡單對象的文本描述中生成逼真的照片。

從StackGAN獲取鳥類的文本描述和GAN生成照片的示例

 

語意 – 圖像 – 照片 的轉換

在2017年標題為「 高解析度圖像合成和帶條件GAN的語義操縱 」的論文中,演示了在語義圖像或草圖作為輸入的情況下使用條件GAN生成逼真圖像。

語義圖像和GAN生成的城市景觀照片的示例

 

自動生成模特

在2017年標題為「 姿勢引導人形象生成 」的論文中,可以自動生成人體模特,並且使用新的姿勢。

GAN生成了新的模特姿勢

 

照片到Emojis

GANs 可以通過人臉照片自動生成對應的表情(Emojis)。

名人照片和GAN生成的表情符號示例

 

照片編輯

使用GAN可以生成特定的照片,例如更換頭髮顏色、更改面部表情、甚至是改變性別。

使用IcGAN編輯照片的效果

 

預測不同年齡的長相

給一張人臉照片, GAN 就可以幫你預測不同年齡階段你會長成什麼樣。

用具有不同表觀年齡的GAN生成的面部照片的示例

 

提高照片解析度,讓照片更清晰

給GAN一張照片,他就能生成一張解析度更高的照片,使得這個照片更加清晰。

GANs在原始照片的基礎上增加解析度,使照片更清晰

 

照片修復

假如照片中有一個區域出現了問題(例如被塗上顏色或者被抹去),GAN可以修復這個區域,還原成原始的狀態。

遮住照片中間的一部分,GANs可以很好的修復

 

自動生成3D模型

給出多個不同角度的2D圖像,就可以生成一個3D模型。

從2D圖像到3D椅子模型的建立過程

 

 

百度百科+維基百科

百度百科版本

生成式對抗網路(GAN, Generative Adversarial Networks )是一種深度學習模型,是近年來複雜分布上無監督學習最具前景的方法之一。模型通過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學習產生相當好的輸出。原始 GAN 理論中,並不要求 G 和 D 都是神經網路,只需要是能擬合相應生成和判別的函數即可。但實用中一般均使用深度神經網路作為 G 和 D 。一個優秀的GAN應用需要有良好的訓練方法,否則可能由於神經網路模型的自由性而導致輸出不理想。

查看詳情

維基百科版本

生成對抗網路(GAN)是一類用於無監督機器學習的人工智慧演算法,由在零和遊戲框架中相互競爭的兩個神經網路系統實現。他們是由Ian Goodfellow 等人介紹的。在2014年這種技術可以生成照片看起來至少在表面上真實的人的觀察員,有很多的現實特徵(雖然在測試中的人可以真正告訴在許多情況下產生)。

查看詳情

 

擴展閱讀