Papers › Domain-Adversarial Training of Neural Networks
Domain-Adversarial Training of Neural Networks
Yaroslav Ganin, Evgeniya Ustinova, Hana Ajakan, Pascal Germain, Hugo Larochelle, François Laviolette, Mario Marchand, Victor Lempitsky
We introduce a new representation learning approach for domain adaptation, in which data at training and test time come from similar but different distributions. Our approach is directly inspired by the theory on domain adaptation suggesting that, for effective domain transfer to be achieved, predictions must be made based on features that cannot discriminate between the training (source) and test (target) domains. The approach implements this idea in the context of neural network architectures that are trained on labeled data from the source domain and unlabeled data from the target domain (no labeled target-domain data is necessary). As the training progresses, the approach promotes the emergence of features that are (i) discriminative for the main learning task on the source domain and (ii) indiscriminate with respect to the shift between the domains. We show that this adaptation behaviour can be achieved in almost any feed-forward model by augmenting it with few standard layers and a new gradient reversal layer. The resulting augmented architecture can be trained using standard backpropagation and stochastic gradient descent, and can thus be implemented with little effort using any of the deep learning packages. We demonstrate the success of our approach for two distinct classification problems (document sentiment analysis and image classification), where state-of-the-art domain adaptation performance on standard benchmarks is achieved. We also validate the approach for descriptor learning task in the context of person re-identification application.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1505.07818")
Code
Syntology Ran 33 of 52 code samples harvested from 17 repositories linked to this paper; 19 have no recorded run. Of those that ran: 1 ran · honoured contract; 16 ran · our draft was wrong; 1 ran · fixture could not drive it; 15 ran with no contract checked.
By repository: community (archive-listed): 50 samples from 17 repositories, 32 ran; 2 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
37 repositories listed; official and paper-mentioned ones first.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
52 samples harvested; 33 ran; 1 honoured the contract we drafted; 19 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 22 of the 52 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 17 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
8a387c444dc4c6a4 · report
f1707c22da402ad3 · report
c601b6f644d029af · report
0e5b0fea39063b16 · report
e2db8a3a21c6bf4c · report
f70dbf08bbfa9c34 · report
59f8b8a3c0a6bdfe · report
87db2131110dfd0a · report
3ce4eba45b4ca3fc · report
22d411c2795ced15 · report
1a6a7062274a346d · report
1a8c0c365eb16cdc · report
a9713d2fe23f5ada · report
917fb058e1f4bb05 · report
4c1fc418e3779b2d · report
ff4ee6a4efd6ea00 · report
138b0d8c38a323bc · report
d86e29f3ca97a8c2 · report
4a9bc68de4ae0c55 · report
f9776e8c18b947b6 · report
310d54a1dd86ec79 · report
5b9be386bbb3d10e · report
4113c2e807d432ee · report
61fd42a2e2a7cfcc · report
704df3b8019c2aa5 · report
cd9167b485a751fd · report
3e123903386d5131 · report
cec816fd8905007d · report
946555f6a21e149f · report
f64f43c34c4542e9 · report
8d9374ad6935ac3d · report
851159feffea3b04 · report
aa6ec272928f9093 · report
6ca780e6cedb8469 · report
cd0abd234c0eba6b · report
fcde4e5aa7af7696 · report
b140a1b50f334aa6 · report
9e554f3838a1af56 · report
b69e7e3bd38b5a79 · report
3d0632c955417561 · report
a5f777ab36b3f81e · report
e61d73732bf10468 · report
c0ae116e1108bfcf · report
95838026a4f67e63 · report
2fb3457e6f433bd8 · report
2e5319a051a23ef3 · report
48ebff402229f303 · report
5773872947986444 · report
1e5fb974a2b9088c · report
882f695d04b3d5b7 · report
9768efb52f591b55 · report
e352afa5762c5a6b · report
Tasks
Datasets
Introduced by this paper, per the archive.
Results from the paper archive 2025-07-28
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections