四個任務就要四個模型?現在單個神經網絡模型就夠了!

2020-11-22 雷鋒網

雷鋒網 AI 科技評論按:顧名思義,「表示」(representation)就是指在網絡中對信息進行編碼的方式。為了讓大家充分理解「表示」,本文作者嘗試構建一個能同時完成圖像描述,相似詞、相似圖像搜索以及通過描述圖像描述搜索圖像四項任務的深度神經網絡,從實操中讓大家感受「表示」的奇妙世界。雷鋒網(公眾號:雷鋒網) AI 科技評論編譯如下。

眾所周知,神經網絡十分擅長處理特定領域的任務,但在處理多任務時結果並不是那麼理想。這與人類大腦不同,人類大腦能夠在多樣化任務中使用相同的概念。例如,假如你從來沒聽說過「分形」(fractal),不妨看一下下面這張圖:

在看到一張分形圖像後,人類能夠處理多個與之相關的任務:

  • 在一組圖像中,區分出分形圖像和一隻貓的圖像;

  • 在一張紙上,粗略地畫出分形圖的樣子(它不會很完美,但也不會是隨意的塗鴉);

  • 將類似分形的圖像與非分形圖像進行分類(你會毫不猶豫地將圖像按最相似到最不相似的方式進行分類);

  • 閉上眼睛,想像一下分形圖像是什麼樣子的(即使現在不給你一張現成的分形圖象,你也可以在看過它一次之後,就想像出它的樣子,是不是很棒!)

那麼,你是如何完成這些任務的呢?你的大腦中是否有專門負責處理這些任務的神經網絡?

現代神經科學對此給出了答案:大腦中的信息是跨不同的部位進行分享和交流的。大腦究竟怎樣完成這些任務只是研究的一個領域,而對於這種執行多任務的能力是怎樣產生的,我們也有一些線索——答案可能就存在於如何在神經網絡中存儲和解釋數據。

表示」的奇妙世界

顧名思義,「表示」(representation)就是指在網絡中對信息進行編碼的方式。當一個單詞、一個句子或一幅圖像(或其他任何東西)被輸入到一個訓練好的神經網絡時,隨著權重與輸入相乘並進行激活操作時,它就能在連續的層上實現轉換。最後,我們在輸出層中得到一串數字,我們將其解釋為類標籤或股價,或網絡為之訓練的任何其他任務。

這種神奇的輸入->輸出轉換因連續層中發生的輸入轉換得以實現。輸入數據的這些轉換即稱為「表示」。它的一個重要思想是,每一層都讓下一層更容易地執行任務。這個過程讓連續層的存在變得更容易,進而也使得激活(特定層上輸入數據的轉換)變得有意義。

我所說的有意義是指什麼呢?讓我們看下面的示例,其展示了圖像分類器中不同層的激活:

圖像分類網絡的作用是將像素空間中的圖像轉化為更高級的概念空間。例如,一張最初用 RGB 值表示的汽車圖像,首先在第一層用邊緣空間表示,然後在第二層被表示為圓圈和基本形狀空間,在倒數第二層則開始使用高級對象(如車輪、車門等)表示。

隨著表示(由於深度網絡的層次性而自動出現)日益豐富,圖像分類的任務也變得微不足道。最後一層要做的就是權衡車輪和車門的概念更像汽車以及耳朵、眼睛的概念更像人。

表示能夠運用在哪些方面?

由於這些中間層存儲有意義的輸入數據編碼,所以可以對多個任務使用相同的信息。例如,你可以使用一個語言模型(一個經過訓練、用於預測下一個單詞的循環神經網絡),並解釋某個特定神經元的激活以預測句子的情緒。

(via Unsupervised Sentiment Neuron

一個令人驚訝的事實是,情感神經元是在無監督的語言建模任務中自然出現的。(相關文章請參閱:https://rakeshchada.github.io/Sentiment-Neuron.html)。網絡經過訓練來預測下一個單詞,然而在任務中我們沒有要求網絡預測情緒。也許情感是一個非常有用的概念,以至於網絡為了更好地進行語言建模而創造了它。

一旦你理解了「表示」這個概念,你就會開始從完全不同的角度來理解深層神經網絡。你會開始將表示(sensing representations)視作一種能夠讓不同網絡(或同一網絡的不同部分)之間實現通信的可轉換的語言。

通過構建一個「四合一」的網絡來探索表示

為了充分理解「表示」,讓我們來構建一個能同時完成四個任務的的深度神經網絡:

  • 圖像描述生成器:給定圖像,為其生成標題

  • 相似單詞生成器:給定一個單詞,查找與之相似的其他單詞

  • 視覺相似的圖像搜索:給定一幅圖像,找出與之最相似的圖像

  • 通過描述圖像描述搜索圖像:給出文本描述,搜索具有所描述的內容的圖像

這三個任務中的每一個本身都是一個項目,一般來說需要三個模型。但我們現在要用一個模型來完成所有這些任務。

該代碼將採用 Pytorch 在 Jupyter Notebook 中編寫,大家可以前往這個存儲庫進行下載:

https://github.com/paraschopra/one-network-many-uses

第一部分:圖像描述(Image Captioning)

在網上有很多實現圖像描述的好教程,所以這裡就不深入講解。我的實現與這個教程中所使用的方法完全相同:構建一個自動化的圖像標題應用程式(教程連結:https://daniel.lasiman.com/post/image-captioning/)。關鍵的區別在於,我的實現是使用 Pytorch 實現的,而教程使用的是 Keras。

要繼續學習,你需要下載 Flickr8K 數據集(1GB Flickr8K 數據集的下載連結:https://github.com/jbrownlee/Datasets/releases/download/Flickr8k/Flickr8k_Dataset.zip,不過我不確定這個連結的有效期多長)。填好這張表格(https://forms.illinois.edu/sec/1713398)後,你的電子郵件會收到一個下載連結。將 zip 文件解壓到與筆記本目錄相同的「Flicker8k_Dataset」文件夾中。您還需要從這裡(http://cs.stanford.edu/people/karpathy/deepimagesent/caption_datasets.zip)下載描述,並提取「caption_datasets」文件夾中的描述。

模型

圖像描述一般由兩個組成部分:

a)圖像編碼器(image encoder),它接收輸入圖像並以一種對圖像描述有意義的格式來表示圖像;

b)圖說解碼器(caption decoder),它接受圖像表示,並輸出文本描述。

圖像編碼器是一個深度卷積網絡,而圖說解碼器則是傳統的 LSTM/GRU 循環神經網絡。當然,我們可以從頭開始訓練它們。但這樣做的話,就需要比我們現有的(8k 張圖像)更多的數據和更長的訓練時間。因此,我們不從頭開始訓練圖像編碼器,而是使用一個預訓練的圖像分類器,並使用它倒數第二層的激活。

你將在本文中看到許多神奇的表示示例,下面這個示例是第一個。我使用在 ImageNet 上進行了訓練的 PyTorch modelzoo 中可用的 Inception 網絡來對 100 個類別的圖像進行分類,並使用該網絡來提供一個可以輸入給循環神經網絡中的表示。

via https://daniel.lasiman.com/post/image-captioning/

值得一提的是,雖然 Inception 網絡從未對圖說生成任務進行過訓練,但是它的確有效!

如我在通過機器學習形成機器學習思路一文中所做的那樣,我們使用了一個預訓練的語言模型來作為圖說解碼器。但這一次,由於我重新實現了在教程中運行良好的模型,僅按照教程的步驟便從頭開始訓練了一個解碼器。

完整的模型架構如下圖所示:

Image via https://daniel.lasiman.com/post/image-captioning/

你可以從頭開始訓練模型,但是在 CPU 上就要花費幾天時間(我沒有對 GPU 進行優化)。但不用擔心,我的筆記本電腦度過了幾個不眠之夜訓練出來的模型成果,可供大家使用。(如果你是從頭開始訓練,需要注意的是,當運行的平均損失約為 2.8 時,我在大概 40 epochs 時停止了訓練。)

性能

我採用的集束搜索(beam search)方法實現了良好的性能。下面是網絡為測試集中的圖像所生成的圖說示例(網絡此前從未見過這種圖像)。

用我自己的照片試試,看看網絡生成的圖說是什麼:


效果不錯!令人印象深刻的是,網絡知道這張照片中有一個穿著白色 T 恤的男人。另外雖然圖說的句子語法有些錯誤(我相信通過更多的訓練可以修正這些錯誤),但基本的要點都抓住了。

如果輸入的圖像包含網絡從未見過的東西,它往往會失敗。例如,我很好奇網絡會給 iPhone X 的圖像貼上什麼樣的標籤。

效果不太好。但總的來說,我對其性能非常滿意,這為我們在學習生成圖說時,使用網絡所開發的「表示」構建其他功能提供了良好的基礎。

第二部分:相似詞

回想一下我們如何對由圖像表示得到的圖說進行解碼。我們將該表示提供給 LSTM/GRU 網絡,生成一個輸出,將輸出解釋為第一個單詞,然後將第一個單詞返回給網絡以生成第二個單詞。這個過程一直持續到網絡生成一個表示句子結束的特殊標記為止。

為了將單詞反饋到網絡中,我們需要將單詞轉換為表示,再輸入給網絡。這意味著,如果輸入層包含 300 個神經元,那麼對於所有圖說中的 8000 多個不同的單詞,我們需要有一個唯一指定那個單詞的「300」數字。將單詞字典轉換成數字表示的過程,就稱為詞嵌入(或詞表示)。

我們可以下載和使用已經存在的詞嵌入,如 word2vec 或 GLoVE。但在本例中,我們從零開始學習一個詞嵌入。我們從隨機生成的詞嵌入開始,並探索我們的網絡在完成訓練時從單詞中學到了什麼。

由於無法想像 100 維的數字空間,我們將使用一種稱為 t-SNE 的神奇技術將學到的詞嵌入在二維空間可視化。t-SNE 是一種降維技術,它試圖使高維空間中的鄰域不變地投射為低維空間中的鄰域。

詞嵌入的可視化

讓我們來看看圖說解碼器所學習到的詞嵌入空間(不像其他語言任務中有數百萬個單詞和句子,我們的解碼器在訓練數據集中只看到了大約 3 萬個句子)。

因此,我們的網絡已經了解到像「play」、「plays」和「playing」這樣的詞彙是非常相似的(它們具有相似的表示,如紅色箭頭所示的密集聚類)。讓我們看看這個二維空間中的另一個區域:

這個區域似乎有一堆數字——「two」、「three」、「four」、「five」等等。再看另一個:

上圖,它知道「people」和「children」這兩個單詞相似。而且,它還隱晦地推斷出了物體的形狀。

相似詞

我們可以使用 100 維表示來構建一個函數,該函數可找出與輸入單詞最相似的單詞。它的工作原理很簡單:採用 100 維的表示,並找出它與資料庫中所有其他單詞的餘弦相似度。

讓我們來看看與「boy」最相似的單詞:

結果不錯。除「Rider」外,但「kids」、「kid」和「toddler」都是正確的。

這個網絡認為與「chasing」相似的詞彙是:

「Chases」是可以理解的,但我疑惑的是為什麼它認為「police」與「chasing」類似。

單詞類比(Word analogies

關於詞嵌入的一個振奮人心的事實是,你可以對它們進行微積分計算。你可以用兩個單詞(如「king」和「queen」)減去它們的表示來得到一個方向。當你把這個方向應用到另一個詞的表示上(如「man」),你會得到一個與實際的類比詞(比如「woman」)很接近的表示。這就是為什麼 word2vec 一經推出就如此受歡迎:

via https://www.tensorflow.org/images/linear-relationships.png

我很好奇通過圖說解碼器學習到的表示是否具有類似的屬性。儘管由於訓練數據並不大(大約 3 萬個句子)我對結果持懷疑態度,但我還是嘗試了一下。

網絡學到的類比並不完美(由於有些單詞書面上出現的次數<10次,因此網絡沒有足夠的信息可供學習),這種情況下我不得不仔細去看,但是發現仍有一些類比。

如果「riding」對應「sitting」,那麼「walking」對應什麼呢?網絡認為應該是「laying」(這個結果還不錯!)

同樣,如果「man」的複數是「men」,那麼「woman」的複數應該是什麼呢:

第二個結果是「women」,相當不錯了。

最後,如果「grass」對應「green」,那麼「sky」對應什麼呢:

網絡認為「sky」對應「silver」或「grey」的,雖然結果中沒有出現「blue」,但它給的結果都是顏色詞。令人驚訝的是,這個網絡還能夠推斷顏色的方向。

第三部分:相似圖像

如果詞表示將類似的單詞聚類在一起,那麼圖像表示(Inception支持的圖像編碼器輸出)呢?我將相同的 t-SNE 技術應用於圖像表示(在圖說解碼器的第一步中作為輸入的 300 維度的張量)。

可視化

這些點是不同圖像的表示(我沒有使用全部的 8K 圖像,只使用了大約 100 張圖像樣本)。紅色箭頭指向附近一組表示的聚類。

賽車的圖像被聚類在一起。

孩子們在森林/草地玩耍的圖像也被聚類在一起。

籃球運動員的圖像也被聚類在一起。

查找與輸入圖像相似的圖像

對於查找相似單詞的任務,我們受限於在測試集詞彙表中尋找相似的單詞(如果測試集中不存在某個單詞,我們的圖說解碼器就不會學習該單詞的嵌入)。然而,對於類似的圖像任務,我們有一個圖像表示生成器,它可以接收任何輸入圖像並生成其編碼。

這意味著我們可以使用餘弦相似度的方法來構建一個按圖像搜索的功能,如下所示:

步驟 1:獲取資料庫或目標文件夾中的所有圖像,並存儲它們的表示(表示由圖像解碼器給出);

步驟 2:當用戶希望搜索與已有圖像最相似的圖像時,可以輸入新圖像的表示,並在資料庫中找到與之最接近的圖像(資料庫由余弦相似度給出)。

谷歌圖像就可能會正式使用這種(或類似的)方法來支持其反向圖像搜索功能。

讓我們看看這個網絡是如何工作的。我點擊了下面這張我在 Goa 度假時拍的照片。(PS:我愛 Goa!)

注意,這張圖片是我自己的,而我們使用的模型此前從未見過這張圖片。當我查詢類似的圖像時,網絡從Flickr8K 數據集中輸出如下圖像:


是不是很像?我沒想到該模型會有這麼好的表現,但它確實做到了!深度神經網絡簡直太棒了!(https://www.youtube.com/watch?v=Y-WgVcWQYs4)

第四部分:通過描述來搜索圖片

在最後一部分中,我們將反向運行圖說生成器。因此,我們不是獲取圖像並為其生成圖說,而是輸入圖說(文本描述)來找到與之最匹配的圖像。

聽起來好得令人難以置信?當然可以相信!我們是這樣做的:

  • 步驟 1:首先輸入的是一個完全隨機的 300 維張量,而不是一個來自編碼器的 300 維圖像表示;

  • 步驟 2:凍結整個網絡的所有層(例如引導 PyTorch 不要對梯度進行計算);

  • 步驟 3:假設隨機生成的輸入張量來自圖像編碼器,將其輸入到圖說解碼器中;

  • 步驟 4:獲取給定隨機輸入時網絡生成的圖說,並將其與用戶提供的圖說進行比較;

  • 步驟 5:比較生成的圖說和用戶提供的圖說,並對二者存在損失進行計算;

  • 步驟 6:為輸入張量找到梯度,使損失最小化(例如,在哪個方向以及 300 維數中的每個數值應該改變多少,從而使得在將張量輸入到圖說解碼器時,圖說與用戶提供的圖說接近);

  • 步驟 7:根據梯度改變輸入張量的方向(學習率所給定的一小步);

  • 繼續步驟 4 到步驟 7,直到收斂或當損失低於某個閾值時為止

  • 最後一步:取最終的輸入張量,並利用它的值,通過餘弦相似度找到離它最近的圖像(以 300 維表示的步速);

通過這樣做,我們得到的結果相當神奇:

我搜索了「一隻狗」,這是網絡找到的圖像:


搜索「一個微笑的男孩」:

最後,當我搜索:

前兩個結果是:

以及

這可真是讓人大開眼界,不是嗎?

總結和挑戰

提醒一下,大家可以從我的 Github 存儲庫(https://github.com/paraschopra/one-network-many-uses)中下載完成所有這些操作的代碼。這個存儲庫包括了用於數據預處理、模型描述、預訓練的圖說生成網絡、可視化的代碼,但不包括 Flickr8K 數據集或圖說——這些需要單獨下載(https://forms.illinois.edu/sec/1713398)。

希望你喜歡這篇文章。如果你想進行更深入的實操,這裡有一個挑戰:基於給定的描述生成圖像。這就好比是由一個隨機的起點來生成一個與用戶提供的圖說匹配的 300 維圖像表示一樣,但是你可以更進一步,從零開始為用戶提供的圖說生成一個圖像嗎?

這比本文中的操作要難 10 倍,但我感覺這是可行的。如果有這樣一個服務,它不僅可以搜索與文本對應的圖像,而且能夠動態生成圖像,那該有多酷啊!

在未來,如果谷歌圖像實現了這個功能,並能夠為不存在的圖像提供結果(比如「兩隻獨角獸在披薩做成的地毯上飛翔」),我都不會感到驚訝。

就這樣。我希望你能夠在「表示」的世界安然而快樂地遨遊。

via :https://towardsdatascience.com/one-neural-network-many-uses-image-captioning-image-search-similar-image-and-words-in-one-model-1e22080ce73d 雷鋒網 AI 科技評論 編譯

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 神經網絡的性能竟然優於神經符號模型
    不僅如此,實驗結果證實,神經網絡的在關鍵任務上的效果還要更好。不需要預先訓練,完全無監督,居然這麼神奇?按照之前的常識,結合了算法和符號推理技術的神經符號模型(Neurosymbolic Models),會比神經網絡更適合於預測和解釋任務,此外,神經符號模型在反事實方面表現更好。
  • 深度學習之卷積神經網絡經典模型
    VGG net在ILSVRC-2014中,牛津大學的視覺幾何組提出的VGGNet模型在定位任務第一名和分類任務第一名[[i]]。如今在計算機視覺領域,卷積神經網絡的良好效果深得廣大開發者的喜歡,並且上文提到的AlexNet模型擁有更好的效果,所以廣大從業者學習者試圖將其改進以獲得更好地效果。
  • 神經網絡的基礎是MP模型?南大周志華組提出新型神經元模型FT
    據論文介紹,這項研究為神經網絡提供了一種新的基本構造單元,展示了開發具有神經元可塑性的人工神經網絡的可行性。當前的神經網絡大多基於 MP 模型,即按照生物神經元的結構和工作原理構造出來的抽象和簡化模型。此類模型通常將神經元形式化為一個「激活函數複合上輸入信號加權和」的形式。
  • AutoML : 更有效地設計神經網絡模型
    在本文中,我們將介紹AutoML的以下內容:關於AutoKeras的一個簡短介紹通過AutoKeras這個神經架構搜索算法,我們可以找到最好的神經網絡架構,比如層中神經元的數量,架構的層數,加入哪些層,層的特定參數,比如Dropout中的濾波器大小或掉落神經元的百分比等等。
  • 百度NLP | 神經網絡模型壓縮技術
    作者:百度NLP引言近年來,我們在神經網絡模型與 NLP 任務融合方面深耕,在句法分析、語義相似度計算、聊天生成等各類方向上,均取得顯著的進展。在搜尋引擎上,語義相似度特徵也成為了相關性排序系統最為重要的特徵之一。
  • 盤點| 機器學習入門算法:從線性模型到神經網絡
    原標題:盤點 | 機器學習入門算法:從線性模型到神經網絡 選自Dataconomy 機器之心編譯 參與:王宇欣、吳攀、蔣思源由於現代計算能力的進步,我們最近才能夠真正大規模地利用機器學習。而實際上機器學習是如何工作的呢?答案很簡單:算法(algorithm)。 機器學習是人工智慧(artificial intelligence)的一種,其本質上講,就是計算機可以在無需編程的情況下自己學習概念(concept)。這些電腦程式一旦接觸新的數據,就將會改變它們的「思考」(或者輸出)。
  • 多變量多因子的非線性模型|BP神經網絡模型
    神經網絡模型的靈感來源於生物體內的神經網絡,大量的神經元(可以理解為變量)之間相互聯繫,共同協作處理問題。通過不斷調整輸入神經元的權重,達到目標結果,這也就是訓練的過程二、BP神經網絡BP的全稱是Backpropagation,譯為反向傳播,是目前應用最為廣泛的神經網絡模型之一。
  • 從經典結構到改進方法,神經網絡語言模型綜述
    為什麼要給 LM 加上神經網絡?然而,N 元語言模型有一個明顯的缺點。為了解決這個問題,我們在將神經網絡(NN)引入到了連續空間的語言建模中。NN 包括前饋神經網絡(FFNN)、循環神經網絡(RNN),可以自動學習特徵和連續的表徵。
  • 【深度】機器學習進化史:從線性模型到神經網絡
    但是當涉及神經網絡,你的計算量將會大大增加,即便你已經學習了相關模型,但仍然要搞明白該模型的輸出。而且,這還不是最大的問題,通常一個支持向量機應對一百萬個參數還遊刃有餘,但是我所見過一個成功的最小神經網絡,涉及的參數就多達600萬個,而且這還是最小的。另一個問題是訓練算法並沒有從最優化理論中獲得太多好處。我們所使用的絕大多數線性模型基本上都有數學理論支持,並且可以確定何時完成訓練。
  • 金融領域裡的機器學習算法介紹:人工神經網絡
    神經網絡神經網絡(又稱人工神經網絡,英文為artificial neural networks,簡稱ANNs)是一種高度靈活的機器學習算法,它已被成功地應用於具有大量特徵的非線性複雜交互任務。神經網絡通常用於分類和回歸,但在強化學習中(可以是無監督的)也很重要。下表顯示了多元回歸和神經網絡之間的聯繫。
  • 神經影像個體差異預測模型的十個簡單規則
    首先,將來自單個或多個數據集的神經影像數據和相關的表型數據(可能是二分類的,例如組成員身份,或者是連續的,例如IQ或症狀)分離為獨立的訓練數據和測試數據。接下來,將訓練數據提交給預測建模算法。選擇的算法僅使用訓練數據,從數據中選擇最相關的特徵,並對這些特徵進行匯總以產生數學函數或模型,從而將高維神經影像數據映射到低維表型數據。
  • 神經網絡模型預測值 論文_bp神經網絡預測模型建模步驟 - CSDN
    與只存儲兩個狀態的循環神經元相比,LSTM可以存儲四個狀態:輸出值的當前和先前值,記憶神經元狀態的當前值和先前值。它們都有三個門:輸入門,輸出門,遺忘門,同時,它們也還有常規的輸入。這些門它們都有各自的權重,也就是說,與這種類型的神經元細胞連接需要設置四個權重(而不是一個)。
  • 知識普及:卷積神經網絡模型是怎樣工作的?可以做些什麼?
    知識普及:卷積神經網絡模型是怎樣工作的?可以做些什麼?而這就要歸功於計算機視覺領域最新的技術革新。 眾所周知,在過去的幾年裡,卷積神經網絡(CNN或ConvNet)在深度學習領域取得了許多重大突破,但對於大多數人而言,這個描述是相當不直觀的。因此,要了解模型取得了怎樣大的突破,我們應該先了解卷積神經網絡是怎樣工作的。 卷積神經網絡可以做些什麼? 卷積神經網絡用於在圖像中尋找特徵。
  • 用飛槳做自然語言處理:神經網絡語言模型應用實例
    但這種方法會有一個很大的問題,那就是前面提到的維度災難,而這裡要實現的神經網絡語言模型(Neural Network Language Model),便是用神經網絡構建語言模型,通過學習分布式詞表示(即詞向量)的方式解決了這個問題。
  • CVPR 2018:新型語義分割模型:動態結構化語義傳播網絡DSSPN
    如果想通過充分利用具備不同標籤集的注釋來改進一項任務,那麼以前的模型必須移除分類層,並且僅共享中間表徵。學習通用分割模型的目標與最近將不同視覺任務 [18, 36] 或多模態任務 [17] 整合進一個模型的研究有一定關聯,這些研究通常使用幾個固定的、具備特定損失函數的網絡架構來整合所有的任務。
  • 基於深度神經網絡的脫硫系統預測模型及應用
    本文模型採用最小分析周期為 3min,且預測效果達到預期後選擇儘可能簡單的深度神經網絡結構加速運算過程。當前情況下,模型的訓練時長為 1 分17 秒,計算輸出結果僅需數秒,小於最小分析周期,可以滿足工業實際需求。為了體現輸入工況的時滯性並減少異常值輸入對模型影響,模型在處理輸入時還採用了加權周期處理,周期設置一般取 3~5 個最小分析單元。
  • 風力渦輪機的流體動力學模型表明,有四個轉子的渦輪有明顯優勢!
    科學家已經建立了多轉子風力渦輪機的流體動力學模型,以及它們在風力發電中如何相互作用,這項研究證明了具有四個轉子渦輪模型的明顯優勢。北海未來的Dogger Bank風力發電機風力渦輪機直徑為220米,是世界上最大的。但是對於風力渦輪機來說,大型的,更大的,最大的並不一定是最好的。
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    參與:李詩萌、路 本文介紹了用於文本分類任務的 7 個模型,包括傳統的詞袋模型、循環神經網絡,也有常用於計算機視覺任務的卷積神經網絡,以及 RNN + CNN那時我建立了一個簡單的模型:基於 keras 訓練的兩層前饋神經網絡。用組成推文的詞嵌入的加權平均值作為文檔向量來表示輸入推文。 我用的嵌入是用 gensim 基於語料庫從頭訓練出來的 word2vec 模型。該是一個二分類任務,準確率能達到 79%。
  • 深度| 清華大學自動化系張長水教授:神經網絡模型的結構優化
    清華大學自動化系張長水教授帶來了題為《神經網絡模型的結構優化》的報告。今天我和大家分享的主題是「神經網絡模型的結構優化」。像我們實驗室動不動訓練一個模型就要一兩天的時間。另外測試時間也很長,我給一個數據,跑神經網絡,最後從末端給出一個結果。這個過程看起來只有一遍過程,但是由於中間計算過於複雜,所以時間仍然很長。比如給一張圖像,通常來說如果代碼寫的不夠好,大概需要幾秒的時間,如果寫的特別糟也可能一分鐘的時間。可是我們知道有些應用問題不允許你這樣做,它需要你實時地識別圖像。還有就是對內存有要求。
  • 首個萬億級模型!Google重磅推出語言模型Switch Transformers,1.6...
    研究員介紹稱,Switch Transformer擁有1.6萬億參數,是迄今為止規模最大的NLP模型。論文中指出,Switch Transformer使用了稀疏激活(Sparsely Activated)技術,該技術只使用了神經網絡權重的子集,或者是轉換模型內輸入數據的參數。在相同計算資源下,其訓練速度上比Google之前研發的最大模型T5-XXL還要快4倍。