Improving Security And Reliability Of Physical Unclonable Functions Using Machine Learning