成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

「研究問題」寫不明白,讀者一臉懵!MIT博士手把手教你寫「問題設定」:論文得能變代碼才行

開發 前端
抽象 Problem 類表示論文中定義的問題類別,即使對于相對簡單和熟悉的問題,如圖像分類,也需要描述地非常精確。

最近,MIT博士Tom Silver發表了一篇博客,他認為有很多AI論文都缺少了「問題設定」(Problem Setting)部分,或者是字數不夠導致定義不夠清晰,讓讀者在閱讀論文后很難用代碼復現出具體方法。

博客中介紹了自己關于如何寫好問題設定部分的心得,并給出了一些他認為寫的比較好的論文樣例以供參考學習。

圖片

Tom Silver是麻省理工學院計算機科學專業五年級博士生,本科畢業于哈佛大學計算機科學與數學專業,主要研究方向是智能機器人,如自動規劃、程序合成等。

問題設定里應該有什么?

除純理論研究、實驗現象的實證、提出新基準數據等類型的研究外,大部分AI領域的論文中基本都包括三要素:提出了一種新的方法(new method),在某類問題(a certain class of problems)上性能表現良好(perform well);

也就是說,在設置論文問題時,應該能回答三個問題:

1. 這篇論文考慮的是哪一類問題?

這個問題對于潛在讀者來說很重要,他們更想了解手里的問題是否與論文中的問題類別契合。

2. 方法的形式是什么?

這個問題對于尋求替代方法的潛在開發者來說很重要,他們需要知道應該做出怎樣的設計選擇。

3. 如何測試方法的性能?

這個問題不僅對審稿人來說有價值,對于想要采納論文中研究方案的普通讀者來說也有用。

需要注意的是,研究背景與問題設定不同,可以為其他領域的讀者提供通用背景知識,但不一定能回答這三個問題。

問題設定應該寫在方法章節前,并且應該給予讀者足夠的信息,在讀完這部分后就可以自己思考如何設計方法來解決該問題。

把文字寫成代碼

通過一個簡單的測試,就可以檢查出自己論文中的問題設置部分是否清晰,且足夠完整。

在讀者閱讀完問題設定部分后,你就需要問問自己,目標受眾是否能夠實現Problem抽象類、Method抽象類以及run函數(輸入為Problem和Method,輸出為性能指標)。

抽象 Problem 類表示論文中定義的問題類別,即使對于相對簡單和熟悉的問題,如圖像分類,也需要描述地非常精確。

圖像是灰度、RGB、RGB-D還是任意N維矩陣?尺寸可以不同嗎?可能的類別是否固定和已知?數據集中是否存在訓練/驗證/測試集分割?

如果在問題設定部分中已經明確回答了這些問題,讀者應該能將文本轉換成如下代碼:

import abcimport timefrom dataclasses import dataclassfrom typing import List, Set, Tupleimport numpy as npfrom numpy.typing import NDArrayGrayImage = NDArray[np.uint8]  # two-dimensionalLabel = str  # e.g., "cat"class Problem(abc.ABC):  """An image classification dataset."""  @abc.abstractmethod  def get_training_data(self) -> List[Tuple[GrayImage, Label]]:    """Labeled data for training."""  @abc.abstractmethod  def get_evaluation_data(self) -> List[Tuple[GrayImage, Label]]:    """Held-out labeled data for evaluation."""  @abc.abstractmethod  def get_image_dims(self) -> Tuple[int, int]:    """Images assumed the same size, e.g., (32, 32)."""  @abc.abstractmethod  def get_all_labels(self) -> Set[Label]:    """Output classes assumed fixed, e.g., {"cat", "no-cat"}."""

Method 抽象類描述了論文中提出方法的基本形式。

Method類可從Problem中獲得哪些信息?Method需要對這些信息做什么?

同樣,即使對于熟悉的問題設定,也需要在寫作時保持足夠精確,以便在實現時不會有歧義:

class Method(abc.ABC):  """A method for image classification."""  @abc.abstractmethod  def init(self, image_dims: Tuple[int, int], labels: Set[Label]) -> None:    """Initialize the method before training starts."""  @abc.abstractmethod  def train(self, training_data: List[Tuple[GrayImage, Label]]) -> None:    """Train the method given training data."""  @abc.abstractmethod  def predict(self, image: GrayImage) -> Label:    """Predict the class label for an image."""

run 函數描述了問題和方法之間的接口,并確定最終報告的性能指標。

對于圖像分類任務來說,實現是直接的,但仍需要選擇與問題相關的評估指標,選擇的過程也需要在文中清晰地描述出來。

@dataclassclass Metrics:  """Metrics of interest for image classification."""  training_time: float  evaluation_accuracy: floatdef run(problem: Problem, method: Method) -> Metrics:  """Train and evaluate a method on a problem."""  # Initialization.  image_dims = problem.get_image_dims()  labels = problem.get_all_labels()  method.init(image_dims, labels)  # Training.  training_data = problem.get_training_data()  start_time = time.perf_counter()  method.train(training_data)  training_time = time.perf_counter() - start_time  # Evaluation.  evaluation_data = problem.get_evaluation_data()  num_correct = 0  num_total = 0  for img, ground_truth_label in evaluation_data:    num_total += 1    predicted_label = method.predict(img)    if ground_truth_label == predicted_label:      num_correct += 1  accuracy = num_correct / num_total  return Metrics(training_time, accuracy)

在實驗中,文中需要考慮不同的子類 Method (新提出的方法、基線和消融實驗)和不同的子類 Problem (具有訓練/測試分割的不同數據集,不同的強化學習環境等)。

如果問題設定一致,應該可以直接運行,然后在Result章節中報告性能。

metrics = {}for problem in problems:  for method in methods:    metrics[(problem, method)] = run(problem, method)

這部分的重點并不是讓讀者實際實現任何可運行的代碼,但如果讀者能夠實現這兩個抽象類和run函數,并給出足夠的motivation說明,那么問題設定部分就算寫的比較成功了。

代碼之外的語義

雖然上面提出的測試可以被視為問題設定部分的必要條件,但卻不是充分條件,即并不是問題設定的所有特性都可以在代碼中被捕獲。

一些額外的語義信息應該表達出超出測試中檢查的句法(syntactic)信息,包括:

1. 上面運行示例中的灰度圖像可能并不是隨機陣列,而是真實存在或生成的圖像,以結構化或非結構化的方式存儲;也可能是來自互聯網的隨機圖像子集,或者是精選的卡通長頸鹿集合。

2. 分類標簽可能有部分錯誤的情況:標簽可以由人類(專家或非專家)進行標注,也可以是用腳本進行自動化標注。

3. 訓練可能意味著在大型計算機集群上運行一次,持續很長一段時間,或者在嵌入式設備上運行數千次,每次持續很短的時間;預測也有類似的自由度。

語義信息在問題設定部分中很難檢查,但它的重要性并不亞于問題本身,為了確保意圖是清晰明確的,用一個或多個具體的例子來說明你的環境中的問題和方法是很有用的;將文中的問題設定與之前相關工作中的問題進行比較和對比也很有用。

優秀樣例

有一些論文在問題設定部分寫的非常好。

圖片圖片

論文鏈接:https://arxiv.org/pdf/2011.10024.pdf

這篇論文在闡述問題類別時寫的特別好,將其基本設定描述為MDP的分布。

但作者并沒有就此止步,還直觀地、形式化地描述了文中提出方法可以運行的一個分布,還清晰地建立了問題設定和其他常見問題之間的關系。

圖片圖片

論文鏈接:https://openreview.net/pdf?id=bERaNdoegnO

這篇論文的問題設定部分對問題目標有一個出色的、簡潔的描述,作者選擇了一個相對狹窄的框架來解決問題。

圖片圖片

論文鏈接:https://arxiv.org/pdf/2301.06054.pdf

這篇論文中有一個非常簡潔的問題定義,包含了所有的基本信息,對在線訓練和評估期間發生的所有事情都進行了描述,方法的形式也是非常清晰的。

圖片圖片

論文鏈接:https://arxiv.org/pdf/2303.04912.pdf

這篇論文在描述非常復雜的問題設定方面做得非常好,使用了圖表輔助。

圖片圖片

論文鏈接:https://arxiv.org/pdf/2306.06236.pdf

這篇文章的作者找到了一個明確的方法,從一個抽象描述開始,然后用符號讓問題變得清晰;問題設定中有很多符號,但在這種情況下,符號是非常有必要的,對閱讀來說也很有幫助。

參考資料:

https://lis.csail.mit.edu/whats-your-problem-an-oft-missing-section-in-ai-papers/

責任編輯:武曉燕 來源: 新智元
相關推薦

2021-10-18 17:54:13

論文博士數據

2023-12-06 08:28:44

禮物系統用例圖

2023-03-27 08:28:57

spring代碼,starter

2017-07-19 13:27:44

前端Javascript模板引擎

2014-01-22 09:19:57

JavaScript引擎

2021-06-22 10:43:03

Webpack loader plugin

2020-04-14 10:20:12

MySQL數據庫死鎖

2024-10-16 11:40:47

2018-05-16 13:50:30

Python網絡爬蟲Scrapy

2018-05-16 15:46:06

Python網絡爬蟲PhantomJS

2018-03-23 20:45:23

機器學習NLP文本數據

2022-03-08 11:17:54

函數指針回調函數C語言

2018-05-22 16:28:46

Python網絡爬蟲URL去重

2021-07-09 17:27:58

ButterKnife工具APT

2015-12-23 11:32:50

2019-10-22 14:30:11

機器學習人工智能計算機

2018-05-14 16:34:08

Python網絡爬蟲Scrapy

2021-09-26 16:08:23

CC++clang_forma

2018-05-22 15:30:30

Python網絡爬蟲分布式爬蟲

2022-05-18 08:51:44

調用模板后端并行
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠的日| 久久久久久国产 | 国产在线观看网站 | 欧美日高清视频 | 国产精品夜夜夜一区二区三区尤 | 欧美一区二区在线视频 | 久久久综合网 | 九色porny自拍视频 | 精品久久久久久亚洲国产800 | 国产精品日女人 | av免费观看网站 | 久久久久久综合 | 99久久精品免费 | 国产精品色 | av一区在线观看 | 粉嫩粉嫩芽的虎白女18在线视频 | 91综合网 | 国产精品福利网站 | 黄a网站| 中文字幕在线观看www | 亚洲日产精品 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 国产日韩一区二区三区 | 亚洲欧美视频一区二区 | 久久久久久久久久性 | 日日摸夜夜添夜夜添精品视频 | 日日操操| 国产亚洲人成a在线v网站 | 成年人国产在线观看 | 国产视频二区 | 国产不卡视频 | 91精品久久久久久久久中文字幕 | 91观看 | 国产91丝袜在线熟 | 久久国产精品久久久久 | 亚洲欧美在线一区 | 亚洲高清视频一区二区 | 成人av网站在线观看 | 91精品国产91久久久久久密臀 | 一级免费黄色 | 国产性网 |