Setelah melihat pertanyaan ini: Mencoba Meniru Regresi Linier menggunakan Keras , saya telah mencoba untuk memutar contoh saya sendiri, hanya untuk tujuan studi dan untuk mengembangkan intuisi saya.
Saya mengunduh dataset sederhana dan menggunakan satu kolom untuk memprediksi yang lain. Data terlihat seperti ini:
Sekarang saya baru saja membuat model keras sederhana dengan satu, lapisan linear satu simpul dan melanjutkan untuk menjalankan gradient descent di atasnya:
from keras.layers import Input, Dense
from keras.models import Model
inputs = Input(shape=(1,))
preds = Dense(1,activation='linear')(inputs)
model = Model(inputs=inputs,outputs=preds)
sgd=keras.optimizers.SGD()
model.compile(optimizer=sgd ,loss='mse',metrics=['mse'])
model.fit(x,y, batch_size=1, epochs=30, shuffle=False)
Menjalankan model seperti itu memberi saya nan
kerugian di setiap zaman.
Jadi saya memutuskan untuk mulai mencoba hal-hal dan saya hanya mendapatkan model yang layak jika saya menggunakan tingkat pembelajaran yang sangat kecil sgd=keras.optimizers.SGD(lr=0.0000001)
:
Sekarang mengapa ini terjadi? Apakah saya harus menyesuaikan tingkat pembelajaran secara manual seperti ini untuk setiap masalah yang saya hadapi? Apakah saya melakukan sesuatu yang salah di sini? Ini seharusnya menjadi masalah yang paling sederhana, bukan?
Terima kasih!
sumber
Normalisasi lebih penting ketika Anda memiliki lebih dari satu variabel dependen. Jika Anda melihat plot pencar, Anda dapat melihat outlier. Jaring saraf tanpa lapisan tersembunyi sama dengan model regresi linier. Dengan demikian, sangat sesuai dengan garis terbaik untuk meminimalkan jarak residu. Hapus outlier dan itu akan terlihat lebih tepat.
sumber