ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf

介紹
ICLR是International Conference on Learning Representations的簡稱,是機器學習和深度學習研究界最著名的會議之一。
ICLR 2020最初計劃在埃塞俄比亞的亞的斯亞貝巴舉行,但由於最近COVID-19在全世界掀起,會議改成用完全虛擬的方式進行。
雖然活動改爲線上舉行,但完全在線的會議也讓初出茅廬的研究人員和機器學習愛好者能夠一起參與。
ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
在本文中,我將分享我在ICLR 2020獲得的主要收穫。我還將分享一個基於數據的調查(我個人承擔的),來發現研究社區中首選的工具,特別是用於尖端深度學習研究的工具,即PyTorch和TensorFlow。
ICLR 2020的主要內容
首先,這是ICLR 2020網站的鏈接,以及組織者共享的關鍵數字摘要:






  • https://iclr.cc/Conferences/2020
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    現在,讓我們來一起深入探討!
    1. 完全虛擬的會議結構
    ICLR2020於4月26日至5月1日舉行,是一次完全虛擬的會議。參與者、演示者和組織者的所有互動都是通過他們的網站在線進行的。
    第一天由非常有趣的研討會組成,接下來的每一天都有主題演講、書面報告/海報會議和交流/博覽會等等。每一天都充滿了活力!
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    會議總共接受了650多篇研究論文,每一篇論文都包括一個5分鐘的視頻演示和作者對論文本身的現場問答(在時間表中用綠色標記)。這段演示視頻可以說是論文的亮點,作者在其中介紹了他們的方法和主要發現。這些視頻大多是自定義進度的,而現場問答環節則是根據參會者的不同時區組織的,組織這個環節需要考慮得非常周到,這需要付出很多的努力。
    會議上也有主題演講(用藍色標記),有像Yoshua Bengio和Yann LeCun這樣有影響力的研究人員參加;還有來自行業巨頭甚至領先的人工智能初創公司的博覽會。請注意主題演講的具體時間安排,這些時間安排在特定的時間,以便儘可能多地容納來自不同時區的人。
    ICLR在會議上採取了一種非常吸引人的做法。組織了許多社交活動(又稱視頻會議),你可以參加與你感興趣的主題相關的社交活動。此外,根據需求,某些主題也可以進行多次課程。
    例如,強化學習有10個平行的課程在同時進行,因爲它是一個非常流行的領域。此外,對於初學者和導師也有不同的渠道可以進行學習交流。
    在這些會議中,無論是通過聊天還是視頻會議,你都可以在沒有任何特定預定議程的情況下進行互動和討論。例如,在指導會議上,你可以問一個有經驗的研究員在XYZ領域做研究是什麼感覺,他/她非常樂意回答!
    另一個令人印象深刻的、有趣的、新穎的部分是ICLR Town。你可以把它想象成一個虛擬現實的會議,在虛擬現實的背景下進行討論——比如海灘,戶外等等。
    最棒的部分是什麼?馬里奧竟然化身爲用戶在一個會議上!
    現在我們在一個海灘派對上! pic.twitter.com/ODeXLYRsr8 — Shagun Sodhani (@shagunsodhani) April 28, 2020













ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf

https://twitter.com/shagunsodhani/status/1255272003982016512?ref_src=twsrc%5Etfw
ICLR Town席捲了Twitter,因此在與會者中非常受歡迎。毋庸置疑,即將到來的會議組織者將充分利用這次全虛擬會議的大部分關鍵學習成果。
2. 來自研究界的知名人士和業內知名贊助商
作爲人工智能和深度學習領域中首屈一指的研究會議,ICLR一直吸引着這一領域的領軍人物和思想領袖,今年也不例外。儘管受到新冠病毒的封鎖限制,整個會議都在網上進行,但還是有非常著名的發言者出席會議:


  • Andrew Ng
  • Yann LeCun
  • Yoshua Bengio
  • Richard Sutton
  • Shakir Mohamed
  • and many more influencers
    還有更多的影響者。
    許多贊助者對ICLR在線會議同樣充滿熱情:
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    這張令人印象深刻的榜單突出了每年ICLR的標準設置以及贊助商展位上展示的研究水平。
    3. 開放評審——一個開放的同行評審過程,以促進科學交流的開放性
    現在想請大家注意ICLR2020的一個關鍵方面是公開審查。我們非常熟悉研究會議在通常情況下的審查過程,這些評審是封閉式的,因此,評審缺乏透明度一直是研究者爭論的焦點。
    ICLR遵循開放式審查流程,在該流程中,可以公開在線閱讀論文,你可以對此發表評論並查看其他研究人員的評論。這一同行評審過程受到好評,我希望這爲今後的其他會議以及在研究界引入透明度創造了一個風向標。
    4. 研究人員探索最多的話題——深度學習
    深度學習現在是一個熱門話題,而ICLR2020正好鞏固了這一概念。有一項非官方的調查發現了研究人員探索最多的話題,以下是他們的結論:
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    可以看出,涵蓋最多的主題包括以監督和非監督方式應用的深度學習、強化學習和表徵學習。其他重要議題包括監督注意機制和生成性對抗網絡。
    就領域而言,儘管遊戲和數值優化等話題也有許多人討論,計算機視覺和自然語言處理(NLP)仍然是最流行的話題
    從這次會議中學到的東西太多了。這條推特完美地概括了這一思想:
    累!真不敢相信我一天學了這麼多!感謝主辦方和這一令人振奮的虛擬形式(https://twitter.com/hashtag/ICLR2020?src=hash&ref_src=twsrc%5Etfw) -Servando(@vandotorres)2020年4月26日
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf














5. 簡單易用的網站界面
作爲一個完全虛擬和在線的會議,我特別想爲與會者和志願者強調會議的網站界面。
會議很容易訪問,網站也很容易使用,我們可以不費吹灰之力地搜索和研究這些論文,而且還有許多其他的特性可以充分利用本文的研究成果。
我特別喜歡會議網頁上所有論文/海報的單一可視化功能——基於主題相似性的散點圖易於理解,並使搜索研究論文更加容易:
ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf



連Andrew Ng也說這個網站非常棒:
我真的很喜歡新的ICLR2020網站,也很喜歡瀏覽研討會和海報講座。恭喜組織者和演講者在這個全虛擬的會議上所付出的一切!幹得好!@srush_nlp @shakir_za @kchonyc @dawnsongtweets @syhw et al. pic.twitter.com/e4e5MfYh6W ——Andrew Ng(@Andrew Ng)2020年4月27日
ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
除了網站之外,使用的直播視頻和幻燈片都是通過SlidesLive託管的,而Zoom則用於問答環節。聊天界面爲RocketChat,贊助商展位由6Connex主辦。
最後,想與大家分享一些有趣的資源,讓大家瞭解到2020年的ICLR是如何組織有序和全面的:



  • 大多數研究論文的視頻和幻燈片都是幻燈片直播,公衆可以觀看
    https://slideslive.com/iclr-2020
  • 輔導渠道對研究生特別有用,經驗豐富的研究人員對其問題的回答彙編在一份文件中:
    https://docs.google.com/document/d/1ETt6hqZAL90Cl45Hgv4S7mEJv95odG424oaDm42OH2Q/edit
  • 跨研究領域使用的流行開源工具的非全面列表:10分鐘內使用10個開源工具
    https://docs.google.com/presentation/d/1qxNqPAHmoUvQNOghabTOz7Un6JkVveZEl-l_vhR5KXI/edit
  • 虛擬的ICLR會議在推特上引起了不小的轟動。
    瀏覽推文的方法:https://twitter.com/search?q=%23ICLR2020
    ICLR 2020首選工具的案例研究——Pytorch還是TensorFlow?
    現在我們來看看我最喜歡的部分!
    現在給你簡要介紹一下背景,這個想法是在一個關於“開放源碼工具和實踐在最先進的深度學習研究中”的非正式會議的討論中提出的。最初的問題是:
    “ICLR的研究人員更喜歡哪種工具——Pythorch還是TensorFlow?”
    這個問題可以重新定義爲:
    “研究人員在ICLR2020上共享了與深度學習研究相關的代碼,他們使用了哪些開源工具?
    從這一點出發,我們能否對哪些工具在將來是否能成爲主流,並且可能會在某種程度上被業界採用做出合理的猜測?”
    但做這個案例研究的目的是什麼?








  • 一個典型的問題是,那些開始學習深度學習的人,不管是有經驗的行業專家還是剛剛入門的學生問我,我應該從哪個深度學習庫開始學習?即使現在,我的建議還是從簡單易用的高級庫(如Keras或Fastai)開始,而瞭解研究社區使用工具的趨勢是更有助於學習的
  • 一般來說,該行業正在追趕領先研究實驗室的前沿研究,從跟蹤研究論文中發表的想法到使這些想法的實施變得更加友好,瞭解哪些工具可以真正幫助創建這些實現是很重要的
  • 此外,ICLR是瞭解前沿研究的最佳場所。它擁有一個成熟的研究社區,是機器學習和深度學習領域最著名的頂級會議之一
    主要調查結果摘要
    我將在這裏快速總結我的發現,然後我將帶你瀏覽我用來獲得這些發現的代碼。對於那些不耐煩的人來說,這裏有到代碼和數據的鏈接,你可以使用這些鏈接自己探索。

  • https://github.com/faizankshaikh/AV_Article_Codes/blob/master/Case_study_preferred_tools_ICLR2020/original_code/Case_study_preferred_tools_ICLR2020.ipynb
  • https://cdn.analyticsvidhya.com/wp-content/uploads/2020/05/all_tools.csv
    1. 深度學習的主要工具
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    在我能成功解析的237個研究人員共享的代碼中,154個使用PyTorch實現,而TensorFlow爲95個,Keras爲23個。
    這清楚地說明,儘管TensorFlow並不落後,但Pythorch正越來越被研究界所接受。部分研究人員仍然在他們的代碼中使用Keras,但這個數字相當少,這可能是因爲就靈活性而言,PyTorch和TensorFlow相對來說具有更大的靈活性。
    注意:你可以在這裏開始學習PyTorch的所有知識。




  • https://www.analyticsvidhya.com/blog/2019/09/introduction-to-pytorch-from-scratch
    此外,值得一提的是,HuggingFace的Transformers、OpenAI的Gym framework或networkX等工具已經被證明在各自的領域(如NLP、強化學習和圖形網絡)非常有用,正被社區所接受。
    除此之外,TensorBoard也被認爲是一種可視化深層神經網絡訓練的標準:
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    2. 整體首選工具
    2.1 前十大工具/包的使用
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    在這裏,我們可以看到通常的數據科學/機器學習工具,如NumPy、SciPy、matplotlib、Pandas和scikit_learn,研究人員越來越多地使用tqdm和torchvision等新興工具。
    2.2百強工具詞雲
    ICLR 2020關鍵亮點與發展趨勢總結(附python實戰分析PyTorch vs Tensorf
    在這裏,我們可以將研究人員使用的相關工具或軟件包可視化爲詞雲。看起來很酷!
    案例研究背後的方法
    對於那些有興趣知道我是如何得出這些發現的人,我現在將描述我遵循的步驟,並詳細解釋可以用來重現這些步驟的代碼。
    注意,我使用Google Colab來實現,因爲它預裝了大多數數據科學庫。如果你不知道如何使用Colab,可以參考本指南。












  • https://www.analyticsvidhya.com/blog/2020/03/google-colab-machine-learning-deep-learning
    如果希望使用自己的計算機,則必須使用以下庫設置系統:
  • 通常在Anaconda發行版中找到的數據科學工具/軟件包,例如NumPy,Pandas,matplotlib
  • https://www.analyticsvidhya.com/blog/2019/08/everything-know-about-setting-up-python-windows-linux-and-mac/
  • OpenReview API
  • https://openreview-py.readthedocs.io/en/latest/how_to_setup.html
  • pipreqs
  • https://github.com/bndr/pipreqs
  • word_cloud
  • https://www.analyticsvidhya.com/blog/2020/05/key-takeaways-iclr-2020/
    代碼演練
    以下是我在案例研究中遵循的步驟:
    1. 設置系統
    2. 從適用於ICLR 2020的OpenReview API獲取代碼鏈接
    3. 從GitHub下載代碼
    4. 根據requirements.txt,找到所有使用的工具並創建一個數據文件
      使用數據分析以查找工具使用情況
      步驟1 設置系統
      我們要做的第一件事是在Colab中安裝庫,即OpenReview API和
      pipreqs:






!pip install openreview-py
!pip install pipreqs


之後,我們將導入將在notebook中使用的所有必需的庫/包:

%matplotlib inline

import os
import re
import sys
import requests
import openreview
import pandas as pd
import matplotlib.pyplot as plt





from random import choice
from wordcloud import WordCloud
from urllib.parse import urlparse


**步驟2到4 數據創建**
正如我提到的,在這裏我們遵循以下步驟:
* 從適用於ICLR 2020的OpenReview API獲取代碼鏈接
* 從GitHub下載代碼
* 根據requirements.txt,找到所有使用的工具並創建一個數據文件
總而言之,就數量而言,會議共接受了687篇論文,其中344位研究人員分享了他們對相應論文的實現。其中有268個是我主要關注的GitHub存儲庫。在這268個存儲庫中,我可以根據它們的requirements.txt文件成功地解析237個GitHub存儲庫,並基於requirements.txt總結了所使用的工具。
運行代碼後,我們得到一個名爲“all_tools.csv”的文件。如果你想跟着我做此分析,可以從此鏈接下載數據文件。
* https://cdn.analyticsvidhya.com/wp-content/uploads/2020/05/all_tools.csv
**步驟5 使用數據分析以查找工具使用情況**
在本節中,我們將對數據提出兩個主要問題:
1. 多少研究論文使用了特定工具,例如PyTorch或TensorFlow?
1. 研究人員最喜歡使用哪種工具/軟件包?
讓我們一起讀取數據文件:

all_tools = pd.read_csv("all_tools.csv")


讓我們看一下all_tools數據框的前五行:

all_tools.head()


我們可以看到它非常不明確:
![](https://s4.51cto.com/images/blog/202101/05/514d958f6388b7a0bc280e7e5612283b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
讓我們打印這個數據幀的形狀:

all_tools.shape


運行此命令,輸出結果將爲(237,2),指定我們有237行,即我們正在分析237個GitHub存儲庫。
現在,讓我們清理數據。下面是這個代碼塊的大致僞代碼:
* 對於“all_tool_names”列中的每一行:
* 我們在正則表達式“^\w+”的基礎上執行clean,該表達式將工具的名稱與字符串的其餘部分分開
* 我們用逗號分隔字符串以得到工具列表
* 然後,對於這個工具列表中的每個工具,
* 在此之後,我們再次從這些工具名稱列表中創建一個字符串,並且,
返回該字符串

def cleaner(tool_list):
cleaned_list = ""
try:
cleaned_list = []
for tool in tool_list:
cleaned_tool = re.findall("^\w+", tool)
if not cleaned_tool:
pass
else:
cleaned_list.append(cleaned_tool[0])
cleaned_list = ",".join(cleaned_list)
return cleaned_list
except:
tool_list = ",".join(tool_list)
"unclean_list".join(tool_list)
return tool_list














all_tools["all_tool_names_cleaned"] = all_tools.all_tool_names.str.split(",").apply(
cleaner
)


clean後,如果再次打印所有工具數據幀的頭部,將得到如下輸出:
![](https://s4.51cto.com/images/blog/202101/05/6dbf08ccf549ed686181e999214dedc0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
現在,讓我們看看有多少存儲庫包含PyTorch。我們可以使用Pandas的str.contains函數來查找:

all_tools.all_tool_names_cleaned.str.contains("torch").sum()


這給了我們一個數154,它告訴我們總共有154個存儲庫以某種方式使用PyTorch。
讓我們編寫一個形式化的函數,我們可以使用它爲其他工具複製:

def give_score(tool_name, offset=0):
num = all_tools.all_tool_names_cleaned.str.contains(tool_name).sum()
num += offset
print(
"Count of {} is {} and total usage is {}%".format(
tool_name, num, round((num / (all_tools.shape[0]+offset)) * 100, 4)
)
)







注意,我們使用了一個offset變量來添加計數。我們這樣做是爲了使函數足夠靈活,可以添加尚未解析的存儲庫,但我們可以假設該存儲庫中存在特定工具的可能性很高。
讓我們爲三個特定的深度學習工具運行此函數,即PyTorch、TensorFlow和Keras:

give_score("torch")
print()
give_score("tensorflow", offset=12)
print()
give_score("keras")




我們得到這樣的輸出:
![](https://s4.51cto.com/images/blog/202101/05/241edb072587a2eeab8140f196e36f4b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這清楚地表明,與TensorFlow或Keras相比,PyTorch在研究界相當受歡迎。
在這裏,你可以看到我對TensorFlow使用了12的偏移量,這是因爲有一些實例GitHub存儲庫沒有被解析,但是它們來自Google research GitHub用戶名或TensorFlow的原始存儲庫,這清楚地表明它們可能是基於TensorFlow構建的。
對於不同的工具/包/框架,你可以遵循類似的步驟。在這裏,我爲 HuggingFace的Transformers, TensorBoard, OpenAI’s Gym和networkX做了這些:
![](https://s4.51cto.com/images/blog/202101/05/15978dc32a7f1a807fa665a95a90e13d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
接下來,讓我們看看數據中有多少獨特的工具:

all_tools.all_tool_names_cleaned.str.split(",", expand=True).stack().value_counts()[:50]


這段代碼的輸出爲(687,)表示總共使用了687個工具。
讓我們打印數據中出現頻率最高的前50個工具:
我們得到這樣的輸出:
![](https://s4.51cto.com/images/blog/202101/05/ae78583abd9ca5e413a0cbdbb0c17785.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
不出所料,大多數存儲庫使用通用的數據科學工具/庫,如NumPy、SciPy、matplotlib和Pandas。
讓我們用一種更直觀的方式來描繪。
爲此,我們可以使用條形圖或詞雲。下面的代碼用於創建條形圖:

all_tools.all_tool_names_cleaned.str.split(",", expand=True).stack().value_counts()[
:10
].plot(kind="bar")


我們得到這樣一個圖:
![](https://s4.51cto.com/images/blog/202101/05/c9e596c80c38d1dc003aefadc90fab15.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
我們可以將其視爲一個詞雲:

all_tool_string = ",".join(all_tools.all_tool_names_cleaned)

wordcloud = WordCloud(background_color="white", max_words=100)
wordcloud.generate(all_tool_string)

plt.figure(figsize=(10, 20))
plt.imshow(wordcloud)
plt.axis("off")
plt.show()




這給了我們這樣一個輸出:
![](https://s4.51cto.com/images/blog/202101/05/a9718d3fc2c7219d57369154755a1407.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
爲了節省時間,這是我所做的數據探索的範圍。我們也許可以做的不止這些,我在下一節中提到了一些可以探索的想法。
**關於ICLR2020的最後思考**
在這篇文章中,我總結了我從ICLR2020中得到的主要收穫。我還解釋了一個案例研究,以瞭解研究社區中工具的使用情況。
我要感謝ICLR2020的組織者主辦了這次精彩的會議,也感謝他們給了我作爲志願者參加這次活動的機會。
此外,我想特別提到 Sasha Rush, Patryk Mizuila 和幫助我完成案例研究分析的Vidhya團隊。
我在本文中所做的是對數據的簡單探索。還有一些想法可以探討,例如:
我們可以找到代碼屬於哪個領域,也就是說,它更多的是與自然語言處理相關的研究,還是與計算機視覺或強化學習相關?因此,我們可以找到相應的工具,並基於領域對工具進行比較研究。
我們可以找到研究人員的隸屬關係和他們各自的工作領域,然後在此基礎上,我們可以總結出一個具體的公司或大學所做的工作,甚至是總結出人口統計數據。
基於ICLR的前幾次迭代,我們可以發現研究社區中工具使用的趨勢。
我們可以使我編寫的代碼更加高效,無論是運行代碼所需的時間,還是成功完成代碼所需的資源(網絡速度或計算能力)。
哎!我們還能做很多事情,對嗎?
![](https://s4.51cto.com/images/blog/202101/05/afeb7aeec0326b9327e40330eaceb7a7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
原文鏈接:https://www.analyticsvidhya.com/blog/2020/05/key-takeaways-iclr-2020/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章