介绍
ICLR是International Conference on Learning Representations的简称,是机器学习和深度学习研究界最著名的会议之一。
ICLR 最初计划在埃塞俄比亚的亚的斯亚贝巴举行,但由于最近COVID-19在全世界掀起,会议改成用完全虚拟的方式进行。
虽然活动改为线上举行,但完全在线的会议也让初出茅庐的研究人员和机器学习爱好者能够一起参与。
在本文中,我将分享我在ICLR 获得的主要收获。我还将分享一个基于数据的调查(我个人承担的),来发现研究社区中首选的工具,特别是用于尖端深度学习研究的工具,即PyTorch和TensorFlow。
ICLR 的主要内容
首先,这是ICLR 网站的链接,以及组织者共享的关键数字摘要:
/Conferences/
现在,让我们来一起深入探讨!
1. 完全虚拟的会议结构
ICLR于4月26日至5月1日举行,是一次完全虚拟的会议。参与者、演示者和组织者的所有互动都是通过他们的网站在线进行的。
第一天由非常有趣的研讨会组成,接下来的每一天都有主题演讲、书面报告/海报会议和交流/博览会等等。每一天都充满了活力!
会议总共接受了650多篇研究论文,每一篇论文都包括一个5分钟的视频演示和作者对论文本身的现场问答(在时间表中用绿色标记)。这段演示视频可以说是论文的亮点,作者在其中介绍了他们的方法和主要发现。这些视频大多是自定义进度的,而现场问答环节则是根据参会者的不同时区组织的,组织这个环节需要考虑得非常周到,这需要付出很多的努力。
会议上也有主题演讲(用蓝色标记),有像Yoshua Bengio和Yann LeCun这样有影响力的研究人员参加;还有来自行业巨头甚至领先的人工智能初创公司的博览会。请注意主题演讲的具体时间安排,这些时间安排在特定的时间,以便尽可能多地容纳来自不同时区的人。
ICLR在会议上采取了一种非常吸引人的做法。组织了许多社交活动(又称视频会议),你可以参加与你感兴趣的主题相关的社交活动。此外,根据需求,某些主题也可以进行多次课程。
例如,强化学习有10个平行的课程在同时进行,因为它是一个非常流行的领域。此外,对于初学者和导师也有不同的渠道可以进行学习交流。
在这些会议中,无论是通过聊天还是视频会议,你都可以在没有任何特定预定议程的情况下进行互动和讨论。例如,在指导会议上,你可以问一个有经验的研究员在XYZ领域做研究是什么感觉,他/她非常乐意回答!
另一个令人印象深刻的、有趣的、新颖的部分是ICLR Town。你可以把它想象成一个虚拟现实的会议,在虚拟现实的背景下进行讨论——比如海滩,户外等等。
最棒的部分是什么?马里奥竟然化身为用户在一个会议上!
现在我们在一个海滩派对上! /ODeXLYRsr8 — Shagun Sodhani (@shagunsodhani) April 28,
/shagunsodhani/status/12552798512?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的标准设置以及赞助商展位上展示的研究水平。
3. 开放评审——一个开放的同行评审过程,以促进科学交流的开放性
现在想请大家注意ICLR的一个关键方面是公开审查。我们非常熟悉研究会议在通常情况下的审查过程,这些评审是封闭式的,因此,评审缺乏透明度一直是研究者争论的焦点。
ICLR遵循开放式审查流程,在该流程中,可以公开在线阅读论文,你可以对此发表评论并查看其他研究人员的评论。这一同行评审过程受到好评,我希望这为今后的其他会议以及在研究界引入透明度创造了一个风向标。
4. 研究人员探索最多的话题——深度学习
深度学习现在是一个热门话题,而ICLR正好巩固了这一概念。有一项非官方的调查发现了研究人员探索最多的话题,以下是他们的结论:
可以看出,涵盖最多的主题包括以监督和非监督方式应用的深度学习、强化学习和表征学习。其他重要议题包括监督注意机制和生成性对抗网络。
就领域而言,尽管游戏和数值优化等话题也有许多人讨论,计算机视觉和自然语言处理(NLP)仍然是最流行的话题。
从这次会议中学到的东西太多了。这条推特完美地概括了这一思想:
累!真不敢相信我一天学了这么多!感谢主办方和这一令人振奋的虚拟形式(/hashtag/ICLR?src=hash&ref_src=twsrc%5Etfw) -Servando(@vandotorres)4月26日
5. 简单易用的网站界面
作为一个完全虚拟和在线的会议,我特别想为与会者和志愿者强调会议的网站界面。
会议很容易访问,网站也很容易使用,我们可以不费吹灰之力地搜索和研究这些论文,而且还有许多其他的特性可以充分利用本文的研究成果。
我特别喜欢会议网页上所有论文/海报的单一可视化功能——基于主题相似性的散点图易于理解,并使搜索研究论文更加容易:
连Andrew Ng也说这个网站非常棒:
我真的很喜欢新的ICLR网站,也很喜欢浏览研讨会和海报讲座。恭喜组织者和演讲者在这个全虚拟的会议上所付出的一切!干得好!@srush_nlp @shakir_za @kchonyc @dawnsongtweets @syhw et al. /e4e5MfYh6W ——Andrew Ng(@Andrew Ng)4月27日
除了网站之外,使用的直播视频和幻灯片都是通过SlidesLive托管的,而Zoom则用于问答环节。聊天界面为RocketChat,赞助商展位由6Connex主办。
最后,想与大家分享一些有趣的资源,让大家了解到的ICLR是如何组织有序和全面的:
大多数研究论文的视频和幻灯片都是幻灯片直播,公众可以观看
/iclr-
辅导渠道对研究生特别有用,经验丰富的研究人员对其问题的回答汇编在一份文件中:
/document/d/1ETt6hqZAL90Cl45Hgv4S7mEJv95odG424oaDm42OH2Q/edit
跨研究领域使用的流行开源工具的非全面列表:10分钟内使用10个开源工具
/presentation/d/1qxNqPAHmoUvQNOghabTOz7Un6JkVveZEl-l_vhR5KXI/edit
虚拟的ICLR会议在推特上引起了不小的轰动。
浏览推文的方法:/search?q=%23ICLR
ICLR 首选工具的案例研究——Pytorch还是TensorFlow?
现在我们来看看我最喜欢的部分!
现在给你简要介绍一下背景,这个想法是在一个关于“开放源码工具和实践在最先进的深度学习研究中”的非正式会议的讨论中提出的。最初的问题是:
“ICLR的研究人员更喜欢哪种工具——Pythorch还是TensorFlow?”
这个问题可以重新定义为:
“研究人员在ICLR上共享了与深度学习研究相关的代码,他们使用了哪些开源工具?
从这一点出发,我们能否对哪些工具在将来是否能成为主流,并且可能会在某种程度上被业界采用做出合理的猜测?”
但做这个案例研究的目的是什么?
一个典型的问题是,那些开始学习深度学习的人,不管是有经验的行业专家还是刚刚入门的学生问我,我应该从哪个深度学习库开始学习?即使现在,我的建议还是从简单易用的高级库(如Keras或Fastai)开始,而了解研究社区使用工具的趋势是更有助于学习的
一般来说,该行业正在追赶领先研究实验室的前沿研究,从跟踪研究论文中发表的想法到使这些想法的实施变得更加友好,了解哪些工具可以真正帮助创建这些实现是很重要的
此外,ICLR是了解前沿研究的最佳场所。它拥有一个成熟的研究社区,是机器学习和深度学习领域最著名的顶级会议之一
主要调查结果摘要
我将在这里快速总结我的发现,然后我将带你浏览我用来获得这些发现的代码。对于那些不耐烦的人来说,这里有到代码和数据的链接,你可以使用这些链接自己探索。
/faizankshaikh/AV_Article_Codes/blob/master/Case_study_preferred_tools_ICLR/original_code/Case_study_preferred_tools_ICLR.ipynb
/wp-content/uploads//05/all_tools.csv
1. 深度学习的主要工具
在我能成功解析的237个研究人员共享的代码中,154个使用PyTorch实现,而TensorFlow为95个,Keras为23个。
这清楚地说明,尽管TensorFlow并不落后,但Pythorch正越来越被研究界所接受。部分研究人员仍然在他们的代码中使用Keras,但这个数字相当少,这可能是因为就灵活性而言,PyTorch和TensorFlow相对来说具有更大的灵活性。
注意:你可以在这里开始学习PyTorch的所有知识。
/blog//09/introduction-to-pytorch-from-scratch
此外,值得一提的是,HuggingFace的Transformers、OpenAI的Gym framework或networkX等工具已经被证明在各自的领域(如NLP、强化学习和图形网络)非常有用,正被社区所接受。
除此之外,TensorBoard也被认为是一种可视化深层神经网络训练的标准:
2. 整体首选工具
2.1 前十大工具/包的使用
在这里,我们可以看到通常的数据科学/机器学习工具,如NumPy、SciPy、matplotlib、Pandas和scikit_learn,研究人员越来越多地使用tqdm和torchvision等新兴工具。
2.2百强工具词云
在这里,我们可以将研究人员使用的相关工具或软件包可视化为词云。看起来很酷!
案例研究背后的方法
对于那些有兴趣知道我是如何得出这些发现的人,我现在将描述我遵循的步骤,并详细解释可以用来重现这些步骤的代码。
注意,我使用Google Colab来实现,因为它预装了大多数数据科学库。如果你不知道如何使用Colab,可以参考本指南。
/blog//03/google-colab-machine-learning-deep-learning
如果希望使用自己的计算机,则必须使用以下库设置系统:
通常在Anaconda发行版中找到的数据科学工具/软件包,例如NumPy,Pandas,matplotlib
/blog//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
/bndr/pipreqs
word_cloud
/blog//05/key-takeaways-iclr-/
代码演练
以下是我在案例研究中遵循的步骤:
设置系统
从适用于ICLR 的OpenReview API获取代码链接
从GitHub下载代码
根据requirements.txt,找到所有使用的工具并创建一个数据文件
使用数据分析以查找工具使用情况
步骤1 设置系统
我们要做的第一件事是在Colab中安装库,即OpenReview API和pipreqs:
!pip install openreview-py!pip install pipreqs
之后,我们将导入将在notebook中使用的所有必需的库/包:
%matplotlib inlineimport osimport reimport sysimport requestsimport openreviewimport pandas as pdimport matplotlib.pyplot as pltfrom random import choicefrom wordcloud import WordCloudfrom urllib.parse import urlparse
步骤2到4 数据创建
正如我提到的,在这里我们遵循以下步骤:
从适用于ICLR 的OpenReview API获取代码链接
从GitHub下载代码
根据requirements.txt,找到所有使用的工具并创建一个数据文件
总而言之,就数量而言,会议共接受了687篇论文,其中344位研究人员分享了他们对相应论文的实现。其中有268个是我主要关注的GitHub存储库。在这268个存储库中,我可以根据它们的requirements.txt文件成功地解析237个GitHub存储库,并基于requirements.txt总结了所使用的工具。
运行代码后,我们得到一个名为“all_tools.csv”的文件。如果你想跟着我做此分析,可以从此链接下载数据文件。
/wp-content/uploads//05/all_tools.csv
步骤5 使用数据分析以查找工具使用情况
在本节中,我们将对数据提出两个主要问题:
多少研究论文使用了特定工具,例如PyTorch或TensorFlow?
研究人员最喜欢使用哪种工具/软件包?
让我们一起读取数据文件:
all_tools = pd.read_csv("all_tools.csv")
让我们看一下all_tools数据框的前五行:
all_tools.head()
我们可以看到它非常不明确:
让我们打印这个数据帧的形状:
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:passelse:cleaned_list.append(cleaned_tool[0])cleaned_list = ",".join(cleaned_list)return cleaned_listexcept:tool_list = ",".join(tool_list)"unclean_list".join(tool_list)return tool_listall_tools["all_tool_names_cleaned"] = all_tools.all_tool_names.str.split(",").apply(cleaner)
clean后,如果再次打印所有工具数据帧的头部,将得到如下输出:
现在,让我们看看有多少存储库包含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 += offsetprint("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")
我们得到这样的输出:
这清楚地表明,与TensorFlow或Keras相比,PyTorch在研究界相当受欢迎。
在这里,你可以看到我对TensorFlow使用了12的偏移量,这是因为有一些实例GitHub存储库没有被解析,但是它们来自Google research GitHub用户名或TensorFlow的原始存储库,这清楚地表明它们可能是基于TensorFlow构建的。
对于不同的工具/包/框架,你可以遵循类似的步骤。在这里,我为 HuggingFace的Transformers, TensorBoard, OpenAI’s Gym和networkX做了这些:
接下来,让我们看看数据中有多少独特的工具:
all_tools.all_tool_names_cleaned.str.split(",", expand=True).stack().value_counts()[:50]
这段代码的输出为(687,)表示总共使用了687个工具。
让我们打印数据中出现频率最高的前50个工具:
我们得到这样的输出:
不出所料,大多数存储库使用通用的数据科学工具/库,如NumPy、SciPy、matplotlib和Pandas。
让我们用一种更直观的方式来描绘。
为此,我们可以使用条形图或词云。下面的代码用于创建条形图:
all_tools.all_tool_names_cleaned.str.split(",", expand=True).stack().value_counts()[:10].plot(kind="bar")
我们得到这样一个图:
我们可以将其视为一个词云:
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()
这给了我们这样一个输出:
为了节省时间,这是我所做的数据探索的范围。我们也许可以做的不止这些,我在下一节中提到了一些可以探索的想法。
关于ICLR的最后思考
在这篇文章中,我总结了我从ICLR中得到的主要收获。我还解释了一个案例研究,以了解研究社区中工具的使用情况。
我要感谢ICLR的组织者主办了这次精彩的会议,也感谢他们给了我作为志愿者参加这次活动的机会。
此外,我想特别提到 Sasha Rush, Patryk Mizuila 和帮助我完成案例研究分析的Vidhya团队。
我在本文中所做的是对数据的简单探索。还有一些想法可以探讨,例如:
我们可以找到代码属于哪个领域,也就是说,它更多的是与自然语言处理相关的研究,还是与计算机视觉或强化学习相关?因此,我们可以找到相应的工具,并基于领域对工具进行比较研究。
我们可以找到研究人员的隶属关系和他们各自的工作领域,然后在此基础上,我们可以总结出一个具体的公司或大学所做的工作,甚至是总结出人口统计数据。
基于ICLR的前几次迭代,我们可以发现研究社区中工具使用的趋势。
我们可以使我编写的代码更加高效,无论是运行代码所需的时间,还是成功完成代码所需的资源(网络速度或计算能力)。
哎!我们还能做很多事情,对吗?
原文链接:/blog//05/key-takeaways-iclr-/
留言送书福利
为了感谢大家长期以来的支持,小编会在每次发送课程文的第二天做一次送书”活动!
在本文文末留言即可参与活动,留言内容需为主题相关,多多留言会提升中奖概率哟~~
这次留言送书福利,小编本来选择了我们在“你挑我送”活动中,投票最高的《TensorFlow+PyTorch深度学习从算法到实战》,但与出版社对接时,说这本书库存少,让换一本类似的,好吧,小编也是没有办法了,只能在送的数量上,多送几本,以回馈大家,有机会,小编会继续争取哒。
这次选择了《TensorFlow深度学习实战大全》送给3位粉丝。本书囊括图像识别、卷积神经网络、残差神经网络、对抗神经网络等内容,讲解细致、深入浅出,即使没有机器学习的基础,也能快速学会,同时适合任何对深度学习技术或人工智能相关领域感兴趣的从业人员学习使用。
书籍详情可点击“阅读原文”查看
/ 留言主题 /
你怎么看待昨天发的《高端实训就业班 | 算法工程师的进阶之路》,对你有帮助么?有什么建议?
本次“留言送书”活动截至到5月21号,抽留言走心的粉丝3名免费赠送这本书籍(走心留言将经过筛选)。届时会公布中奖者评论截图及福利领取方式~
☆ END ☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文(无广告)。
↓扫描二维码添加小编↓