Prime Minister Mark Carney says the federal government has learned from past mistakes as it sets out its ambitious aim of eliminating homelessness within 10 years.