近年來,自然語言處理的研究方法取得了一些突破。這些突破來源于兩個新的建模框架以及在計算和詞匯資源的可用性的改進。在這個研討會小冊子中,我們將回顧這些框架,以一種可以被視為現代自然語言處理開端的方法論開始:詞嵌入。我們將進一步討論將嵌入式集成到端到端可訓練方法中,即卷積神經網絡和遞歸神經網絡。這本小冊子的第二章將討論基于注意力的模型的影響,因為它們是最近大多數最先進的架構的基礎。因此,我們也將在本章中花很大一部分時間討論遷移學習方法在現代自然語言處理中的應用。最后一章將會是一個關于自然語言生成的說明性用例,用于評估最先進的模型的訓練前資源和基準任務/數據集。
//compstat-lmu.github.io/seminar_nlp_ss20/
在過去的幾十年里,人工智能技術的重要性和應用不斷得到關注。在當今時代,它已經與構成人類塑造環境的大部分環境密不可分。因此,商業、研究和開發、信息服務、工程、社會服務和醫學等無數部門已經不可逆轉地受到人工智能能力的影響。人工智能有三個主要領域組成了這項技術:語音識別、計算機視覺和自然語言處理(見Yeung (2020))。在這本書中,我們將仔細研究自然語言處理(NLP)的現代方法。
這本小冊子詳細介紹了用于自然語言處理的現代方法,如深度學習和遷移學習。此外,本研究亦會研究可用于訓練自然語言處理任務的資源,并會展示一個將自然語言處理應用于自然語言生成的用例。
為了分析和理解人類語言,自然語言處理程序需要從單詞和句子中提取信息。由于神經網絡和其他機器學習算法需要數字輸入來進行訓練,因此應用了使用密集向量表示單詞的詞嵌入。這些通常是通過有多個隱藏層的神經網絡學習的,深度神經網絡。為了解決容易的任務,可以應用簡單的結構神經網絡。為了克服這些簡單結構的局限性,采用了遞歸和卷積神經網絡。因此,遞歸神經網絡用于學習不需要預先定義最佳固定維數的序列的模型,卷積神經網絡用于句子分類。第二章簡要介紹了NLP中的深度學習。第三章將介紹現代自然語言處理的基礎和應用。在第四章和第五章中,將解釋和討論遞歸神經網絡和卷積神經網絡及其在自然語言處理中的應用。
遷移學習是每個任務或領域的學習模型的替代選擇。在這里,可以使用相關任務或領域的現有標記數據來訓練模型,并將其應用到感興趣的任務或領域。這種方法的優點是不需要在目標域中進行長時間的訓練,并且可以節省訓練模型的時間,同時仍然可以(在很大程度上)獲得更好的性能。遷移學習中使用的一個概念是注意力,它使解碼器能夠注意到整個輸入序列,或自注意,它允許一個Transformer 模型處理所有輸入單詞,并建模一個句子中所有單詞之間的關系,這使得快速建模一個句子中的長期依賴性成為可能。遷移學習的概念將在小冊子的第6章簡要介紹。第七章將通過ELMo、ULMFiT和GPT模型來描述遷移學習和LSTMs。第八章將詳細闡述注意力和自注意力的概念。第九章將遷移學習與自注意力相結合,介紹了BERT模型、GTP2模型和XLNet模型。
為NLP建模,需要資源。為了找到任務的最佳模型,可以使用基準測試。為了在基準實驗中比較不同的模型,需要諸如精確匹配、Fscore、困惑度或雙語評估替補學習或準確性等指標。小冊子的第十章簡要介紹了自然語言處理的資源及其使用方法。第11章將解釋不同的指標,深入了解基準數據集SQuAD、CoQa、GLUE和SuperGLUE、AQuA-Rat、SNLI和LAMBADA,以及可以找到資源的預訓練模型和數據庫,如“帶代碼的論文”和“大壞的NLP數據庫”。
在小冊子的最后一章中,介紹了生成性NLP處理自然語言生成,從而在人類語言中生成可理解的文本。因此,不同的算法將被描述,聊天機器人和圖像字幕將被展示,以說明應用的可能性。
本文對自然語言處理中各種方法的介紹是接下來討論的基礎。小冊子的各個章節將介紹現代的NLP方法,并提供了一個更詳細的討論,以及各種示例的潛力和限制。
學習使用Python分析數據和預測結果的更簡單和更有效的方法
Python機器學習教程展示了通過關注兩個核心機器學習算法家族來成功分析數據,本書能夠提供工作機制的完整描述,以及使用特定的、可破解的代碼來說明機制的示例。算法用簡單的術語解釋,沒有復雜的數學,并使用Python應用,指導算法選擇,數據準備,并在實踐中使用訓練過的模型。您將學習一套核心的Python編程技術,各種構建預測模型的方法,以及如何測量每個模型的性能,以確保使用正確的模型。關于線性回歸和集成方法的章節深入研究了每種算法,你可以使用書中的示例代碼來開發你自己的數據分析解決方案。
機器學習算法是數據分析和可視化的核心。在過去,這些方法需要深厚的數學和統計學背景,通常需要結合專門的R編程語言。這本書演示了機器學習可以如何實現使用更廣泛的使用和可訪問的Python編程語言。
使用線性和集成算法族預測結果
建立可以解決一系列簡單和復雜問題的預測模型
使用Python應用核心機器學習算法
直接使用示例代碼構建自定義解決方案
機器學習不需要復雜和高度專業化。Python使用了更簡單、有效和經過良好測試的方法,使這項技術更容易為更廣泛的受眾所接受。Python中的機器學習將向您展示如何做到這一點,而不需要廣泛的數學或統計背景。
由沃德(Brian Ward)著,姜南、袁志鵬譯的《精通Linux(第2版)》講解了Linux操作系統的工作機制以及運行Linux系統所需的常用工具和命令。根據系統啟動的大體順序,本書更深入地介紹從設備管理到網絡配置的各個部分,最后演示了系統各部分的運行方式,并介紹了一些基本技巧和開發人員常用的工具。
Linux不像其他操作,會對用戶隱藏很多重要的東西。相反,Linux會讓用戶掌控一切。而要掌控一切,就必須理解這個操作系統的工作機制,包括如何啟動、如何連網,以及Linux內核如何工作。本書是暢銷書的新版本,作者擁有多年的實踐經驗,內容通俗易懂。通過這本書,讀者可以迅速從Linux新手變成老鳥,把作者豐富的經驗裝進自己的知識庫。
<章節目錄>
第1章概述 第2章基礎命令和目錄結構 第3章設備管理 第4章硬盤和文件系統 第5章Linux內核的啟動 第6章用戶空間的啟動 第7章系統配置:日志、系統時間、批處理任務和用戶 第8章進程與資源利用詳解 第9章網絡與配置 第10章網絡應用與服務 第11章shell腳本 第12章在網絡上傳輸文件 第13章用戶環境 第14章Linux桌面概覽 第15章開發工具 第16章從C代碼編譯出軟件 第17章在基礎上搭建
學習Ruby中面向對象編程背后的原理,并在幾章中創建一個功能完整的基于Ruby 3的應用程序。您將基本了解許多輔助技術,如數據庫、XML、web框架和網絡—其中一些技術將是您的第一個Ruby應用程序所需要的。基于暢銷的第一和第二版,開始Ruby 3,第四版是一個學習Ruby的引導指南。
這本書的新版本提供了與以前版本相同的對Ruby的精彩介紹,并對Ruby的最新版本進行了更新,包括通過改進分配器實現的性能,減少了堆碎片等。此外,還添加了:即時編譯器的詳細信息,GIL(全局解釋器鎖)限制的減少,以及靜態類型檢查器。
您將看到為什么輕量級和敏捷的Ruby編程語言仍然是構建當今web應用程序的開發人員的一個流行的開源腳本選擇。這本書也可以作為一本教科書或一本關于開始Ruby編程的教科書的伴侶使用。在閱讀和使用這本書之后,你將對用Ruby語言編程有一個堅實的掌握。
你會學到什么 了解Ruby的基本原理及其面向對象的構建塊 使用Ruby庫、gem和文檔 使用文件和數據庫 編寫和部署Ruby應用程序 利用各種Ruby web框架并有效地使用它們 用Ruby做網絡編程
這本書是給誰的 初學者、Ruby新程序員以及對學習Ruby編程語言基礎感興趣的web開發人員。
當看到這些材料時,一個明顯的問題可能會出現:“為什么還要寫一本深度學習和自然語言處理的書呢?”一些優秀的論文已經出版,涵蓋了深度學習的理論和實踐方面,以及它在語言處理中的應用。然而,從我教授自然語言處理課程的經驗來看,我認為,盡管這些書的質量非常好,但大多數都不是針對最有可能的讀者。本書的目標讀者是那些在機器學習和自然語言處理之外的領域有經驗的人,并且他們的工作至少部分地依賴于對大量數據,特別是文本數據的自動化分析。這些專家可能包括社會科學家、政治科學家、生物醫學科學家,甚至是對機器學習接觸有限的計算機科學家和計算語言學家。
現有的深度學習和自然語言處理書籍通常分為兩大陣營。第一個陣營專注于深度學習的理論基礎。這對前面提到的讀者肯定是有用的,因為在使用工具之前應該了解它的理論方面。然而,這些書傾向于假設一個典型的機器學習研究者的背景,因此,我經常看到沒有這種背景的學生很快就迷失在這樣的材料中。為了緩解這個問題,目前存在的第二種類型的書集中在機器學習從業者;也就是說,如何使用深度學習軟件,而很少關注理論方面。我認為,關注實際方面同樣是必要的,但還不夠。考慮到深度學習框架和庫已經變得相當復雜,由于理論上的誤解而濫用它們的可能性很高。這個問題在我的課程中也很常見。
因此,本書旨在為自然語言處理的深度學習搭建理論和實踐的橋梁。我涵蓋了必要的理論背景,并假設讀者有最少的機器學習背景。我的目標是讓任何上過線性代數和微積分課程的人都能跟上理論材料。為了解決實際問題,本書包含了用于討論的較簡單算法的偽代碼,以及用于較復雜體系結構的實際Python代碼。任何上過Python編程課程的人都應該能夠理解這些代碼。讀完這本書后,我希望讀者能有必要的基礎,立即開始構建真實世界的、實用的自然語言處理系統,并通過閱讀有關這些主題的研究出版物來擴展他們的知識。
//clulab.cs.arizona.edu/gentlenlp/gentlenlp-book-05172020.pdf
當前自然語言處理的發展為低資源語言和領域提供了挑戰和機遇。眾所周知,深度神經網絡需要大量的訓練數據,而這些數據在資源貧乏的情況下可能無法得到。然而,也有越來越多的工作來提高低資源環境下的性能。基于對神經模型的基本改變和目前流行的預訓練和微調范式,我們概述了低資源自然語言處理的有前途的方法。在討論了低資源場景的定義和數據可用性的不同維度之后,我們接著研究了在訓練數據稀少時支持學習的方法。這包括創建附加標簽數據的機制,如數據增強和遠程監督,以及轉移學習設置,以減少對目標監督的需要。調查結束時,簡要地看了一下在非NLP機器學習社區中建議的方法,這些方法在資源少的情況下可能對NLP有益。
The Elements of End-to-end Deep Face Recognition: A Survey of Recent Advances
人臉識別是計算機視覺領域中最基本、最長期存在的研究課題之一。隨著深度卷積神經網絡和大規模數據集的發展,深度人臉識別取得了顯著的進展,并在實際應用中得到了廣泛的應用。以自然圖像或視頻幀作為輸入,端到端深度人臉識別系統輸出人臉特征進行識別。為了實現這一目標,整個系統通常由三個關鍵要素構建:人臉檢測、人臉預處理和人臉表示。人臉檢測在圖像或幀中定位人臉。然后,對人臉進行預處理,將人臉標定為標準視圖,并將其裁剪為標準化像素大小。最后,在人臉表示階段,從預處理后的人臉中提取識別特征進行識別。深度卷積神經網絡滿足了這三個要素。摘要隨著深度學習技術的蓬勃發展,端到端深度人臉識別技術的能力得到了極大的提高,本文對端到端深度人臉識別技術中各個方面的最新進展進行了綜述。首先,我們介紹端到端深度人臉識別的概述,如前所述,它包括人臉檢測、人臉預處理和人臉表示。然后,我們分別回顧了基于深度學習的每個元素的進展,包括許多方面,如最新的算法設計、評估指標、數據集、性能比較、存在的挑戰和未來的研究方向。我們希望這一調查可以為我們更好地理解端到端人臉識別的大圖和更系統的探索帶來有益的想法。
當前的深度學習研究以基準評價為主。如果一種方法在專門的測試集上有良好的經驗表現,那么它就被認為是有利的。這種心態無縫地反映在連續學習的重現領域,在這里研究的是持續到達的基準數據集。核心挑戰是如何保護之前獲得的表示,以免由于迭代參數更新而出現災難性地遺忘的情況。然而,各個方法的比較是與現實應用程序隔離的,通常通過監視累積的測試集性能來判斷。封閉世界的假設仍然占主導地位。假設在部署過程中,一個模型保證會遇到來自與用于訓練的相同分布的數據。這帶來了一個巨大的挑戰,因為眾所周知,神經網絡會對未知的實例提供過于自信的錯誤預測,并在數據損壞的情況下崩潰。在這個工作我們認為值得注意的教訓來自開放數據集識別,識別的統計偏差以外的數據觀測數據集,和相鄰的主動學習領域,數據增量查詢等預期的性能收益最大化,這些常常在深度學習的時代被忽略。基于這些遺忘的教訓,我們提出了一個統一的觀點,以搭建持續學習,主動學習和開放集識別在深度神經網絡的橋梁。我們的結果表明,這不僅有利于每個個體范式,而且突出了在一個共同框架中的自然協同作用。我們從經驗上證明了在減輕災難性遺忘、主動學習中查詢數據、選擇任務順序等方面的改進,同時在以前提出的方法失敗的地方展示了強大的開放世界應用。****
題目 Algorithms in C:C語言算法實現
關鍵詞
算法設計,C語言,編程
簡介
本書的目的是研究各種重要且有用的算法:解決適合計算機實現的問題的方法。 我們將處理許多不同的應用領域,始終嘗試著重于重要的知識和學習有趣的“基本”算法。 由于涉及的領域和算法眾多,因此我們無法深入研究許多方法。 但是,我們將嘗試在每種算法上花費足夠的時間,以了解其基本特征并尊重其微妙之處。 簡而言之,我們的目標是學習當今計算機上使用的大量最重要的算法,并且足以使用和欣賞它們。
要很好地學習算法,必須實現并運行它。 因此,理解本書中介紹的程序的推薦策略是實施和測試它們,嘗試使用變體,然后對實際問題進行嘗試。 我們將使用C編程語言來討論和實現大多數算法。 但是,由于我們使用的是語言的較小子集,因此我們的程序可以輕松轉換為許多其他現代編程語言。
本書的讀者應該至少有一年的高級和低級語言編程經驗。 另外,雖然在第3章和第4章中對此材料進行了詳細的介紹,但對簡單數據結構(如數組,堆棧,隊列和T恤)上的基本算法進行一些接觸可能會有所幫助,盡管在第3章和第4章中對此材料進行了詳細介紹。 還假定了其他基本計算機科學概念。 (我們將在適當的時候簡要地回顧這些材料,但始終在解決特定問題的上下文中。)我們處理的一些應用領域需要基本演算的知識。 我們還將使用一些非常基本的材料,包括lin-ear代數,幾何和離散數學,但是這些主題的先前知識不是必需的。
目錄
當對大量的標記數據集合(如ImageNet)進行訓練時,深度神經網絡展示了它們在特殊監督學習任務(如圖像分類)上的卓越表現。然而,創建這樣的大型數據集需要大量的資源、時間和精力。這些資源在很多實際案例中可能無法獲得,限制了許多深度學習方法的采用和應用。為了尋找數據效率更高的深度學習方法,以克服對大型標注數據集的需求,近年來,我們對半監督學習應用于深度神經網絡的研究興趣日益濃厚,通過開發新的方法和采用現有的半監督學習框架進行深度學習設置。在本文中,我們從介紹半監督學習開始,對深度半監督學習進行了全面的概述。然后總結了在深度學習中占主導地位的半監督方法。
本備忘單是機器學習手冊的濃縮版,包含了許多關于機器學習的經典方程和圖表,旨在幫助您快速回憶起機器學習中的知識和思想。
這個備忘單有兩個顯著的優點:
清晰的符號。數學公式使用了許多令人困惑的符號。例如,X可以是一個集合,一個隨機變量,或者一個矩陣。這是非常混亂的,使讀者很難理解數學公式的意義。本備忘單試圖規范符號的使用,所有符號都有明確的預先定義,請參見小節。
更少的思維跳躍。在許多機器學習的書籍中,作者省略了數學證明過程中的一些中間步驟,這可能會節省一些空間,但是會給讀者理解這個公式帶來困難,讀者會在中間迷失。