{"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/arxiv-2606-30951","title":"Learning Where to Look: A Reinforcement Learning Framework for Robust Micro-Ultrasound Prostate Cancer Detection","arxiv_id":"2606.30951","date":"2026-06-29","proceeding":null,"authors":["Mohammad Mahdi Abootorabi","Sina Namazi","Armin Saadat","Lyuyang Wang","Obed Dzikunu","Paul F. R. Wilson","Zhuoxin Guo","Brian Wodlinger","Parvin Mousavi","Purang Abolmaesumi"],"abstract":"Micro-ultrasound ($μ$US) is a new, emerging, and promising imaging modality for prostate cancer (PCa) detection, but accurate identification of suspicious tissue remains highly dependent on clinical experience, leading to substantial inter-observer variability. Machine-learning assistance can reduce this variability; however, training reliable deep models is challenging because supervision is sparse and noisy -- typically limited to core-level histopathology outcomes (e.g., cancer grade and its percentage in a biopsy core) without pixel-level lesion annotations and under severe class imbalance. We introduce Prost-RL, which reframes $μ$US PCa detection as a spatially aware, policy-driven inference problem by learning where to look before decoding. Prost-RL integrates a lightweight reinforcement-learning policy into a foundation-model encoder-decoder to generate interpretable spatial attention maps that act as soft prompts for both cancer-likelihood heatmap prediction and image-level classification. We further propose Adaptive Policy Optimization (APO) to stabilize hybrid supervised-RL training and a noise-robust objective combining symmetric cross-entropy with negative-entropy regularization to mitigate weak-label noise and encourage sharp localization. On a cohort of 6,607 biopsy cores from 693 patients across five clinical sites, Prost-RL achieves $79.0\\pm3.5$ AUROC with $64.6\\pm6.3$% sensitivity at 80% specificity for core-level detection (+2.1 AUROC and +4.5 sensitivity points over the strongest baseline), and $79.3\\pm5.8$ AUROC for clinically significant cancer classification. The learned policy highlights biopsy-aligned regions, providing transparent, spatially grounded evidence alongside quantitative risk predictions. Code is available at: https://github.com/DeepRCL/Prost-RL.","url_abs":"https://arxiv.org/abs/2606.30951","url_pdf":"https://arxiv.org/pdf/2606.30951","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.30951"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/DeepRCL/Prost-RL","reach":null}],"summary":{"ran":14,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":16,"ran":14,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":16,"samples":[{"code_sha256_prefix":"bdb3eda8a6ffc647","entry":"build_comparison_table","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_patient_metrics.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_patient_metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bdb3eda8a6ffc647"}},{"code_sha256_prefix":"a17d77aa8b054f2f","entry":"compute_metrics_at_threshold","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_confusion_matrix.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_confusion_matrix.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a17d77aa8b054f2f"}},{"code_sha256_prefix":"e558d84a7262799c","entry":"compute_model_patient_metrics","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_patient_metrics.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_patient_metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e558d84a7262799c"}},{"code_sha256_prefix":"ac720707345d9916","entry":"encode_core_location","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/inference.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ac720707345d9916"}},{"code_sha256_prefix":"5c914fd326f518fa","entry":"find_best_thresholds","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_confusion_matrix.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_confusion_matrix.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5c914fd326f518fa"}},{"code_sha256_prefix":"96f4fcca87e777f6","entry":"generate_involvement_comparison_plot","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_comparison_plots.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_comparison_plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"96f4fcca87e777f6"}},{"code_sha256_prefix":"470a0ce2d68a09d8","entry":"load_all","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_clinical_plots.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_clinical_plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"470a0ce2d68a09d8"}},{"code_sha256_prefix":"afb65a953e64b049","entry":"load_image_as_tensor","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/inference.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"afb65a953e64b049"}},{"code_sha256_prefix":"d90980e2dc9b0791","entry":"load_model","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_clinical_plots.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_clinical_plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d90980e2dc9b0791"}},{"code_sha256_prefix":"f06764c411a6d202","entry":"load_model","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/inference.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f06764c411a6d202"}},{"code_sha256_prefix":"b28ef53385754187","entry":"load_model_results","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_comparison_plots.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_comparison_plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b28ef53385754187"}},{"code_sha256_prefix":"c8ba69aa805c839d","entry":"load_multiple_models","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_comparison_plots.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_comparison_plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c8ba69aa805c839d"}},{"code_sha256_prefix":"b1204d56812f64d9","entry":"parse_model_specs","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/generate_aggregated_clinical_plots.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/generate_aggregated_clinical_plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b1204d56812f64d9"}},{"code_sha256_prefix":"20e0a9a266218f3d","entry":"simple_mil_loss","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/src/loss.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/src/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"20e0a9a266218f3d"}},{"code_sha256_prefix":"acefc5eb21bea034","entry":"build_loss","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/src/loss.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/src/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"acefc5eb21bea034"}},{"code_sha256_prefix":"74f38f6ae9c2ef86","entry":"show_heatmap_prediction","repo":"DeepRCL/Prost-RL","repo_kind":"found_in_text","path":"prostnfound/src/evaluator.py","file_url":"https://github.com/DeepRCL/Prost-RL/blob/HEAD/prostnfound/src/evaluator.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"74f38f6ae9c2ef86"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}