Belief Network Simulator

Jumat, 04 Juli 2014
Posted by Fun To Programming
Dosen : Dr. rer. nat. I Made Wiryana, SKom, SSi, MAppSc

BELIEF NETWORK SIMULATOR
“NENGO”
Dosen : Dr. rer. nat. I Made Wiryana, SKom, SSi, MAppSc
figure pict/cover.jpg

Disusun Oleh :
Kelompok 2 - 4IA08
Andhika Prawira (50410660)
Hanif Abirama Gumilang (5341011)
Intan Ratna Puri (53410572)
Nizar Lazuardy Firmansyah (55410015)
Yohanes Christomas Daimler (58410671)

KATA PENGANTAR

Puji dan syukur kami panjatkan kepada Tuhan Yang Maha Esa karena atas berkat rahmat dan karunia-Nya, serta dorongan doa restu, dan dorongan dari berbagai pihak sehingga kelompok kami dapat menyelesaikan tugas penulisan buku ini dengan judul ԂELIEF NETWORK SIMULATORԮ Kami dari tim penulis mengucapkan banyak terimakasih kepada Bapak I Made Wiryana S. Kom. MApp Sc yang telah memberikan bimbingan maupun arahan kepada kelompok kami sehingga kami bisa memahami tentang tugas yang telah diberikan oleh bapak tersebut. Terima kasih juga kepada teman-teman kelas 4IA08 yang telah turut membantu dalam memberikan informasi seputar cara pengerjaan tugas ini. Kami dari tim penulis menyadari bahwa buku yang kami tulis ini masih jauh dari kata sempurna, sehingga jika ada penulisan nama maupun materi yang salah harap dimaklumi. Besar harapan kami dari tim penulis dengan adanya buku ini kami berharap dapat membantu sekaligus memberikan informasi kepada pembaca agar dapat dimanfaatkan oleh pembaca di kemudian hari.

1 PENDAHULUAN

Berbagai kemajuan di bidang teknologi terutama yang berkaitan dengan pengembangan perangkat lunak mengenai sistem jaringan saraf dan simulasi yang telah sedemikian maju dan sangat mendalam. Berbagai upaya dan inovasi untuk mengejar ketertinggalan tak henti-hentinya kita lakukan dimana salah satunya adalah dengan selalu memperbaharui ilmu dan teknologi di bidang komputerisasi yang sekarang kita telah miliki.
Berbagai kasus mulai dari berbagai penelitian penyakit, jaringan, teknologi yang cukup besar dan cenderung meningkat disertai timbulnya penelitian yang baru merupakan tantangan bagi akademis terutama para spesialis komputerisasi yang bergerak dibidang teknologi secara aktif mengembangkan ilmunya dengan selalu meng-update wawasan yang dimilikinya sehingga kebijakan maupun strategi penanganan dapat lebih tepat dan sempurna.
Buku ini membahas tentang sistem jaringan kepercayaan menggunakan software Neural Engineering Object (NENGO) yaitu sebuah perangkat lunak open source simulasi sistem saraf. Versi terbaru dari perangkat lunak Nengo sudah mencapai versi 1.4 dan dapat diunduh secara gratis di http://www.nengo.ca/download.

2 LANDASAN TEORI

Pada Bab II ini akan dijelaskan tentang landasan teori mengenai pengertian dan sejarah dari Belief Network Simulator, serta semua hal yang berhubungan dari software Nengo ini.

2.1 Belief Network

Secara formal Belief Network Simulator adalah struktur grafis yang digunakan untuk mewakili pengetahuan tentang domain pasti. Secara khusus, setiap node dalam grafik merupakan variabel acak, sedangkan tepi antara node mewakili probabilistik dependensi antara variabel-variabel acak yang sesuai. Dependensi kondisional dalam grafi inik sering diperkirakan dengan menggunakan statistik dan dikenal metode komputasi. Oleh karena itu, Belief Network Simulator menggabungkan prinsip-prinsip dari teori graf, teori probabilitas, ilmu pengetahuan komputer, dan statistik.

2.2 Nengo

Nengo adalah sebuah perangkat lunak grafis dan scripting yang digunakan untuk simulasi sistem syaraf dengan skala yang besar. Sebagai perangkat lunak jaringan syaraf, Nengo adalah alat yang ampuh untuk pemodelan jaringan syaraf dengan menggunakan aplikasi yang berguna terhadap pemecahan masalah di bidang psikologi, ilmu kognitif, dan ilmu neuro.

2.3 Neurosains Kognitif

Neurosains Kognitif adalah ilmu yang mempelajari mengenai kognisi dengan penekanan pada perkembangan maupun fungsi-fungsi otak. Istilah neurosains kognitif berasal dari "kognisi" yaitu proses mengetahui dan "neurosains" yaitu ilmu yang mempelajari sistem saraf. Ilmu ini berupaya untuk melokalisir bagian-bagian otak sesuai dengan fungsinya dalam kognisi. Oleh karena itu fokus ilmu ini adalah otak dan sistem saraf yang berkaitan dengan fungsi otak. Neurosains Kognitif merupakan cabang dari kedua psikologi dan ilmu saraf, bertumpang tindih dengan disiplin seperti psikologi fisiologis, psikologi kognitif dan neuropsikologi. Cognitive neuroscience bergantung pada teori-teori dalam ilmu kognitif ditambah dengan bukti dari neuropsikologi dan pemodelan komputasi.
Karena sifat multidisiplin, para ahli saraf kognitif mungkin memiliki berbagai latar belakang. Selain disiplin ilmu yang terkait hanya disebutkan, ahli saraf kognitif mungkin memiliki latar belakang di bidang neurobiologi, bioteknologi, psikiatre, neurologi, fisika, ilmu komputer, linguistik, filsafat dan matematika.
Metode yang digunakan dalam ilmu saraf kognitif meliputi paradigma eksperimental dari psychophysics dan psikologi kognitif, neuroimaging fungsional, elektrofisiologi, genomik kognitif dan genetika perilaku. Studi pasien dengan defisit kognitif karena lesi otak merupakan aspek penting dari ilmu saraf kognitif. Pendekatan teoretis termasuk neurosains komputasi dan psikologi kognitif.
Neuroscience kognitif dapat melihat efek kerusakan pada otak dan perubahan berikutnya dalam proses berpikir karena perubahan dalam sirkuit saraf yang dihasilkan dari kerusakan pun terjadi. Juga, kemampuan kognitif didasarkan pada perkembangan otak dipelajari dan diperiksa di bawah subfield ilmu perkembangan saraf kognitif.

2.3.1 Asal dan Sejarah

Sejarah dari neurosains kognitif bermula dari penelitian ilmu psikologi kognitif yang berawal pada saat plato dan muridnya aristoteles memperdepatkan manusia memperoleh pengetahuan. aristoteles menganggap bahwa pengetahuan berada di jantung, tetapi gurunya plato mengatakan bahwa pengetahuan berada di otak. lalu pada abad- abad berikutnya muncullah psikolog jerman yang bernama wilhem wundt yang mengajukan ide untuk mempelajari pengalaman sensori melalui introspeksi. Setelah itu munculah aliran assosiasi Edward thorndike, yang mulai menggunakan stimulus dan diikuti dengan aliran behaviorisme yang memasangkan antara stimulus dan respon dalam proses belajar.

2.3.1.1 Kesadaran

Neurosains kognitif adalah bidang interdisipliner studi yang telah muncul dari banyak bidang lain, mungkin yang paling signifikan neurosains, psikologi, dan ilmu komputer. Ada beberapa tahapan dalam disiplin ilmu ini yang mengubah cara peneliti mendekati penyelidikan mereka dan yang menyebabkan lapangan menjadi sepenuhnya didirikan.
Meskipun tugas ilmu saraf kognitif adalah untuk menjelaskan bagaimana otak menciptakan pikiran, secara historis telah berkembang dengan menyelidiki bagaimana daerah tertentu dari otak mendukung kemampuan mental tertentu. Namun, upaya awal untuk membagi otak terbukti bermasalah. Gerakan phrenologist gagal untuk menyediakan dasar ilmiah untuk teori dan sejak itu telah ditolak. Pandangan lapangan agregat, yang berarti bahwa semua area otak berpartisipasi dalam semua perilaku, juga ditolak sebagai akibat dari pemetaan otak, yang dimulai dengan Hitzig dan percobaan Fritsch dan akhirnya dikembangkan melalui metode seperti tomografi emisi positron (PET) dan pencitraan resonansi magnetik fungsional (fMRI) teori. Gestalt, neuropsikologi, dan revolusi kognitif adalah titik balik utama dalam penciptaan ilmu saraf kognitif seperti ladang, menyatukan ide-ide dan teknik yang memungkinkan peneliti untuk membuat lebih banyak link antara perilaku dan substrat saraf nya.

2.3.1.2 Sumber dalam Filsafat

Filosofi selalu tertarik dalam pikiran. Sebagai contoh, Aristoteles mengira otak adalah sistem pendingin tubuh dan kapasitas intelijen terletak di jantung. Ia telah mengemukakan bahwa orang pertama yang percaya sebaliknya adalah dokter Romawi Galen pada abad kedua Masehi, yang menyatakan bahwa otak adalah sumber dari aktivitas mental meskipun hal ini juga telah terakreditasi untuk Alcmaeon. Psikologi, bidang kontributor utama untuk ilmu saraf kognitif, muncul dari penalaran filosofis tentang pikiran.

2.3.1.3 Phrenology

Salah satu pendahulu untuk neurosains kognitif phrenology, pendekatan ilmuan yang menyatakan bahwa perilaku dapat ditentukan oleh bentuk kulit kepala. Pada awal abad ke-19, Franz Joseph Gall dan JG Spurzheim percaya bahwa otak manusia terlokalisasi sekitar 35 bagian yang berbeda. Dalam bukunya, The Anatomi dan Fisiologi Sistem Saraf di Umum, dan Otak di Particular, Gall mengklaim bahwa benjolan besar di salah satu daerah ini berarti bahwa daerah otak yang lebih sering digunakan oleh orang tersebut. Teori ini mendapat perhatian publik yang signifikan, yang mengarah ke publikasi jurnal phrenology dan penciptaan phrenometers, yang mengukur tonjolan di kepala subjek manusia. Sementara phrenology tetap fixture di pameran dan karnaval, itu tidak menikmati penerimaan luas dalam komunitas ilmiah. Kritik yang paling utama phrenology adalah bahwa peneliti tidak dapat menguji teori secara empiris.

2.3.1.4 Pandangan Lokalisasi

Pandangan lokalisasi dengan kemampuan mental yang lokal ke daerah-daerah tertentu dari otak, bukan pada apa karakteristik kemampuan itu dan bagaimana mengukur mereka. Studi yang dilakukan di Eropa, seperti dari John Hughlings Jackson, mendukung pandangan ini. Jackson mempelajari pasien dengan kerusakan otak, terutama mereka dengan epilepsi. Ia menemukan bahwa pasien epilepsi sering membuat gerakan klonik dan tonik yang sama otot selama kejang mereka, yang menyebabkan Jackson untuk percaya bahwa mereka harus terjadi di tempat yang sama setiap waktu. Jackson mengusulkan bahwa fungsi spesifik lokal ke daerah-daerah tertentu dari otak, yang penting untuk pemahaman masa depan lobus otak.

2.3.1.5 Pemandangan lapangan Agregat

Menurut pandangan bidang agregat, semua area otak berpartisipasi dalam setiap fungsi mental.
Pierre Flourens, seorang psikolog eksperimental asal Perancis, menantang pandangan lokalisasi dengan menggunakan hewan percobaan. Ia menemukan bahwa menghapus cerebellum pada kelinci dan merpati mempengaruhi rasa koordinasi otot, dan bahwa semua fungsi kognitif yang terganggu pada merpati ketika belahan otak telah dihapus. Dari sini ia menyimpulkan bahwa korteks otak, otak kecil, dan batang otak berfungsi bersama-sama secara keseluruhan. Pendekatannya telah dikritik atas dasar bahwa tes tidak cukup sensitif untuk melihat defisit selektif telah mereka hadir.

2.3.1.6 Munculnya Neuropsikologi

Upaya serius pertama untuk melokalisasi fungsi mental ke lokasi tertentu di otak adalah dengan Broca dan Wernicke. Hal ini sebagian besar dicapai dengan mempelajari efek dari cedera ke berbagai bagian otak pada fungsi psikologis. Pada tahun 1861, ahli saraf dari Prancis yaitu Paul Broca menemukan seorang pria yang mampu memahami bahasa namun tidak dapat berbicara. Pria itu hanya bisa menghasilkan suara "tan". Ia kemudian menemukan bahwa manusia memiliki kerusakan daerah lobus frontal kirinya sekarang dikenal sebagai area Broca. Carl Wernicke, seorang ahli saraf Jerman, menemukan pasien yang bisa berbicara lancar tapi non-bijaksana. Pasien telah menjadi korban dari stroke, dan tidak bisa mengerti bahasa lisan atau tertulis. Pasien ini memiliki lesi di daerah mana parietal kiri dan lobus temporal bertemu, sekarang dikenal sebagai daerah Wernicke. Kasus-kasus ini, yang menunjukkan bahwa lesi menyebabkan perubahan perilaku tertentu, sangat mendukung tampilan localizationist.

2.3.1.7 Pemetaan Otak

Pada tahun 1870, dokter dari Jerman Eduard Hitzig dan Gustav Fritsch menerbitkan temuan mereka tentang perilaku hewan. Hitzig dan Fritsch berlari arus listrik melalui korteks serebral seekor anjing, menyebabkan otot-otot yang berbeda untuk kontrak tergantung pada area otak yang dirangsang secara elektrik. Hal ini menyebabkan proposisi bahwa fungsi individu dilokalisasi ke daerah-daerah tertentu dari otak daripada otak secara keseluruhan, sebagai pandangan lapangan agregat menunjukkan Brodmann juga seorang tokoh penting dalam pemetaan otak. Eksperimen berdasarkan jaringan teknik pewarnaan Franz Nissl yang dibagi otak menjadi lima puluh dua daerah.

2.3.1.8 Revolusi Kognitif

Pada awal abad ke-20, sikap di Amerika ditandai dengan pragmatisme, yang menyebabkan preferensi untuk behaviorisme sebagai pendekatan utama dalam psikologi. JB Watson adalah tokoh kunci dengan pendekatan stimulus-response-nya. Dengan melakukan percobaan pada hewan ia bertujuan untuk dapat memprediksi dan mengendalikan perilaku. Behaviorisme akhirnya gagal karena tidak bisa memberikan psikologi realistis tindakan dan pemikiran manusia - itu terlalu berbasis di konsep fisik untuk menjelaskan fenomena seperti memori dan berpikir. Hal ini menyebabkan apa yang sering disebut sebagai "revolusi kognitif".

2.3.1.9 Doktrin Neuron

Pada awal abad 20, Santiago Ram󮠹 Cajal dan Camillo Golgi mulai bekerja pada struktur neuron. Golgi mengembangkan metode pewarnaan perak yang sepenuhnya bisa noda beberapa sel di daerah tertentu, memimpin dia untuk percaya bahwa neuron secara langsung terhubung satu sama lain dalam satu sitoplasma. Cajal menantang pandangan ini setelah pewarnaan area otak yang memiliki kurang mielin dan menemukan bahwa neuron adalah sel diskrit. Cajal juga menemukan bahwa sel-sel mengirimkan sinyal listrik ke neuron dalam satu arah saja. Baik Golgi dan Cajal dianugerahi Hadiah Nobel dalam Fisiologi atau Kedokteran pada tahun 1906 untuk pekerjaan ini pada doktrin neuron.

2.3.1.10 Pertengahan-Akhir Abad 20

Beberapa temuan dalam abad ke-20 terus memajukan lapangan, seperti penemuan kolom dominasi mata, rekaman sel saraf tunggal pada hewan, dan koordinasi gerakan mata dan kepala. Psikologi eksperimental juga signifikan dalam dasar ilmu saraf kognitif. Beberapa hasil penting adalah demonstrasi bahwa beberapa tugas yang dilakukan melalui tahapan proses diskrit, studi perhatian, dan gagasan bahwa data perilaku tidak memberikan informasi yang cukup sendiri untuk menjelaskan proses mental. Akibatnya, beberapa psikolog eksperimental mulai menyelidiki basis neural perilaku. Wilder Penfield membangun peta daerah sensorik dan motorik utama otak dengan merangsang korteks pasien selama operasi. Sperry dan Gazzaniga yang bekerja pada pasien otak perpecahan pada 1950-an juga berperan dalam kemajuan lapangan.

2.3.1.11 Pemetaan Otak Baru

Teknologi pemetaan otak baru, terutama fMRI dan PET, memungkinkan peneliti untuk menyelidiki strategi eksperimental psikologi kognitif dengan mengamati fungsi otak. Meskipun hal ini sering dianggap sebagai metode baru (sebagian besar teknologi ini relatif baru), prinsip dasar kembali sejauh 1878 ketika aliran darah pertama kali berhubungan dengan fungsi otak. Angelo Mosso, seorang psikolog dari Italia abad ke-19, telah memantau denyutan dari otak orang dewasa melalui cacat tulang neurosurgically dibuat dalam tengkorak pasien. Dia mencatat bahwa ketika subjek yang terlibat dalam tugas-tugas seperti perhitungan matematika denyutan otak meningkat secara lokal. Pengamatan itu dipimpin Mosso untuk menyimpulkan bahwa aliran darah otak mengikuti fungsi.

2.4 Bahasa Pemrograman Java

Java adalah sebuah bahasa pemrograman pada komputer sama seperti pendahulunya yaitu C++. Bahasa pemrograman ini dikembangkan oleh Sun Microsystems yang dikembangkan pada tahun 1995. Java sendiri merupakan bahasa pemrograman yang berbasis objek, maksudnya adalah semua aspek yang terdapat pada java adalah objek sehingga sangat memudahkan untuk mendesain, membuat, dan mengembangkan program java dengan cepat. Kelebihan ini membuat program java menjadi mudah untuk digunakan oleh banyak orang. Bahasa pemrograman ini juga dapat digunakan oleh banyak sistem operasi, seperti : Microsoft Windows, Linux, Mac OS, dan Sun Solaris.

2.4.1 Sejarah dan perkembangan Java

Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling, dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai Ӫ7⿳ (Star Seven). Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer. Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java. Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape. Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja Ԣapak javaԬ James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi ԊavaԮ Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.

2.4.2 Versi Awal Java

Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
  • java.lang : Peruntukan kelas elemen-elemen dasar.
  • java.io : Peruntukan kelas input dan output, termasuk penggunaan berkas.
  • java.util : Peruntukan kelas pelengkap seperti kelas struktur data dan kelas-kelas penanggalan.
  • java.net :Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
  • java.awt : Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI).
  • java.applet :Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

2.4.3 Kelebihan Bahasa Pemrograman Java

Berikut ini adalah beberapa kelebihan dari bahasa pemrograman Java :
  • Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
  • OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi-fungsi yang advance seperti komunikasi antara komputer sekalipun.
  • Perpustakaan kelas yang lengkap, Java terkenal dengan kelengkapan library (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
  • Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++] sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
  • Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung.

2.4.4 Kekurangan Bahasa Pemrograman Java

Berikut ini adalah beberapa kekurangan dari bahasa pemrograman Java :
  • Tulis sekali, perbaiki di mana saja. Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
  • Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak atau direverse-engineer.
  • Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

2.5 Simulasi

Simulasi adalah metode yang paling luas penggunaannya dalam mengevaluasi berbagai alternatif sistem sumberdaya air. Teknik ini mengandalkan cara coba-banding (trial-and-error) untuk memperoleh hasil yang mendekati optimal. Model simulasi mempunyai maksud untuk mereproduksi watak esensial dari sistem yang dipelajari. Teknik simulasi dapat dibayangkan dengan percobaan (eksperimen), sebagai penyelesaian masalah untuk mempelajari sistem yang kompleks yang tidak dapat dianalisis secara langsung dengan cara analitik. Teknik simulasi merupakan metode kuantitatif yang menggambarkan perilaku suatu sistem. Digunakan untuk memperkirakan keluaran (output) dari masukan (input) sistem yang telah ditentukan.

3 PEMBAHASAN SOFTWARE

Pada Bab III ini akan dijelaskan tentang pembahasan dari software Nengo, instalasi, dan menjelaskan fungsi-fungsi serta manfaat pada fasilitas yang ada pada software tersebut.

3.1 Representasi Satu-Dimensi

3.1.1 Instalasi dan Menjalankan Nengo

  • Nengo dapat berjalan pada sistem operasi Linux, OS X, dan Windows. Satu-satunya persyaratan adalah bahwa anda harus memiliki Java (http://java.com) yang sudah diinstal pada komputer anda.
  • Untuk mengunduh Nengo, file dapat diunduh file dari http://nengo.ca.
  • Untuk menginstal Nengo, hanya unzip file tersebut.
  • Untuk menjalankan Nengo :
    • Klik dua kali pada nengo.bat (pada Windows).
    • Run ./ nengo (di OS X dan Linux).
figure pict/3.1.png
Gambar 3.1 Blank Document

3.1.2 Membuat Jaringan

  • Ketika membuat model NEF, langkah pertama adalah untuk menciptakan sebuah jaringan. Ini akan berisi semua ensambel saraf dan setiap masukan yang diperlukan untuk sistem.
    • Pilih File-> Pilih New Network (atau tarik jaringan dari sidebar).
    • Berikan nama jaringan tersebut.
figure pict/3.2.png
Gambar 3.2 Network Viewer
(Anda dapat membuat jaringan di dalam jaringan lain. Hal ini dapat berguna untuk organisasi hirarkis model).

3.1.3 Membuat Ensemble

  • Ensemble harus ditempatkan dalam jaringan agar dapat digunakan.
  • Tarik sebuah ensemble dari sidebar dan taruh di dalam jaringan.
figure pict/3.3.png
Gambar 3.3 Membuat Ensemble
  • Berikut fitur dasar dari ensemble dapat dikonfigurasi
    • Nama.
    • Jumlah node (yaitu neuron).
    • Dimensi (jumlah nilai-nilai dalam vektor dikodekan oleh neuron ini, berangkat pukul 1 untuk saat ini).
    • Radius (rentang nilai yang dapat dikodekan, misalnya, nilai 100 berarti ensemble dapat nomor encode antara -100 dan 100).
  • Node Factory (jenis neuron untuk menggunakan).
figure pict/3.4.png
Gambar 3.4 Konfigurasi Ensamble
  • Pada tutorial ini (dan untuk sebagian besar penelitian),menggunakan LIF Neuron, standar Leaky mengintegrasikan neuron api. Mengklik Set memungkinkan untuk parameter neuron yang akan dikonfigurasi * Torc (RC waktu yang konstan untuk membran neuron; biasanya 0,02) * tauRef (periode refrakter mutlak untuk neuron, biasanya 0,002) * Max rate (laju pembakaran maksimum untuk neuron, setiap neuron akan memiliki laju pembakaran maksimum dipilih dari distribusi seragam antara rendah dan tinggi) * Intercept (kisaran mungkin x-penyadapan pada kurva tala grafik; biasanya ditetapkan dengan -1 dan 1).
  • Karena ada banyak parameter untuk mengatur dan kita sering memilih nilai yang sama, Nengo akan mengingat anda untuk pengaturan sebelumnya. Anda pun dapat menyimpan template dengan mendirikan parameter yang anda inginkan dengan cara mengklik New di kotak Template. Anda kemudian akan dapat kembali ke pengaturan ini dengan memilih template dari kotak drop-down.
figure pict/3.5.png
Gambar 3.5 Melihat Jaringan Ensemble
  • Anda dapat mengklik dua kali pada ensemble untuk melihat neuron individu di dalamnya.
figure pict/3.6.png
Gambar 3.6 Melihat Jaringan Neuron Individu

3.1.4 Plotting Tuning Curves

  • Hal ini menunjukkan untuk perilaku setiap neuron ketika mewakili nilai-nilai yang berbeda (yaitu kurva tuning untuk neuron).
  • Klik kanan pada ansambel, pilih Plot-> Tanggapan Angka Konstan.
figure pict/3.7.png
Gambar 3.7 Tuning Curves
  • tauRC mempengaruhi linearitas dari neuron (nilai-nilai yang lebih kecil lebih linear).
  • Max tingkat mempengaruhi ketinggian kurva di sisi kiri dan kanan.
  • Intercept mempengaruhi di mana kurva memukul sumbu x (yaitu nilai di mana neuron mulai firing).

3.1.5 Plotting Representation Error

  • Kita sering ingin menentukan keakuratan ansambel saraf.
  • Klik kanan pada ansambel, pilih Plot-> Plot Distortion: X
figure pict/3.8.png
Gambar 3.8 Plot Distortion
  • Berarti Kesalahan Squared (MSE) juga ditampilkan (di bagian atas).
  • MSE menurun sebagai kuadrat dari jumlah neuroN (jadi RMSE sebanding dengan 1 / N).
  • Bisa juga mempengaruhi akurasi representasi dengan menyesuaikan berbagai penyadapan. Ini akan menyebabkan sistem menjadi lebih akurat di tengah-tengah rentang dan kurang akurat di tepi.

3.1.6 Menyesuaikan sebuah Ensemble

  • Setelah ensemble dibuat, kita dapat memeriksa dan memodifikasi banyak parameter.
  • Klik kanan pada sebuah ensemble dan pilih Inspektur (atau pilih ensemble dan klik kaca pembesar di kanan atas).
figure pict/3.9.png
Gambar 3.9 Inspector Ensemble
  • neuron (jumlah neuron, ini akan membangun kembali seluruh ensemble).
  • radii / jari-jari (rentang nilai yang dapat dikodekan, dapat berbeda untuk dimensi yang berbeda).
  • encoders (vektor arah pilihan untuk setiap neuron).

3.1.7 Script Console

  • Nengo juga memungkinkan user untuk berinteraksi dengan model melalui antarmuka scripting menggunakan bahasa Python. ini berguna untuk menulis skrip untuk membuat komponen model yang sering Anda gunakan.
  • Anda juga dapat menggunakannya untuk memeriksa dan memodifikasi berbagai aspek model.
  • Tekan Ctrl-1 (Command-1 OS X) atau pilih View-> Toggle Script Console untuk menunjukkan antarmuka skrip :
    • Fleksibilitas penuh bahasa pemrograman Python tersedia dalam konsol ini. Interface konsol ini mendasari kode Java dari simulasi menggunakan Jython, membuat semua metode Java menjadi tersedia.
  • Jika Anda mengklik pada objek di GUI (sehingga disorot dengan warna kuning), objek yang sama ini tersedia dengan nama bahwa dalam konsol naskah.
    • Klik pada ensemble
    • Buka Script console
    • Ketik That.neurons
    • Ketik that.neurons = 50
  • Anda juga dapat menjalankan script dengan mengetikkan run [scriptname.py] atau dengan membuka script menggunakan File-> Open atau dengan mengklik folder di kiri atas.

3.2 Transformasi Linear

3.2.1 Membuat Termination

  • Sambungan antara ansambel dibangun menggunakan Origins dan pemutusan hubungan kerja. Asal dari satu ensemble dapat dihubungkan ke Pemutusan pada ansambel berikutnya.
  • Buat dua ansambel. Mereka dapat memiliki sifat saraf yang berbeda dan nomor yang berbeda dari neuron, tapi untuk saat ini pastikan mereka berdua satu-dimensi.
  • Tarik ikon Pemutusan dari sidebar ke ensemble kedua.
    • Memberikan nama (misalnya, input) .
    • Mengatur dimensi input ke 1 dan menggunakan Berat Set untuk mengatur berat koneksi ke 1.
    • Set tauPSC 0,01 (waktu sinaptik ini berbeda konstan sesuai dengan yang neurotransmitter yang terlibat. 10 ms adalah waktu yang konstan untuk AMPA (5-10ms).
figure pict/3.10.png
Gambar 3.10 Konfigurasi tauPSC
figure pict/3.11.png
Gambar 3.11 Konfigurasi tauPSC
figure pict/3.12.png
Gambar 3.12 Hasil Konfigurasi tauPSC

3.2.2 Membuat Project

  • Kita sekarang dapat menghubungkan dua ensambel saraf.
  • Setiap ensemble secara otomatis memiliki asal yang disebut X. Ini merupakan asal cocok untuk membangun setiap transformasi linear. Dalam Bagian Tiga ini kita akan menunjukkan cara membuat asal-usul untuk transformasi non-linear
figure pict/3.13.png
Gambar 3.13 Menghubungkan Ensambel Saraf
  • Klik dan tarik dari asal pemutusan tersebut. Ini akan membuat project/proyeksi yang diinginkan
figure pict/3.14.png
Gambar 3.14 Menghubungkan Ensambel Saraf

3.2.3 Menambahkan Input

  • Dalam rangka untuk menguji bahwa project ini bekerja, kita perlu mengatur nilai dikodekan oleh ensemble saraf pertama. Kami melakukan ini dengan membuat sebuah input ke sistem. Ini adalah bagaimana semua input eksternal untuk model Nengo ditentukan.
  • Seret ikon Masukan Fungsi dari sidebar ke dalam jaringan.
  • Berikan nama (misalnya, Input eksternal).
  • Mengatur dimensi output nya ke 1.
figure pict/3.15.png
Gambar 3.15 Menambahkan Input
figure pict/3.16.png
Gambar 3.16 Menambahkan Input
  • Tekan Set Function untuk menentukan perilaku masukan ini.
  • Pilih Constant dari daftar drop-down dan kemudian tekan Set untuk menentukan nilai itu sendiri.
figure pict/3.17.png
Gambar 3.17 Menambahkan Input
figure pict/3.18.png
Gambar 3.18 Menambahkan Input
figure pict/3.19.png
Gambar 3.19 Hasil dari Menambahkan Input
  • Tambahkan terminasi ansambel saraf pertama (seperti sebelumnya) dan membuat proyeksi (seperti sebelumnya) dari input baru untuk ensemble itu.
figure pict/3.20.png
Gambar 3.20 Hasil dari Menambahkan Input

3.2.4 Plot Interactive

  • Untuk mengamati kinerja model ini, kita sekarang beralih ke Plot Interaktif. Hal ini memungkinkan kita untuk kedua grafik kinerja model dan menyesuaikan input on-the-fly untuk melihat bagaimana hal ini mempengaruhi perilaku.
  • Mulai Interaktif Plot dengan mengklik kanan di dalam Jaringan dan memilih Plot Interaktif atau mengklik ӧanda sinus өcon di bagian kanan atas.
figure pict/3.21.png
Gambar 3.21 Plot Interactive
  • Teks menunjukkan berbagai komponen model Anda, dan panah menunjukkan koneksi sinaptik antara mereka.
    • Anda dapat memindahkan komponen dengan kiri klik menariknya dapat memindahkan semua komponen dengan menyeret latar belakang.
    • Anda dapat menyembunyikan komponen dengan mengklik kanan dan memilih "menyembunyikan".
    • Untuk menampilkan komponen tersembunyi, klik kanan pada background dan pilih komponen dengan nama.
  • Bagian bawah jendela menunjukkan kontrol untuk menjalankan simulasi.
    • Simulasi dapat dimulai dan berhenti dengan menekan Play atau tombol Pause di bagian kanan bawah. melakukan ini sekarang akan menjalankan simulasi, tetapi tidak ada data yang akan ditampilkan karena kita belum memiliki grafik terbuka !
    • Tombol reset di paling kiri membersihkan semua data dari simulasi dan menempatkan kembali ke awal.
    • Di tengah adalah sebuah slider yang menunjukkan waktu saat ini dalam simulasi. Setelah simulasi telah dijalankan, kita bisa geser kembali dan sebagainya untuk mengamati data dari waktu yang berbeda dalam simulasi.
  • Klik kanan pada komponen juga memungkinkan kita untuk memilih jenis data untuk menunjukkan tentang komponen itu.
    • Klik kanan pada A dan pilih "value". Hal ini menciptakan grafik yang menunjukkan nilai yang diwakili oleh neuron dalam ansambel A. Anda dapat memindahkan grafik oleh kiri-klik menyeretnya, dan Anda dapat mengubah ukurannya dengan menarik dekat sudut-sudut atau menggunakan mouse scroll wheel.
    • Tekan tombol Play di bagian bawah kanan atau jendela dan mengkonfirmasi bahwa kelompok neuron berhasil mewakili nilai input, yang sebelumnya kita tetapkan menjadi 0,5.
figure pict/3.22.png
Gambar 3.22 Plot Interactive
  • Sekarang mari kita lihat apa yang terjadi jika kita mengubah input. Klik kanan pada input dan pilih "Control". Hal ini memungkinkan kita bervariasi masukan saat simulasi berjalan.
  • Tarik slider ke atas dan ke bawah saat simulasi berjalan (tekan Play lagi jika di Pause). Neuron pada ensemble A harus berhasil mewakili nilai-nilai berubah.
figure pict/3.23.png
Gambar 3.23 Plot Interactive
  • Kita juga dapat melihat apa yang neuron individu lakukan selama simulasi. Klik kanan pada A dan pilih "Spike raster". Hal ini menunjukkan paku individu yang berasal dari neuron. Karena ada 100 neuron di ensemble A, paku dari hanya sub-set ini ditunjukkan. Anda dapat klik kanan pada grafik lonjakan raster dan menyesuaikan proporsi paku ditampilkan. Mengubahnya ke 50%.
  • Jalankan simulasi dan mengubah input. Ini akan mempengaruhi pola neuron firing atau menembak.
figure pict/3.24.png
Gambar 3.24 Plot Interactive
  • Kita juga dapat melihat level tegangan dari semua neuron individu. Klik kanan pada A dan pilih "voltage grid". Setiap neuron ditampilkan sebagai persegi dan shading alun-alun yang menunjukkan tegangan sel yang neuron membran, dari hitam (potensial istirahat) ke putih (menembak threshold). Kuning menunjukkan lonjakan.
  • Neuron awalnya memerintahkan secara acak. Anda dapat mengubah ini dengan mengklik kanan pada voltage grid dan cara memilih "Improve Layout". Ini akan mencoba untuk re-order neuron sehingga neuron dengan pola penembakan serupa dekat satu sama lain, karena mereka berada di otak. Ini tidak lain mempengaruhi simulasi dengan cara apapun.
  • Jalankan simulasi dan mengubah input. Ini akan mempengaruhi tegangan atau voltage neuron.
figure pict/3.25.png
Gambar 3.25 Plot Interactive
  • Sejauh ini, kami baru saja grafik informasi tentang saraf A. Kami ensemble telah menunjukkan bahwa 100 neuron akurat dapat mewakili nilai yang masukan langsung kepada mereka.
  • Agar hal ini berguna untuk membangun model kognitif, kita perlu juga menunjukkan bahwa output dari spiking ini kelompok neuron dapat digunakan untuk mentransfer informasi ini dari salah satu kelompok saraf yang lain.
    • Dengan kata lain, kami ingin menunjukkan bahwa B dapat mewakili hal yang sama seperti A, di mana hanya masukan B adalah menembak saraf dari grup A. Agar hal ini terjadi, yang benar bobot hubungan sinaptik antara A dan B (sesuai Rekayasa Kerangka Neural) harus dihitung.
    • Nengo otomatis menghitung bobot ini setiap kali asal dibuat.
  • Kita dapat melihat bahwa komunikasi ini berhasil dengan menciptakan grafik untuk ensemble B.
    • Lakukan ini dengan mengklik kanan pada B dan memilih "value", dan kemudian mengklik kanan pada B lagi dan memilih "Voltage grid".
    • Untuk membantu dalam mengidentifikasi grafik yang berjalan dengan ensemble, klik kanan pada grafik dan pilih "label".
    • Grafik dapat dipindahkan (dengan menyeret) dan ukurannya (dengan menyeret dekat tepi dan sudut atau scroll mouse) seperti yang diinginkan.
figure pict/3.26.png
Gambar 3.26 Plot Interactive
  • Perhatikan bahwa ansambel saraf dapat mewakili nilai yang sama, tetapi memiliki pola penembakan yang berbeda.
  • Tutup Plot Interaktif/Interactive Plot ketika Anda selesai.

3.2.5 Menambahkan Skalar

  • Jika kita ingin menambahkan dua nilai, kita hanya dapat menambahkan terminasi/termination lain untuk ansambel akhir dan proyek sebagai dengan baik.
  • Buat terminasi ansambel kedua yang disebutҒ masukan 2Ғ.
  • Buat ansambel baru.
  • Membuat proyeksi/project dari X asal input 2.
figure pict/3.27.png
Gambar 3.27 Menambahkan Skalar
  • Buka Interactive Plot.
  • Tampilkan controls untuk dua input.
  • Buat value graph untuk tiga ansambel saraf.
  • Tekan Play untuk memulai simulasi. Nilai untuk ansambel akhir harus 0,5-0,7 = -0.2.
  • Gunakan control slider untuk menyesuaikan input. Outputnya harus tetap menjadi jumlah input.
figure pict/3.28.png
Gambar 3.28 Menambahkan Skalar
  • Ini akan berlaku untuk sebagian besar nilai-nilai. Namun, jika jumlahnya adalah di luar radius yang ditetapkan ketika kelompok saraf dibentuk (dalam hal ini, dari -1 sampai 1), maka neuron mungkin tidak dapat memecat cukup cepat untuk menyatakan bahwa nilai (yaitu, mereka akan jenuh). Coba ini dengan menghitung 1 +1. Hasilnya hanya akan sekitar 1,3.
  • Untuk keaakuratan mewakili nilai-nilai di luar jangkauan -1 ke 1, kita perlu mengubah radius dari ansambel output. Kembali ke Nengo Workspace dan mengkonfigurasi ensemble B. Mengubah nya Ӫari-jariҠto 2. Sekarang kembali ke Interaktif Plot. Jaringan sekarang harus akurat menghitung bahwa 1 +1 = 2.

3.2.6 Menyesuaikan Transformasi

  • Sejauh ini, kita hanya mempertimbangkan proyeksi yang tidak menyesuaikan nilai yang diwakili dengan cara apapun. Namun, karena derivasi NEF bobot sinaptik antara neuron, kita dapat menyesuaikan ini untuk membuat sewenang-wenang linear transformasi (yaitu kita dapat mengalikan setiap nilai diwakili oleh matriks).
  • Setiap terminasi di Nengo memiliki transformasi matriks terkait. Hal ini dapat disesuaikan sesuai keinginan. dalam hal ini kasus, kita akan dua kali lipat bobot nilai asli, jadi bukan komputasi x + y, jaringan akan menghitung 2x + y.
  • Klik kanan pada penghentian pertama dalam ansambel yang memiliki dua proyeksi datang ke dalamnya. Pilih Inspektur. Klik dua kali pada transformasi.
  • Klik dua kali pada 1,0 dan mengubahnya menjadi 2,0.
figure pict/3.29.png
Gambar 3.29 Menyesuaikan Transformasi
  • Klik ӓave ChangesҮ
  • Sekarang run/jalankan simulasi. Hasil akhir harus 2 (0.5) -0.7 = 0,3

3.2.7 Multiple Dimention

  • Semuanya dibahas di atas juga berlaku untuk ansambel yang mewakili lebih dari satu dimensi.
  • Untuk membuat ini, tenetapkan jumlah dimensi sampai 2 saat membuat ansambel.
figure pict/3.30.png
Gambar 3.30 Pengaturan Multiple Dimensi
  • Ketika menambahkan terminasi dimensi input dapat disesuaikan. Ini mendefinisikan bentuk transformasi matriks untuk terminasi, memungkinkan untuk proyeksi yang mengubah dimensi data.
figure pict/3.31.png
Gambar 3.31 Pengaturan Multiple Dimensi
  • Sebagai contoh, dua nilai 1-dimensi dapat dikombinasikan menjadi sebuah ensemble dua dimensi tunggal. ini akan dilakukan dengan dua penghentian: satu dengan transformasi (atau kopling) matriks [1 0] dan yang lainnya dengan [0 1].
  • Jika dua input disebut a dan b, ini akan menghasilkan perhitungan sebagai berikut:
    • A * [1 0] + b * [0 1] = [a 0] + [0 b] = [a, b]
    • Ini akan berguna untuk membuat transformasi non-linear, seperti yang dibahas lebih lanjut dalam bagian berikutnya.
  • Ada cara lain untuk melihat representasi 2D di plot interaktif, termasuk:
    • Merencanakan aktivitas neuron di sepanjang vektor arah yang mereka sukai.
    • Merencanakan nilai didekode 2D dari representasi.
figure pict/3.32.png
Gambar 3.32 Multiple Dimensi

3.2.8 Scripting

  • Seiring dengan kemampuan untuk membangun model menggunakan antarmuka ini point-and-klik, Nengo juga menyediakan sebuah Python antarmuka bahasa scripting untuk pembuatan model. Contoh-contoh ini dapat dilihat dalam "demo" direktori.
  • Untuk membuat saluran komunikasi melalui antarmuka scripting, klik pada icon Folder (kiri atas), navigasi ke / direktori demo (di dalam folder rumah Nengo) dan terbuka "communication.py".
  • Aktual kode untuk ini dapat dilihat dengan membuka file communication.py dalam editor teks :
import nef net=nef.Network(Ӄommunications Channelҩ
input=net.make_input(өnputҬ[0.5])
A=net.make(ӁҬ100,1)
B=net.make(ӂҬ100,1)
net.connect(input,A)
net.connect(A,B)
net.add_to(world)
  • Script demo berikut membuat model serupa dengan yang terlihat di bagian tutorial.
    • demo / singleneuron.py menunjukkan apa yang terjadi dengan ensemble dengan hanya neuron tunggal di atasnya (sedikit representasi).
    • demo / dua neurons.py menunjukkan dua neuron bekerja sama untuk mewakili.
    • demo / manyneurons.py menunjukkan ensemble standar 100 neuron mewakili nilai.
    • demo / communication.py menunjukkan saluran komunikasi.
    • demo / addition.py menunjukkan menambahkan dua angka.
    • demo/2d representation.py menunjukkan 100 neuron yang mewakili vektor 2-D.
    • demo / combining.py menunjukkan dua nilai terpisah yang digabungkan ke dalam vektor 2-D.

3.3 Transformasi Non Linear

3.3.1 Fungsi dari satu variable

  • Kita sekarang beralih ke menciptakan transformasi nonlinear di Nengo. Ide utama di sini adalah bahwa alih-alih menggunakan X asal, kita akan menciptakan sebuah asal baru yang memperkirakan beberapa fungsi sewenang-wenang X. Ini akan memungkinkan kita untuk memperkirakan setiap fungsi yang diinginkan.
    • Ketepatan perkiraan ini akan, tentu saja, tergantung pada sifat-sifat neuron.
  • Untuk ansambel satu dimensi, kita dapat menghitung berbagai fungsi 1-dimensi:
figure pict/3.33.png
  • Untuk melakukan operasi non-linear, kita perlu mendefinisikan asal baru.
    • X asal hanya menggunakan f (x) = x.
    • Membuat ansambel baru dan masukan fungsi. Ensemble harus satu-dimensi dengan 100 neuron dan radius 1. Gunakan Konstan set Fungsi input ke 0,5.
    • Membuat terminasi pada ensemble dan menghubungkan input fungsi untuk itu.
    • Sekarang membuat asal baru yang akan memperkirakan persegi nilai.
      • Tarik ikon Asal dari sidebar ke ansambel.
      • Mengatur nama untuk persegi.
      • Klik Set Fungsi.
      • Pilih User-defined Fungsi dan tekan Set.
      • Untuk Expression, masukkan x0 * x0. Kami menyebut nilai sebagai x0 karena ketika kita memperpanjang ini untuk beberapa dimensi, kita akan merujuk kepada mereka sebagai x0, x1, x2, dan sebagainya.
      • Tekan OK, OK, dan OK.
    • Anda sekarang dapat menghasilkan plot yang menunjukkan seberapa baik ensemble adalah pada perhitungan non-linearitas. klik kanan pada ensemble dan pilih Plot-> Plot distortion:square.
figure pict/3.34.png
Gambar 3.33 Hasil Plot Distortion
  • Mulai Interactive Plot.
  • Buat control untuk input, sehingga Anda dapat menyesuaikan sementara model berjalan (klik kanan pada input dan pilih "Control").
  • Buat grafik dari "square" nilai dari ansambel. Lakukan ini dengan mengklik kanan pada ansambel dalam Window Plot interaktif dan memilih "square> value".
  • Sebagai perbandingan, juga membuat grafik untuk X asal standar byt mengklik kanan pada ansambel dan memilih "X-> value". Ini adalah nilai grafik standar yang hanya menunjukkan nilai yang diwakili oleh ensemble ini.
  • Tekan Play untuk menjalankan simulasi. Dengan input default dari 0.5, nilai squared harus dekat 0,25. gunakan kontrol untuk menyesuaikan input. Outputnya harus kuadrat input.
figure pict/3.35.png
Gambar 3.34 Mengatur Plot Distortion
  • Anda juga dapat menjalankan contoh ini dengan membuka "demo / squaring.py".

3.3.2 Fungsi multiple variabel

  • Karena X (nilai yang diwakili oleh sebuah ensemble) juga dapat multidimensi, kami juga bisa menghitung beberapa fungsi sebagai berikut.
figure pict/3.36.png
  • Untuk memulai, kami membuat dua ansambel dan dua input fungsi. Ini akan mewakili dua nilai yang kita ingin kalikan bersama-sama.
    • Ensemble harus satu-dimensi, menggunakan 100 neuron dan memiliki jari-jari 10 (sehingga mereka dapat mewakili nilai antara -10 dan 10).
    • Dua input fungsi harus konstanta diatur ke 8 dan 5.
    • The tambatan Anda buat untuk menghubungkan mereka harus memiliki konstanta waktu dari 0,01 (AMPA).
figure pict/3.37.png
Gambar 3.35 Membuat 2 Ensambel
  • Sekarang buatlah ansambel saraf dua dimensi dengan radius 15 disebut Gabungan.
    • Ini perlu dilakukan untuk mewakili beberapa nilai, kita meningkatkan jumlah neuron mengandung 200.
  • Tambahkan dua terminasi ke Gabungan.
    • Untuk masing-masing, dimensi input 1.
    • Untuk yang pertama, menggunakan Set Weight untuk membuat transformasi menjadi [1 0].
    • Untuk yang kedua, menggunakan Set Weight untuk membuat transformasi menjadi [0 1].
  • Hubungkan dua ansambel lain untuk satu Gabungan.
figure pict/3.38.png
Gambar 3.36 Menghubungkan 2 Ensamble Lain
  • Berikutnya, membuat ensemble untuk mewakili hasilnya. Ini harus memiliki radius 100, karena akan perlu untuk mewakili nilai dari -100 sampai 100 (yaitu max (10 * 10)). Memberikan terminasi/pemutusan tunggal satu-dimensi dengan weight/berat 1.
figure pict/3.39.png
Gambar 3.37 Memberikan Terminasi
  • Sekarang kita perlu membuat new origin/asal baru yang akan memperkirakan produk antara dua nilai yang tersimpan dalam gabungan ensemble.
    • Tarik ikon Asal ke ensemble Gabungan.
    • Mengatur nama untuk produk (name of the product).
    • Mengatur dimensi Output untuk 1.
figure pict/3.40.png
Gambar 3.38 Pengaturan Dimensi Output
  • Klik Set Functions.
  • Pilih User-defined Function dan tekan Set.
figure pict/3.41.png
Gambar 3.39 Pengaturan Dimensi Output
  • Untuk Expression, masukkan x0 x1 *.
figure pict/3.42.png
Gambar 3.40 Pengaturan Dimensi Output
  • Tekan OK, OK, dan OK setelah selesai membuat origin/asal.
  • Hubungkan new origin/asal baru untuk terminasi hasil ensemble.
figure pict/3.43.png
Gambar 3.41 Terminasi Hasil Ensambel
  • Jalankan simulasi dengan Plot Interaktif, dan lihat grafik yang sesuai.
  • Hasilnya harus kira-kira 40.
  • Atur kontrol masukan ke beberapa nomor yang berbeda bersama-sama.
figure pict/3.44.png
Gambar 3.42 Mengatur Hasil Ensambel
  • Anda juga dapat menjalankan contoh ini dengan membuka "demo / multiplication.py"

3.3.3 Pendekatan Gabungan

  • Kita dapat menggabungkan kedua cara ini dalam rangka untuk menghitung funxtions yang lebih kompleks, seperti x2y.
    • Tarik Origin/Asal ke ensemble mewakili pertama dari dua nilai.
    • Beri nama "square", mengatur dimensi output nya ke 1, dan tekan Set Function.
    • Seperti sebelumnya, pilih Fungsi User-defined dan tekan Set.
    • Mengatur Expression untuk menjadi "x0 * x0".
    • Tekan OK, OK, dan OK setelah selesai membuat asal.
    • Ini baru asal akan menghitung kuadrat dari nilai yang diwakili oleh ensemble ini.
    • Jika Anda menghubungkan new origin/asal baru untuk ansambel Gabungan bukan X asal standar, jaringan akan menghitung x2y bukan xy. [Catatan: Untuk menghapus proyeksi X asal, seret jauh dari Gabungan populasi. Klik kanan akhir baris dan pilih ӈapusҠuntuk menghapus proyeksi sama sekali.].
figure pict/3.45.png
Gambar 3.43 Gabungan Asamble

3.4 Feedback and Dynamics

3.4.1 Menyimpan Informasi Selama Waktu: Membangun sebuah Integrator

  • Dasar dari banyak model kognitif kita adalah integrator. Secara matematis, output dari jaringan ini harus menjadi integral dari input ke jaringan ini :
    • Secara praktis, ini berarti bahwa jika input ke jaringan adalah nol, maka outputnya akan tinggal di apa pun Value/nilainya saat ini di. Hal ini membuat dasar dari sistem saraf memori, sebagai representasi dapat disimpan dari waktu ke waktu.
    • Integrator juga sering digunakan dalam sistem sensorimotor, seperti kontrol mata
  • Untuk integrator, ansambel saraf perlu terhubung ke dirinya sendiri dengan berat transformasi 1, dan memiliki masukan dengan berat? , Yang sama dengan waktu yang konstan sinaptik dari neurotransmitter yang digunakan.
  • Buat ensemble satu dimensi disebut Integrator. Gunakan 100 neuron dan radius 1.
  • Tambahkan dua terminasi dengan konstanta waktu sinaptik dari 0.1s. Hubungi pertama masukanҒ dan memberikan berat 0,1. Panggil yang keduaҒ umpan balik dan memberikan bobot 1.
  • Buat Fungsi masukan baru menggunakan Fungsi Konstan dengan nilai 1.
  • Hubungkan masukan Fungsi untuk terminasi masukan.
  • Hubungkan asal X ensemble kembali ke pemutusan umpan balik sendiri.
figure pict/3.46.png
Gambar 3.44 Membangun Integrator
  • Pergi ke Plot Interaktif. Buat grafik untuk nilai ensemble (klik kanan pada ensemble dan pilih "Value").
  • Tekan Play untuk menjalankan simulasi. Nilai yang tersimpan dalam ansambel linear harus meningkatkan, mencapai nilai 1 setelah sekitar 1 detik.
    • Anda dapat menambahkan jumlah waktu yang ditunjukkan pada grafik di Plot interaktif. Lakukan ini dengan mengklik kecil panah ke bawah-menunjuk di bagian bawah jendela. Ini akan mengungkapkan berbagai pengaturan untuk plot Interaktif. Mengubah "waktu yang ditampilkan" untuk 1.
figure pict/3.47.png
Gambar 3.45 Pengaturan Grafik Plot

3.4.2 Rentang Representasi

  • Apa yang terjadi jika simulasi sebelumnya berlangsung selama lebih dari satu detik?
  • Nilai yang disimpan dalam ensemble tidak meningkat setelah titik tertentu. Hal ini karena semua ansambel saraf memiliki rentang nilai mereka dapat mewakili (jari-jari), dan tidak dapat secara akurat mewakili di luar kisaran tersebut.
figure pict/3.48.png
Gambar 3.46 Pengaturan Nilai
  • Sesuaikan radius ensemble 1,5 baik menggunakan Configure interface atau script console(that.radii = [1,5]). Jalankan model lagi. Sekarang harus akurat mengintegrasikan sampai maksimal 1,5.
figure pict/3.49.png
Gambar 3.47 Pengaturan Nilai

3.4.3 Complex Input

  • Kita juga dapat menjalankan model dengan input yang lebih kompleks. Mengubah masukan Fungsi menggunakan perintah berikut dari konsol skrip (setelah mengklik dalam hitam model mengedit antarmuka mode). Tekan Ctrl-1 (Command-1 OS X) untuk menunjukkan konsol skrip:
    • that.functions = [ca.nengo.math.impl.PiecewiseConstantFunction ([0.2,0.3,0.44,0.54,0.8,0.9], [0,5,0,
    • Anda dapat melihat apa fungsi ini tampak seperti dengan mengklik kanan di dalam editing interface dan memilih "plot function "(Catatan: Fungsi indeks = 0, = 0 Mulai, Increment = 0,001, End = 1).
figure pict/3.50.png
Gambar 3.48 Tampilan Editing Plot Function
  • Kembali ke Plot interaktif dan jalankan simulasi.
figure pict/3.51.png
Gambar 3.49 Menjalankan Simulasi Plot Interaktif

3.4.4 Mengatur Waktu Synaptic Konstanta

  • Anda dapat mengatur keakuratan integrator dengan menggunakan neurotransmitter yang berbeda.
  • Mengubah terminasi masukan untuk memiliki tau dari 0,01 (10 ms: GABA) dan transformasi dari 0,01 menggunakan inspektur. Juga mengubah penghentian umpan balik untuk memiliki tau dari 0,01 (tapi tinggalkan yang mengubah pada 1).
figure pict/3.52.png
Gambar 3.50 Pengaturan Waktu Synaptic Konstanta
  • Dengan menggunakan konstanta waktu yang lebih singkat, dinamika jaringan lebih sensitif terhadap variasi skala kecil (yaitu kebisingan).
  • Hal ini menunjukkan betapa pentingnya penggunaan neurotransmitter tertentu, dan mengapa ada begitu banyak berbeda tipe dengan konstanta waktu jauh berbeda-beda.
    • AMPA: 2-10ms .
    • GABA: subscript: A: 10-20ms.
    • NMDA: 20-150ms.
    • Rincian sebenarnya dari konstanta waktu ini berbeda-beda di otak juga. Kami mengumpulkan data empiris pada ini dari berbagai sumber di http://ctnsrv.uwaterloo.ca/cnrglab/node/246.
  • Anda juga bisa menjalankan contoh ini menggunakan "integrator.py" di direktori demo.

4 STUDI KASUS

Pada Bab IV ini akan dijelaskan tentang pembahasan dari studi kasus yang berjudul Ӎemori Kerja 2DҠdengan menggunakan software Nengo.

4.1 Deskripsi Sistem

Dalam kasus ini adalah intrapariteal di Area Lateral (LIP) dari neokorteks beberapa populasi hewan monyet. Populasi ini menunjukkan perilaku menyimpan rangsangan memori yang menjonol dan telah dipelajari secara ekstensif oleh para peneliti. Hasil penelitian tersebut menunjukkan bahwa beberapa bumps memiliki ketinggian yang bervarisasi yang dapat dikodekan oleh LPI untuk mewakili beberapa rangsangan dibidang spansial (diwaili dengan huruf v), serta karakteristik non-spasial dari masing-masing f stimulus (?). Penelitian oleh Colby dan Goldberg menunjukkan bahwa f (?) merupakan sumber daya atensional diberikan kepada rangsangan, sedangkan penelitian oleh Andersen et al menunjukkan bahwa hal itu merupakan niat untuk pindah ke objek. Dalam teknik Neural, jumlah memori kerja dibangun untuk dikodekan kedalam parameter non-spasial tunggal untuk menanggapi parameter spasial. Representasi ini dilakukan dalam ruang fungsi daripada ruang vektor, secara signifian mengurangi sumber daya neuron yang diperlukan (yaitu, dengan menyimpan sejumlah fungsi koefisien dari nilai parameter non-spasial pada setiap titik dalam kisaran tertentu). Laporan ini menjelaskan bahwa representasi menggunakan dua dimensi independen dan memeriksa yang mengakibatkan kesalahan dibandingkan dengan representasi 1D.
Populasi neuron lainnya telah ditemukan yang hasilnya memperlihatkan bumps kegiatan serupa. Tampaknya masuk akal bahwa populasi tersebut dapat mewakili karakteristik non-spasial. Berdasarkan pada dua dimensi yang variatif dalam bidang spasial f (x1, x2) juga. Banyak dimensi independen lainnya yang juga bisa dipertanggungjawabkan pada populasi (misalnya warna), yang mengarah ke tingkat aktivasi yang bervariasi dari neuron ke neuron tanpa alasan yang jelas. Untuk kasus representasi fungsi 1D, fungsi direpresentasikan melalui dekomposisi dasar.
figure pict/1.png
Dimana koefisien A disimpan dalam populasi neuron yang mengintegrasi. Perhatikan bahwa untuk kasus representasi fungsi 2D, hubungan yang setara dalam fakta,
figure pict/2.png
Distribusi ? (A) tidak diketahui, sehingga nilai-nilai cocok untuk A, untuk menentukan luasan dari fungsi ruang yang ditemukan oleh proyeksi memori contoh ke dasar fungsi F. Luasan dari ? dan x1, x2 dinormalisasikan untuk [-1, 1]. Untuk mensimulasikan dinamika sistem, integrator yang dimodifikasi saat sedang diterapan.
figure pict/3.png
Di sini, penerapan standar set A = I dan B = tP SC I. Namun, nilai B ditetapkan untuk I, yang memungkinkan integrator untuk mengisi penuh dalam tP SC detik (0.1s dalam model ini). Dengan demikian, memori dipresentasikan kepada integrator hanya untuk 0.1s, agar mencegah kesalahan dari akumulasi memori sementara yang sedang disimpan.

4.2 Spesifikasi Desain

Simulasi populasi Neural dilakukan dengan menggunakan lingkungan Nengo, tersedia secara bebas dengan online. Fungsi Dasar dekomposisi dan pemeriksaan hasil dilakukan dalam MatLabTM. Guna untuk membandingkan model akurat 1D dan 2D, besarnya populasi neuron konstan dengan 1089 neuron. Dalam kedua kasus 1D dan 2D, pilihan petunjuk untuk neuron ini diwakili oleh Gaussians dengan lebar s = 0,02, dengan jarak merata ke seluruh ruang input. Dengan demikian, vektor encoding tersebar lebih luas di Kasus 2D. Gaussians jauh di bawah lebar 0,02 tidak dapat dimodelkan secara akurat dalam 2D tanpa meningkatkan resolusi (set ke dx = 0,05 pada [-1, 1]), yang pada akhirnya membuktian terlalu mahalnya komputasi. Dengan demikian, lebar vektor encoding digunakan konstan pada seluruh kasus 1D dan 2D. Contoh memori dua kali lebih lebar dari ini. Memori diwakilkan dengan fungsi konstanta ruang dengan memproyeksikannya ke dasar fungsi ortonormal. Dasar ini ditemukan dengan menjalankan Nilai Tunggal Penguraian pada satu set Gaussians, sehingga mewakili dasar yang terbentang antara kemungkinan memori. Namun, tidak semua konstanta dapat digambarkan dalam sistem secara akurat, sehingga sejumlah yang diberikan harus dipilih. Nilai-nilai tunggal yang mungkin 1D dan 2D memori diuji untuk mengetahui ruang fungsional yang memadai untuk gunakan. Gambar 2.1 menunjukkan pertama 40 nilai tunggal dalam 1D dan 2D. Dalam membandingkan 1D dan 2D, beberapa dimensi umum yang diperlukan untuk menghindari dampak yang meliputi fungsi ruang yang berbeda ukuran. Berdasarkan hasil nilai tunggal, yang pertama 20 dimensi yang digunakan, karena mereka memberikan representasi lengkapdari ruang memori 1D dan representasi yang memadai untuk ruang 2D. Namun,kesalahan yang diperkirakan karena kenyataan bahwa memori 2D mencakup bagian ruang yang lebih luas dari ruang fungsional dari memori 1D (sebagian besar konstanta 1D berada di dekat nol).
figure pict/4.1.png
Gambar 4.0 Perbandingan Nilai Tunggal
Selain itu, kesalahan yang diperkirakan karena representasi nilai singular yang signifikan melampaui 20 dimensi di 2D. Untuk menguji ini, 20 dimensi dan 40 dimensi representasi kemudian dibandingkan dalam ruang 2D. Tidak seperti otak, pemodelan ini tidak mempengaruhi pada fluktuasi nilai impulsif (yaitu tingkat yang Modelnya digunakan daripada model spiking). Hal itu dilakukan karena spiking Induksi fluktuasi nilai membuatnya lebih sulit untuk memvisualisasikan perubahan temporal dalam sinyal karenatitik tetap, yang merupakan fokus dari perbandingan antara 1D dan 2D. Jika spiking fluktuasi nilai yang digunakan, mereka harus diperbaiki oleh filter yang wajar. Sebuah contoh dari memori 2D yang disimpan dengan model spiking ditampilkan dalam file terlampir spikemovie.avi (dengan ukuran filter dari 0,1, di 2029-neuron, 40-dimensi jaringan). Jaringan integrator termasuk noise gaussian 0,1 varians. Karena dikodekan memori (Gaussians dengan lebar 0,04) dapat dikodekan secara akurat dengan lebih sedikit dibandingkan 20 vektor dimensi di 1D, banyak dari 20 pertama nilai tunggal kurang dari noise varians. Dengan demikian, beberapa suara frekuensi tinggi diperkenalkan ke representasi dengan menggunakan 20 konstanta di 1D. Pada akhirnya, poin evaluasi yang digunakan oleh Nengo untuk menentukan optimal. Decoder menutupi seluruh ruang 20 dimensi. Sebagai konstanta yang mungkin untuk ini nilai-nilai yang ada di ruang bagian kecil hypersphere tersebut, decoder ini akan menyamakan. Dengan demikian, poin evaluasi yang digunakan yang hanya mengambil nilai-nilai dalam mungkin subspace. Poin evaluasi tersebut dihasilkan dengan menggunakan nilai-nilai yang diambil oleh semua memori mungkin, dan menambahkan titik secara acak dalam maksimum jangkauan satu sama konstan. Poin tambahan yang diperlukan dalam rangka untuk mewakili nilai-nilai yang dihasilkan sementara integrator adalah pengisian, dan setelah kesalahan diperkenalkan karena titik tetap. Dalam kasus kedua 1D dan 2D, 10.000 poin tambahan yang digunakan.

4.3 Implementasi

4.3.1 Perbandingan Error antara 1D dan 2D Dalam Fungsi Ruang

Guna untuk menguji bagaimana perubahan error representasi sebagai jumlah dimensi meningkat, urutan simulasi dilakukan, di mana hanya dimensi fungsi ruang direpresentasikan bervariasi. Dalam setiap kasus, integrator neuron 20 dimensi terdiri dari populasi 1.089 neuron digunakan untuk menyimpan pertama 20 koefisien yang terkait atau dua fungsi dasar dimensi. Nilai standar untuk neuron Karakteristik LIF digunakan: tRC = 200ms, tRef = 1ms, tP SC = 100ms, maksimum tingkat penembakan [200Hz - 500Hz], dan penyadapan di sepanjang berbagai [-1, 1]. dalam setiap kasus, setiap bumps memori dari ketinggian 1.

4.3.1.1 Bump

Ketika mengandung Gaussian dengan tinggi 1 di bagian tengah fungsi ruang, masing-masing simulasi menghasilkan hasil yang sama. Setiap bumps berkurang sedikit pada ketinggian, dan beberapa informasi dengan frekuensi tinggi telah hilang, hal ini menyebabkan bumps negatif pada kedua sisi bumps. Menariknya, hasil representasi 1D dalam kesalahan RMS lebih tinggi dari representasi 2D (Gambar 4.2). Hal ini wajar setelah mengamati Angka 3.2 dan 3.3, yang menggambarkan memori final setelah 1s. Representasi 1D termasuk nilai negatif di kedua sisi bumps. Representasi 2D menunjukkan ini sama gigi berlubang, namun ada beberapa luas permukaan yang masih cukup datar pada nilai 0, sehingga meningkatkan kesalahan representasi rata-rata keseluruhan permukaan.
figure pict/4.2.png
Gambar 4.2 : RMS dari 1 Gaussian Bump representasi dari waktu ke waktu
figure pict/4.3.png
Gambar 4.3 : 1D, 1 Bump memori setelah 1s
figure pict/4.4.png
Gambar 4.4 : 2D, 1 Bump memori setelah 1s

4.3.1.2 Bumps

Ketika mewakili dua bumps, kesalahan RMS masing-masing simulasi meningkat seperti yang diharapkan (Gambar 3.1). Sekali lagi, representasi 2D (Gambar 3.6) melebihi 1D representasi (Gambar 3.5) dalam hal RMS. Sebuah representasi ketiga dibandingkan (Gambar 3.7), yang meliputi 2 bumps di sepanjang dua sumbu dari representasi 2 dimensi. Dalam simulasi ini, kesalahan RMS kira-kira dua kali lipat dari 2D 2 bumps kasus.
figure pict/4.5.png
Gambar 4.5 : RMS dari 2 representasi Gaussian Bump dari waktu ke waktu
figure pict/4.6.png
Gambar 4.6 : 1D, 2 memori Bump setelah 1s
figure pict/4.7.png
Gambar 4.7 : 2D, 2 memori Bump setelah 1s
figure pict/4.8.png
Gambar 4.8 : 2D, 4 memori Bump setelah 1s

4.3.1.3 Bumps

Dalam membandingkan tiga bumps, itu tidak mungkin untuk menempatkan bumps pada bidang yang sama tanpa degradasi yang signifikan, karena keterbatasan representasi 2D menggunakan 20 dimensi. Kesulitan ini diperiksa secara rinci dalam Pengaruh Dimensi Bagian representasi. Sebaliknya, 3 bumps dalam kasus 2D ditempatkan di sepanjang diagonal dari pesawat. Di sini, kesalahan dalam representasi 2D lagi unggul hasil 1D dalam hal RMS, dan tumbuh lebih cepat dari waktu ke waktu (Gambar 4.9). oleh mengamati Angka 3.9 dan 3.10, jelas mengapa representasi 2D lebih unggul untuk representasi 1D.
figure pict/4.9.png
Gambar 4.9 : RMS dari 3 Gaussian Bump representasi dari waktu ke waktu
figure pict/4.10.png
Gambar 4.10 : 1D, 3 Bump memori setelah 1s
figure pict/4.11.png
Gambar 4.11 : 2D, 3 Bump memori setelah 1s
Kasus 1D menunjukkan sejumlah besar melupakan, sebagai puncak tengah benar-benar hilang dari representasi setelah 1s. Karena ada fungsi ruang yang lebih besar di mana bumps dapat ditempatkan dalam 2D, 3 bumps tidak berinteraksi banyak, dan karenanya bisa disimpan jelas. Efek ini diperiksa secara lebih rinci pada akhir Stabilitas Bagian analisis.

4.4 Pengaruh Representasi Dimensi

Seperti yang ditunjukkan oleh distribusi nilai singular, berbagai kemungkinan memori di 2D adalah tidak sepenuhnya diwakili oleh 20 dimensi. Secara khusus, padat penduduk memori menunjukkan error representasi signifikan. Guna menguji efek ini, jumlah dimensi vektor direpresentasikan meningkat menjadi 40, sementara memegang neuron ukuran populasi konstan pada 1089. Sebuah distribusi memori yang digunakan sangat sulit untuk mewakili dengan 20 dimensi: sembilan bumps merata di seluruh grafik. original memori ditampilkan di bawah ini, serta proyeksi memori pada pertama 20 dan 40 basis dimensi.
figure pict/4.12.png
Gambar 4.12 : Memori asli
figure pict/4.13.png
Gambar 4.13 : Proyeksi memori pada 20 Dimensi
figure pict/4.14.png
Gambar 4.14 : Proyeksi memori pada 40 Dimensi
Kesenjangan frekuensi yang lebih tinggi antara memori yang tidak mungkin dalam representasi 20 dimensi; dengan demikian, memori akan sudah mulai berbaur dengan saat yang disimpan dalam integrator. Angka 3.14 dan 3.15 menunjukkan hasil menyimpan sembilan memori di integrator untuk satu detik, menggunakan 20 dan 40 masing-masing dimensi.
figure pict/4.15.png
Gambar 4.15 : Memori Setelah 1s, 20 Dimensi
figure pict/4.16.png
Gambar 4.16 : Memori Setelah 1s, 40 Dimensi
Meskipun 40 dimensi mewakili fungsi ruang yang lebih baik, jumlah yang sama neuron tidak mewakili peningkatan ruang vektor serta dengan 20 dimensi. Hal ini menyebabkan sistem tetap poin yang jauh dari nilai-nilai yang akurat konstanta, sehingga nilai-nilai yang tidak disimpan sebagai akurat dan menipiskan lebih seiring berjalannya waktu. Hal ini dapat ditunjukkan dalam video all920dim.avi dan all940dim.avi. Gambar 3.16 membandingkan kesalahan RMS antara representasi 20 dan 40 dimensi dari waktu ke waktu. Garis putus-putus menunjukkan kesalahan dibandingkan dengan representasi terbaik dari memori mengingat jumlah dimensi yang digunakan; garis padat menunjukkan kesalahan dibandingkan dengan memori asli. Grafik menunjukkan bahwa 20 dimensi representasi melakukan dengan sangat baik terhadap memori diproyeksikan pada 20 dimensi, tapi buruk terhadap yang asli. Nilai error untuk kasus 40 dimensi jauh lebih dekat, karena proyeksi 40 dimensi representasi yang lebih akurat dari original.
figure pict/4.17.png
Gambar 4.17 : Perbandingan Error, 20 vs 40 Dimensi
Segera setelah penyimpanan, proyeksi 40 dimensi melakukan yang lebih baik, Namun, karena nilai-nilai menipis lebih cepat, hal ini dilampaui oleh 20 dimensi proyeksi setelah kurang lebih 0,8 detik. Namun, hal ini mempertimbangkan error akun yang mungkin tidak penting untuk mengingat akurat (misalnya tips besar di bawah 0 pesawat antara gundukan memori). Angka 3,14 dan 3,15 muncul untuk menunjukkan bahwa permukaan bervariasi menggunakan 40 dimensi merupakan memori yang tersimpan lebih akurat setelah 1 detik.

4.5 Pengaruh Jumlah Penduduk

Untuk mengevaluasi pengaruh ukuran populasi, jumlah neuron itu sekitar dua kali lipat menjadi 2.209. Hasil setelah satu detik yang ditunjukkan pada Gambar 3.17, dan perbandingan kesalahan untuk representasi 40 dimensi menggunakan 1089 neuron ditampilkan pada Gambar 4.18
figure pict/4.18.png
Gambar 4.18 : Memori Setelah 1s, 2209 Neuron
Secara kualitatif, lebih banyak memori yang disimpan pada ketinggian dibandingkan menggunakan 2209 neuron. Selain itu, kesalahan RMS digeser ke bawah. Namun, kesalahan tidak melemahkan apapun lebih lambat. Penyimpanan memori menggunakan 2209 neuron ditampilkan dalam all940dim2000.avi video.
figure pict/4.19.png
Gambar 4.19 : Perbandingan Error, 1089 vs 2209 Neuron

4.6 Analisis Stabilitas

Dua jenis tertentu stabilitas pembusukan yang jelas ketika encoding Gaussian ganda bumps dalam model 1D. Bumps yang berdekatan dan dengan tinggi yang sama cenderung untuk berbaur dengan bumps tunggal dari waktu ke waktu, dengan setengah puncak antara keduanya. kapan bumps yang berdekatan dan dengan tinggi berbeda, bumps kecil cenderung diserap oleh salah satu yang lebih besar, sedangkan pusat bumps besar tidak berubah (yang adalah, sistem lupa bumps kecil). Contoh masing-masing ditunjukkan pada Gambar 4.20 dan 4.21.
figure pict/4.20.png
Gambar 4.20 : Memadukan di 1D
alam kedua kasus, gabungan dua bentuk bump menyebabkan yang pertama, dan frekuensi terendah, dimensi konstan untuk bergerak di luar kisaran diwakili oleh satu Gaussian vektor encoding. Ini menjenuhan sistem, menyebabkan konstanta pertama untuk melemahkan dari waktu ke waktu dan mengakibatkan bumps tunggal. Efek ini diilustrasikan oleh Gambar 4.22.
figure pict/4.21.png
Gambar 4.21: forgetting di 1D
figure pict/4.22.png
Gambar 4.22: Batas Representasi Konstan
Bumps Gaussian yang digunakan di atas diletakkan dalam ruang 2D. Pusat-pusat bump diletakkan pada jarak yang sama Terlepas seperti dalam kasus 1D di x1 dimensi, dan jarak nol dipisahkan dalam x2 dimensi (yaitu, pada bidang yang sama). Dengan demikian, 1D dan 2D memilii hasil yang dapat dibandingkan secara grafis dengan mengambil proyeksi pada x1 dalam kasus 2D. Dalam kedua kasus pencampuran dan menghilangan, 20 dimensi tidak cukup untuk mewakili memori baik dalam ruang 2D, memperburuk kesalahan masing-masing sebelum memori telah disimpan. Dengan demikian, memori juga disimpan dalam 40 dimensi fungsi ruang, memegang ukuran populasi konstan. Gambar 4.23 dan 4.24 menunjukkan hasil untuk skenario melupakan diproyeksikan pada masukan x1. 40 dimensi representasi dipelihara representasi yang lebih akurat dari memori utama, meskipun melupakan masih jelas dalam kedua kasus.
figure pict/4.23.png
Gambar 4.23 Forgetting didalam 2D, dengan 20 dimensi
figure pict/4.24.png
Gambar 4.24 forgetting didalam 2D, dengan 40 dimensi
Gambar 4.25 dan 4.26 menunjukkan hasil untuk campuran. Menariknya, akhirnya percampuran memori dalam kedua kasus adalah pada atau di atas ketinggian memori asli. ini adalah berpotensi karena kesalahan dalam dimensi frekuensi yang lebih tinggi, yang bervariasi secara signifikan lebih kepada 2D dibandingkan pada 1D (seperti yang ditunjukkan oleh nilai-nilai singular). Dalam kasus 40 dimensi dalam tertentu, memori asli disimpan dengan akurasi yang lebih besar, tetapi mereka menyebabkanan muncul ӭemori palsuҠdari waktu ke waktu yang jauh lebih besar tinggi daripada yang asli bumps.
figure pict/4.25.png
Gambar 4.25 percampuran didalam 2D, 20 dimensi
figure pict/4.26.png
Gambar 4.26 percampuran didalam 2D, 40 dimensi
Pada akhirnya, keuntungan yang signifikan dari dua dimensi spasial adalah bahwa memori dapat spasi jauh melintasi ruang karena perbedaan dalam dimensi kedua, mencegah pencampuran dan melupakan kesalahan. Hal ini digambarkan sebelumnya ketika menyimpan 3 bumps diagonal. Untuk menguji hal ini, kedua ӭelupakanҠbumps yang spasi pada saat yang sama v jarak sepanjang x2 sebagai variabel sepanjang x1, sehingga pusat-pusat mereka dipisahkan oleh 2 kali jarak aslinya. Nilai setelah satu detik ditunjukkan di bawah ini, serta proyeksi pada x1 dimensi (menggunakan 20 dimensi fungsional). Karena semakin besar jarak antara pusat, kedua memori sekarang dapat akurat mengingat. gambar 4.27 dan 4.28 menunjukkan memori yang tersimpan setelah 1 detik dalam 2 dimensi, dan penyimpanan dari waktu ke waktu diproyeksikan pada x1, masing-masing.
figure pict/4.27.png
Gambar 4.27 Forgetting didalam 2D, aske Memories
figure pict/4.28.png
Gambar 4.28 : forgetting di 2D, Askew Memories, Proyeksi pada x1

4.7 Pembahasan

Membandingkan 1 bump dan baik-spasi 2 bump memori di 1D dalam kasus 2D mengungkapkan error RMS serupa. Hal ini menunjukkan bahwa, untuk fungsi sederhana yang dapat terwakili dalam 2D ??dengan pertama 20 dimensi dan rendahnya jumlah neuron, 1D and error 2D tidak berbeda secara signifikan. Bahkan, kasus 2D sedikit mengungguli kasus 1D. Hal ini mungkin dikarenakan kesalahan diperkenalkan oleh pemodelan yang tidak perlu, dimensi yang lebih tinggi di 1D. masa Depan kerja akan membandingkan hasil bebas bervariasi parameter ini antara 1D dan 2D kondisi. Memori yang padat penduduk pada bidang 2D, atau berjarak dekat bersama-sama, tidak bisa terwakili pada bidang 2D dan dilemahkan dengan cepat. ini masalah dibahas dalam beberapa cara. Dengan menempatkan memori diagonal dalam Pesawat 2D, sehingga mereka berbeda sama di kedua dimensi input, memori bisa disimpan yang tidak akan berbaur atau lupa. Ini ӭiringҠmemori mengungguli setara 1D mereka, menggambarkan bagaimana jumlah yang sama neuron dapat menyimpan beberapa memori lebih akurat dalam 2D ??dengan memanfaatkan perbedaan mereka di kedua masukan dimensi. Selain itu, jumlah dimensi meningkat di 2D antara 20 sampai 40. Tanpa meningkatkan jumlah neuron, representasi 40-dimensi dapat mengingat bumps lebih padat penduduknya. Namun, kesalahan meningkat lebih pesat selama penyimpanan sebagai titik tetap bisa kurang cukup mewakili ruang. Kesalahan kembali ditingkatkan dengan menggandakan jumlah neuron, meskipun tingkat di mana nilai mendekati titik tetap tidak membaik secara signifikan. Ada kemungkinan bahwa ini dapat diatasi dengan meningkatkan jumlah titik evaluasi untuk mewakili Ruang 40 dimensi lebih lengkap. Seperti disebutkan, pekerjaan di masa depan harus membahas efek bebas memvariasikan jumlah dimensi fungsional direpresentasikan antara kasus 1D dan 2D, untuk mewakili ruang seakurat mungkin. Selain itu, efek dari berbagai jumlah poin evaluasi dalam subruang N-dimensi harus dipertimbangkan. sekarang kemungkinan bahwa poin evaluasi yang lebih baik bisa dipilih dengan meneliti bagaimana konstanta bervariasi dalam hubungan satu sama lain, daripada memilih koordinat secara acak yang bervariasi nilai-nilai dalam kisaran mungkin. Pada akhirnya, dengan sumber daya yang lebih besar komputasi, pekerjaan di masa depan bisa fokus pada menyimpan bumps sempit Gaussian di 1D dan 2D, serta meningkatkan ukuran populasi.

5 PENUTUP

5.1 Kesimpulan

Software Nengo ini dapat membantu pengguna dalam meneliti dan mempelajari sebuah sistem jaringan terutama di bidang pekerjaan yang berkaitan langsung dengan jaringan, saraf, otak, maupun artificial intelligence, dengan adanya software ini diharapkan dapat membantu pengguna dalam menyelesaikan pekerjaannya tanpa harus mengambil resiko yang besar, karena software ini menerapkan fitur simulasi.
Demikianlah yang dapat kami sampaikan mengenai materi yang menjadi bahasan dalam buku ini, tentunya banyak kekurangan dan kelemahan kerena terbatasnya pengetahuan kurangnya rujukan atau referensi yang kami peroleh hubungannya dengan materi ini kami banyak berharap kepada para pembaca yang budiman memberikan kritik saran yang membangun kepada kami demi sempurnanya buku ini. Semoga buku ini dapat bermanfaat dan membantu bagi penulis dan pembaca.

Bibliography

[1] C. Eliasmith and C. H. Anderson, Neural Engineering. Massachusetts Institue of Technology, 2003.

[2] C. Colby and M. Goldberg, ԓpace and attention in parietal cortex,ԠAnnual review of Neuroscience, vol. 22, no. 1, pp. 319ֳ49, 1999.

[3] R. Andersen, L. Snyder, D. Bradley, and J. Xing, ԍultimodal representation of space in the posterior parietal cortex and its use in planning movements,ԠAnnual Review of Neuroscience, vol. 20, no. 1, pp. 303ֳ30, 1997.

[4] K. Zhang, Ԓepresentation of spatial orientation by the intrinsic dynamics of thehead-direction cell ensemble: a theory,ԠJournal of Neuroscience, vol. 16, no. 6,pp. 2112ֲ126, 1996.

[5] Egia Anita Tarigan, “Sejarah dan Neurosains Kogniti”f, http://egiatigan.blogspot.com/2013/03/sejarah-dan-neurosains-kognitif.html

[6] Wikipedia, “Bayesian Network”, http://en.wikipedia.org/wiki/Bayesian_network

[7] Wikipedia, “Neural Engineering Object”, http://en.wikipedia.org/wiki/Neural_Engineering_Object

[8] Anonim, “Pengertian Simulasi”. http://seaparamita.blogspot.com/2009/08/pengertian-simulasi_29.html

T0 :

Job Description

Milestones

Minutes of Meeting

Welcome to My Blog

- Copyright © Fun To Programming -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -