Bullerdata, icke-konvexa mål, modellfelspecifikation och numerisk instabilitet kan alla orsaka oönskade beteenden i maskininlärningssystem. Det kan därför vara mycket svårt att upptäcka faktiska fel i genomförandet. Vi demonstrerar en metodik där utvecklare använder en interaktiv bevisassistent för att både implementera sitt system och för att ange ett formellt teorem som definierar vad det innebär för deras system att vara korrekt. Processen att bevisa detta teorem interaktivt i bevisassistenten avslöjar alla genomförandefel eftersom eventuella fel i programmet skulle orsaka beviset att misslyckas. Som fallstudie implementerar vi ett nytt system, Certigrad, för optimering över stokastiska beräkningsdiagram, och vi genererar ett formellt (dvs. maskinkontrollerbara) bevis för att de gradienter som provas av systemet är objektiva uppskattningar av de verkliga matematiska gradienterna. Vi tränar en variantal autoencoder med Certigrad och finner prestandan jämförbar med att träna samma modell i TensorFlow.
Selsam m.fl. I REF föreslås en metod för att verifiera praktiska system för maskininlärning i bevisassistenter.
Developing Bug-Free Machine Learning Systems With Formal Mathematics
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}