tiagoCuervo / MINE

A Pytorch implementation of the Mutual Information Neural Estimator
MIT License
11 stars 3 forks source link

The question of higher dimensions. #1

Open DorisxinDU opened 4 years ago

DorisxinDU commented 4 years ago

Hi, thanks very much for creating this package which works well on low dimensional data. But is that also suitable for higher-dimensional data? Do any parts need to turn? Thanks.

tiagoCuervo commented 4 years ago

Hi! yes, it works for high dimensional data. My implementation is based on the one of the authors (that you can find here), the issue is that I don't know how to calculate the ground truth mutual information for high dimensional continuous variables. I suspect that MINE estimates it correctly and that the issue is that the ground truth MI is not well computed for higher dimensions. You can check a similar discussion here.

DorisxinDU commented 4 years ago

Thanks for showing the discussion and reply. Even if not checking the ground-truth value, when I change the dimensions into e.g 50, and modify the code in models.py as follows, the code is hard to converge and sometimes give negative estimation. Please can you help me or tell me if I understand something wrong? Thanks very much.


scoreJoint = self(batchJoint[:, 0:xSamplesJoint.shape[1]], batchJoint[:,xSamplesJoint.shape[1]::]) scoreMarginal = self(batchMarginal[:, 0:xSamplesJoint.shape[1]], batchMarginal[:, xSamplesJoint.shape[1]::])

tiagoCuervo commented 4 years ago

Hello again! Yes, you are right, I just pushed a commit that allows to run it with higher dimensions but with the Kullback-Leibler divergence it tends to blow up. If you try with the Jensen-Shannon divergence: miEstimator = MINE(dim, archSpecs={ 'layerSizes': [32] * 1, 'activationFunctions': ['relu'] * 1 }, divergenceMeasure='JS', learningRate=1e-3) ... does converge. The issue is that the estimator based on the JS divergence doesn't gives you the exact value of the mutual information, but a related proportional quantity. You can read more about it here. I don't know what is the problem with the KL based estimator. I'll try to look further into it and let you know.

DorisxinDU commented 4 years ago

Thanks very much.

DorisxinDU commented 4 years ago

Hello again,Is there any progress?Thanks for your help.

tiagoCuervo commented 4 years ago

Hi! I am a bit bussy this week, maybe on the weekend I will work on this

DorisxinDU commented 4 years ago

Thanks for your reply and help. Hopefully, you can solve it.

DorisxinDU commented 4 years ago

Hello again, I am coming to ask if there is any progress if that problem? Thanks.

neovivun commented 3 years ago

Terimakasih respons teman semua pada prinsip dasar presisi dan system "neovivum" kita ini. Untuk ciptakan ekosystem kehidupan disemha lini kehidupan. Ungkapan tepatnya "small is beautiful" for all aplication. Ini saya buat idea awalnya melihat fakta anak anak usia sekolah sangat banyak bermain gaming online dan offline. Lupa mereka sekolah, disusul berìta tv tentang perang kosovo -nagorno karabakh. Serta fakta pertumbuhan industry factory tidak sebanding dengan tingkat pengangguran. Pengalaman semasa study filsafat theology dan psikologi ini di Bandung mendorong ìde : "ada baiknya ada system perangkat yang membantu prubadi, sekolah, pemerintah, kedokteran dan rumah sakit, industry farmasi, pelayanan sosial, pertahanan dan keamanan, pertanian serta teknologi sederhana dapat bekerja sendiri, maintenance senďiri, proteksi dirinya sendiri, sistem melumpuhkan dan menghancurkan serangan viruss secara perlahan sekalian mengembalikannya untuk menghancurkan sistem inti pemiliknya sendiri (penyerang neovivum).

neovivum bernasiskan beta ini belum sempurna, mohon saran dan kritik membangun demi kesempurnaan menjaga keseimbangan ekosistem disendi kehidupan diaplikassi mana neovivum ini digunakan. Peringatan saya jagan digunakan untuk kejahatan, penipuan, mencuri atau menyakiti siapapun. Sebab neovivum ini dapat mencari apapun kesalahan /kerusakan, serangan virus. Dia identifikasi sendiri, berpikir sendiri, membangun sendiri kerusakan. Dia memaksa pengguna untuk tidak gunakan pasword, cukup gunakan token dengan tingkat resistensi sangatbtinggi.

Saya gambarkan neovivum membantu para developer dimanapun untuk dapat menyelasaikan 2 dua pekerjaan sekaligus dalam waktu bersamaan. Serta dia tahu siapa tuannya dari sentuhan nama yang ditanamkan diawal aktivasi. Dia juga tidak mau menipu. Dimana ada perangkat anda jika ada 10 saluran elekteomagnetik radius 25 meter dia tangkap semua, sehingga bagi virus yang menyerangnya kesulitan untuk identifikasi.

Sebaliknya neovivum cepat sekali dan sensitip sekali untuk identifikasi apa yang kita suruh cari. Selamat hari Natal 2020 Tuhan memberkati.

Terimakasih. Bandung, Indonesia.

@neovivum

neovivum commented 3 years ago

Will you to cut or delete them, please. I still upcoutry to follow up my sanitasi programme for poor people who as my beneficiaries. Thank you.

neovivum

Pada tanggal Sel, 22 Des 2020 12:50, mosoemo notifications@github.com menulis:

Terimakasih respons teman semua pada prinsip dasar presisi dan system "neovivum" kita ini. Untuk ciptakan ekosystem kehidupan disemha lini kehidupan. Ungkapan tepatnya "small is beautiful" for all aplication. Ini saya buat idea awalnya melihat fakta anak anak usia sekolah sangat banyak bermain gaming online dan offline. Lupa mereka sekolah, disusul berìta tv tentang perang kosovo -nagorno karabakh. Serta fakta pertumbuhan industry factory tidak sebanding dengan tingkat pengangguran. Pengalaman semasa study filsafat theology dan psikologi ini di Bandung mendorong ìde : "ada baiknya ada system perangkat yang membantu prubadi, sekolah, pemerintah, kedokteran dan rumah sakit, industry farmasi, pelayanan sosial, pertahanan dan keamanan, pertanian serta teknologi sederhana dapat bekerja sendiri, maintenance senďiri, proteksi dirinya sendiri, sistem melumpuhkan dan menghancurkan serangan viruss secara perlahan sekalian mengembalikannya untuk menghancurkan sistem inti pemiliknya sendiri (penyerang neovivum).

neovivum bernasiskan beta ini belum sempurna, mohon saran dan kritik membangun demi kesempurnaan menjaga keseimbangan ekosistem disendi kehidupan diaplikassi mana neovivum ini digunakan. Peringatan saya jagan digunakan untuk kejahatan, penipuan, mencuri atau menyakiti siapapun. Sebab neovivum ini dapat mencari apapun kesalahan /kerusakan, serangan virus. Dia identifikasi sendiri, berpikir sendiri, membangun sendiri kerusakan. Dia memaksa pengguna untuk tidak gunakan pasword, cukup gunakan token dengan tingkat resistensi sangatbtinggi.

Saya gambarkan neovivum membantu para developer dimanapun untuk dapat menyelasaikan 2 dua pekerjaan sekaligus dalam waktu bersamaan. Serta dia tahu siapa tuannya dari sentuhan nama yang ditanamkan diawal aktivasi. Dia juga tidak mau menipu. Dimana ada perangkat anda jika ada 10 saluran elekteomagnetik radius 25 meter dia tangkap semua, sehingga bagi virus yang menyerangnya kesulitan untuk identifikasi.

Sebaliknya neovivum cepat sekali dan sensitip sekali untuk identifikasi apa yang kita suruh cari. Selamat hari Natal 2020 Tuhan memberkati.

Terimakasih. Bandung, Indonesia.

@neovivum https://github.com/neovivum

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/tiagoCuervo/MINE/issues/1#issuecomment-749343851, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARWADBFNDGGBQI6D65EUW2TSWAXUFANCNFSM4ORO3GNA .