星期五。見面

程式 | 學習 | 日記 | 玩樂

    [論文速速讀]系列文章介紹

前言

論文速速讀系列是從今年四月開始,我開始寫一些論文的中文讀書筆記,還記得第一篇是[論文速速讀]ReZero is All You Need: Fast Convergence at Large Depth,之後發現儘管自己已經陸續產出了幾篇文章,可是好像都沒正式的跟大家介紹這系列文章的由來xD

所以這篇文章就是來講講這系列文章到底是什麼,以及我會和會想寫這些文章。

論文速速讀系列是什麼?

由於在AI領域每年總是有一些非常重大的突破和應用,如果跟不上潮流很有可能就會錯失許多機會。例如,對NLP領域熟悉的話你一定聽過2013年的word2vec、2014年開始流行的attention、2018年的Bert…這些很有名的技術。

還記得Bert剛出的時候我好像剛進碩士實驗室,當時只知道這個技術屌打了當時一堆NLP的研究,但我想也想不到兩年後Bert已經造成如此大的影響力,一堆基於Bert的變形應用在各大領域上都取得了非常優異的結果。

因此,我想要藉由這系列的文章讓自己能夠更加快速的了解AI的新技術和研究,同時逼迫自己看論文xD

繼續閱讀

    [課程筆記]課程筆記系列總覽

本文記錄了自己在上課時所記錄的一些課程筆記,可以透過這邊文章連結到所有以往發過的課程筆記文章。

繼續閱讀

[論文速速讀]Gradient Based Learning Applied to Document Recognition

〖想觀看更多中文論文導讀,至[論文速速讀]系列文章介紹可以看到目前已發布的所有文章!〗

paper: http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf

CNN系列的開山始祖,LeNet(因為作者是Yann LeCun),被應用在手寫辨識上,簡單的幾層Conv就可以在MNIST dataset上達到90%以上的Acc.。至今已經有兩萬以上的cite數量。

Abstract

Multilayer neural networks trained with the back-propagation algorithm constitute the best example of a successful gradient-based learning technique. Given an appropriate network architecture, gradient-based learning algorithms can be used to synthesize a complex decision surface that can classify high-dimensional patterns, such as handwritten characters, with minimal preprocessing.

基於gradient based learning的多層神經網路可以合成一個複雜的decision surface,使得在高維下也能夠很好地區分不同的pattern,例如手寫辨識,並且相較於傳統的技術,不需要太多的前處理就可以做得很好。

這篇paper的貢獻可以簡述成下列幾項:

  • 傳統的手寫辨識技術需要較多的前處理來提取特徵,透過自動學習來建立一個pattern recognition systems,降低前處理的步驟
  • 提出了基於梯度學習的神經網路,並和當前手寫辨識的各類方法進行了比較
  • 手寫辨識系統不只有辨識的部分,還包含了句子的分段,paper中也提出設計了一個通用化的架構: graph transformer networks (GTN’s)來做這件事。

這篇文章中會聚焦在Deep learning的部分,關於後面的系統架構不會做太多的介紹,畢竟長達46頁看得頭很痛QQ

繼續閱讀

[論文速速讀]Efficient Estimation of Word Representation in Vector Space

〖想觀看更多中文論文導讀,至[論文速速讀]系列文章介紹可以看到目前已發布的所有文章!〗

這篇就是鼎鼎大名的word2vec,在2013年由google提出

Word2vec是一種word embedding技術,為什麼需要word embedding? 因為這樣可以將NLP task的word轉成一個numeric vector,然後加以進行分析和運算

paper: Efficient Estimation of Word Representation in Vector Space

Abstract

We propose two novel model architectures for computing continuous vector representations of words from very large data sets. The quality of these representations is measured in a word similarity task, and the results are compared to the previously best performing techniques based on different types of neural networks. We observe large improvements in accuracy at much lower computational cost, i.e. it takes less than a day to learn high quality word vectors from a 1.6 billion words data set. Furthermore, we show that these vectors provide state-of-the-art performance on our test set for measuring syntactic and semantic word similarities.

word2vec的paper,提出了Skip-gram跟CBOW,相較於傳統的方法,能夠大幅提高訓練速度。

繼續閱讀

[論文速速讀]PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization

〖想觀看更多中文論文導讀,至[論文速速讀]系列文章介紹可以看到目前已發布的所有文章!〗

paper: https://arxiv.org/pdf/1912.08777.pdf

Google ICML 2020的paper,一打開發現有54頁…哎呀我的媽

好險後面都是附錄,實際上只有8頁而已。

Abstract

 Recent work pre-training Transformers with self-supervised objectives on large text corpora has shown great success when fine-tuned on downstream NLP tasks including text summarization. However, pre-training objectives tailored for abstractive text summarization have not been explored. Furthermore there is a lack of systematic evaluation across diverse domains.

基於transformers的self-supervised模型(bert以及相關變形)已經橫掃一遍了NLP的應用,透過bert的pretrained model來fine tune後續的task已經被證實可以達到很好的結果,包含文本摘要。不過在抽象式文本摘要(abstractive text summarization)的部分還做得不夠好。所以這篇就是提出一個NLP的pre-trained model來做這件事。

抽象式文本摘要是啥,跟一般文本摘要又差在哪裡? 可以看下面Introduction一開始的介紹。

繼續閱讀

[DL]深入了解gradient descent

前言

“在深度學習中,你(設計)的(損失)函數是怎麼更新的,他可微嗎?”

最近有聽到有人提了這個問題,一開始聽到這個問題也沒太放在心上,由於deep learning framework(Tensorflow, Pytorch)的便利性,大家可以不用管求導這件事,開開心心寫code。

不過後來想了想這的確是個可以來認真思考的事情,畢竟是走這行的,總不能一直都只依靠工具而不去了解背後的原理。於是努力上網東找西找拼湊了一套我覺得還算合理的說法,不過畢竟我不是數學系背景出生,如果有講錯的地方歡迎提出指教~

How Deep Learning Update?

我們知道,一個Deep learning model的參數量往往很大,在更新過程中是透過我們定義好的loss function(可能是cross-entropy或mse)來做gradient descent,gradient descent會去算每個參數的gradient,搭配learning rate來更新這些參數,使得讓模型越來越好。

不過算gradient這個動作在tensorflow/pytorch都自動幫我們算好了,以pytorch為例,我們可以從他的code來看到他更新的步驟(可以參考我寫的另一篇:Pytorch的zero_grad()和backward()使用技巧)

Why Gradient Descent?

我們知道沿著gradient的方向走可以讓模型越來越好,但為什麼?

首先先來快速了解gradient是什麼,以下介紹引用自wiki:

繼續閱讀

[論文速速讀]Attention is not Explanation

〖想觀看更多中文論文導讀,至[論文速速讀]系列文章介紹可以看到目前已發布的所有文章!〗

NAACL2019 2019的一篇文章,旨在透過一系列的實驗提出一種新的看法:attention機制並不是解釋性,我們不能用attention來說作為XAI的技術。這其實是個蠻特別的觀點,Attention自從2016年崛起後,一堆研究都是基於他而擴展的,現在這篇論文出來卻是打臉了attention的可解釋性。

…所以以後不能再用attention來做XAI(Explainable AI)了嗎? QQ饅頭喔

也別難過得太早,同一年又有另一篇論文跳出來了,EMNLP 2019的”Attention is not not Explanation”,看這個標題就知道擺明就是要跟這篇對著幹,所以先看完這篇再去看如何被反駁好像也是蠻有趣的?

題外話,我是站Attention is not not Explanation這邊,希望那篇可以狠狠打臉這篇xD

繼續閱讀

>