Al-Qaida surprise attack kills 20 Yemeni soldiers