May the Neural Networks be with you

ニューラルネットワークと共にあらんことを

【外部発表】私の学振DC2体験談

こんにちは。@shunk031です。 4月1日に法政大学の学内で開催された2023(令和5)年度 日本学術振興会特別研究員(DC1・DC2)申請に関する セミナーにて講演する機会がありましたので、その時の発表資料を載せます。

発表資料

イベント: 2023(令和5)年度 日本学術振興会特別研究員(DC1・DC2)申請に関する セミナー

f:id:shunk031:20220404132442p:plain

2021年の振り返り

こんにちは。@shunk031 です。クリスマスにニューラルネットワーク "力" をお願いしましたが、何も貰えませんでした。 サンタさんは Hinton 先生ではないみたいです。 毎年同じお願いをしている気がします。 2021 年をツイートベースで振り返ります。

f:id:shunk031:20220104185219j:plain
あしかがフラワーパークの藤イルミネーション、幻想的すぎました

各月の活動

1 月

やっていく気持ちを表明していました。

M1 Macbook Pro を購入

4 年ほど使った Intel Macbook Pro から乗り換え。充電の持ちが非常によく、外で論文を書くぐらいならば 2 日ぐらい充電しなくても大丈夫です。電源のあるカフェを探すことはほとんどなくなりました。

言語処理学会全国大会 論文投稿

今年は主著 x1、共著 x1 でした。去年の主著 x1、共著 x3(うち留学生 x1)で並行して執筆していたときはかなりしんどかったです。

博士課程コースワーク 取り組み

弊研究科の博士課程の学生はコースワークなる科目があり、学科内の任意の先生にお願いして課題を出してもらいます。今回の課題は「くずし字に関するサーベイ」と「グラフ構造 x 自然言語処理」という 2 つの課題が与えられ、締切ギリギリのこの時期にやっていました。

くずし字に関するサーベイは以下に記事としてまとめ、公開しております。講義の課題もこのように公開すること前提ですすめると、自然と緊張感のあるものになると思いました。

shunk031.hatenablog.com

NAACL 2021 first decision の通知 & Rebuttal

前年に投稿していた NAACL 2021 投稿論文の first decision が通知された時期でした。

指導教員の先生と密に連携して author response を作成し、結果的に全体的なレビュースコアを向上させることができましたが、reject でした(後述)。

KDD2021 論文投稿

KDD2019 から投稿し始め、毎年の恒例行事になりつつあります。

IEEE Access 論文投稿

学振 DC2 補欠採用

今年一番の嬉しいイベントだったような気がします。

学振 DC2 申請書 公開

補欠で採用されるようなギリギリボーダーな人の申請書って実は貴重なのでは?ということで、公開しました。

申請書を執筆する上でよく見ていた科研費.com さまにも掲載していただきました。

これはいわゆる学振焼肉です。

3 月

人工知能学会全国大会 論文投稿

学振 DC2 採用の話が大学広報にて掲載

NAACL2021 結果通知

不採択通知をいただきました。

We are sorry to inform you that the following submission was not selected by the program committee to appear at NAACL-HLT 2021: XXX The selection process was very competitive and unfortunately there were many quality papers that we could not accept. We considered a range of factors including the reviewers' assessment and scores, reviewer discussions, and careful assessment by the area chairs and senior area chairs.

言語処理学会 2021 発表

カルタゴセミナー登壇

GoTo 箱根

IEEE Access採録通知

採録通知をいただきました。

4 月

学振 DC2 採用の話が学科広報にて掲載

AppBrew テックブログへ記事寄稿

5 月

CyberAgent AI Lab 博士インターン開始

母の日に母親に iPhone 11 をプレゼントしたいい話

令和 2 年度博士課程進学に伴う採用時返還免除内定者の決定

D1 のときに借りていた日本学生支援機構の第一種奨学金がこの時点で免除確定になりました。ありがとうございます。

KDD2021 結果通知

不採択通知をいただきました。

We regret to inform that your paper: Paper ID: XXX Paper title: YYY has not been accepted for presentation at SIGKDD 2021.

IEEE Access 論文投稿

新垣結衣星野源と結婚

CIKM2021 論文投稿

6 月

人工知能学会 2021 発表

IEEE Access 論文採録

採録通知をいただきました。

21-Jun-2021 Dear Mr. Kitada: Your manuscript entitled "Attention Meets Perturbations: Robust and Interpretable Attention with Adversarial Training" has been accepted for publication in IEEE Access. The comments of the reviewers who reviewed your manuscript are included at the foot of this letter. We ask that you make changes to your manuscript based on those comments, before uploading final files.

CyberAgent AI Lab 博士インターン最終出社

7 月

CyberAgent AI Lab 協働研究員 開始

小倉唯 ライブ

www.ogurayui.jp

GoTo 軽井沢

8 月

NTT 人間情報研 インターン開始

CIKM2021 結果通知

不採択通知をいただきました。

Dear Shunsuke, Thank you for your submission to the CIKM 2021 Applied Research Track. Unfortunately, we did not accept your paper for presentation at the conference: XXX: YYY

YANS 2021 発表

9 月

IEEE Access 論文投稿

以下の論文に関する拡張についての論文を投稿しました。

arxiv.org

AAAI2022 論文投稿

IEEE Access 論文投稿

KDD2020 から投稿を続けているネタを IEEE Access へ投稿することに。

花粉症の舌下療法を開始

10 月

IEEE Access採録通知

再投稿が許されるタイプの major revision 相当の不採録通知でした。

06-Oct-2021 Dear Mr. Kitada: I am writing to you in regards to manuscript # Access-XXXX-YYYY entitled "ZZZZ" which you submitted to IEEE Access. Please note that IEEE Access has a binary peer review process. Therefore, in order to uphold quality to IEEE standards, an article is rejected even if it requires minor edits.

GoTo 金沢

GoTo 白川郷

AAAI2022 結果通知

不採択通知をいただきました。

Dear Shunsuke KITADA, We regret to inform you that your AAAI-22 submission XXXX did not advance to the second phase of the 2-phase review process and hence has been rejected. There were over 8000 submissions to AAAI this year. In light of the fact that the acceptance rate for AAAI is typically around 25%, only about 56% of the papers advanced to Phase 2 of the review process based on the Phase 1 reviews. During Phase 1, each submission was initially assigned to 2 reviewers. Every effort was made, using the most uptodate information available to us, to avoid conflicts of interest throughout the entire review and decision process.

WWW2022 論文投稿

AAAI2022 不採択だった原稿を更新して The Web Conference (通称 WWW) へ投稿しました。

IEEE Access採録通知

再投稿もだめなパターンでした。他のジャーナルを探さないと。

Dear Mr. Kitada: I am writing to you in regards to manuscript # Access-XXXX-YYYY entitled "ZZZZ" which you submitted to IEEE Access. In view of the criticisms of the reviewer (s) found at the bottom of this letter, your manuscript has not been recommended for publication in IEEE Access. Unfortunately, we will not accept resubmissions of this article.

11 月

ジャーナル投稿に向けて準備

ツイートからは何もやっていなかったような雰囲気を感じるのですが、slack 等を見返すとジャーナル投稿に向けて原稿を準備していたようです。

GoTo 栃木足利

12 月

論文全然通らないなぁ、みたいな気持ちになっています。

WWW 2022 first decision の通知 & Rebuttal

AAAI 2022 では比較的ポジティブなコメントを貰っていたのですが、WWW 2022 のレビューでは厳し目のコメントが多かったです。

アドベントカレンダー 記事執筆

小倉唯ライブ

昼公演夜公演どちらも参加する疲れるようになってきました。年かな…?

関内二郎、いきたかった。

IEEE Access 論文投稿

Major revision 相当だった原稿を再投稿しました。

論文投稿

今年のカンファレンス・ジャーナルそれぞれの投稿結果をまとめます。

カンファレンス論文

NAACL2021

  • レビュー結果
    • [R] 2.5, 3, 3 -> (after rebuttal) -> 2.5, 3.5, 3.5
  • お気持ち
    • Rebuttal 前はボーダーラインだった reviewer #2 と #3 をポジティブな方向に持っていけたのは良かったです 一方で reviewer #1 のネガティブな気持ちをひっくり返すことはできませんでした

KDD2021

  • レビュー結果
    • [R] WA, SR, WR, WA
  • お気持ち
    • KDD2020 -> WSDM2021 と投稿してきて、WSDM2021 のレビュー結果 がそれなりに positive だったため、今年の KDD は通るかなぁと思っていたのですがだめでした。難しいですね

CIKM2021

  • レビュー結果
    • [R] R, WR
  • お気持ち
    • 上記 KDD2021 の再投稿だったのですが、深みにハマってしまったらしくどんどんレビュー内容が悪くなっていきました
    • このままカンファレンスに投稿し続けるのは良くないと考え、指摘内容を更新した後にジャーナルに投稿することにしました

AAAI2022

  • レビュー結果
    • [R] BA, BA
  • お気持ち
    • CyberAgent AI Lab での成果を投稿しました。3 ヶ月で仕上げた内容でしたが比較的ポジティブなコメントが多かったです。
    • 一方で採択へ後押しする決め手がなかったために Phase 1 で reject になってしまいました。
    • こちらは現在 WWW へ再投稿しています。

ジャーナル論文

卒業要件として先生曰くジャーナル 3 本程度が必要だとおっしゃっていたので、個人的にはカンファレンスに投稿したかった気持ちを抑えてジャーナルに投稿していくことにしました。投稿先は査読が早いと噂の IEEE Access を選択し、手元にある原稿を投稿していく方針で進めました。 IEEE Access は binary decision *1 を採用しており、minor/major revision 相当であっても一旦 reject になり、再投稿が許されます。ある程度のボーダーを下回ると再投稿が許されない不採録の決定もあります。

IEEE Access (1)

  • レビュー結果
    • [R (major revision 相当)] R (updates required before resubmission), R (updates required before resubmission), A (minor edits)
    • -> [A] Accept (minor edits), Accept (minor edits)
  • お気持ち
    • 採録された論文は「Attention Meets Perturbations: Robust and Interpretable Attention with Adversarial Training」*2 です。
    • ACL2020 に不採択だった内容をブラッシュアップしたのですが、最初は不採録(major revision 相当)でした。レビュアーのコメントをもとに原稿を更新したことで、無事採録されました。

IEEE Access (2)

  • レビュー結果
    • [R (major revision 相当)] R (updates required before resubmission), R (updates required before resubmission) i
  • お気持ち
    • Gunosy のリサーチインターンでやっている話で、KDD2020 -> WSDM2021 -> KDD2021 -> CIKM2021 と投稿してきた原稿です。
    • 昨年の終わりに原稿を再投稿したので、今年こそは良い結果が帰ってくることを期待しています。

IEEE Access (3)

  • レビュー結果
    • [R] R (do not encourage resubmit), R (do not encourage resubmit)
  • お気持ち
    • 採録となった論文は「Making Attention Mechanisms More Robust and Interpretable with Virtual Adversarial Training for Semi-Supervised Text Classification」*3 を拡張した論文です。
    • NAACL 2021 不採択だった原稿を更新して臨んだのですが、かなり厳しい結果になりました。

まとめ

  • D2 が終わりました。折返し地点の気がしません。
  • 論文はたくさん書けるようになってきましたが、クオリティの面はまだまだでした。
  • D3 も頑張りたいです。シューカツをやらなくてはならない気がしています。企業で研究できそうなポジションがありましたらお声がけください。
    • 少しずつお声がけ頂いております。ありがとうございます。

*1:Rapid Peer Review – IEEE Access https://ieeeaccess.ieee.org/about-ieee-access/rapid-peer-review/

*2:Attention Meets Perturbations: Robust and Interpretable Attention With Adversarial Training | IEEE Journals & Magazine | IEEE Xplore https://ieeexplore.ieee.org/document/9467291

*3:[2104.08763] Making Attention Mechanisms More Robust and Interpretable with Virtual Adversarial Training for Semi-Supervised Text Classification https://arxiv.org/abs/2104.08763

先生の「まずは論文の骨子を箇条書きで書いてみて」に対応する: 論文執筆の第一歩

こんにちは @shunk031 です。 年末年始は国内学会の締め切りが多く、研究室内で初めて論文を書く人たちが増えてくる時期です。 本記事はそのような論文執筆が初めての弊研 (彌冨研究室) B4 や M1 に向けて書きましたが、一般的に論文の書き始めに通じるところがあると思います。

この記事は 法政大学 Advent Calendar 2021 22 日目の記事です。

adventar.org

f:id:shunk031:20211220222747p:plain
骨子って、何?というか初めて論文書くんですがどうすれば、、、。イラストはうちの先生には似ていませんが、だいたいこんな感じで言ってきます。

弊研では恒例ですが、研究が進んできて結果がまとめられそうな段階になってくると 先生 に以下のようなことを言われます。

「まずは論文の骨子を箇条書きで書いてみて!」

本記事は「論文の骨子とはどのようなものか」「箇条書きで骨子を書く場合の注意点はなにか」に焦点を当てます。 この記事では言及できない、基礎的な(科学)論文執筆の技法が存在します。 それらを補うため、弊学科・弊研究科の学生の場合は 科学技術文技法 をまずは履修してください *1*2*3

以下は目次です:

忙しい人向けまとめ

忙しい人向けに「論文の骨子を箇条書きで書いてみて」と言われたときにやる 3 つのことをまとめます:

  • まず論文の大枠を箇条書きで 3 〜 4 個書きます
    • これらは トピックセンテンス と呼ばれます
    • この大枠が非常に大事ですが、肩の力を抜いて気軽に適当に書きます
  • それぞれのトピックセンテンスに、更に説明する文を 2 〜 3 個書きます
    • これらは サポートセンテンス と呼ばれます
    • 各トピックセンテンス内ではそのトピックの話だけをするようにサポートセンテンスを書きます
  • 最後にまとめになる文 1 個書きます
    • これは 小結論センテンス と呼ばれています
    • トピックセンテンスから小結論センテンスまでのまとまりは パラグラフ と呼ばれています

f:id:shunk031:20211220205902p:plain

論文の骨子とはどのようなものか

先生から「論文の骨子」と言われたら、まずは「イントロの流れ」やそのアウトライン *4 のことについて言われていると考えてください。 以下はその「イントロの流れ」を一から作るためにはどうすればいいかを私個人が考えていることを書きます。

アカデミックライティングの基本:パラグラフライティング

パラグラフライティングとは、1つの話題について書かれたパラグラフを組み合わせて、論理を展開していく文章技法です *5。 パラグラフライティングのポイントは「各段落の先頭行だけを抜き出せば正しい要約ができあがるようにする」ことです *6。 この「 各段落の先頭行 」を「 トピックセンテンス 」といい、トピックセンテンスを集めたものが「 論文(イントロ)の骨子の元 」になりうると私は考えています。 この論文の骨子の元となるものに肉付けしていくことで、「 論文の骨子 」が完成します。

論文の骨子以外に先生から要求されるものとして、introduction で示した仮説や提案法の有効性をどのように示すかの「 実験の骨子 」があります。 これは現状出ている結果や主張したい話を評価できるような実験をいくつか考える必要があります。 この記事では実験の骨子の書き方については述べません。

実際の論文はどうか:実例でトピックセンテンスを確認

Tan et al, "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks"*7 を例に取り上げます。 深層学習による画像認識分野の研究している方だとよく聞く論文だと思います。 良い論文はトピックセンテンスが骨子の元になります。 以下を読むだけで論文の全体がざっくりと理解できるはずです:

  • Scaling up ConvNets is widely used to achieve better accuracy.
  • In this paper, we want to study and rethink the process of scaling up ConvNets.
  • Intuitively, the compound scaling method makes sense because if the input image is bigger, then the network needs more layers to increase the receptive field and more channels to capture more fine-grained patterns on the biggerimage.
  • We demonstrate that our scaling method work well on existing MobileNets and ResNet.

f:id:shunk031:20211220203103p:plainf:id:shunk031:20211220203107p:plain
Tan et al. "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks". 赤くハイライトされているところはトピックセンテンスを示しています。

自然言語処理分野で現在注目されている論文はどうでしょうか?Devlin et al, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"*8 は以下のようなトピックセンテンスが並びます。上から下へ流れるように話が進んでおり、ロジックが行ったり来たりしていません。上記で例に挙げた EfficientNet の論文同様に、トピックセンテンスを読むだけで論文の全体がざっくりと理解できます:

  • Language model pre-training has been shown to be effective for improving many natural language processing task.
  • There are two existing strategies for applying pre-trained language representations to down-stream tasks: feature-based and fine-tuning.
  • We argue that current techniques restrict the power of the pre-trained representations, especially for the fine-tuning approaches.
  • In this paper, we improve the fine-tuning based approaches by proposing BERT:Bidirectional Encoder Representations from Transformers.

f:id:shunk031:20211220203640p:plainf:id:shunk031:20211220203821p:plain
Devlin et al. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". 赤くハイライトされているところはトピックセンテンスを示しています。

先生から「論文の骨子を書いてみて」と言われたらビビらずに、まずトピックセンテンスとなりうるような文 (通常 3〜4 文) を考えましょう。 「論文」を書くとなると非常に大変そうですし、難しそうです。一方で、「3、4 文で研究説明できる良うにとりあえず書いてみてよ〜」と言われたらできそうです。やればできます*9

箇条書きで骨子を書く場合の注意点

f:id:shunk031:20211220210359p:plain
骨子からイントロを組み立てる

トピックセンテンス となる文ができたら、それらに肉付けしていくことで、論文の骨子を作っていきます。 先生とは Microsoft Word でやり取りすることが多いので、Word でファイルを作成するか、Google Doc 等を作成して Word に export することを検討してください。 ここでファイル名は非常に重要です。 202X-YY-ZZ_山田太郎_論文骨子 のようなファイル名にしましょう。 先生は複数人とやり取りするため、誰の骨子かわかりやすくすべきです。 更にこのような丁寧な命名規則は自分で論文を書いていく中でも時系列順で編集履歴がわかりやすくなります。

箇条書きで トピックセンテンス となりうる文を書いたら、そのセンテンス郡をトップレベルの箇条書きにします。 トピックセンテンスをより細かく説明するサポートセンテンスは一つインデントを下げて書くようにします。 こうすることで、文の構造を明示的にわかりやすくする役目があると私は考えています。 上図の 緑色のハイライトされた文 はサポートセンテンスであり、 黄色でハイライトされた文 緑色でハイライトされた文 を更に説明する役目があると言えます。 サポートセンテンスでトピックセンテンスを適宜説明したら、最後に 小結論であるセンテンス を書いて締めます。 これらトピックセンテンス、サポートセンテンス、小結論センテンスのまとまりをパラグラフと言います。

骨子からイントロを組み立てる

ここまでくればほとんどイントロ( = introduction; 論文の導入部分)は完成です。 トピックセンテンスやサポートセンテンスに適宜文献を引用したり、主な実験結果の数値を載せたりします。 イントロの最後に研究の貢献を箇条書きでまとめることで、論文の主張したい部分を強調することができます。

イントロの流れ以外の骨子

箇条書きで骨子を書く際のトピックセンテンス 4 行からのそれぞれに対する 3 行ほどのサポートセンテンス・小結論センテンスという流れは、イントロ以外でも同じです。 例外はあると思いますが、この流れをまずは守ることが重要です。センテンス 1 つのパラグラフを書いてしまったときはおかしいかな?と感じるようになると良いです。

関連研究セクションでも トピックセンテンス -> サポートセンテンス  \times N -> 小結論センテンス のまとまり(パラグラフ)から構成されます。 自身の研究に関連する分野を 2〜3 個ピックアップしてタイトルを付け、複数のパラグラフを書いて自身の研究と関連する研究の差分や立ち位置がわかるように書けば、もうほとんど完成です *10

Python での実装は得意だけど、論文はちょっと… な人向けのイメージ

論文は自然言語の集まりですが、プログラミング言語のような機械言語のようにみなすことができます。 以下は Python擬似コードで論文の構成をイメージしたものです。

f:id:shunk031:20211220214422p:plain
Python擬似コードで論文の構成をイメージ

論文もプログラミング言語同様 スコープ があります。 各パラグラフはそれぞれ関数とみなすことができ、その関数で最初に提起された話題(= トピックセンテンス)しか扱いません。 関数内から他の関数の話題には触れられません。例外としてその分野の共通知識や問題点等の話題は触れることができます。 これはこうした話がグローバルスコープ・空間にあると見なせるからです。 このような スコープ の意識を持っておくと、論文を執筆する際に、話題が行ったり来たりするのを防ぐことができるかもしれません。

まとめ

先生から まずは論文の骨子を箇条書きで書いてみて と言われた弊研の学生に向けて、私が考える骨子の書き方を示しました。 まずは、研究の大きな流れを 3〜4 文で書き、それぞれの文により細かい説明文を 2〜3 文追加することで、「骨子」が完成すると考えています。 このような書き方はいわゆるパラグラフ・ライティングと呼ばれる方法になります。本記事で紹介した方法以外にもより良い書き方があると思うので、ぜひ私に教えて下さい。(そして一緒に論文を書きませんか?)

*1:弊学科以外でもアカデミック・ライティングの授業は必ずあるはずなので受講することをおすすめします。更に世の中にはアカデミック・ライティングについての書籍が複数あります

*2:アカデミック・ライティング書籍おすすめ (1); 洋書ですが非常に平易な英語で書かれており具体的で非常にわかりやすいです。/ Science Research Writing For Non-Native Speakers Of English Hilary Glasma... https://www.amazon.co.jp/dp/184816310X

*3:アカデミック・ライティング書籍おすすめ (2); 網羅的にアカデミック・ライティング全般を学べる本です。辞書的に持っておくことをおすすめします。 / ネイティブが教える 日本人研究者のための論文の書き方・アクセプト術 (KS 科学一般書) エイドリアン・ウォールワーク https://www.amazon.co.jp/dp/4065120446

*4:「骨子」のことを「アウトライン」として説明している良いページ。参考になります。/ レポートの構成とパラグラフ・ライティングを知る | 名古屋大学生のためのアカデミック・スキルズ・ガイド https://www.cshe.nagoya-u.ac.jp/asg/writing03.html

*5:パラグラフ・ライティングについて | https://ichinomiya-h.aichi-c.ed.jp/ssh/kyouzai/paragurahu.pdf

*6:パラグラフライティングの作法 - 書き手にもメリットのある文配置ルール - | Systems Android Robotics http://www.ams.eng.osaka-u.ac.jp/user/ishihara/?p=566

*7:[1905.11946] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks https://arxiv.org/abs/1905.11946

*8:[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding https://arxiv.org/abs/1810.04805

*9:そしてようこそ論文執筆沼へ。締め切りまで走りきって、原稿提出したあとに「「最高」」 になりましょう。残念ながら僕はこの「最高」に取り憑かれているようです。

*10:関連研究のセクションって書くの難しいですよね。未だによくわかりません。

学振特別研究員が2021年に特別研究員奨励費で購入した物品のオススメを晒してみる

こんにちは @shunk031 です。ViT *1 が流行っていますね。パッチに分割して Deep でポン!がもう少し流行りそうです。個人的には ViT のほうが CNN よりもロバストな雰囲気を感じており *2、そのあたりの性質をうまく利用したモデルが作れたら楽しいかなと妄想しています。

この記事は 法政大学 Advent Calendar 2021 8 日目の記事です。

adventar.org

f:id:shunk031:20211207233159j:plain
特別研究員奨励費で購入させていただいた iPad Pro 2021

学振特別研究員と特別研究員奨励費

私は今年度から 学振特別研究員 DC2 (いわゆる学振 DC2)に採用していただきました *3。 弊学科からはおそらく初めての採用で、大学広報や学科のホームページにも取り上げていただいたりと、ちょっとしたお祭り騒ぎになっていました。

www.hosei.ac.jp

ai.ws.hosei.ac.jp

特別研究員の採用を経て、特別研究員奨励費 の申請を出すと、ある程度の研究費が科研費として交付されます *4。 どの程度の研究費が交付されているかについては KAKEN のページ等を確認するとわかります。 例えば私の場合、配分額は 1,500 千円のようです *5

本記事は JSPS 科研費 21J14143 の助成を受けて購入した、特に研究に役立った物品を紹介します。 特別研究員奨励費は研究を始めたばかりの人間が研究費として自由に使える額としては比較的大きい方だと思います。 いざ交付していただくと具体的にどのように使っていくかを考えるのは非常に難しいです。 本稿が来年度以降に学振 DC に採用された方の助けになれば幸いです。

特別研究員奨励費で買ってよかったもの

以下は特別研究員奨励費で購入して特に研究に役立った物品を晒します。各物品に対する所感は以後の記事で紹介したいです。

書籍

  • 辞書的に利用したいと思い購入しました。いつも新しい発見があります。

  • 見た目とは異なり中身は非常に平易に深層学習について説明されていました。深層学習を学んだことがない人に自身の研究を説明するのに役立ちます。

  • 論文のクオリティを上げたいと考えて購入しました。自身の書く英語は誤用が多かったです。。。

  • 更にこちらも購入。 athe といった冠詞を中心にその使用例がわかりやすく解説されています。読んでいて新たな発見ばかりで面白いです。

  • 機械学習モデルを何かしらのシステムに組み込んで、その効果を検証したいという気持ちに対して非常に平易かつ直感的に解説されていました。何回も読み返したい本です。研究でも正しく効果を検証していきたいですね。

  • 私自身の研究内容が深層学習モデルの解釈に関するもので、興味があったので購入しました。ブラックボックスなモデルをうまく解釈する方法はやっぱり面白いです。

  • 埋め込み表現まわりの話で最新のトピックまでカバーされていました。非常に読みやすく、きれいにまとまっています。

  • 博士課程に入ってから書くことが多いため、「書く」ことに対して一般的な良い方法が知りたかったために購入しました。当たり前でもできていないことが多く、振り返って実践したい話が多数見つかりました。

電子機器

  • 記憶媒体はいくらあってもいいですからね。最近はモデルのスナップショットを雑に大容量の HDD に保存するようにしています。SSD がもったいないです。

  • 僕も iPad すなるものを購入してみました。主に論文を読む用です。パソコンから zotero + zotfile *6google drive に論文を追加しておいて、iPad からは Adobe Acrobat で開いてハイライトを入れたりメモを入力したりしています。僕は論文を読むときあまり書き込みをせずに重要そうな箇所のみハイライトするような運用でして、この構成で現在は落ち着いています。

  • Stay Home で Macbook を持ち歩かなくてよくなったため購入しました。型落ちですがパワフルで論文を書く程度の作業では十分です。

おわりに

本記事は JSPS 科研費 21J14143 の助成を受けて購入した、特に研究に役立った物品の一部を紹介しました。 上記以外にも学術論文の英文校正費や掲載費にも特別研究奨励費を使用させていただいており、充実した研究生活を送っております。 来年度以降も頂いている研究費を最大限活かし、良い研究を実行できるよう努力していきます。

*1:[2010.11929] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale https://arxiv.org/abs/2010.11929

*2:[2111.05464] Are Transformers More Robust Than CNNs? https://arxiv.org/abs/2111.05464

*3:僭越ながら学振 DC2 の申請書を公開しております:日本学術振興会特別研究員 (DC2) 申請書・学振 | Shunsuke Kitada http://shunk031.me/post/dc2/

*4:学振特別研究員は研究奨励金 (月 20 万程度) と特別研究員奨励費 (毎年度 150 万円以内の研究費) が支給されます。> 申請資格・支給経費・採用期間 | 特別研究員|日本学術振興会 https://www.jsps.go.jp/j-pd/pd_oubo.html

*5:KAKEN — 研究課題をさがす | 摂動に頑健で解釈可能な深層学習モデルの開発とその解釈性の評価 (KAKENHI-PROJECT-21J14143) https://kaken.nii.ac.jp/ja/grant/KAKENHI-PROJECT-21J14143/

*6:こちらを参考にしました / 文献情報と PDF ファイルをうまく管理する (zotero と zotfile)・大舘暁研究室 https://ohdachi.github.io/ohdachi_lab/researches/2018/02/02/zotero_zotfile.html

2020年の振り返り

こんにちは。@shunk031 です。クリスマスにニューラルネットワーク "力" をお願いしましたが、何も貰えませんでした。 サンタさんは Hinton 先生ではないみたいです。 毎年同じお願いをしている気がします。 2020 年をツイートベースで振り返ります。

f:id:shunk031:20210102232416j:plain
京都タワーに登ったときの写真。地上から見たら高いように見えたのですが、登ってみたらそんなに高くなかった。Pixel 5 の夜景モードすごい。

各月の活動

1 月

年始は自分の今のマインドを簡単に確認すべく 16personalities をやりました。 16personalities は常に同じ結果を示すとは限らず、その時の自分のマインドが反映されると考えています。

小倉唯ライブ

今後オフラインで密の空間でオタクができなくなるとはこのときには思いもしませんでした。

言語処理学会全国大会 論文投稿

自分が筆頭の論文と後輩 x 2, 留学生x2 の共著として計 4 本論文を投稿しました。

日刊工業新聞 取材

初めて新聞の取材を受けました。

2 月

幼馴染な新婚夫妻と旅行

なぜ...? でも楽しかったです。

KDD2020 論文投稿

フルリモート勤務機運

法政大 博士課程 入学試験・合格通

学内の推薦を使って秋季の博士課程入学試験を受けました *1。 推薦のおかげで面接のみで、いつもお世話になっていた先生方の前で 15 分ほど自分のこれまでやってきた研究と今後について話しました。 先生方に非常にウケがよく(すくなくとも自分はそう感じ、とてもやりやすかったです)、ほどなくして合格をいただきました。

修論 執筆・発表

3 月

人工知能学会全国大会 論文投稿

ACL2020 SRW 論文投稿

情報処理学会 2020 参加

言語処理学会 2020 発表

学位授与式

4 月

個人ページ新調

大学に入れなくなる

ACL2020 結果通知

不採択通知をいただきました。

We are sorry to inform you that the following submission was not selected by the program committee to appear at ACL 2020: XXXX. The selection process was very competitive. Our selection process was not based solely on the reviewers' assessment and scores, but also on discussions among reviewers, careful assessment by Area Chairs and Senior Area Chairs, and our goal to assemble a diverse, interesting and high-quality program. We have enclosed the reviewer comments for your perusal.

ACL2020 SRW 結果通知

採択通知と不採択通知をいただきました。

採択通知:

On behalf of the ACL SRW 2020 Program Committee, we are delighted to inform you that the following submission has been accepted to appear at the workshop: XXXX. The Program Committee worked very hard to thoroughly review all the submitted papers. The reviews are attached below. Please follow the suggestions included in the reviews when you revise your paper.

不採択通知:

I am sorry to inform you that the following submission was not selected by the program committee to appear at ACL SRW 2020: XXXX. The selection process was very competitive. Due to time and space limitations, we could only choose a small number of the submitted papers to appear on the program.

このときに採択された論文とその概要です。

arxiv.org

博士課程スタート

学生生活初めてのオンライン講義がスタートしました。

5 月

研究室運動会 (canceled)

例年は 5 月に研究室所属メンバー全員で小金井公園にて運動会をやっていましたが、今年はキャンセルになりました。 http://iyatomi-lab.info/% E3%83%9F% E3%83%8B% E3%83%96% E3%83% AD% E3%82% B0/2019-5-22-0iyatomi-lab.info

小倉唯ライブ (canceled)

TACHIKAWA STAGE GARDEN 2 講演、ロームシアター京都 メインホール 2 講演、愛知一宮市民会館 1 講演に参戦予定でしたがキャンセルになりました。

KDD2020 結果通知

不採択通知をいただきました。

We are sorry to inform you that your submission, XXXX: YYYY, has not been accepted to KDD 2020.

6 月

人工知能学会 2020 オンライン

小倉唯ライブ (canceled)

東京ガーデンシアター 1 講演に参戦予定でしたがキャンセルになりました。

AACL2020 論文投稿

論文を投稿しました。

7 月

ACL2020 参加

オンラインでした。

ACL2020 SRW 発表

オンラインでポスター発表をしました。

東京女子医大 訪問

指導教員の先生の指導教員の先生が python まわりで困っているとのことでお手伝いに行きました。 結局優秀な後輩ががんばってくれたので僕は特に何もせずに見ているのみでした。

オンライン研究室紹介 撮影

そして公開された研究室紹介はこちら。

8 月

論文投稿→勉強会発表→金沢旅行を 10 時間以内にやる過密スケジュールがありました。

WSDM2021 論文投稿

投稿しました。

ACL2020 オンライン LT 会

発表しました。

shunk031.hatenablog.com

GoTo 金沢

1 週間ほど金沢にいました。

9 月

ACL2020 オンライン読み会

発表しました。

shunk031.hatenablog.com

AACL2020 結果通知

不採択通知をいただきました。

We are sorry to inform you that the following submission was not selected by the program committee of AACL-IJCNLP 2020: XXXX. The selection process was very competitive. Our selection process was not based solely on the reviewers' assessment and scores, but also on discussions among reviewers, careful assessment by Area Chairs, and our goal to assemble a diverse, interesting and high-quality program.

AACL2020 SRW 論文投稿

AACL2020 の論文を元に SRW へ投稿をしました。

IEEE/ACM TASLP 論文投稿

投稿しました。

10 月

GTC Japan TA

WSDM2021 結果通知

不採択通知をいただきました。

Thank you for submitting your work to WSDM 2021. We regret to inform you that your submission below was not selected for the WSDM 2021 conference: XXXX. This year we received 603 submissions. We were able to accept only 112 of these, representing an acceptance rate of 18.6%. Due to the limited number of available slots in the conference schedule, we unfortunately had to make very difficult decisions and decline many submissions. The program committee worked very hard to thoroughly review all the submitted papers, and to provide suggestions to improve your paper. All papers were reviewed by at least three program committee members, and by at least one senior PC member to oversee discussion amongst the reviewers and provide an overall recommendation for the paper. Please find the reviews for your paper below. We hope these will be useful to revise your work for future submissions.

AACL2020 SRW 結果通知

採択通知でした。

On behalf of the AACL-IJCNLP 2020 SRW Program Committee, we are delighted to inform you that the following submission has been accepted to appear at the workshop: XXXX. The Program Committee worked very hard to thoroughly review all the submitted papers. Please repay their efforts by following their suggestions when you revise your paper.

このときに採択された論文とその概要です。

arxiv.org

11 月

GoTo 京都

1 週間ほど京都にいました。

https://twitter.com/shunk031/status/1328555581293162497

NAACL2020 論文投稿

投稿しました。

12 月

AACL2020 SRW 発表

オンラインでポスター発表をしました。

IEEE/ACM TASLP 結果通知

不採択通知をいただきました。

I am writing to you concerning the above referenced manuscript, which you submitted to the IEEE Transactions on Audio, Speech and Language Processing. Based on the enclosed set of reviews, I regret to inform you that your manuscript has been rejected for publication.

論文投稿

今年は初めて後輩の共著に入って論文を投稿しました。 また主戦場をトップカンファレンスに移しつつ、初めてジャーナルへ論文を投稿しました。 目標として「まず打席に立つ」を意識しつつ、論文の書き方を模索した一年でした。

ACL2020

  • レビュー結果
    • [R] 1, 2.5, 2
  • お気持ち
    • 初めての NLP 系トップカンファレンスへの投稿でした
    • かなり厳しいコメントがいくつかあってでぴえんでした

ACL2020 SRW

  • レビュー結果
    • [A] 4, 4, 3.5
    • [R] 2.5, 3.5
  • お気持ち
    • 初めての SRW 投稿。それぞれ後輩と留学生とともに書きました
    • 非常に丁寧なコメントとメンタリングで驚きました
    • R の方もコメントはポジティブだったため、AACL の short へ投稿することに

AACL2020

  • レビュー結果
    • [R] 2, 3, 2.5
  • お気持ち
    • AACL は第 1 回目の開催であるし、アジアの言語に特化した話だったのでイケるのではと思っていました
    • 結果を受け止め AACL2020 SRW へ投稿することに

AACL2020 SRW

  • レビュー結果
    • [A] 3.8, 2.6, 4.2
  • お気持ち
    • 全体的にポジティブなコメントが多く報われました

NAACL2021

  • Under review

KDD2020

  • レビュー結果
    • [R] R, R, WA
  • お気持ち
    • 核心をつくレビューを頂き、それをベースに修正して WSDM 2021 へ投稿することに

WSDM2021

  • レビュー結果
    • [R] WA, WA, R, A
  • お気持ち
    • 全体的にかなり良い評価だったが 1 人のレビュアに引っ張られた形に
    • 諦めがつかないのでアップデートを準備し、 KDD 2021 へ投稿することに

IEEE/ACM TASLP

  • レビュー結果
    • [R] R, MR, R
  • お気持ち
    • Transformer/BERT と比べてほしいらしいです

番外編

買ってよかったもの

www.apple.com

store.google.com

www.dell.com

www.ankerjapan.com

読んだ本・読んでいる本

Science Research Writing For Non-Native Speakers Of English

Science Research Writing For Non-Native Speakers Of English

まとめ

  • たくさん失敗する中で、成功したときの嬉しさがあった
  • 楽しく研究をやって、論文をたくさん書いていく
  • いろいろな方たちと関わって、様々なことを学んでいく

*1:春季にはまだ博士課程進学を迷っていました。ここらへんの心境の変化はどこかでなにか書ければよいかなと。

最新の深層学習技術による古典くずし字認識の現状と今後の展望

こんにちは。@shunk031 です。 普段は最先端の技術が大好きなパソコンのオタクですが、京都へ旅行して古き良き日本の文化に感化されました。

この記事は 法政大応情 Advent Calendar 2020 21 日目の記事です。

f:id:shunk031:20201221153136p:plain
From http://codh.rois.ac.jp/

今回は日本古典籍の分類タスクについて取り組んでみようと考え、近年の日本古典籍における「くずし字認識」に着目して調査をしました *1。 日本古典籍といった古文書に対して、OCR 等の文字認識技術によって文字情報をデジタル化し、それらの情報をもとに解析を行う流れは現代では自然だと考えています。 しかしながら、一般的に OCR は難しく、また古文書を機械に解析させることはさらなる困難があるのは容易に想像できます。

くずし字認識に対して、近年の取り組みでは ROIS-DS 人文学オープンデータ協働センターが Kaggle にて「くずし字認識コンペティション」を主催したのは記憶に新しいです。

www.kaggle.com

私はこれまで日本語や中国語の特徴的な文字の形状を考慮した自然言語処理の研究に取り組んできました *2*3。 これらの研究は深層学習モデルである convolutional neural network (CNN)*4 を元にしており、文字を文字画像に変換し文字形状を保持するような訓練を行い予測に利用するモデルを構築しています。 こうした枠組みはくずし字認識においても一定の効果が見込めそうな一方で、現状のくずし字認識タスクで高いパフォーマンスを題しているモデルや予測の枠組みを把握しておりませんでした。

本記事では、まず日本古典籍における「くずし字認識」タスクの現状について述べます 次に Kaggle で開催されたコンペティションの上位解法をまとめます。 これらのまとめから得られた現状について、既存の手法でどの程度認識可能であるか、また研究としてどのような点で貢献可能かの展望について個人的に考えた考察を含め議論・検討します。

くずし字認識 と 深層学習

深層学習モデルで くずし字 を認識しようと考えたときに一番初めに必要になってくるものはモデルの学習用のデータです。 ROIS-DS 人文学オープンデータ共同利用センター (CODH)*5 では、デジタル化された古典籍を中心に、翻刻テキストを制作する過程で生まれるくずし字の座標情報などを、機械のための学習データや人間のための学習データ である 日本古典籍くずし字データセット を提供しています *6

codh.rois.ac.jp

日本古典籍データセットで公開されるデジタル化された古典籍を中心に、翻刻テキストを制作する過程で生まれるくずし字の座標情報などを、機械のための学習データや人間のための学習データとして提供します。

2019 年 11 月現在、日本古典籍くずし字データセットの規模は、国文学研究資料館所蔵で日本古典籍データセットにて公開する古典籍、および国文学研究資料館の関係機関が公開する古典籍 44 点の画像データ 6,151 コマから切り取った、くずし字 4,328 文字種の字形データ 1,086,326 文字です。

CODH では日本古典籍くずし字データセットを用いた AI くずし字 OCR サービスとして「KuroNet くずし字認識サービス」を公開しています *7。 この AI くずし字 OCR サービスのコア技術として、KuroNet と呼ばれる深層学習をもとにしたくずし字認識の枠組みが使われているようです。次にこの技術の概要について述べます。

KuroNet

KuroNet *8*9 は、U-Net ベースのアーキテクチャである FusionNet *10 を使用して、文字のレイアウトが標準化されていない古典籍のページ画像からくずし字群を認識する深層学習モデルです。 このモデルは前処理を必要とせず、ページ内から得られる広い範囲のコンテキスト情報や大規模な語彙の獲得、標準化されていない文字レイアウトを適切に処理することが可能となっています。

前述のとおりモデルは U-Net をベースにしており、入力としてシンプルに 640x640 にリサイズした古典籍画像を使用しています。 特筆すべき点は mixup を画像のみミックスさせてラベルはミックスさせないで使用している点です。 この設定は文献 *11 と同様の設定のように見えます。

これらの取り組みの初期段階は NeurIPS'18 のワークショップに採択されており *12、非常に注目されておりました。 特に、KuroNet を始めとしたくずし字認識に取り組まれている CODH の @tkasasagi 氏と Google@hardmaru 氏らがチームを組んで研究しているのは珍しく、個人的にも注目しておりました。

こうしたくずし字認識の取り組みを加速させるために、@tkasasagi 氏ら中心となり Kaggle でくずし字認識のコンペティションを開催しておりました。 くずし字認識タスクの現状の upper bound や使われている手法を調査する上で、上位解法の概要を知ることは重要です。 次のセクションにて、このコンペティションの上位解法について調査した結果を述べます。

Kuzushiji Recognition - Opening the door to a thousand years of Japanese culture

Kuzushiji Recognition - Opening the door to a thousand years of Japanese culture機械学習コンペティションをホストする Kaggle にて 2019 年 7 月から 10 月に開催されたコンペティションです。 ROIS-DS 人文学オープンデータ共同利用センター をはじめ、大学共同利用機関法人 人間文化研究機構 国文学研究資料館大学共同利用機関法人 情報・システム研究機構 国立情報学研究所 がホストしています。

コンペティションの目的と評価の概要は以下のとおりです:

  • 目的
    • 文書画像からくずし字の位置を検出し、くずし字の種類を分類する
  • 評価
    • 与えられたデータからくずし字が書かれた文書画像 (3881 枚)、くずし字の位置を示すバウンディングボックス、字の種類を認識し、その精度を競う

このセクションでは、まず上位解法で採用されているモデルや手法について全体的な傾向を示し、その後それぞれの手法の概要について述べます。

全体的な傾向

入力画像の文字の位置 (中心座標) および文字種を認識するタスクであるため、コンピュータビジョン分野で発展してきた深層学習モデルが中心に使用されていました。 コンペティションにおいて、文字の検出 (detection) と文字の認識 (classification) を同時に行う手法もあれば、個別に行う手法がありました。 以下は使用されている手法群です。

Data augmentation

  • Method
  • Framework
    • albumentations *16

Model architecture

  • Detection
  • Classification
    • Model
      • HRNet *29
      • EfficientNet *30
      • SEResNeXt *31
      • Convolutional Reccurent Neural Network (CRNN)*32
      • MobileNet V3 *33
  • Others
    • Loss function
      • Focal loss *34
      • Class-balanced loss *35
      • SoftTriplet Loss *36
    • Text Detection
      • Connectionist Text Proposal Network (CTPN)*37
      • Connectionist Temporal Classification (CTC)*38
    • Language Modeling
    • Training techniques
      • Pseudo labeling *40
      • Pre-trained model in weakly supervised learning (WSL) on 940 million public images with 1.5K hash tags *41
      • Bag of Tricks for Image Classification *42
    • Domain Adaption
      • Domain adversarial neural network (DANN)*43

上位解法

このセクションではくずし字認識コンペティションにおける上位解法の概要について述べます。 解法に関しては、discussion にて公開されている情報や公開されているコードから読み取れる情報をもとに、以下の形式でまとめます:

  • Preprocess
    • 前処理について記述
  • Data split
    • 学習用データをどのように分割してモデルの学習に利用したかについて記述
  • Model architecture
    • モデルのアーキテクチャについて記述
      • モデルが single-stage /multi-stage かどうか
      • data augmentation の有無やその種類
      • pseudo labeling の有無や適用方法
      • モデルアンサンブルの有無や適用方法
  • Discorded ideas / Future work
    • 試してみたがあまり効果がなかった方法
    • 今後試してみたい方法

なお、学習用データの分割には book title を元にした分割が多く見受けられました。 これは古典籍 (ここでいう book) ごとに特徴があり、そうした特徴が評価時に leak しないようにするためです。

1st place solution

Preprocess

  • 学習時
    • 1024x1024 になるようにクロップ & リサイズ
  • 推論時
    • 最大のサイズを設定して、そのサイズで推論

Data split

Model architecture

Single-stage なアーキテクチャを使用。

  • Cascade R-CNN
    • HRNet w32 (LB: 0.935)
      • train scales: 512 ~ 768
      • test scales: 0.5, 0.625, 0.75
    • HRNet w48 (LB: 0.946)
      • train scales: 768 ~ 1280
      • test scales: 0.75, 0.875, 1.0, 1.125, 1.25
  • Ensemble
    • HRNet w32 & HRNet w48 (LB: 0.950)

Discorded ideas / Future work

  • N/A

2nd place solution

Preprocess

  • Detection phase
    • 学習時
      • ページの高さが 1500px になるようにリサイズし、512x384 にクロップして学習
    • 推論時
      • ページ全体を使って推論
  • Classification phase
    • 2500 ~ 3000px の高さの画像から 512x768 をクロップして学習

Data split

  • book title-based group 5 fold cross validation

Model architecture

Multi-stage (First level model -> Second level model) なアーキテクチャを使用。

First level model
  • Detection phase
    • Faster R-CNN
      • 文字のクラスは当てない
      • ground truth と重なりが少ない bbox に対して、追加のクラス seg_fp (segmentation false positive) を定義してセグメンテーションモデルの誤りを修正するようにした
      • ResNet152 をバックボーンに使用
      • torchvision を使用
      • data augmentation
        • albumentations を使用
          • scale, minor color augmentations (hue/saturation/value)
  • Classification phase
    • resnetxt101_32x8d_wsl (LB: 0.935 (0.925 - 0.930))
      • ImageNet よりも大きいデータセットを用いて弱教師あり学習で学習
      • ハイパーパラメータに非常に敏感であった
        • gradient accumulation では敏感さを吸収しきれなかった
      • GTX 2080Ti で resnext101_32x8d_wsl を訓練するために
      • SGD より Adam が良かった
      • data augmentation
        • albumentations を使用
          • hue/saturation/value, random brightness, contrast, gamma
      • Test time augmentation (TTA)
        • 4 different scales
    • resnext101_32x8d_wsl & resnet152 (LB: 0.941)
  • Pseudo labeling
Second level model

First-level model において cross valiadtion によってデータセット全てに対して得られた予測を用いて、 LightGBMXGBoost をアンサンブルした second level model を訓練している。

  • このモデルは 5k クラス分類問題であった cdiscount 画像分類チャレンジおける Pavel Ostyakov の解法にインスパイアされている
  • Classification phase で得られた 4 種類のモデルそれぞれにおいて、予測クラスと上位 3 つの予測スコアを特徴量として入力。他の bbox との最大オーバーラップ量も追加している
    • これらの予測クラスと seg_fp クラスを使って、これら予測の候補になりそうな候補クラスが予測すべき真のクラスかどうかを 2 値分類問題として学習した

Discorded ideas / Future work

3rd place solution

Preprocess

Data Split

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • train detection model with all train images
    • validate with public leaderboard
  • Classification
    • book-level split
      • validation: book_title=200015779 train: others
      • validation: book_title=200003076 train: others

Model architecture

  • Detection
    • Faster R-CNN
      • ResNet101 backbone
      • Multi-scale train & test
      • Data augmentation
        • brightness, contrast, saturation, hue, random grayscale
        • no vertical and horizontal flip
  • Classification
    • ensemble 5 classification models (hard voting)
      • EfficientNet-B4
        • Grayscale, 190x190, mixup + random erasing, valid book 200015779
      • ResNet152
        • Grayscale, 112x112, mixup + random erasing, valid book 200015779
      • SE-ResNeXt101
        • RGB, 112x112, mixup + random erasing, valid book 200015779
      • SE-ResNeXt101
        • RGB, 112x112, ICAP + random erasing, valid book 200003076
      • ResNet152
        • RGB, 112x112, ICAP + random erasing, valid book 200003076
    • Pseudo labeling
  • Post processing

Future work

  • SoftTriple loss の利用
    • 変体仮名の分類には SoftTriple loss が特に有効な雰囲気
  • 分類に文字のアスペクト比を使用
    • 今回文字認識する際に書く文字のアスペクト比を考慮せずに一定のサイズへリサイズしている
    • アスペクト比は文字認識に有効な特徴の1つであると考えられるために分類モデルへ特徴として入力すべきだった

4th place solution

Preprocess

Data split

Model architecture

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • Hybrid Task Cascade (HTC) で文字を認識
    • Connectuinust Text Proposal Network (CTPN) で各行のテキストを認識
  • Classification
    • Convolutional recurrent neural network (CRNN) で文字認識
      • CNN + LSTM + connectionist temporal classification (CTC)
      • CTC モデルのアラインメント精度を上げるためにマルチタスク学習として attention 機構を導入 *44
    • Kenlm による 6-gram 言語モデルを学習し、CTC の出力をデコードするために beam search を使用
      • 各文字の位置は元の画像の各行の座標と CTC の出力を考慮して計算
    • Data augmentation
      • CLAHE, solarize, random brightness, random contrast, random scale random distort
  • Ensemble
    • 使用しなかった

Discorded ideas / Future work

  • Classification
    • CRNN における RNN (今回は LSTM を使用) の有無と multi-task learning について
      • LSTM 層の有無
        • LSTM 層のないモデルでは位置予測は正確だが文字認識精度は低くなる
        • LSTM 層を加えると位置予測が不正確になる
      • Multi-task learning の有効性
        • 出力を制御するような attention を導入することで CRNN の位置予測精度が向上
    • Attention ベースのネットワークは CTC より精度が悪かった
      • 精度は ResNet > VGG だった
      • ResNeXt や SENet は性能が上がらなかった。
      • CRNN における LSTM が 2 層以上になると精度が悪化した

5th place solution

Preprocess

  • N/A

Data split

  • 10 fold cross validation

Model architecture

Single-stage (Detection & Classification) なアーキテクチャを使用。

  • CenterNet
    • Hourglass network を ResNet50 or ResNet101 + FPN decoder へ変更
    • loss を penalty-reduced pixel-wise logistic regression with focal loss by binary cross-entropy に変更
    • head を無くした
    • CenterNet は gaussian カーネルを用いるが、よりシンプルなカーネルを使用した
    • ResNet101 に bag of tricks を適用した
      • timm の gluon_resnet101_v1d を使用すると bag of tricks 適用モデルが使用できる
    • data augmentation
      • shift scale rotate, random crop, clahe, gauss noise, gaussian blur, random brightness contrast, rgb shift, hue saturation
  • Ensemble

Discorded ideas / Future work

  • multi-stage なアプローチ
    • detection してから classification
  • 解像度を上げる
    • 1536x1536 で試していたけどこれ以上解像度を上げても予測結果に変化はなかった
  • 文字の種類を増やす

7th place solution

Preprocess

  • N/A

Data split

  • Book title-based group split

Model architecture

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • CenterNet
      • in: 512x512, out: 128x128
      • data augmentation
        • cropping, brightness, contrast, horizontal flip
  • Classification
    • ResNet based
      • in: 64x64
      • data augmentation
        • cropping, erasing, brightness, contrast
      • pseudo labeling

Discorded ideas / Future work

  • LSTM による言語モデル
    • 改善幅は小さかった
  • DANN のようなドメイン適応モデル
    • pseudo labeling をしたほうが良かった

8th place solution

Preprocess

  • N/A

Data split

  • Book title-based 4 fold cross validation

Model architecture

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • CenterNet
      • ResNet18 + U-Net
      • full training set to train single model
      • TTA: scale adjustment -> multi-scale + bbox voting
  • Classification
    • MovileNet V3
    • standard softmax cross entropy loss
    • training: use full training set to train single model
    • fine-tuning: use full training set + pseudo label
    • No TTA

Discarded ideas / Future work

  • Clasification
    • 少ないクラスをオーバーサンプリングする方法
    • Class-balanced loss
    • 言語モデリング
  • Detection / Classification
    • CODH で公開されている (ラベルがついていない) 文字画像を使った半教師あり学習

9th place solution

Preprocess

Data split

  • book title-based group 5 fold cross validation

Model architecture

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • CenterNet
      • HourglasNet
      • ResNet34
  • Classification
    • ResNet18
    • Data Augmentation
    • pseudo labeling

Discorded ideas / Future work

13th place solution

Preprocess

  • 学習時・推論時
    • 512x512 に画像をリサイズ
    • 画像をグレースケールへ変換

Data split

  • N/A

Model architecture

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • Faster R-CNN
      • ResNet34 を backbone に使用
        • 一般的な ResNet34 の畳み込みフィルタの 2 倍のフィルタ数を設定した
      • 入力はカラー画像
      • Region Proposal Network (RPN) と後段の classifier は層を共有しないようにした
        • RPN と classifier を互いに独立して変更可能のため、実験が容易になった
      • アンカーのサイズを任意に選ぶのではなく、ground truth の bounding box の高さと幅に対して k-means でクラスタリングを実行してアンカーサイズを選択した
        • クラスタの中心をアンカーボックスのサイズとして利用した
      • 一般的な ROI pooling の代わりに ROI Align pooling を使用した
        • ROI Align pooling の方がわずかに良い結果が得られた
  • Classification
    • ResNet34
      • 入力はグレースケース画像
      • 一般的な ResNet34 の畳み込みフィルタの 3 倍のフィルタを設定した
        • ResNet50 や ResNet101 等で実験をしたが、今回の設定のように wide で shallow なほうがよかった
      • Residual block の部分にも dropout を導入した

Discard ideas / Future work

  • くずし字認識結果を補正する後処理に言語モデルを活用しようとして失敗
    • 人間が読む順番に近い形に文字順を整理する
      • クラスタリング等を使い、ソート
        • DBSCAN を使って文字を列ごとにグループ化
        • グループ化した文字の列に対して水平方向の平均座標でソート
        • 各列内の文字を垂直方向に座標でソート
      • 以上の操作はほとんどの画像データで正常に機能した
    • 補正処理を行う correction network を訓練する
      • ground truth を使って認識誤りを含む結果を擬似的に多数生成した
        • これらの認識誤り結果は現実的なものだった
        • Fater R-CNN ベースのモデルが cross validation 下でどのように動作するかの統計情報を元にランダムに誤りを追加
    • くずし字認識誤りを補正する言語モデルを訓練する
      • 英語から日本語へ翻訳する以下のようなエンコーダデコーダモデルを作成して試した
        • 試したモデルの例
          • Attention 機構付き LSTM ベースの seq2seq モデル
          • Transformer ベースのモデル
        • これらは正しく修正できた箇所よりも多くの補正誤りを引き起こしてしまった
        • 最終的には単純な bi-directional GRU を使用した
      • ベースラインモデルに近いあまり強力ではないモデルではうまく動作したが、ベストなモデルではあまり効果的に動作しなかった
      • 外部のテキストコーパスを使用することで、言語モデル自体の性能を向上させる必要がありそう

15th place solution

Preprocess

Data split

  • train:test = 80:20

Model architecture

Multi-stage (Detection -> Classification) なアーキテクチャを使用。

  • Detection
    • 以下の 2 段階の CenterNet によってくずし字に対する bonding box を予測
      • 各段階は 2 つの CenterNet を用いて構成
        • CenterNet (1)
          • 入力として、512x512 へリサイズした画像を使用し、予測 bbox (1) を得る
          • bbox (1) を使って画像内の最も遠い予測における外側の bbox を取り除く
        • CenterNet (2)
          • 入力として、512x512 へリサイズした画像を使用
          • bbox (1) と bbox (2) をアンサンブル
      • 最終的な detection model の構成は以下:
        • CenterNet1: 1 段階目における 2 つの CenterNet のアンサンブル
          • data augmentation:
            • horizontal movement, brightness adjustment
        • CenterNet2: 2 段階目における 2 つの CenterNet のアンサンブル
          • data augmentation:
            • random erasing, horizontal movement, brightness adjustment
  • Classification
    • 以下の 3 段階による文字種を認識
      • Detection phase によって得られた検出結果をもとにクロップシ、64x64 に画像をリサイズ
      • ResNet ベースのモデルを 3 つアンサンブル・9 種の horizontal movement による TTA により、分類結果を得る
        • ResNet base (1)
          • log (bounding vox aspect ratio) の特徴を全結合層の部分に入れたモデル
        • ResNet base (2)
          • ResNet base (1) とは学習データを変えたモデル
        • ResNet base (3)
          • ResNet base (1) と同様だが pseudo labeling によるデータで訓練
      • 以上のモデルを 3 つ作りアンサンブル
        • 3 x ((ResNet base (1) + (2) + (3)) x 9)
      • data augmentation
        • horizontal movement, rotation, zoom, random erasing

Discorded ideas / Future work

  • N/A

上位解法を踏まえた研究貢献可能点について

上記の上位解法を踏まえたうえで、くずし字認識に対して研究の面でどのように貢献できるかを考えます。 高精度なくずし字認識を実現するためには主に以下の 2 つの視点から既存の課題を解決することが重要です:

以下では、これら 2 つの分野における視点に対して私の考える研究貢献可能点について検討しました

なお、くずし字認識というタスクにおいて実行速度はあまり重要ではないと考えました。タスクの性質上リアルタイム性はあまり必要なく、少し時間がかかっても精度の高い予測を提供することが重要であると考えたためです。 以下は全体的なモデルのパラメータ数が増えてしまうアイディアも存在しますが、上記のシチュエーションを踏まえて検討しております。

コンピュータビジョンからの視点

デジタル化された古典籍の画像から高精度に「文字検出」し、検出した文字を「文字認識」する必要があることがわかりました。 これらはコンペティションの解法では multi-stage なアーキテクチャとして現れております。 以下では、「文字検出」と「文字認識」の観点から、研究として取り組んでみたいことを列挙します。

文字検出モデルの予測精度向上

文字検出において重要なのは、画像中に複数存在するくずし字に対する detection モデルの精度向上です。 今回私は より高解像度の画像から比較的小さな物体を検出可能な軽量且つ高精度 detection モデル について検討しました。

高解像度な画像から小さな物体を検出可能な軽量かつ高精度な detection モデル

一般的に、高解像度な画像を入力として与えると予測精度はより向上することが知られており、上位解法においても比較的解像度の高い 1000x1000 以上の画像を入力とするモデルが効果的であることが示唆されております。

また、detection モデルを cascade する構造を持つ Cascade R-CNN が有効であることもわかりました。 しかしながらなぜこうした構造が有効であるかは明らかにはなっていません。

以下は 高解像度な画像を扱える軽量かつ高精度な detection モデル画像中に小さい物体が複数存在する検出タスクに強い detection モデル の 2 つの側面からくずし字認識に適する検出モデルを検討します。

  • 高解像度な画像を扱える軽量かつ高精度な detection モデルの検討
    • 高性能なモデルは一般的にパラメータ数が多く、訓練には大規模な GPU マシンが必要
      • より高解像度な画像を入力とすると、さらに規模の大きい計算機環境が必要になる
    • 近年では以下のような軽量かつ高精度なモデルが提案されている
      • EfficientDet *45
      • Scaled-YOLOv4 *46
      • Yolov5 *47
  • 画像中に小さい物体が複数存在する検出タスクに強い detection モデルの検討
    • Cascade R-CNN が有効であったのは、おそらく cascade した detector が段階的に IOU の閾値を厳しくしていき予測 bounding box のリファインを効率的に行えているから
      • こうした学習は画像中に存在する比較的小さめな物体 (今回はくずし字) が多数現れるくずし字認識タスクと相性が良いのだろうと予想できる
      • Cascade R-CNN の構造を参考に、小さい物体を効率的に認識可能な detection モデルを検討することが有効であると示唆される

文字認識モデルの予測精度向上

文字認識において重要なのは、detection によって得られたくずし字領域に対する classification モデルの精度向上です。 今回私は generative adversarial network (GAN)*48 を用いた 文字画像生成による data augmentation について検討しました。

GAN によるくずし字画像 data augmentation

上位解法からもわかるように、classification モデルを学習させる上で効果的な data augmentation が重要です。 今回私は擬似的にくずし字を生成して data augmentation として活用する方法を検討しました。 昨今では GAN によるさまざまな data augmentation 手法が提案されており、特にフォントを生成するような事例は特に成功しているように見えます。 こうした枠組みを応用することでくずし字認識の精度向上が期待できると考えています。

  • 一般的な GAN による data augmentation
    • Data Augmentation GAN (DAGAN )*49
    • Prototype Matching Networks (PMN) *50
    • CNN-AUG-GAN *51
  • フォントの自動生成
    • Font を生成する GAN *52
    • 少ない訓練サンプルからフォントを生成 *53

自然言語処理からの視点

今回対象である古典籍は、時代は違えど同じ人間が自然言語として記述したものです。 したがって、背後には言語モデルが存在し、その言語モデルに従って言語が現れていると捉えることができます。 こうした言語モデルを適切に捉えることにより、意図しない文字の列が現れないように補正しようというアイディアは非常に面白いものだと個人的に感じます。 しかしながら、コンペティションではあまり効果がないという報告が少なからずありました。

今回私は、言語モデルを用いて文字認識結果の補正を行うというアイディアに対して、自然言語処理的な観点で補正を行う 言語モデルの予測精度をどのように向上させるか を検討しました。 昨今使われている現代語による言語モデルの学習事例は星の数ほどありますが、古語に対して言語モデルを学習する事例はほとんどありません。 こうした古語に対するモデルの学習は古語に適した学習法の検討が必要だと考えております。

言語モデルの予測精度向上

学習データの多い、いわゆるリソースの多い現代語で成果を上げているモデルをそのままリソースの少ない古語に適用するのは困難であることは容易に想像できます。 今回私は リソースの多い言語からリソースの少ない言語への転移学習 について検討しました。

リソースの多い言語から少ない言語への転移学習

深層学習は一般的に大規模な学習データが必要であるため、今回の古語のようなリソースが限られている対象をそのまま学習させるのは非常に難しいです。 上位解法には翻訳モデルを使って日本語から英語に変換する補正ネットワークを検討している事例がありましたが、このような難しさによって効果的な補正ネットワークを学習できていないと個人的には考えております。

近年は大規模なラベルなしデータによって訓練された事前学習モデルとして BERT *54 等が存在しており、広く使われてくるようになりました。 BERT はタスクに特化した fine-tuning により少量の学習データから精度の高い予測が可能になる一方で、今回のような同じ言語(日本語)における現代語(事前学習)と古語(fine-tuning)という設定はこれまでに存在しないように思えます。 個人的な興味ですが、こうした現代語から古語の特徴をどれだけ捉えられることが可能かは、くずし字認識に限らず非常に面白い研究トピックの一つになりうると考えています。

おわりに

本記事では、日本古典籍における「くずし字認識」タスクの現状について述べました。 また Kaggle で開催されたコンペティションの上位解法をまとめました。 これらのまとめから得られた現状について、既存の手法でどの程度認識可能であるか、また研究としてどのような点で貢献可能かの展望について個人的に考えた考察を含め検討しました。

コンピュータビジョンと自然言語処理の観点から、私が検討した研究貢献点はおそらくこれまで学術的に検討されていない点が多く含まれていると感じます。 これらは一見すぐに本質的な改善が見られないかもしれませんが、腰を据えてじっくりと取り組むと面白い洞察が得られるのではないかと確信しております。

*1:実は今期の博士課程のコースワークの課題でもあります。

*2:[1810.03595] End-to-End Text Classification via Image-based Embedding using Character-level Networks https://arxiv.org/abs/1810.03595

*3:[2006.11586] AraDIC: Arabic Document Classification using Image-Based Character Embeddings and Class-Balanced Loss https://arxiv.org/abs/2006.11586

*4:Gradient-based learning applied to document recognition - IEEE Journals & Magazine https://ieeexplore.ieee.org/abstract/document/726791

*5:ROIS-DS 人文学オープンデータ共同利用センター / ROIS-DS Center for Open Data in the Humanities (CODH) http://codh.rois.ac.jp/

*6:日本古典籍くずし字データセット | ROIS-DS 人文学オープンデータ共同利用センター http://codh.rois.ac.jp/char-shape/

*7:KuroNet くずし字認識サービス(AI OCR) | ROIS-DS 人文学オープンデータ共同利用センター (CODH) http://codh.rois.ac.jp/kuronet/

*8:[1910.09433] KuroNet: Pre-Modern Japanese Kuzushiji Character Recognition with Deep Learning https://arxiv.org/abs/1910.09433

*9:KuroNet: Regularized Residual U-Nets for End-to-End Kuzushiji Character Recognition | SpringerLink https://link.springer.com/article/10.1007/s42979-020-00186-z

*10:[1612.05360] FusionNet: A deep fully residual convolutional neural network for image segmentation in connectomics https://arxiv.org/abs/1612.05360

*11:[1801.02929] Data Augmentation by Pairing Samples for Images Classification https://arxiv.org/abs/1801.02929

*12:[1812.01718] Deep Learning for Classical Japanese Literature https://arxiv.org/abs/1812.01718

*13:[1708.04896] Random Erasing Data Augmentation https://arxiv.org/abs/1708.04896

*14:[1710.09412] mixup: Beyond Empirical Risk Minimization https://arxiv.org/abs/1710.09412

*15:[1811.09030] Data Augmentation using Random Image Cropping and Patching for Deep CNNs https://arxiv.org/abs/1811.09030

*16:Information | Free Full-Text | Albumentations: Fast and Flexible Image Augmentations https://www.mdpi.com/2078-2489/11/2/125

*17:[1506.01497] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks https://arxiv.org/abs/1506.01497

*18:[1906.09756] Cascade R-CNN: High Quality Object Detection and Instance Segmentation https://arxiv.org/abs/1906.09756

*19:[1901.07518] Hybrid Task Cascade for Instance Segmentation https://arxiv.org/abs/1901.07518

*20:[1904.07850] Objects as Points https://arxiv.org/abs/1904.07850

*21:[1612.03144] Feature Pyramid Networks for Object Detection https://arxiv.org/abs/1612.03144

*22:[1505.01749] Object detection via a multi-region & semantic segmentation-aware CNN model https://arxiv.org/abs/1505.01749

*23:[1505.04597] U-Net: Convolutional Networks for Biomedical Image Segmentation https://arxiv.org/abs/1505.04597

*24:[1603.06937] Stacked Hourglass Networks for Human Pose Estimation https://arxiv.org/abs/1603.06937

*25:[1703.06870] Mask R-CNN https://arxiv.org/abs/1703.06870

*26:facebookresearch/detectron2: Detectron2 is FAIR's next-generation platform for object detection and segmentation. https://github.com/facebookresearch/detectron2

*27:open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark https://github.com/open-mmlab/mmdetection

*28:pytorch/vision: Datasets, Transforms and Models specific to Computer Vision https://github.com/pytorch/vision

*29:[1908.07919] Deep High-Resolution Representation Learning for Visual Recognition https://arxiv.org/abs/1908.07919

*30:[1905.11946] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks https://arxiv.org/abs/1905.11946

*31:[1709.01507] Squeeze-and-Excitation Networks https://arxiv.org/abs/1709.01507

*32:[1507.05717] An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition https://arxiv.org/abs/1507.05717

*33:[1905.02244] Searching for MobileNetV3 https://arxiv.org/abs/1905.02244

*34:[1708.02002] Focal Loss for Dense Object Detection https://arxiv.org/abs/1708.02002

*35:[1901.05555] Class-Balanced Loss Based on Effective Number of Samples https://arxiv.org/abs/1901.05555

*36:[1909.05235] SoftTriple Loss: Deep Metric Learning Without Triplet Sampling https://arxiv.org/abs/1909.05235

*37:[1609.03605] Detecting Text in Natural Image with Connectionist Text Proposal Network https://arxiv.org/abs/1609.03605

*38:Connectionist temporal classification | Proceedings of the 23rd international conference on Machine learning https://dl.acm.org/doi/abs/10.1145/1143844.1143891

*39:KenLM: Faster and Smaller Language Model Queries - ACL Anthology https://www.aclweb.org/anthology/W11-2123/

*40:Pseudo-Label: The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks - Workshop on challenges in representation learning, ICML. Vol. 3. No. 2. 2013.

*41:[1805.00932] Exploring the Limits of Weakly Supervised Pretraining https://arxiv.org/abs/1805.00932

*42:[1812.01187] Bag of Tricks for Image Classification with Convolutional Neural Networks https://arxiv.org/abs/1812.01187

*43:[1505.07818] Domain-Adversarial Training of Neural Networks https://arxiv.org/abs/1505.07818

*44:[1609.06773] Joint CTC-Attention based End-to-End Speech Recognition using Multi-task Learning https://arxiv.org/abs/1609.06773

*45:[1911.09070] EfficientDet: Scalable and Efficient Object Detection https://arxiv.org/abs/1911.09070

*46:[2011.08036] Scaled-YOLOv4: Scaling Cross Stage Partial Network https://arxiv.org/abs/2011.08036

*47:ultralytics/yolov5: v3.1 - Bug Fixes and Performance Improvements | Zenodo https://zenodo.org/record/4154370#.X92gpen7R24

*48:[1406.2661] Generative Adversarial Networks https://arxiv.org/abs/1406.2661

*49:[1711.04340] Data Augmentation Generative Adversarial Networks https://arxiv.org/abs/1711.04340

*50:[1801.05401] Low-Shot Learning from Imaginary Data https://arxiv.org/abs/1801.05401

*51:[1803.01229] GAN-based Synthetic Medical Image Augmentation for increased CNN Performance in Liver Lesion Classification https://arxiv.org/abs/1803.01229

*52:[1910.12604] FontGAN: A Unified Generative Framework for Chinese Character Stylization and De-stylization https://arxiv.org/abs/1910.12604

*53:[1701.05703] Automatic Generation of Typographic Font from a Small Font Subset https://arxiv.org/abs/1701.05703

*54:[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding https://arxiv.org/abs/1810.04805

コンピュータサイエンスのトップカンファレンスが示す再現性チェックリスト

こんにちは。@shunk031 です。機械学習モデルの実験をする際の乱数シード値は 19950815 を使っています。

この記事は 法政大応情 Advent Calendar 2020 10 日目の記事です。

f:id:shunk031:20201210200333j:plain
再現性を担保する上で多様な視点のチェック項目が必要です*1

研究において、再現性は非常に重要なポイントの 1 つです。 特に最近は機械学習や深層学習の研究における再現性について議論されております。 こうした研究において再現性を高める上で、当たり前ですが次の 2 点が重要です:

  • 再現可能な 実装 の公開
  • 再現可能な 論文 の公開

再現可能な実装の公開 については、先日私が寄稿した pyenv と poetry による再現可能な実験環境構築 が助けになるかもしれません。

data.gunosy.io

本記事では 再現可能な論文の公開 に焦点を当てます。 近年のコンピュータサイエンス分野におけるトップカンファレンスでは、著者に対して 再現性チェックリスト が示され、投稿時にこれらのチェックリストに従った論文であるかの確認があります。 こうした再現性チェックリストについての論文が arXiv に公開されていたりと、今後も注目される点だと感じております *2。 本記事の目的は、複数のトップカンファレンスから各カンファレンスがどのような点の再現性を求めているかを把握し、今後の執筆に役立てることです。

トップカンファレンスが要求する再現性

今回、独断と偏見で、人工知能分野 , 機械学習分野 , コンピュータビジョン分野 , 自然言語処理分野 から再現性に言及している以下のカンファレンスを対象としました:

各カンファレンスが示す再現性チェックリスト

以下は各カンファレンスが示す再現性の確認項目やチェックリストです:

上記で示されている再現性確認項目の中で、 Joelle Pineau 氏の The Machine Learning Reproducibility Checklist (2020/12/10 現在 v2.0) が複数登場しています。 次にこの再現性チェックリストについて詳しく見ます。

The Machine Learning Reproducibility Checklist

2020/12/10 現在の The Machine Learning Reproducibility Checklist の中身をざっくり日本語訳すると以下のとおりです。 なおこのチェックリストに加えて NAACL'21 で追加された項目がありました:

  • ✔ 論文中に提示されているモデルやアルゴリズムについて
    • 数式を用いたモデルやアルゴリズムの明確な説明
    • そのほか用いた定理等の明確な説明
    • アルゴリズムの複雑性 e.g., 時間複雑度、空間複雑度 etc
  • ✔ 理論的な主張について
    • 主張の明確さ
    • 完全な証明
  • ✔ 論文中で使われたすべてのデータセットについて
    • 統計量 e.g., サンプル数
    • データセットを train /validation/test 分割する際の詳細
    • データの前処理や予め取り除いたデータについての詳細
    • 使ったデータセットやシミュレーション環境をダウンロード可能なリンクの提示
    • 新たなデータを収集した場合、どのように収集したか e.g., アノテーターへの指示やクオリティを制御する方法 etc を明示
    • 言語の種類 e.g., 英語や日本語 etc. (NAACL'21)
  • ✔ 提案法の評価の際に実装したコードについて
    • 依存コード・アプリケーションの明示
    • 学習用コード
    • 評価用コード
    • (事前) 学習済みモデル
    • 以下の情報が含まれている README ファイル
      • 結果の表
      • コードの実行方法
  • ✔ 論文中で報告されているすべての結果について
    • ハイパーパラメータについての詳細
      • ハイパーパラメータの範囲
      • どのようにハイパーパラメータの値を選択したか e.g., manual tuning, uniform sampling, etc.
      • どのようにハイパーパラメータを評価したか e.g., accuracy
      • 報告されている結果を再現する上で必要なすべてのハイパーパラメータの設定
      • ハイパーパラメータチューニングの結果のサマリ e.g., expected validation performance *3*4, mean, variance, error bar, etc.
    • 学習と評価はそれぞれ何回行われたか
    • 結果を報告するために使用された指標または統計量の明確な定義
    • 報告されている結果の平均と分散
    • 平均実行時間
    • 結果を得るための計算機環境
    • モデルのパラメータ数について (NAACL'21)
    • 対応する test に対応する validation スコア (NAACL'21)

提案モデル・アルゴリズム評価データ実験コード評価方法 の観点から簡潔な指示が与えられている事がわかりました。

ML Code Completeness Checklist

実験を再現するコードについて、論文実装がまとめられている paper with code と The Machine Learning Reproducibility Checklist を公開している Joelle Pineau 氏から機械学習コードの再現性チェックリストも公開されています。

ML Code Completeness Checklist では公開されている著者実装レポジトリに対して、以下の視点からチェックします:

  • ✔ Dependencies
    • リポジトリに依存関係に関する情報や環境の設定方法の指示があるか?
  • ✔ Training scripts
    • リポジトリに論文で説明されているモデルをトレーニング / フィットさせる方法が含まれているか?
  • ✔ Evaluation scripts
    • リポジトリには、訓練されたモデルの性能を計算したり、モデルの実験を実行するためのスクリプトが含まれているか?
  • ✔ Pretrained models
    • リポジトリは予習済みモデルの重みへの無料アクセスを提供しているか?
  • ✔ Results

リポジトリは、0(だめ)から 5(いいね)のスコアを付けることができます。 各基準の詳細については以下のレポジトリで公開されており、1000 を超えるスターを得ています。 github.com

ML Code Completeness Checklist の詳細は以下のブログ記事から読むことが可能です。 medium.com

まとめ

本記事では 再現可能な論文の公開に焦点を当て、 近年のコンピュータサイエンス分野におけるトップカンファレンスに投稿する際に著者に対して示されている再現性チェックリストの内容を大まかに把握しました。 また成果を公開する際にチェックするとよいリストについても言及し、より再現性担保する方法を確認しました。 これらのチェックリストを予め把握しておくことで、実験や執筆時に注意しながら研究を進めることができ、結果として良い研究ができるのではないでしょうか。

*1:Background image from https://ai.facebook.com/blog/how-the-ai-community-can-get-serious-about-reproducibility/

*2:[2003.12206] Improving Reproducibility in Machine Learning Research (A Report from the NeurIPS 2019 Reproducibility Program) https://arxiv.org/abs/2003.12206

*3:[1909.03004] Show Your Work: Improved Reporting of Experimental Results https://arxiv.org/abs/1909.03004

*4:http://shunk031.hatenablog.com/entry/allentune-algorithm