Lima tahun lalu, sebuah ide muncul di benak saya. Saya memutuskan untuk mensimulasikan sebanyak ekonomi global untuk mengetahui dengan pasti dinamika apa yang diharapkan dari saham, obligasi, nilai tukar, dll. Hanya ada satu masalah kecil, model semua ini tidak ada. Dan lebih buruk lagi, para ekonom telah berdebat selama beberapa dekade yang model ekonometrik terpanjang mereka menggambarkan proses kompleks ini setidaknya kira-kira dengan benar. Oleh karena itu, alih-alih mencoba untuk menarik model fiktif (dan tentu saja dengan sangat disederhanakan) pada realitas banyak sisi, saya memulai jalur pemodelan yang berbeda secara konseptual pada tingkat mikro, sehingga dalam perjuangan melelahkan untuk bertahan hidup, melalui percobaan dan kesalahan mereka akan mencapai keadaan keseimbangan, yang pada tingkat makro dinyatakan dalam dinamika harga, tarif, dll.
Hasil penelitian saya dijelaskan di bawah ini. Untuk visualisasi, saya merekam pergerakan agen dan setiap piksel dalam video ini menyembunyikan jaringan saraf, mis. otak seorang agen yang berjuang untuk bertahan hidup dalam persaingan dengan jenisnya sendiri di dunia yang kejam dari keuntungan dan kebersihan.
Mengapa ini harus mudah dipahami sama sekali, misalnya, tentang perselisihan saat ini seputar "perang dagang". Beberapa (sebagian besar ekonom profesional) mengatakan bahwa tarif pada akhirnya membahayakan perekonomian secara keseluruhan. Yang lain berpikir bahwa negara itu akan mendapat manfaat.
Tidak ada yang perlu diperiksa dan dibuktikan pada fakta, karena tidak ada yang bisa melakukan percobaan, semua yang sama, pada ekonomi yang sama. Sedangkan metode yang dijelaskan di bawah ini memungkinkan Anda untuk mengontrol kondisi dan mendapatkan bukti ada tidaknya manfaat solusi.
Konten:
- Deskripsi umum konsep
- Deskripsi implementasi prototipe (PoC)
- Arah pengembangan
1. Gambaran umum konsep
Terlepas dari kenyataan bahwa pemahaman yang cukup baik tentang prinsip-prinsip dasar fungsi ekonomi telah tercapai, ada kesulitan besar dalam menerapkan pengetahuan dalam praktik.
Sebagai contoh, ada beberapa model (teori) berikut mengenai prinsip-prinsip pembentukan nilai tukar:
- Model Obstfeld-Rogoff
- Model Dornbusch
- Model Moneter Frenkel-Mousse
Dan ini bukan daftar lengkap. Selain itu, faktor yang sama, misalnya, defisit yang tumbuh dalam model yang berbeda, memberikan arah yang berlawanan dalam hal dampaknya terhadap nilai tukar. Tampaknya akan lebih mudah daripada melihat dinamika defisit anggaran dan membandingkannya dengan nilai tukar?
Dalam praktiknya, kesulitan dari pendekatan ini terkait dengan masalah “ledakan kombinatorial”, ketika ratusan faktor multidirectional berlaku, dan meskipun tindakan masing-masing dari mereka secara individual masih dapat dipahami, hasilnya mereka hampir tidak mungkin untuk dihitung. Situasi ini diperumit oleh kenyataan bahwa dalam kehidupan nyata tidak mungkin untuk melakukan percobaan terkontrol, memperbaiki semua parameter kecuali satu.
Anda mungkin berpikir bahwa nilai tukar adalah hal yang sangat rumit, tetapi menyangkut konsep yang paling mendasar dan utama, seperti inflasi. Ini adalah parameter utama, yang hampir semua bank sentral dunia dipanggil untuk mengatur. Tampaknya ribuan ilmuwan dan praktisi teori harus memahami mekanisme fenomena ini sejak lama. Namun, anggota dewan direksi Sistem Cadangan Federal (Bank Sentral AS), Daniel Tanullo menulis pada tahun 2017: "
Kami masih belum memiliki teori dinamika inflasi yang akan efektif dalam waktu nyata ."
Sementara itu, inflasi adalah salah satu alasan utama bagi keputusan Fed untuk menaikkan atau menurunkan suku bunga utama, yang memiliki efek kuat pada banyak triliun dolar pasar saham dan obligasi di seluruh dunia.
Dengan demikian, pemahaman tentang prinsip-prinsip fungsi ekonomi makro memungkinkan untuk menerapkan model yang benar dan, sebagai akibatnya, secara efektif memprediksi perkembangan situasi.
Untuk mencapai pemahaman ini, perlu menerapkan model ekonomi skala besar, yang mencakup semua faktor utama dan industri yang ada di kehidupan nyata. Perbedaan utama antara model ini dan yang ada adalah dalam upaya meninggalkan untuk membuat prediksi hasil yang "benar". Sebaliknya, dalam makalah ini, kami menggunakan pendekatan perjuangan evolusi agen di tingkat mikro, ketika keputusan yang salah mengarah pada penghapusan agen dari kumpulan gen, dan keputusan-keputusan yang mengarah pada hasil keuangan positif disimpan dan berhasil didistribusikan menggunakan algoritma genetika.
Dengan kata lain, sama seperti ekonomi pasar riil berkembang, metode yang diusulkan menerapkan prinsip-prinsip persaingan dan pembangunan berkelanjutan, menolak mereka yang membuat keputusan yang tidak efektif. Dan sudah melihat apa yang agen lakukan dalam pertarungan ini, kita akan dapat menilai apa itu kondisi keseimbangan dalam kondisi tertentu.
2. Deskripsi prototipe yang tersedia
Untuk menguji operabilitas konsep, mis. bukti bahwa agen, yang bertindak pada tingkat mikro, pada prinsipnya, mampu mencapai kondisi keseimbangan dengan hanya satu tujuan - untuk bertahan hidup, model yang sangat disederhanakan (dibandingkan dengan ekonomi riil) dikembangkan, dijelaskan di bawah ini.
Ini adalah dunia yang dihuni oleh agen - yaitu penghuni, yang masing-masing mewakili jaringan saraf yang terpisah, yang menganalisis realitas di sekitarnya dan membuat keputusan tertentu. Pada saat memulai program, jaringan saraf diinisialisasi dengan nilai acak dan hanya mereka yang, secara kebetulan, "mencari tahu" cara mendapatkan sumber daya dan melipatgandakan gen mereka ke keturunan mereka, mirip dengan apa yang terjadi dalam realitas objektif kami yang luar biasa.

Masing-masing penghuni ini menerima sejumlah uang tertentu. Agen ini juga merupakan penduduk salah satu dari dua negara: "AS" atau "Zona Euro" bersyarat. Setiap negara memiliki mata uang sendiri: "dolar" dan "euro". Agen memiliki kemampuan untuk menghasilkan satu dari dua jenis barang: "keju" dan "anggur".
Di setiap negara, ~ 50% agen adalah "perempuan" dan mereka tahu cara menghasilkan keju dengan baik. Mereka melakukannya dengan sangat baik jika mereka memiliki anggur. Mereka sendiri juga tahu cara menghasilkan anggur, tetapi ternyata buruk bagi mereka. Yaitu setiap unit barang memiliki ukuran - kualitas (dari 0 hingga 100%) dan jika para gadis membuat keju, tetapi mereka tidak memiliki anggur, maka kualitasnya adalah 10%, tetapi dengan vinyl semuanya 100%.
Bagian kedua dari agen adalah anak laki-laki dan mereka
berbaring di sofa membuat anggur. Apalagi jika keju dimakan sebelumnya. Dan mereka membuat keju dengan buruk, secara umum, segala sesuatu tentang mereka simetris sehubungan dengan para gadis.
Barang cenderung memburuk dari waktu ke waktu, mis. setiap hari kualitas produk menurun. Untuk seumur hidup dan agar berhasil berkembang biak, setiap agen harus mengonsumsi produk yang tidak diketahui cara memproduksinya. Yaitu jika agen memproduksi keju dengan baik, maka paling efektif baginya untuk menjual keju dan membeli anggur. Jika Anda memproyeksikan model pada kehidupan nyata, maka kita dapat mengatakan bahwa tukang roti membuat roti yang baik dan berhasil menjualnya, tetapi untuk kebahagiaan ia membutuhkan vodka, herring dan garasi, karena beberapa roti tidak bisa melakukannya.
Selain itu, agen dapat memperdagangkan mata uang. Misalnya, agen dari Eropa dapat menjual keju yang diproduksi (atau bahkan dibeli sebelumnya) dengan dolar, kemudian menukarnya dengan euro dan membeli makanan untuk mereka. Semua perdagangan dilakukan dengan mengirimkan aplikasi untuk lelang. Aplikasi menunjukkan produk mana yang ingin dijual (atau dibeli) oleh agen, harga, kualitas, dan delta yang diinginkan yang siap ia pindahkan. Agen membuat semua keputusan ini berdasarkan perintah dari jaringan saraf. Yaitu informasi tentang dunia sekitar, seperti:
- nilai tukar saat ini untuk hari ini (mis. bukan riwayat perubahan, tetapi kurs apa yang ditetapkan selama sesi terakhir yang diadakan);
- jumlah barang yang dijual di seluruh dunia, harga rata-rata suatu produk dan usia rata-rata.
Dan agen menerima informasi tentang kondisinya sendiri:
- berapa banyak mata uang yang dimilikinya (dan berapa harganya dia membelinya)
- berapa produk, kualitas produk, biayanya, dll.
- kesehatan sendiri
Jaringan saraf memproses semua informasi input dan mengeluarkan keputusan, seperti: berapa banyak untuk diproduksi, berapa harga dan untuk mata uang apa untuk dijual, berapa kurs untuk menukar satu mata uang dengan mata uang lain, dll.
Jika agen bertindak secara efisien, yaitu, ia mampu menghasilkan produk yang tidak dapat diproduksi dan dikonsumsi, maka ia menerima "vitalitas". Mempertahankan aktivitas apa pun membutuhkan vitalitas ini, termasuk kemampuan untuk mereproduksi membutuhkan banyak energi. Jika ada dua agen dari jenis kelamin yang berbeda, maka mereka dapat membuat keputusan (mengeluarkan anak-anak dari layar) untuk berhubungan seks dan melahirkan agen lain.
Dengan setiap hari hidup menjadi lebih sulit untuk hidup (lebih banyak vitalitas diambil) dan ketika persediaan mereka habis, agen meninggal dan mentransfer akumulasi persediaan uang kepada ahli warisnya.
Fakta kunci dalam percobaan ini adalah bahwa jumlah dolar dan euro dalam sistem sangat terbatas dan rasio jumlah total mata uang adalah sekitar 1 hingga 3. Agen sendiri tidak tahu tentang ini. Mereka hanya memiliki jumlah tertentu dan mereka tidak tahu berapa banyak uang yang beredar di seluruh perekonomian. Yaitu mereka tidak diberi tahu pada tingkat berapa uang itu harus diubah, dan memang mereka menentukan sendiri semua harga. Kemampuan agen untuk sampai pada kursus keseimbangan, yang kita tahu, memiliki keseluruhan informasi, adalah 3 banding 1, adalah bukti konsep kemungkinan menemukan solusi yang efektif tanpa guru.
Dengan kata lain, jika agen menemukan tingkat keseimbangan sebagai hasil dari seleksi alam dalam model yang disederhanakan (dua negara, dua mata uang, dua barang), maka kemungkinan mereka dapat melakukan hal yang sama dalam model yang lebih dekat ke dunia nyata.
Pada gambar di bawah ini, kita melihat berapa banyak euro berjalan di dalam Zona Euro dan seberapa banyak euro bergerak di luar (mis., Dalam kasus ini di AS). Kami tahu hal yang sama tentang dolar.

Dinamika cepat pada awalnya terhubung dengan kekhasan implementasi (lebih mudah dengan cara ini) dan tidak berperan. Pada saat ini, para agen hanya belajar berjalan dan berkembang biak setidaknya entah bagaimana. Pada gambar di bawah ini kita melihat rasio riil jumlah uang beredar dari dua mata uang (garis merah) dan nilai tukar rata-rata (berdasarkan hasil semua transaksi untuk hari itu) yang dibentuk oleh para agen.

Dapat dilihat bahwa rata-rata tingkat transaksi setelah beberapa pengembaraan mencapai level target. Level target adalah garis merah, mis. rasio nyata volume mata uang dan informasi ini tidak tersedia untuk agen.
Namun, sejauh ini kami tidak memiliki keyakinan bahwa ini bukan kecelakaan. Ubah kondisi percobaan, biarkan rasio jumlah uang menjadi sekitar 1 hingga 4.3 dan lihat apa yang terjadi dalam kasus ini:

Dan lagi, agen mencapai nilai kesetimbangan. Sekarang, dengan melihat grafiknya, mungkin kelihatannya semua ini tidak perlu dikatakan, tetapi dalam kenyataannya beberapa tahun dihabiskan untuk membuat proses mulai menyatu. Secara khusus, ternyata jumlah agen memainkan peran penting, ketika jumlah mereka relatif sedikit, prosesnya jauh lebih tidak stabil, dan untuk menyelesaikan masalah kami harus menulis aplikasi terdistribusi yang berjalan pada tiga PC secara bersamaan.
Kesulitan utama adalah bahwa meningkatkan jumlah agen saja tidak cukup, komponen kunci keberhasilan adalah perlunya pengelompokan. Dengan kata lain, ternyata menjadi efektif bukan untuk mengembangkan 100 (jumlah kondisional) agen dalam satu ruang bersama, tetapi ketika mereka dibagi menjadi 10 "kota" masing-masing 10 buah. Yaitu lantai perdagangan tetap global dan agen mana pun dapat berdagang dengan yang lain, tetapi kode genetik berkembang dalam kelompoknya. Hanya di bawah kondisi ini, jalannya mulai menyatu ke keseimbangan.
Berikut adalah beberapa parameter terpenting dari versi yang berfungsi:
- 60 kota
- 5.000 penduduk di kota
- 4 blok jaringan saraf (reproduksi, produksi, perdagangan barang, perdagangan mata uang)
- jaringan saraf bersifat langsung, dua lapis, dengan regularisasi (ada kecurigaan bahwa LSTM akan bekerja lebih baik)
3. Arah pengembangan
Jika masih belum jelas mengapa semua ini diperlukan, cobalah untuk menjawab pertanyaan berikut - bagaimana kurs eur / usd berubah jika:

Dan sekarang mari kita perhatikan bahwa ada pengaruh Cina, Kanada, Jepang, dll. Tentu saja, kita dapat menghitung ini dalam bentuk regresi VAR (yang dilakukan hanya tanpa banyak keberhasilan, lihat komentar Tarullo), namun, pertama, ini adalah penyederhanaan tak berujung dari proses nyata, dan kedua, jumlah kombinasi yang diketahui adalah urutan besarnya lebih kecil daripada yang potensial. Jadi bisa dibayangkan kualitas model seperti itu.
Alternatif untuk ini adalah simulasi proses nyata di tingkat mikro dengan daya komputasi yang lebih banyak. Jika ternyata hasil dari banyak peluncuran akan menyatu ke solusi yang sama dan ini akan dikonfirmasi oleh pengamatan dalam praktiknya, maka ini akan menjadi alat yang sangat kuat bagi investor dan regulator bank sentral.
Jelas, untuk moderasi sistem ekonomi makro yang dekat dengan kenyataan, dibutuhkan lebih banyak modul. Diperlukan untuk mengembangkan arsitektur aplikasi yang dapat berjalan dalam mode terdistribusi di seluruh cluster (secara bersamaan di semua node) dan menerapkan fungsi berikut:
- Agen adalah individu. Mereka dapat belajar, yaitu, meningkatkan produktivitas mereka. Mereka bisa mendapatkan pekerjaan dengan agen: perusahaan, bank atau aparatur negara. Mereka dapat berbelanja, sakit, pensiun, melakukan setoran atau mengambil pinjaman. Mereka dapat membeli saham di perusahaan (perusahaan), yaitu menjadi pemegang saham.
- Agen - perusahaan (perusahaan) yang mempekerjakan individu dan membayar mereka gaji. Produk yang diproduksi dipasarkan. Mereka dapat membuat deposito atau mengambil pinjaman. Mampu membayar pajak dan menghindarinya. Perusahaan dapat menghasilkan barang dan jasa, seperti: makanan, pakaian, transportasi, perumahan, minyak, barang modal, hiburan, obat-obatan pribadi.
- Agen - bank, menawarkan deposito dan pinjaman. Mempekerjakan karyawan (agen individu), berinteraksi dengan Bank Sentral.
- Kementerian Keuangan - dikelola secara langsung (mis. Tidak melalui pemodelan oleh jaringan saraf). Menetapkan aturan pajak (PPN, pajak penghasilan pribadi, pajak sosial, pajak penghasilan perusahaan, bea ekspor / impor, dll.). Menentukan tingkat pengeluaran di bidang kesehatan, pendidikan, pertahanan, dan penyediaan pensiun. Menerbitkan obligasi pemerintah. Semua nilai-nilai ini diterbitkan oleh lembaga pemerintah dan diperkenalkan secara eksogen ke dalam model.
- Bank Sentral - juga parameter eksogen, seperti operasi untuk menghasilkan dan mensterilkan jumlah uang beredar. Manajemen tawaran utama.
- Aparat negara adalah seperangkat agen khusus individu yang mengimplementasikan layanan publik (kesehatan, pendidikan, pertahanan, penegakan hukum).
- Sistem peradilan adalah tingkat kekacauan dalam model. Ini adalah sekumpulan koefisien yang meningkatkan atau mengurangi risiko pada bisnis. Misalnya, koefisien 0,1 berarti peluang 10% kehilangan perusahaan sebagai akibat pengambilalihan raider. Atau penilaian pajak yang tidak adil, dll.
- Tempat untuk transaksi dengan mata uang, saham, obligasi, barang, lowongan, layanan keuangan (pinjaman / deposito).
- Parameter eksogen bantu: cadangan minyak, kemudahan melakukan bisnis, waktu hidup rata-rata, dll.
Serangkaian fungsi seperti itu perlu diimplementasikan untuk beberapa ekonomi terbesar (AS, Cina, Zona Euro, dll.). Proporsi dalam jumlah agen, parameter kunci, rasio, dll. Harus disesuaikan sesuai dengan hasil penelitian internasional (IMF, PBB, dll.).
Kesulitan utama: menerapkan algoritma yang cepat dan andal untuk transaksi dan operasi terdistribusi. Jika Anda melakukan semuanya secara berurutan, tidak ada sumber daya yang cukup untuk semua fungsi yang dijelaskan untuk bekerja dalam waktu yang dapat diterima. Hal ini diperlukan untuk menyediakan skalabilitas tinggi, yang memungkinkan menghubungkan daya komputasi tambahan "on the fly", serta penambahan fungsi yang paling sederhana selama pengembangan berlangsung.
Dan semua ini tentu saja membutuhkan teknologi BigData. Prototipe ditulis dalam C #, namun hari ini akan memilih SpringBootYarn + HBase yang mudah diskalakan. Sebenarnya, saya pikir alasan utama mengapa ini belum direalisasikan adalah karena memerlukan sejumlah besar sumber daya, dalam arti perangkat keras + keahlian yang baik dalam teknologi murah seperti Hadoop. Nah, idenya sendiri juga tidak sepele. Setidaknya saya belum pernah melihat yang seperti ini di mana pun. Mengambil kesempatan ini, saya meminta pikiran kolektif untuk melemparkan tautan jika seseorang terbiasa dengan pekerjaan ke arah ini.
Tentu, jika sejauh ini ini tetap pada antusiasme, di waktu luang Anda, untuk memastikan bahwa konsep ini berfungsi, maka pengembangan lebih lanjut membutuhkan investasi keuangan penuh waktu dan besar. Sejujurnya, saya tidak percaya pada investasi jutaan dolar yang diperlukan untuk beralih dari PoC ke model yang lengkap. Ketika saya mulai, saya berpikir bahwa itu akan membutuhkan urutan sumber daya yang lebih sedikit. Namun, saya yakin bahwa suatu hari ide ini pasti akan menemukan perwujudannya. Setidaknya, ketika besi yang dibutuhkan untuk volume perhitungan seperti itu akan jauh lebih murah dan akan tersedia tidak hanya untuk raksasa keuangan (dan lambat), tetapi juga untuk penggemar seperti saya.
Kesimpulan liris:
Uang tentu saja bagus, tetapi ada kesenangan tersendiri duduk di malam musim dingin yang panjang, melihat kerumunan makhluk kecil ini atas kehendak saya. Ada sesuatu yang menyenangkan tentang hal itu, dari perasaan menjadi pencipta, meskipun primitif, tetapi masih hidup. , , , . , - , , …