Mengurangi dimensi masukan untuk model pembelajaran mendalam

Saya mengikuti kursus pembelajaran mendalam dan saya memiliki model yang dibuat dengan keras. Setelah prapemrosesan data dan pengkodean data kategorikal, saya mendapatkan array bentuk (12500,) sebagai input ke model. Masukan ini membuat proses pelatihan model menjadi lebih lambat dan lamban. Apakah ada pendekatan untuk meminimalkan dimensi masukan?

Inputnya dikategorikan koordinat geografis, info cuaca, waktu, jarak dan saya mencoba memprediksi waktu perjalanan antara dua koordinat geografis.

Dataset asli memiliki 8 fitur dan 5 di antaranya bersifat kategorikal. Saya menggunakan pengkodean onehot untuk menyandikan data kategorikal di atas. koordinat geografis memiliki 6000 kategori, cuaca 15 kategori waktu memiliki 96 kategori. Begitu juga secara keseluruhan setelah pengkodean dengan pengkodean onehot saya mendapatkan array bentuk (12500,) sebagai input untuk model.


person Klaus    schedule 15.04.2018    source sumber
comment
Apa yang diwakili oleh masukan tersebut? Apakah Anda memerlukan semua masukan? Apa yang ingin Anda hasilkan? Anda perlu memberikan lebih banyak informasi untuk mendapatkan jawaban yang bermakna.   -  person Primusa    schedule 15.04.2018
comment
informasi lebih lanjut tentang input ditambahkan   -  person Klaus    schedule 15.04.2018
comment
bagaimana itu membutuhkan array 12500? Saya menghitung lima fitur!   -  person Primusa    schedule 15.04.2018
comment
Dataset asli memiliki 8 fitur dan 5 di antaranya bersifat kategorikal. Saya menggunakan pengkodean onehot untuk menyandikan data kategorikal di atas. koordinat geografis memiliki 6000 kategori, cuaca 15 kategori waktu memiliki 96 kategori. Demikian pula setelah pengkodean dengan pengkodean onehot saya mendapatkan array bentuk (12500,) sebagai input untuk model.   -  person Klaus    schedule 15.04.2018


Jawaban (2)


Ketika jumlah kategori banyak, pengkodean one-hot menjadi terlalu tidak efisien. Contoh ekstremnya adalah pemrosesan kalimat dalam bahasa alami: dalam tugas ini kosakata sering kali memiliki 100 ribu kata atau bahkan lebih. Tentunya penerjemahan kalimat 10 kata ke dalam matriks [10, 100000] yang hampir semuanya nol akan membuang-buang memori.

Yang digunakan oleh para peneliti adalah lapisan penyematan, yang mempelajari representasi padat dari fitur kategorikal. Dalam hal kata-kata, ini disebut penyematan kata, mis. word2vec. Representasi ini jauh lebih kecil, seperti 100 dimensi, dan membuat jaringan lainnya bekerja secara efisien dengan vektor masukan 100 hari, dibandingkan dengan vektor 100.000 hari.

Dalam bahasa keras, ini diimplementasikan oleh lapisan Embedding, yang menurut saya akan berfungsi sempurna untuk geo dan time Anda fitur, sementara yang lain mungkin berfungsi dengan baik dengan pengkodean one-hot. Artinya model Anda tidak lagi Sequential, melainkan memiliki beberapa masukan, beberapa di antaranya melalui lapisan penyematan. Model utama akan mengambil rangkaian representasi yang dipelajari dan melakukan inferensi regresi.

person Maxim    schedule 15.04.2018

Anda dapat menggunakan PCA untuk melakukan reduksi dimensi. Ini menghilangkan variabel terkait dan memastikan bahwa variansi tinggi ada dalam data.

Wikipedia PCA

Vidya PCA Analitik

person Shashi Tunga    schedule 15.04.2018
comment
Bisakah PCA diterapkan ke kumpulan data setelah pengkodean dengan satu hot encoder?. kumpulan data asli tanpa pengkodean berisi 8 fitur dan setelah pengkodean masukan menjadi bentuk (15000,) - person Klaus; 15.04.2018
comment
Saya pikir menerapkan PCA sebelum pengkodean tidak akan membuat perbedaan karena setelah Anda menyandikannya akan menghasilkan sekali lagi (15000,). Jadi, Lakukan setelah pengkodean saja. - person Shashi Tunga; 15.04.2018