Saya akan menebak bahwa alasan mengapa menambahkan penalti L1 memperlambat segalanya secara signifikan adalah bahwa penalti L1 tidak dapat dibedakan (yaitu nilai absolut), sedangkan penalti L2 adalah. Ini berarti bahwa permukaan fungsi tidak akan mulus, dan metode kuasi-Newton standar akan memiliki banyak masalah dengan masalah ini. Ingatlah bahwa salah satu cara untuk memikirkan metode kuasi-Newton adalah bahwa ia membuat perkiraan kuadrat dari fungsi dan kemudian proposal awal akan menjadi maksimum dari perkiraan itu. Jika perkiraan kuadrat sangat cocok dengan fungsi target, kita harus mengharapkan proposal mendekati maksimum (atau minimum, tergantung pada bagaimana Anda melihat dunia). Tetapi jika fungsi target Anda tidak dapat dibedakan, perkiraan kuadratik ini mungkin sangat buruk,
Jika Anda telah menemukan paket-R yang mengimplementasikan BFGS untuk hukuman L1, silakan coba. BFGS, secara umum, adalah algoritma yang sangat umum untuk optimasi. Seperti halnya dengan algoritma generik apa pun, akan ada banyak kasus khusus yang tidak berfungsi dengan baik. Algoritma yang khusus dirancang untuk masalah Anda jelas harus lebih baik (dengan asumsi paket sebagus yang diklaim penulis: Saya belum pernah mendengar tentang lbfgs, tapi ada banyak hal hebat yang belum pernah saya dengar. Pembaruan : I telah menggunakan paket lbfgs R, dan implementasi L-BFGS yang mereka miliki cukup bagus! Saya masih belum menggunakan itu algoritma OWL-QN, yang mengacu pada OP).
Jika tidak berhasil, Anda mungkin ingin mencoba metode "Nelder-Mead" dengan R's optim. Itu tidak menggunakan turunan untuk optimasi. Dengan demikian, biasanya akan lebih lambat pada fungsi yang halus tetapi lebih stabil pada fungsi yang tidak mulus seperti yang Anda miliki.