Saya menggunakan dua 3-layer feedforward multi-layer perceptrons (MLPs). Dengan data input yang sama (14 neuron input), saya melakukan satu klasifikasi (benar / salah), dan satu regresi (jika benar, "berapa banyak") ¹. Sampai sekarang, saya sudah malas menggunakan Matlabs patternnet dan fitnet , masing-masing. Lazily, karena saya belum meluangkan waktu untuk benar-benar memahami apa yang terjadi - dan saya harus. Selain itu, saya perlu melakukan transisi ke perpustakaan OSS (mungkin FANN), yang kemungkinan akan membutuhkan lebih banyak pengaturan manual daripada Matlab NN Toolbox. Karena itu, saya mencoba memahami lebih tepatnya apa yang sedang terjadi.
Jaringan yang dibuat oleh patternnet
dan fitnet
hampir identik: 14 input neuron, 11 neuron tersembunyi, 1 neuron target (2 untuk fitnet
, tetapi hanya 1 buah informasi). Tapi, mereka tidak sepenuhnya identik. Perbedaan secara default adalah:
- Matlab menggunakan backpropagation gradien konjugasi berskala untuk jaringan klasifikasi (
patternnet
), danpropagasi Levenberg-Marquardt untuk jaringan regresi (fitnet
). - Jaringan klasifikasi menggunakan fungsi transfer sigmoid tangen hiperbolik antara input dan lapisan tersembunyi, dan antara lapisan tersembunyi dan lapisan keluaran. Jaringan regresi (
fitnet
) menggunakan fungsi transfer sigmoid tangen Hiperbolik antara input dan lapisan tersembunyi, dan fungsi transfer linier murni antara lapisan tersembunyi dan output.
Haruskah perbedaan itu terjadi?
Fungsi backpropagation seperti apa yang optimal untuk klasifikasi, dan apa untuk regresi, dan mengapa?
Fungsi transfer seperti apa yang optimal untuk klasifikasi, dan apa untuk regresi, dan mengapa?
¹ Klasifikasi adalah untuk "mendung" atau "bebas cloud" (2 target komplementer), regresi adalah untuk menghitung "berapa banyak cloud" (1 target).