Hey, I have been using Gene Ontology to try to understand some differently express gene and I am now wondering if I should trust the GO annotation. 

I was looking at serpinb2, for this gene I am getting GO term: GO:0005576 'extracellular region' and GO:0005615 'extracellular space'. However when I cross reference with Protein atlas, which have antibodies staining assays, then it seems to be clearly inside the cell around the golgi apparatus. 

I have been trying to get the reference of those go annotation without success. Therefore which one should be trust, annotation or antibodies staining ?
I would encourage you to read about the Gene Ontology's evidence codes:  http://www.geneontology.org/page/guide-go-evidence-codes

When you do your enrichment, you should see one of those codes beside your gene(s) of interest. The two GO terms that you've mentioned are very broad and undoubtedly have many 1000s of genes listed.

I just searched and SERPINB2 belongs to a few different GO categories; however, for both `GO:0005576 'extracellular region'` and `GO:0005615 'extracellular space'`, the evidence code is just 'TAS', i.e., '*Traceable Author Statement (TAS)*' (see through the link on evidence codes that I pasted above). Thus, you can make your own interpretation on that...

All of *SERPINB2*'s GO terms are here:  http://amigo.geneontology.org/amigo/gene_product/UniProtKB:P05120

My general rule of thumb, and something that I tell all students that I train, is to never trust gene enrichment unless there is clear experimental evidence to back up the enrichment.

Hope that this helps.
