Saya sedang belajar dan mencoba menerapkan jaringan saraf convolutional, tetapi saya kira pertanyaan ini berlaku untuk perceptrons multilayer secara umum.
Neuron keluaran di jaringan saya mewakili aktivasi setiap kelas: neuron paling aktif sesuai dengan kelas prediksi untuk input yang diberikan. Untuk mempertimbangkan biaya lintas-entropi untuk pelatihan, saya menambahkan lapisan softmax di akhir jaringan, sehingga setiap nilai aktivasi neuron ditafsirkan sebagai nilai probabilitas.
Pertanyaan saya adalah: haruskah neuron di lapisan output menerapkan fungsi non-linear ke input? Intuisi saya adalah bahwa itu tidak perlu:
- jika input ke neuron keluaran ke- adalah produk titik antara vektor (berasal dari lapisan sebelumnya) dan bobot untuk neuron itu,x T θ i x θ i
- dan jika saya menggunakan fungsi non-linear monoton seperti sigmoid atau ReLU
- maka output aktivasi yang lebih besar masih akan sesuai dengan , jadi dari sudut pandang ini fungsi non-linear tidak akan mengubah prediksi.
Apakah ada yang salah dengan interpretasi ini? Apakah ada beberapa faktor pelatihan yang saya abaikan yang membuat output menjadi tidak linier?
Dan jika saya benar, apakah ada yang akan berubah jika alih-alih menggunakan fungsi sigmoid saya menggunakan fungsi ReLU , yang tidak sepenuhnya monoton?
EDIT
Dengan merujuk pada jawaban Karel, yang jawabannya pada dasarnya adalah "itu tergantung", berikut ini adalah deskripsi yang lebih rinci tentang jaringan saya dan keraguan:
Misalkan saya memiliki N lapisan tersembunyi, dan lapisan keluaran saya hanyalah lapisan softmax di atas set neuron yang mewakili kelas (jadi output yang saya harapkan adalah probabilitas bahwa data input milik masing-masing kelas). Dengan asumsi lapisan N-1 pertama memiliki neuron nonlinear, apa perbedaan antara menggunakan neuron nonlinear vs linear di lapisan tersembunyi ke-N?
Jawaban:
Anda tidak boleh menggunakan non-linearitas untuk lapisan terakhir sebelum klasifikasi softmax. ReLU non-linearitas (digunakan sekarang hampir secara eksklusif) akan dalam hal ini hanya membuang informasi tanpa menambahkan manfaat tambahan. Anda dapat melihat implementasi caffe dari AlexNet yang terkenal untuk referensi tentang apa yang dilakukan dalam praktik.
sumber
Anda mungkin ingin mengirim nilai negatif ke fungsi softmax, untuk menunjukkan bahwa suatu peristiwa memiliki probabilitas rendah. Jika Anda meneruskan nilai input ke relu, maka jaringan tidak akan melewatkan gradien apa pun melalui unit di mana input ke relu negatif. Jadi, sementara kekuatan ekspresif dari softmax tidak berubah, itu mungkin akan membuat belajar lebih sulit.
sumber
Jawabannya bukan ya atau tidak. Ini sangat tergantung pada harapan Anda tentang jaringan Anda. Saya berasumsi bahwa Anda ingin memiliki pengklasifikasi yang baik, mungkin berlaku untuk berbagai masalah. Oleh karena itu, non-linearitas dapat membantu untuk menangkap kelas-kelas non-sepele. Non-linearitas dapat dimasukkan baik di lapisan terakhir sebelum lapisan soft-max atau bisa juga di lapisan sebelumnya.
sumber