{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-to-reason-end-to-end-module-networks","title":"Learning to Reason: End-to-End Module Networks for Visual Question Answering","arxiv_id":"1704.05526","date":"2017-04-18","proceeding":"ICCV 2017 10","authors":["Ronghang Hu","Jacob Andreas","Marcus Rohrbach","Trevor Darrell","Kate Saenko"],"abstract":"Natural language questions are inherently compositional, and many are most\neasily answered by reasoning about their decomposition into modular\nsub-problems. For example, to answer \"is there an equal number of balls and\nboxes?\" we can look for balls, look for boxes, count them, and compare the\nresults. The recently proposed Neural Module Network (NMN) architecture\nimplements this approach to question answering by parsing questions into\nlinguistic substructures and assembling question-specific deep networks from\nsmaller modules that each solve one subtask. However, existing NMN\nimplementations rely on brittle off-the-shelf parsers, and are restricted to\nthe module configurations proposed by these parsers rather than learning them\nfrom data. In this paper, we propose End-to-End Module Networks (N2NMNs), which\nlearn to reason by directly predicting instance-specific network layouts\nwithout the aid of a parser. Our model learns to generate network structures\n(by imitating expert demonstrations) while simultaneously learning network\nparameters (using the downstream task loss). Experimental results on the new\nCLEVR dataset targeted at compositional question answering show that N2NMNs\nachieve an error reduction of nearly 50% relative to state-of-the-art\nattentional approaches, while discovering interpretable network architectures\nspecialized for each question.","url_abs":"http://arxiv.org/abs/1704.05526v3","url_pdf":"http://arxiv.org/pdf/1704.05526v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-to-reason-end-to-end-module-networks","repo_url":"https://github.com/ronghanghu/n2nmn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"visual-dialogue","task_name":"Visual Dialog"},{"task_slug":"visual-question-answering-1","task_name":"Visual Question Answering"},{"task_slug":"visual-question-answering","task_name":"Visual Question Answering (VQA)"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/visual-dialog-on-visual-dialog-v1-0-test-std","task":"Visual Dialog","dataset":"Visual Dialog v1.0 test-std","model":"NMN","rank_in_archive_order":52,"of":80,"metrics":{"MRR (x 100)":"58.8","Mean":"4.4","NDCG (x 100)":"58.1","R@1":"44.15","R@10":"86.88","R@5":"76.88"},"uses_additional_data":false},{"leaderboard":"/sota/visual-question-answering-on-vqa-v2-test-dev","task":"Visual Question Answering (VQA)","dataset":"VQA v2 test-dev","model":"N2NMN (ResNet-152, policy search)","rank_in_archive_order":43,"of":56,"metrics":{"Accuracy":"64.9"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1704.05526","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}