論文の概要: How could Neural Networks understand Programs?
- arxiv url: http://arxiv.org/abs/2105.04297v1
- Date: Mon, 10 May 2021 12:21:42 GMT
- ステータス: 処理完了
- システム内更新日: 2021-05-11 19:30:09.287651
- Title: How could Neural Networks understand Programs?
- Title(参考訳): ニューラルネットワークはどのようにプログラムを理解するのか?
- Authors: Dinglan Peng, Shuxin Zheng, Yatao Li, Guolin Ke, Di He, Tie-Yan Liu
- Abstract要約: ソースコードにnlpプリトレーニング技術を直接適用するか、あるいはtheshelfによってモデルに機能を追加するかで、プログラムをより理解するためのモデルを構築するのは難しい。
本研究では,(1)操作セマンティクスの基本操作とよく一致する表現と(2)環境遷移の情報からなる情報から,モデルが学ぶべき新しいプログラムセマンティクス学習パラダイムを提案する。
- 参考スコア(独自算出の注目度): 67.4217527949013
- License: http://creativecommons.org/licenses/by-sa/4.0/
- Abstract: Semantic understanding of programs is a fundamental problem for programming
language processing (PLP). Recent works that learn representations of code
based on pre-training techniques in NLP have pushed the frontiers in this
direction. However, the semantics of PL and NL have essential differences.
These being ignored, we believe it is difficult to build a model to better
understand programs, by either directly applying off-the-shelf NLP pre-training
techniques to the source code, or adding features to the model by the
heuristic. In fact, the semantics of a program can be rigorously defined by
formal semantics in PL theory. For example, the operational semantics,
describes the meaning of a valid program as updating the environment (i.e., the
memory address-value function) through fundamental operations, such as memory
I/O and conditional branching. Inspired by this, we propose a novel program
semantics learning paradigm, that the model should learn from information
composed of (1) the representations which align well with the fundamental
operations in operational semantics, and (2) the information of environment
transition, which is indispensable for program understanding. To validate our
proposal, we present a hierarchical Transformer-based pre-training model called
OSCAR to better facilitate the understanding of programs. OSCAR learns from
intermediate representation (IR) and an encoded representation derived from
static analysis, which are used for representing the fundamental operations and
approximating the environment transitions respectively. OSCAR empirically shows
the outstanding capability of program semantics understanding on many practical
software engineering tasks.
- Abstract(参考訳): プログラムの意味理解は、プログラミング言語処理(plp)の基本的な問題である。
NLPにおける事前学習技術に基づいてコード表現を学習する最近の研究は、フロンティアをこの方向に押し上げている。
しかし、PLとNLのセマンティクスには重要な違いがある。
これらのことは無視され、既製のNLP事前学習技術をソースコードに直接適用するか、ヒューリスティックな手法でモデルに機能を追加することで、プログラムをよりよく理解するモデルを構築するのは難しいと信じている。
実際、プログラムの意味論はPL理論の形式的意味論によって厳密に定義することができる。
例えば、オペレーショナルセマンティクスでは、有効なプログラムの意味を、メモリI/Oや条件分岐といった基本的な操作を通じて環境(メモリアドレス値関数)を更新することとして記述している。
そこで,本研究では,(1)操作意味論における基本操作に適合する表現,(2)プログラム理解に欠かせない環境遷移の情報からなる情報から学習すべき,新たなプログラム意味論学習パラダイムを提案する。
提案手法を検証するため,OSCARと呼ばれる階層型トランスフォーマーを用いた事前学習モデルを提案する。
OSCARは、静的解析から導出される中間表現(IR)と符号化表現から学習し、それぞれが基本的な操作を表現し、環境遷移を近似する。
OSCARは、多くの実用的なソフトウェアエンジニアリングタスクにおいて、プログラムセマンティクスが理解できることを実証的に示す。
関連論文リスト
- Understanding Programs by Exploiting (Fuzzing) Test Cases [26.8259045248779]
プログラムのより深い意味理解を実現するために,入力と出力/振る舞いの関係を学習に取り入れることを提案する。
コードの大部分の実行をトリガーするのに十分な入力を得るために,ファズテストを採用し,ファズチューニングを提案する。
提案手法の有効性は,コードクローン検出とコード分類を含む2つのプログラム理解タスクにおいて検証され,最先端技術よりも大きなマージンで優れている。
論文 参考訳(メタデータ) (2023-05-23T01:51:46Z) - Guiding the PLMs with Semantic Anchors as Intermediate Supervision:
Towards Interpretable Semantic Parsing [57.11806632758607]
本稿では,既存の事前学習言語モデルを階層型デコーダネットワークに組み込むことを提案する。
第一原理構造をセマンティックアンカーとすることで、2つの新しい中間管理タスクを提案する。
いくつかのセマンティック解析ベンチマークで集中的な実験を行い、我々のアプローチがベースラインを一貫して上回ることを示す。
論文 参考訳(メタデータ) (2022-10-04T07:27:29Z) - ProTo: Program-Guided Transformer for Program-Guided Tasks [59.34258016795216]
我々は,学習者が与えられたタスク仕様に基づいて所定のプログラムを実行することを要求されるプログラム誘導タスクを定式化する。
本稿では,プログラムの意味的ガイダンスと構造的ガイダンスを統合したProTo(Proto)を提案する。
ProToは学習された潜在空間でプログラムを実行し、従来のニューラルシンボリックアプローチよりも強力な表現能力を持っている。
論文 参考訳(メタデータ) (2021-10-02T13:46:32Z) - Procedures as Programs: Hierarchical Control of Situated Agents through
Natural Language [81.73820295186727]
エージェント命令と制御のための階層的な手続き的知識を表現する強力な手法である,プログラムとしての手続きの形式化を提案する。
NL命令に対するIQAおよびALFREDデータセット上で、このフレームワークをインスタンス化する。
論文 参考訳(メタデータ) (2021-09-16T20:36:21Z) - Learning to Synthesize Programs as Interpretable and Generalizable
Policies [25.258598215642067]
本稿では,プログラムの合成を学習するフレームワークについて述べる。
実験の結果,提案フレームワークは,タスク解決プログラムを確実に合成するだけでなく,DRLやプログラム合成ベースラインよりも優れていることがわかった。
論文 参考訳(メタデータ) (2021-08-31T07:03:06Z) - Semantics-Aware Inferential Network for Natural Language Understanding [79.70497178043368]
このようなモチベーションを満たすために,セマンティックス対応推論ネットワーク(SAIN)を提案する。
SAINの推論モジュールは、明示的な文脈的セマンティクスを補完的な入力として、セマンティクス上の一連の推論ステップを可能にする。
本モデルでは,機械読解や自然言語推論など11タスクの大幅な改善を実現している。
論文 参考訳(メタデータ) (2020-04-28T07:24:43Z) - Can We Learn Heuristics For Graphical Model Inference Using
Reinforcement Learning? [114.24881214319048]
我々は、強化学習を用いて、高次条件ランダム場(CRF)における推論を解くためのプログラム、すなわち、ポリシーを学習できることを示します。
本手法は,ポテンシャルの形式に制約を加えることなく,推論タスクを効率的に解く。
論文 参考訳(メタデータ) (2020-04-27T19:24:04Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。