AlexNet發表的2012年是具有里程碑意義的一年,自那以后,計算機視覺領域的所有突破幾乎都來自深度神經網絡。本文深入探討了深度學習,尤其是非常擅長與理解圖像的深度卷積神經網絡。
現在,我打開Google Photos,輸入“海灘”,就能查看我過去10年里去過的所有海灘的照片。我從來沒有瀏覽過我的照片,也沒有一張張給它們貼標簽;相反,谷歌是根據照片本身的內容來識別海灘的。
這個看似平凡的功能是基于一種叫做深度卷積神經網絡的技術,該技術允許軟件以一種以前的技術無法實現的方式理解圖像。
近年來,研究人員發現,隨著他們構建的網絡層數越深,積累了越大的數據集來訓練軟件,軟件的準確性就越高。這使得軟件對計算能力產生了幾乎無法滿足的需求,從而提振了英偉達和AMD等GPU廠商的財富。谷歌在幾年前開發了自己的定制神經網絡芯片,其他公司也爭相效仿谷歌的做法。
以特斯拉為例,特斯拉聘請了深度學習專家Andrej Karpathy負責其自動駕駛系統Autopilot項目。特斯拉目前正在開發一種定制芯片,為未來版本Autopilot的神經網絡操作提供加速。
又或,以蘋果公司為例:最近幾款iphone的核心芯片A11和A12都包含一個“神經引擎”,用來加速神經網絡操作,并支持更好的圖像和語音識別應用程序。
我為這篇文章采訪過的幾位專家都將當前的深度學習熱潮追溯到一篇特定的論文:AlexNet,名字來自它的主要作者Alex Krizhevsky。
“在我看來,AlexNet發表的2012年是具有里程碑意義的一年,”機器學習專家、《智能機器如何思考》(How Smart Machines Think)一書的作者Sean Gerrish說。
在2012年之前,深度神經網絡在機器學習領域幾乎是一潭死水。但后來,Krizhevsky和他在多倫多大學的同事們在一項備受矚目的圖像識別競賽提交了參賽作品,并取得了比以往任何成績都要精確得多的成果。幾乎一夜之間,深度神經網絡成為圖像識別的主要技術。其他使用該技術的研究人員很快證明了圖像識別精度的進一步飛躍。
在這篇文章中,我們將深入探討深度學習。我將解釋什么是神經網絡,它們是如何被訓練的,以及為什么它們需要如此多的計算能力。然后我將解釋為什么一種特殊類型的神經網絡——深度卷積網絡——在理解圖像方面非常擅長。
一個單神經元的例子
“神經網絡”(neural network)這個短語可能仍讓人感覺有點模糊,所以讓我們從一個簡單的例子開始吧。假設你想用一個神經網絡,根據紅燈、黃燈和綠燈來決定一輛車是否通行。神經網絡用單個神經元就可以完成這項任務。
神經元接受每個輸入(1表示打開,0表示關閉),將其乘以相關的權重(weight),并將所有權重值相加。然后,神經元添加偏差(bias),該偏差確定神經元“激活”的閾值。在這個例子中,如果輸出是正的,我們就認為神經元已經被“激活”了——否則就認為神經元沒有被激活。這個神經元相當于不等式“green - red - 0.5 》 0”。如果評估結果為真,即意味著綠燈亮,紅燈關,那么車應該通行。
在真實的神經網絡中,人工神經元需要多走了一步。將加權輸入相加并加入偏差后,神經元再應用非線性激活函數。一個流行的選擇是sigmoid函數,它是一個s形函數,總是產生0到1之間的值。
激活函數的使用不會改變我們這個簡單的紅綠燈模型的結果(除了閾值需要是0.5而不是0),但激活函數的非線性對于使神經網絡能夠建模更復雜的函數是必不可少的。如果沒有激活函數,每一個神經網絡,不管多么復雜,都可以簡化成其輸入的線性組合。線性函數不能模擬復雜的現實世界現象。非線性激活函數使神經網絡能夠近似任何數學函數。
一個簡單的示例網絡
當然,有很多方法可以近似函數。神經網絡的特別之處在于,我們知道如何用一些微積分、一堆數據和大量的計算能力來“訓練”它們。我們可以構建以一個通用神經網絡為基礎的軟件,讓它查看大量的標記示例,然后修改神經網絡,使其為盡可能多的有標記樣本產生正確的標簽,而不是讓人類程序員直接為特定任務設計一個神經網絡。我們的目標是使得到的網絡能夠推廣(generalize),為先前不在訓練數據集中的樣本生成正確的標簽。
早在AlexNet之前研究人員就開始試圖實現這一點了。1986年,三位研究人員David Rumelhart, Geoffrey Hinton 和 Ronald Williams發表了一篇關于反向傳播的里程碑式的論文。反向傳播是一種有助于使訓練復雜神經網絡在數學上變得容易操作的技術。
為了直觀了解反向傳播是如何工作的,讓我們來看看Michael Nielsen在他的在線深度學習課本中描述的一個簡單神經網絡。這個網絡的目標是以代表一個手寫數字的28×28像素的圖像作為輸入,并且正確地識別這個數字是什么。
每個圖像都有28個×28 = 784個輸入值,每個輸入值都是0和1之間的實數,表示像素的亮度或暗度。Nielsen構建了這樣一個神經網絡:
在這張圖中,中間和右邊的每一個圓都是一個神經元。每個神經元對其輸入進行加權平均,添加一個偏差值,然后應用一個激活函數。注意左邊的圓圈不是神經元——這些圓圈代表網絡的輸入值。雖然圖像只顯示了8個輸入圓,但實際上有784個輸入——每個輸入對應輸入圖像的一個像素。
右邊的10個神經元分別應該為不同的數字“點亮”:當輸入是手寫數字0時,頂部的神經元應該被觸發;當輸入是手寫數字1時,第二個神經元應該被觸發;如此類推。
每個神經元從它前面一層的每個神經元接受輸入。因此,中間這15個神經元的每一個都有784個輸入值。這15個神經元中的每一個都有一個權重參數,對應于它的784個輸入。這意味著這一層單獨就有15×784 = 11760個權重參數。同樣,輸出層包含10個神經元,每一個都從中間層的15個神經元獲得輸入,并添加另外15×10 = 150個權重參數。除此之外,這個網絡還有25個偏差變量——每個偏差變量分別對應25個神經元中的每一個。
訓練神經網絡
訓練的目標是優化這11935個參數,以最大限度地提高正確的輸出神經元——并且只有那個輸出神經元——在顯示一個手寫數字圖像時亮起來的機會。我們可以用一個名為MNIST的著名數據集來完成此操作,該數據集提供60000張有標記的28×28像素圖像:
這里顯示了MNIST數據集中的160個圖像
Nielsen展示了如何使用74行Python代碼來訓練這個網絡——不需要特殊的機器學習庫。訓練從為11935個權重和偏差參數中的每一個選擇隨機值開始。然后,軟件會瀏覽示例圖像,為每一個圖像完成以下兩個步驟的操作:
前饋步驟:在給定輸入圖像和網絡的當前參數的條件下,計算網絡的輸出值。
反向傳播步驟:計算結果與正確的輸出值偏離多少,然后修改網絡參數,以略微改進其在特定輸入圖像上的性能。
這是一個示例。假設網絡顯示下面這張圖:
如果網絡校準良好,那么網絡的“7”輸出應該接近1,而網絡的其他9個輸出應該都接近0。但是,假設在顯示這個圖像時,網絡的“0”的輸出為0.8。這就太高了!訓練算法將改變“0”輸出神經元的輸入權重,使其在下次顯示這張圖像時更接近于0。
為此,反向傳播算法為每個輸入權重參數計算一個誤差梯度(error gradient)。這是一種測量在輸入權重發生給定變化時,輸出誤差會發生多大變化的方法。然后,算法使用這個梯度來決定每個輸入權重的變化量——梯度越大,參數的變化就越大。
換句話說,這個訓練過程“教導”輸出層的神經元減少對會將它們推向錯誤答案的輸入(即中間層的神經元)的注意力,而將注意力更多地放在將它們推向正確方向的輸入。
該算法對其他每個輸出神經元重復這一步驟。它減少“1”、“2”、“3”、“4”、“5”、“6”、“8”和“9”神經元(而不是“7”神經元)輸入的權重,從而將這些輸出神經元的值向下推。輸入的值越高,輸出誤差相對于該輸入的權重參數的梯度越大——因此它的權重會減少得越多。
相反,訓練算法增加了導致“7”輸出的輸入權重,這將導致該神經元在下一次顯示這張特定圖像時產生更高的值。同樣的,輸入值越大,其權重的增加也越大,使得“7”輸出神經元在以后的幾輪中會更加注意這些輸入。
接下來,算法需要對中間層執行相同的計算:將每個輸入權重改變到可以減少網絡錯誤的方向——同樣,使“7”輸出更接近于1,其他輸出更接近于0。但是每個中間神經元都是輸出層所有10個神經元的輸入,這使得事情在兩個方面復雜化了。
首先,任何給定中間層輸入的誤差梯度不僅取決于該輸入值,而且還取決于下一層的誤差梯度。該算法被稱為反向傳播算法,因為來自網絡中較后一層的誤差梯度是向后傳播的,并且用于計算前一層的梯度。
此外,每個中間層神經元都是輸出層中所有10個神經元的輸入。因此,訓練算法必須計算一個誤差梯度,以反映特定輸入權重的變化如何影響所有輸出的平均誤差。
反向傳播是一種爬山算法:每一輪算法都會使輸出結果更接近訓練圖像的正確結果——但只會接近一點點。隨著算法得到越來越多的樣本,它會“爬坡”到一組最優參數,這組參數能夠正確分類盡可能多的訓練樣本。要達到較高的精度,需要成千上萬的訓練樣本,算法可能需要對訓練集中的每幅圖像進行幾十次循環遍歷,才能達到性能的最高點。
Nielsen展示了如何用74行Python代碼實現所有這些。值得注意的是,使用這個簡單程序訓練的神經網絡能夠識別MNIST數據庫中95%以上的手寫數字。通過一些額外的改進,像這樣一個簡單的兩層神經網絡能夠識別98%以上的數字。
AlexNet帶來的突破
你可能認為上世紀80年代反向傳播的發展會開啟基于神經網絡的機器學習的快速進步時期,但事實并非如此。當然,在20世紀90年代和21世紀初就有人致力于這項技術。但對神經網絡的興趣直到2010年初才真正興起。
我們可以從ImageNet競賽的結果中看出這一點。ImageNet競賽是由斯坦福大學計算機科學家李飛飛組織的年度機器學習競賽。在每年的比賽中,參賽者都會得到超過一百萬張圖像的訓練數據集,每張圖像都被手工標記一個標簽,標簽有大約1000種類別,比如“消防車”、“蘑菇”或“獵豹”。參賽者的軟件根據其對未被包含在訓練集的其他圖像進行分類的能力進行評判。程序可以進行多次猜測,如果前五次猜測中有一次與人類選擇的標簽相匹配,則被認為識別成功。
這項競賽始于2010年,前兩年深度神經網絡并沒有發揮主要作用。頂級團隊使用了各種其他的機器學習技術,但結果相當平庸。2010年獲勝的團隊的top-5錯誤率高達28%。2011年,這個錯誤率為25%。
然后是2012年。來自多倫多大學的一個團隊提交了參賽作品——即后來以主要作者Alex Krizhevsky命名的AlexNet——擊敗了所有競爭者。使用深度神經網絡,該團隊得到了16%的top-5錯誤率。最接近的競爭對手當年的錯誤率為26%。
上面討論的手寫識別網絡有兩層,25個神經元,以及大約12000個參數。AlexNet要大得多,也復雜得多:8個可訓練的層、650000個神經元,以及6000萬個參數。
訓練這種規模的網絡需要大量的計算能力,而AlexNet被設計利用現代GPU提供的大量并行計算能力。研究人員想出了如何在兩個GPU之間分配網絡訓練的工作,從而給了它們兩倍的計算能力。不過,盡管進行了積極的優化,在2012年可用的硬件條件下(兩個Nvidia GTX 580 GPU,每個3GB內存),網絡訓練進行了5到6天。
看看AlexNet的結果對于理解這是一個多么厲害的突破是很有幫助的。以下是AlexNet論文中的截圖,展示了一些圖像和AlexNet的top-5分類:
AlexNet能夠識別出第一張圖片中有一只螨蟲,即使這只螨蟲只是在圖片邊緣的一個小形狀。AlexNet不僅能正確識別美洲豹,它的其他top猜測——美洲虎、獵豹、雪豹和埃及貓——都是長相相似的貓科動物。AlexNet將蘑菇的圖片標記為“木耳”——蘑菇的一種。“蘑菇”——官方正確的標簽,是AlexNet的第二選擇。
AlexNet的“錯誤”幾乎同樣令人印象深刻。照片上,一只斑點狗站在櫻桃后面,AlexNet的猜測是“斑點狗”,而官方的標簽是“櫻桃”。AlexNet意識到這幅畫中含有某種水果——“葡萄”和“接骨木漿果”是它的前五種選擇——但它并沒有完全認識到它們是櫻桃。在一張馬達加斯加貓站在樹上的照片中,AlexNet列出了一群會爬樹的小型哺乳動物。很多人(包括我)都可能會弄錯。
這是真正令人印象深刻的性能表現,表明軟件可以識別各種方向和背景中的常見對象。深度神經網絡迅速成為圖像識別任務最受歡迎的技術,此后機器學習領域就再也不回頭看其他技術了。
“隨著基于深度學習的方法在2012年取得成功,2013年的絕大多數參賽方法都使用了深度卷積神經網絡,”ImageNet的贊助商寫道。這種模式在隨后的幾年里持續,后來的獲勝者的技術建立在AlexNet團隊開創的基本技術之上。到2017年,使用更深層的神經網絡的參賽者將top-5錯誤率降到3%以下。考慮到這項任務的復雜性,可以說計算機比許多人能更好地完成這項任務了。
卷積網絡:概念
從技術上講,AlexNet是一個卷積神經網絡。在這一節中,我將解釋卷積網絡是做什么的,以及為什么這種技術對現代圖像識別算法至關重要。
我們之前討論的簡單的手寫識別網絡是完全連接的:第一層的每個神經元都是第二層每個神經元的輸入。這種結構足以完成相對簡單的識別28×28像素的數字的任務。但它不能很好地擴展。
在MNIST手寫數字數據集中,字符總是居中的。這大大簡化了訓練,因為這意味著(比如說)“7”這個數字在圖像的頂部和右側總是有一些暗像素,而左下角總是白色的。一個“0”幾乎總是中間白色,在邊緣有一些較暗的像素。一個簡單的、完全連接的網絡可以相當容易地檢測出這類模式。
但假設你想構建一個可以識別出可能位于大圖像中任何位置的數字的神經網絡。一個完全連接的網絡是不能很好地工作的,因為它沒有一種有效的方法來識別位于圖像不同部分的形狀之間的相似性。如果你的訓練集恰好大多數“7”都位于左上角,那么你最終會得到一個更擅長識別左上角的“7”的網絡。
從理論上講,你可以通過確保你的訓練集在每個可能的像素位置上都有很多每個數字的樣本來解決這個問題。但在實踐中,這將是巨大的浪費。隨著圖像的大小和網絡深度的增加,連接的數量——也就是輸入權重參數的數量——將會激增。你需要更多的訓練圖像(更不用說更多的計算能力)來達到足夠的準確性。
當神經網絡學會識別圖像中某個位置的形狀時,它應該能夠將這種學習應用到圖像其他部分的相似形狀識別中。卷積神經網絡為這一問題提供了一個優雅的解決方案。
所以,想象一下,如果我們把一個大的圖像分割成28×28像素的方格,然后,我們可以將每個方格輸入到之前探討的完全連接的手寫識別網絡中。如果“7”的輸出在這些方格中至少有一個亮起,那就表示圖像整體上可能有一個7。這就是卷積網絡的本質。
卷積網絡在AlexNet中的重要作用
在卷積網絡中,這些“模板”被稱為特征檢測器,它們所看到的區域稱為感受野。真實特征探測器往往具有遠小于28像素的感知場。在AlexNet中,第一個卷積層具有特征檢測器,其感知場是11*11像素。 AlexNet中的后續卷積層具有三或五個單位寬的感受域。
當特征檢測器掃過輸入圖像時,它會生成一個特征圖:一個二維網格,指示探測器被圖像的不同部分激活的強度。卷積層中通常有多個特征檢測器,每個特征檢測器掃描輸入圖像以獲得不同的圖案。在AlexNet中,第一層有96個特征探測器,產生96個特征圖。
為了使其更具體,這里給出網絡訓練后AlexNet第一層中96個特征探測器中每個探測器學習的視覺模式的直觀表示。探測器可以定位水平線或垂直線、從淺到深的畫面漸變、棋盤圖案和許多其他形狀。
彩色圖像通常表示為每個像素擁有三個數字屬性的像素圖:分別為紅色值、綠色值和藍色值。AlexNet的第一層就采用圖像的這種“三數字”表示,并將其轉換為96數字表示,即圖像中的每個“像素”具有96個值,由96個特征檢測器一一對應。
在此例中,這96個值中的第一個指示圖像中的特定點是否與此模式匹配:
第二個值指示特定點是否與此模式匹配:
第三個值指示特定點是否與此模式匹配:
。。.依舊為AlexNet的第一層中的其他93個特征檢測器。第一層輸出圖像的新表示,其中每個“像素”是96個數字的向量(正如我稍后將解釋的,這個新表示也按比例縮小了四倍)。
這就是AlexNet的第一層。接下來還有四個卷積層,每個層都將前一層的輸出作為輸入。
正如我們所見,第一層檢測基本圖案,如水平線和垂直線,明暗漸變和曲線。第二層使用這些輸出作為構建塊,來檢測稍微復雜的形狀。例如,第二層的特征檢測器通過組合找到曲線的第一層特征檢測器的輸出來找到圓。第三層通過組合第二層的特征,找到更復雜的形狀。第四層和第五層以此類推,能夠找到的圖案越來越復雜。
2014年,研究人員Matthew Zeiler和Rob Fergus發表了一篇論文,文中提供了一些有用的方法來對ImageNet的五層神經網絡所識別的模式類型進行可視化。
第一層在單側具有11個單元的感受野,而后面的層在一側具有三至五個單元的感受野。注意,后面的這些層正在查看由較早層生成的要素圖,這些要素圖中的每個“像素”代表原始圖像中的多個像素。因此,每個圖層的感知區域都比前面的圖層包含原始圖像的比例更大。這也是后面的圖層中的縮略圖圖像看起來比前面的圖層更復雜的部分原因。
網絡的第五層,也是最后一層(上圖),能夠識別這些圖像中各種元素。
右邊的九個圖像可能看起來不太相似。但是如果你看一下左邊的九個熱圖,你會發現這個特殊的特征探測器沒有聚焦在每個圖像前景中的物體上。相反,它專注于每個圖像背景中的草地部分!
顯然,如果您嘗試識別的類別之一是“草”,草地檢測器就是很有用的,而且對識別許多其他類別的目標也很有用。在五層卷積層之后,AlexNet有三層全連接層,就像我們的手寫識別網絡中的層一樣。這些層參考了第五層卷積層產生的每個特征映射,因為它們試圖將圖像分類為1000個可能的類別之一。
因此,如果圖片背景中有草,則更有可能顯示出野生動物。另一方面,如果圖片背景中有草,則不太可能是室內家具的圖片。這和其他第五層特征檢測器提供了有關照片中可能內容的大量信息。網絡的最后幾層合成了這些信息,以便對整個圖片所描繪的內容產生有根據的猜測。
不同卷積層之間的差異:共享輸入權重
我們已經看到卷積層中的特征檢測器執行了令人印象深刻的模式識別,但到目前為止,我還沒有解釋卷積網絡實際上是如何工作的。
卷積層是一層神經元。像任何神經元一樣,它們會對輸入進行加權平均,然后應用激活函數。使用反向傳播技術來訓練參數。
但與上述神經網絡不同,卷積層未完全連接。每個神經元僅從前一層中的一小部分神經元獲取輸入。而且,至關重要的是,卷積網絡中的神經元具有共享的輸入權重。
放大AlexNet第一個卷積層中的第一個神經元。該層具有11×11像素的感受野,因此第一神經元在圖像的一個角上觀察11×11像素。這個神經元從這121個像素中獲取輸入,每個像素存在三個參數值——紅色、綠色和藍色。所以神經元總共有363個輸入。像任何神經元一樣,這個神經元對這363個輸入值進行加權平均,然后應用激活函數。因為它有363個輸入值,所以還需要363個輸入權重參數。
AlexNet第一層中的第二個神經元看上去與第一個神經元很相似。它還會看到一個11×11像素的正方形,但其感受野比第一個神經元的感受野偏移了四個像素。這在兩個感受野之間產生了七個像素的重疊,這避免了跨越兩個神經元之間的線路就會錯失信息的模式。第二個神經元還采用描述其11×11像素平方的363個值,將每個值乘以權重參數,將這些值相加,并應用激活函數。
第二個神經元使用與第一個神經元相同的輸入權重。第一神經元的左上像素使用與第二神經元的左上像素相同的輸入權重。所以這兩個神經元尋找完全相同的模式;他們只有四個像素偏移的感受野。
當然,神經元的總數遠不只兩個:在55×55的網格中,實際上有3025個神經元。這3025個神經元中的每一個都使用與前兩個神經元相同的363個輸入權重集。所有這些神經元一起形成一個特征檢測器,無論它位于圖像中的哪個位置,都可以“掃描”特定的圖案。
人類的視覺系統與神經網絡的樣式匹配技術遵循的原則是相近的。如果我們看的東西總是在一個方向上的,比如說人類的眼睛,那么我們更習慣于以通常的方向來識別它們。
訓練數據越充分,網絡性能越好,各大廠商紛紛發力
AlexNet的論文很快就在機器學習學術界引起轟動,其重要性也在工業界得到迅速認可。谷歌對這項技術特別感興趣。
2013年,谷歌收購了由AlexNet論文的作者開辦的創業公司。他們使用該技術為Google相冊添加了新的圖片搜索功能。谷歌的查克·羅森伯格寫道:“我們直接從一個學術研究實驗室走向了前沿研究,并在短短六個多月內推出了新的功能。”
與此同時,2013年的一篇論文描述了Google如何使用深度卷積網絡從Google街景圖像中的照片中讀取郵編。作者寫道:“該系統幫助我們從街景圖像中提取了近1億個真實街道上的數字。”
研究人員發現神經網絡的性能隨著網絡的深度而不斷提高。 “我們發現這種方法的性能隨著卷積網絡的深度而增加,最佳性能出現在我們訓練的最深層的架構中,我們的實驗表明,更深層次的架構可能會獲得更好的精度,收益遞減。”
因此,在AlexNet誕生后,神經網絡不斷深入。在2014年AlexNet獲勝后兩年,Google團隊向2014年ImageNet競賽提交了獲獎作品。與AlexNet一樣,它基于深度卷積神經網絡,但Google使用更深層次的22層網絡來實現6.7-百分之五的錯誤率 - 比AlexNet的16%錯誤率大大提高。
更深層的網絡只適用于大型訓練集。出于這個原因,Gerrish認為ImageNet數據集在深度卷積網絡的成功方面發揮了關鍵作用。ImageNet比賽為參賽者提供了一百萬張圖片,并要求他們將這些圖片分配給1000個不同類別中的一個。
“擁有一百萬張圖像來訓練網絡,意味著每個級別上有1000張圖像。”Gerrish說。他說,如果沒有如此大的數據集,“需要訓練的參數數量就太多了。”
近年來,人們一直致力于積累更大的數據量,以便用于訓練更深、更準確的網絡。所以自動駕駛汽車企業一直專注于積累路測里程,途中采集到的圖像和測試視頻可以用于訓練圖像識別網絡。
深度學習算力需求幾無止境,GPU廠商盆滿缽滿
更深層的網絡和更大的訓練集可以提供更好的性能,激發了對更多計算力的永不滿足的需求。AlexNet成功的一個重要原因是認識到了神經網絡訓練可以利用顯卡的并行計算能力進行高效快速的矩陣操作。
這對于GPU制造商Nvidia和AMD來說,無疑是一筆可觀的財富。這兩家公司都致力于開發面向機器學習應用的獨特需求而開發的新芯片,AI應用程序現在占這類公司GPU銷售額的很大一部分。
2016年,谷歌宣布創建了名為Tensor Processing Unit(TPU)的定制芯片,專門用于神經網絡操作。 Google早在2006年就考慮為神經網絡構建專用集成電路(ASIC),但情況在2013年變得緊迫起來。“那時我們意識到,神經網絡快速增長的計算需求可能要求我們將運營的數據中心數量增加一倍。“
最初,TPU的訪問權限僅限谷歌自己的專有服務,但后來逐步開放,允許任何人通過谷歌的云計算平臺使用該技術。
當然,谷歌并不是唯一一家致力于AI芯片的公司。iPhone的最新版本芯片就具備針對神經網絡操作優化的“神經引擎”。英特爾也在開發針對深度學習而優化的一系列芯片。特斯拉最近宣布將不再使用英偉達的芯片,轉而支持自研的神經網絡芯片。另據報道,亞馬遜也在開發自己的AI芯片。
評論
查看更多