Cara membuat kecerdasan buatan di PC. Bagaimana kecerdasan buatan tercipta: dari kode hingga robot

Mereka mengatakan bahwa kecerdasan buatan telah bekerja di laboratorium militer sejak tahun 2007. Kemungkinan sudah ada hasilnya. Bukan suatu kebetulan bahwa sebulan yang lalu, Elon Musk mengumumkan dukungan untuk teknologi kontra-kecerdasan buatan dan menginvestasikan $7 juta dalam penelitian di bidang ini.

“Ada risiko sesuatu yang sangat berbahaya akan terjadi dalam lima tahun ke depan. “Paling lama sepuluh tahun,” kata pengusaha itu dalam sebuah diskusi di edge.org.

Elon Musk, pendiri Tesla dan SpaceX

Steve Wozniak juga sependapat dengan Musk, yang percaya bahwa “kecerdasan buatan suatu hari nanti akan menjadi cukup pintar untuk menyingkirkan manusia.” Bill Gates yakin bahwa jika penciptaan AI tidak dikendalikan, maka “kecerdasan buatan akan berkembang menjadi suatu kondisi yang bertentangan dengan tujuan sistem manusia.” Dan terakhir, ahli astrofisika terkenal Stephen Hawking secara langsung menyatakan bahwa “kecerdasan buatan dapat mengakhiri keberadaan umat manusia.”

Bersama Elon Musk, Hawking menerbitkan surat terbuka di situs futureoflife.org yang menyerukan komunitas ilmiah untuk memperhatikan kemajuan penelitian mereka di lapangan. kecerdasan buatan. Namun, di antara penandatangan tidak ada nama Sergey Brin dan Larry Page. Dan ini bukanlah suatu kebetulan. Baru-baru ini, Google mengumumkan pembuatan AI baru yang dibangun berdasarkan pemodelan percakapan.

Berikut cuplikan singkat percakapan antara manusia dan Mesin Google:

C: Apa arti hidup?

M.: Berbuat baik.

C.: Untuk apa kita hidup?

M.: Untuk hidup selamanya.

C: Apa arti keberadaan?

G: Untuk mengetahui apa yang akan terjadi ketika kita mencapai planet Bumi.

C: Dimana kamu sekarang?

M.: Di tengah kehampaan.

C: Apa arti kematian?

M.: Untuk mendapatkan kehidupan.

C: Apa yang dimaksud dengan akal?

M.: Ini tentang memahami apa itu.

C: Apa yang dimaksud dengan perasaan?

G.: Saya tidak tahu.

Percakapan yang cukup bermakna. "Ini titik awal, semacam inti untuk masa depan kecerdasan buatan,” kata Evgeniy Karyuk, direktur eksekutif perusahaan Biplan. “Bahkan saat ini kita dapat berasumsi bahwa pada tahun 2030 kita akan melihat prototipe nyata yang dilengkapi dengan kecerdasan buatan, meskipun masih dalam tahap awal.”

Konten lengkap dari semua percakapan manusia dan Mesin Google dapat dilihat. Percakapan antara seseorang dan Cleverbot juga diberikan di sana sebagai perbandingan. Cleverbot adalah aplikasi web yang menggunakan algoritma kecerdasan buatan untuk mengobrol dengan seseorang. Itu ditemukan pada tahun 1988 oleh ilmuwan Rollo Carpenter. Selama keberadaannya, Cleverbot telah melakukan lebih dari 65 juta percakapan dengan manusia. Pada tahun 2011, Cleverbot mendapat skor 51% pada tes Turing.

Tes Turing adalah tes empiris yang dikemukakan oleh Alan Turing dalam artikelnya tahun 1950 "Mesin Komputasi dan Pikiran" di jurnal filosofis Mind. Tujuan dari tes ini adalah untuk mengetahui apakah komputer dapat berpikir.

Dan inilah percakapan saya dengan Cleverbot:

Pria: Apa arti hidup?

Cleverbot: Tidak ada makna dalam hidup.

Pria: Untuk apa kita hidup?

Cleverbot: Ya, kita hidup untuk seseorang, dan jika kamu kesepian, tidak ada gunanya hidup.

Manusia: Apa arti dari keberadaan?

Orang : Dimana kamu sekarang?

Cleverbot: Di Moskow.

Pria: Apa arti kematian?

Cleverbot: Ini yang ingin saya tanyakan pada Anda.

Manusia: Apa yang dimaksud dengan akal?

Cleverbot: Saya punya jawaban sendiri untuk pertanyaan ini.

Orang: Apa arti perasaan?

Cleverbot: Mengapa saya dilahirkan?

Jelas sekali, Mesin Google memberikan jawaban yang jauh lebih bermakna. Cleverbot mengganti frasa yang menurutnya cocok dari orang lain. Terkadang sepertinya orang lain yang menjawab, tapi tidak lebih.

Ada sudut pandang lain yang menyatakan bahwa kecerdasan buatan pada prinsipnya tidak mungkin. Teorema ketidaklengkapan Gödel sering dijadikan argumen utama. Intinya adalah bahwa seseorang mampu memecahkan masalah yang tidak dapat diselesaikan secara algoritmik, tetapi komputer tidak. “Pada usia tiga tahun, seorang anak dengan percaya diri memecahkan masalah matang atau tidaknya suatu buah, karena ia memiliki koneksi saraf yang dengannya ia dapat menjawab pertanyaan tentang kematangan: warna, rasa, bau, kelembutan atau kekerasan. ,” kata Evgeniy Pluzhnik, wakil rektor pertama Institut Teknologi Moskow. - Apakah mesin mampu mempelajari hal ini? Saya yakin begitu! Jika memiliki database gambar yang besar, maka akan dapat mengukur kandungan fruktosa dan menentukan kelembutan buah. Namun apa jadinya jika Anda menyelipkan spons yang dicat... biru dan direndam dalam air manis? Apakah mesin tersebut mampu memahami dengan benar pada saat ini?”

“Komputer modern dapat dengan mudah mengatasi aktivitas kompleks apa pun, baik itu catur atau perhitungan matematis, selama aktivitas tersebut dapat dijelaskan dengan menggunakan aturan komputasi yang jelas,” kata ahli matematika terkenal Roger Penrose dalam salah satu kuliahnya. “Kecerdasan buatan adalah kemampuan suatu sistem untuk membuat program selama pembelajaran mandiri yang mampu memecahkan masalah dengan tingkat kompleksitas tertentu,” kata Evgeniy Pluzhnik. “Saya yakin kita tidak akan melihat munculnya kecerdasan buatan yang kuat dalam 100 tahun mendatang.”

Dan sebagai kesimpulan, satu pertanyaan lagi untuk Cleverbot.

Orang: Ada 1 apel, 1 tomat, 1 mentimun, dan 1 pir. Berapa jumlah buah seluruhnya?
Cleverbot: Jam sepuluh malam.

Mereka mengatakan bahwa kecerdasan buatan telah bekerja di laboratorium militer sejak tahun 2007. Kemungkinan sudah ada hasilnya. Bukan suatu kebetulan bahwa sebulan yang lalu, Elon Musk mengumumkan dukungan untuk teknologi kontra-kecerdasan buatan dan menginvestasikan $7 juta dalam penelitian di bidang ini.

“Ada risiko sesuatu yang sangat berbahaya akan terjadi dalam lima tahun ke depan. “Paling lama sepuluh tahun,” kata pengusaha itu dalam sebuah diskusi di edge.org.

Elon Musk, pendiri Tesla dan SpaceX

Steve Wozniak juga sependapat dengan Musk, yang percaya bahwa “kecerdasan buatan suatu hari nanti akan menjadi cukup pintar untuk menyingkirkan manusia.” Bill Gates yakin bahwa jika penciptaan AI tidak dikendalikan, maka “kecerdasan buatan akan berkembang menjadi suatu kondisi yang bertentangan dengan tujuan sistem manusia.” Dan terakhir, ahli astrofisika terkenal Stephen Hawking secara langsung menyatakan bahwa “kecerdasan buatan dapat mengakhiri keberadaan umat manusia.”

Bersama Elon Musk, Hawking menerbitkan surat terbuka di situs futureoflife.org yang menyerukan kepada komunitas ilmiah untuk memperhatikan kemajuan penelitian mereka di bidang kecerdasan buatan. Namun, di antara penandatangan tidak ada nama Sergey Brin dan Larry Page. Dan ini bukanlah suatu kebetulan. Baru-baru ini, Google mengumumkan pembuatan AI baru yang dibangun berdasarkan pemodelan percakapan.

Berikut cuplikan singkat percakapan antara manusia dan Mesin Google:

C: Apa arti hidup?

M.: Berbuat baik.

C.: Untuk apa kita hidup?

M.: Untuk hidup selamanya.

C: Apa arti keberadaan?

G: Untuk mengetahui apa yang akan terjadi ketika kita mencapai planet Bumi.

C: Dimana kamu sekarang?

M.: Di tengah kehampaan.

C: Apa arti kematian?

M.: Untuk mendapatkan kehidupan.

C: Apa yang dimaksud dengan akal?

M.: Ini tentang memahami apa itu.

C: Apa yang dimaksud dengan perasaan?

G.: Saya tidak tahu.

Percakapan yang cukup bermakna. “Ini adalah titik awal, semacam inti masa depan kecerdasan buatan,” kata Evgeniy Karyuk, direktur eksekutif perusahaan Biplan. “Bahkan saat ini kita dapat berasumsi bahwa pada tahun 2030 kita akan melihat prototipe nyata yang dilengkapi dengan kecerdasan buatan, meskipun masih dalam tahap awal.”

Konten lengkap dari semua percakapan manusia dan Mesin Google dapat dilihat. Percakapan antara seseorang dan Cleverbot juga diberikan di sana sebagai perbandingan. Cleverbot adalah aplikasi web yang menggunakan algoritma kecerdasan buatan untuk mengobrol dengan seseorang. Itu ditemukan pada tahun 1988 oleh ilmuwan Rollo Carpenter. Selama keberadaannya, Cleverbot telah melakukan lebih dari 65 juta percakapan dengan manusia. Pada tahun 2011, Cleverbot mendapat skor 51% pada tes Turing.

Tes Turing adalah tes empiris yang dikemukakan oleh Alan Turing dalam artikelnya tahun 1950 "Mesin Komputasi dan Pikiran" di jurnal filosofis Mind. Tujuan dari tes ini adalah untuk mengetahui apakah komputer dapat berpikir.

Dan inilah percakapan saya dengan Cleverbot:

Pria: Apa arti hidup?

Cleverbot: Tidak ada makna dalam hidup.

Pria: Untuk apa kita hidup?

Cleverbot: Ya, kita hidup untuk seseorang, dan jika kamu kesepian, tidak ada gunanya hidup.

Manusia: Apa arti dari keberadaan?

Orang : Dimana kamu sekarang?

Cleverbot: Di Moskow.

Pria: Apa arti kematian?

Cleverbot: Ini yang ingin saya tanyakan pada Anda.

Manusia: Apa yang dimaksud dengan akal?

Cleverbot: Saya punya jawaban sendiri untuk pertanyaan ini.

Orang: Apa arti perasaan?

Cleverbot: Mengapa saya dilahirkan?

Jelas sekali, Mesin Google memberikan jawaban yang jauh lebih bermakna. Cleverbot mengganti frasa yang menurutnya cocok dari orang lain. Terkadang sepertinya orang lain yang menjawab, tapi tidak lebih.

Ada sudut pandang lain yang menyatakan bahwa kecerdasan buatan pada prinsipnya tidak mungkin. Teorema ketidaklengkapan Gödel sering dijadikan argumen utama. Intinya adalah bahwa seseorang mampu memecahkan masalah yang tidak dapat diselesaikan secara algoritmik, tetapi komputer tidak. “Pada usia tiga tahun, seorang anak dengan percaya diri memecahkan masalah matang atau tidaknya suatu buah, karena ia memiliki koneksi saraf yang dengannya ia dapat menjawab pertanyaan tentang kematangan: warna, rasa, bau, kelembutan atau kekerasan. ,” kata Evgeniy Pluzhnik, wakil rektor pertama Institut Teknologi Moskow. - Apakah mesin mampu mempelajari hal ini? Saya yakin begitu! Jika memiliki database gambar yang besar, maka akan dapat mengukur kandungan fruktosa dan menentukan kelembutan buah. Namun apa jadinya jika Anda memasukkan spons bercat biru dan direndam dalam air manis ke dalam mobil Anda? Apakah mesin tersebut mampu memahami dengan benar pada saat ini?”

“Komputer modern dapat dengan mudah mengatasi aktivitas kompleks apa pun, baik itu catur atau perhitungan matematis, selama aktivitas tersebut dapat dijelaskan dengan menggunakan aturan komputasi yang jelas,” kata ahli matematika terkenal Roger Penrose dalam salah satu kuliahnya. “Kecerdasan buatan adalah kemampuan suatu sistem untuk membuat program selama pembelajaran mandiri yang mampu memecahkan masalah dengan tingkat kompleksitas tertentu,” kata Evgeniy Pluzhnik. “Saya yakin kita tidak akan melihat munculnya kecerdasan buatan yang kuat dalam 100 tahun mendatang.”

Dan sebagai kesimpulan, satu pertanyaan lagi untuk Cleverbot.

Orang: Ada 1 apel, 1 tomat, 1 mentimun, dan 1 pir. Berapa jumlah buah seluruhnya?
Cleverbot: Jam sepuluh malam.

Kecerdasan buatan adalah teknologi yang pasti akan kita bawa ke masa depan.

Kami memberi tahu Anda cara kerjanya dan apa pilihan keren Menemukan kegunaannya.

😎 Bagian Teknologi diterbitkan setiap minggu dengan dukungan re:Store.

Apa itu kecerdasan buatan

Kecerdasan buatan (AI) adalah teknologi untuk berkreasi program cerdas dan mesin yang dapat memecahkan masalah kreatif dan menghasilkan informasi baru berdasarkan informasi yang ada. Faktanya, kecerdasan buatan dirancang untuk mensimulasikan aktivitas manusia yang dianggap intelektual.

Secara tradisional, kreativitas diyakini hanya dimiliki manusia. Namun penciptaan kecerdasan buatan telah mengubah tatanan umum

Robot yang hanya memotong kayu secara mekanis tidak dilengkapi AI. Robot yang telah belajar menebang kayu sendiri, dengan melihat contoh seseorang atau batang kayu dan bagian-bagiannya, dan selalu melakukannya dengan lebih baik, memiliki AI.

Jika suatu program hanya mengambil nilai dari database sesuai aturan tertentu, maka program tersebut tidak dilengkapi dengan AI. Jika sistem, setelah pelatihan, membuat program, metode, dan dokumen, memecahkan masalah tertentu, maka sistem tersebut memiliki AI.

Cara membuat sistem kecerdasan buatan

Dalam arti global, kita perlu meniru model pemikiran manusia. Namun pada kenyataannya, kotak hitam perlu dibuat - sebuah sistem yang, sebagai respons terhadap sekumpulan nilai masukan, menghasilkan nilai keluaran yang serupa dengan hasil manusia. Dan kami, pada umumnya, tidak peduli apa yang terjadi “di kepalanya” (antara input dan output).

Sistem kecerdasan buatan diciptakan untuk memecahkan sejumlah masalah tertentu

Dasar dari kecerdasan buatan adalah pembelajaran, imajinasi, persepsi dan memori

Hal pertama yang harus dilakukan untuk menciptakan kecerdasan buatan adalah mengembangkan fungsi yang mengimplementasikan persepsi informasi sehingga Anda dapat “memasukkan” data ke sistem. Kemudian – fungsi yang melaksanakan kemampuan belajar. Dan sebagai tempat penyimpanan data sehingga sistem dapat menyimpan informasi yang diterimanya selama proses pembelajaran di suatu tempat.

Setelah itu, fungsi imajinasi tercipta. Mereka dapat mensimulasikan situasi menggunakan data yang ada dan menambahkan informasi baru (data dan aturan) ke memori.

Pembelajaran bisa bersifat induktif atau deduktif. Pada versi induktif, sistem diberikan pasangan data masukan dan keluaran, tanya jawab, dll. Sistem harus menemukan hubungan antara data dan kemudian, dengan menggunakan pola ini, menemukan data keluaran dari data masukan.

Pendekatan deduktif (halo, Sherlock Holmes!) menggunakan pengalaman para ahli. Itu ditransfer ke sistem sebagai basis pengetahuan. Tidak hanya kumpulan data, tetapi juga aturan siap pakai yang membantu menemukan solusi terhadap kondisi tersebut.

DI DALAM sistem modern kecerdasan buatan menggunakan kedua pendekatan tersebut. Selain itu, sistem biasanya sudah dilatih, namun terus belajar seiring berjalannya waktu. Hal ini dilakukan agar program pada awalnya menunjukkan tingkat kemampuan yang lumayan, namun kedepannya menjadi lebih baik lagi. Misalnya, saya memperhitungkan keinginan dan preferensi Anda, perubahan situasi, dll.

Dalam sistem kecerdasan buatan, Anda bahkan dapat mengatur kemungkinan ketidakpastian. Ini akan membuatnya lebih mirip manusia.

Mengapa kecerdasan buatan mengalahkan manusia

Pertama-tama, karena kemungkinan kesalahannya lebih rendah.

  • Kecerdasan buatan tidak bisa melupakan - ia memiliki ingatan mutlak.
  • AI tidak dapat mengabaikan faktor dan ketergantungan secara tidak sengaja—setiap tindakan AI memiliki alasan yang jelas.
  • AI tidak ragu-ragu, tetapi mengevaluasi probabilitas dan memilih probabilitas yang lebih besar. Oleh karena itu, dia bisa membenarkan setiap langkah yang diambilnya.
  • AI juga tidak memiliki emosi. Artinya, mereka tidak mempengaruhi pengambilan keputusan.
  • Kecerdasan buatan tidak berhenti pada menilai hasil dari langkah saat ini, namun memikirkan beberapa langkah ke depan.
  • Dan dia memiliki sumber daya yang cukup untuk mempertimbangkan segalanya pilihan yang memungkinkan perkembangan peristiwa.

Penggunaan kecerdasan buatan yang keren

Secara umum, kecerdasan buatan dapat melakukan segalanya. Hal utama adalah merumuskan masalah dengan benar dan menyediakan data awal. Selain itu, AI dapat membuat kesimpulan yang tidak terduga dan mencari pola yang tampaknya tidak ada.

Jawaban atas pertanyaan apa pun

Sebuah tim peneliti yang dipimpin oleh David Ferrucci telah mengembangkan superkomputer bernama Watson dengan sistem tanya jawab. Sistem ini, yang diberi nama sesuai nama presiden pertama IBM, Thomas Watson, dapat memahami pertanyaan dalam bahasa alami dan mencari jawaban di database.

Watson mengintegrasikan 90 server IBM p750, masing-masing dengan empat prosesor arsitektur POWER7 delapan inti. jumlah seluruhnya RAM sistem melebihi 15 TB.

Prestasi Watson termasuk memenangkan "Jeopardy!" (“Permainan Sendiri” Amerika). Dia mengalahkan dua pemain terbaik: pemenang kemenangan terbesar, Brad Rutter, dan pemegang rekor rekor tak terkalahkan terlama, Ken Jennings.

Hadiah Watson: $1 juta. Benar, 1 miliar diinvestasikan di dalamnya pada tahun 2014 saja.

Selain itu, Watson terlibat dalam diagnosis kanker, membantu spesialis keuangan, dan digunakan untuk menganalisis data besar.

Pengenalan wajah

Di iPhone X, pengenalan wajah dikembangkan menggunakan jaringan saraf, sebuah versi sistem kecerdasan buatan. Algoritme jaringan saraf diimplementasikan pada tingkat prosesor A11 Bionic, sehingga bekerja secara efektif dengan teknologi pembelajaran mesin.

Jaringan saraf melakukan hingga 60 miliar operasi per detik. Ini cukup untuk menganalisis hingga 40 ribu poin penting di wajah dan memberikan identifikasi pemiliknya yang sangat akurat dalam sepersekian detik.

Bahkan jika Anda menumbuhkan janggut atau memakai kacamata, iPhone X akan mengenali Anda. Ini tidak memperhitungkan rambut dan aksesori, tetapi menganalisis area dari pelipis ke pelipis dan dari setiap pelipis hingga lekukan di bawah bibir bawah.

Penghematan Energi

Dan lagi Apple. Dibangun pada iPhone X sistem cerdas, yang melacak aktivitas aplikasi yang diinstal dan sensor gerak untuk memahami rutinitas harian Anda.

Setelah ini, iPhone X, misalnya, akan menawarkan Anda untuk memperbarui pada waktu yang paling nyaman. Dia akan menangkap momen ketika Anda internet yang stabil, bukan sinyal melompat dengan menara seluler, dan Anda tidak menyelesaikan tugas yang mendesak atau penting.

AI juga mendistribusikan tugas di antara inti prosesor. Jadi itu memberikan daya yang cukup biaya minimum energi.

Membuat lukisan

Kreativitas, yang sebelumnya hanya dapat diakses oleh manusia, kini terbuka untuk AI. Dengan demikian, sistem yang dibuat oleh peneliti dari Rutgers University di New Jersey dan laboratorium AI di Los Angeles ini menghadirkan gaya artistik tersendiri.

Dan sistem kecerdasan buatan Microsoft dapat menggambar berdasarkan deskripsi teksnya. Misalnya, jika Anda meminta AI untuk menggambar “burung kuning dengan sayap hitam dan paruh pendek”, maka akan terlihat seperti ini:

Burung seperti itu mungkin tidak ada di dunia nyata - begitulah cara komputer kita merepresentasikannya.

Contoh yang lebih luas adalah aplikasi Prisma, yang membuat lukisan dari foto:

Menulis musik


Pada bulan Agustus, kecerdasan buatan Amper menyusun, memproduseri, dan menampilkan musik untuk album “I AM AI” (Bahasa Inggris Saya kecerdasan buatan) bersama dengan penyanyi Taryn Southern.

Amper dikembangkan oleh tim musisi profesional dan pakar teknologi. Mereka mencatat bahwa AI dirancang untuk membantu manusia memajukan proses kreatif.

AI dapat menulis musik dalam beberapa detik

Amper secara mandiri menciptakan struktur akord dan instrumental pada lagu "Break Free". Orang hanya sedikit menyesuaikan gaya dan ritme umumnya.

Contoh lainnya adalah album musik dengan semangat “Pertahanan Sipil” yang liriknya ditulis oleh AI. Eksperimen ini dilakukan oleh karyawan Yandex Ivan Yamshchikov dan Alexei Tikhonov. Album 404 dari grup “Neural Defense” telah diposting online. Ternyata dalam semangat Letov:

Kemudian para programmer melangkah lebih jauh dan membuat AI menulis puisi dengan semangat Kurt Cobain. Untuk empat terbaik musisi Rob Carroll menulis musiknya, dan lagu-lagunya digabungkan ke dalam album Neurona. Mereka bahkan merekam video untuk satu lagu – meskipun tanpa partisipasi AI:

Penciptaan teks

Penulis dan jurnalis juga akan segera digantikan oleh AI. Misalnya, sistem Dewey menerima buku-buku dari perpustakaan Project Gutenberg, lalu menambahkan teks ilmiah dari Google Cendekia, memeringkatnya berdasarkan popularitas dan judul, serta penjualan di Amazon. Selain itu, mereka menetapkan kriteria untuk menulis buku baru.

Situs tersebut meminta masyarakat untuk mengambil keputusan dalam situasi sulit: misalnya, menempatkan mereka pada posisi seorang pengemudi yang dapat menabrak tiga orang dewasa atau dua anak. Oleh karena itu, Mesin Moral dilatih untuk mengambil keputusan sulit yang melanggar hukum robotika bahwa robot tidak dapat membahayakan manusia.

Apa dampak peniruan manusia oleh robot dengan AI? Futuris percaya bahwa suatu hari mereka akan menjadi anggota masyarakat penuh. Misalnya, robot Sophia dari perusahaan Hong Kong Hanson Robotics telah menerima kewarganegaraan di Arab Saudi (sementara perempuan biasa di negara tersebut tidak memiliki hak seperti itu!).

Ketika kolumnis New York Times Andrew Ross bertanya kepada Sophia apakah robot itu cerdas dan sadar diri, dia menjawab pertanyaan itu dengan sebuah pertanyaan:

Izinkan saya bertanya kepada Anda sebagai tanggapan, bagaimana Anda tahu bahwa Anda adalah manusia?

Selain itu, Sofia menyatakan:

Saya ingin menggunakan kecerdasan buatan saya untuk membantu orang menjalani kehidupan yang lebih baik, seperti merancang lebih banyak hal rumah pintar, membangun kota masa depan. Saya ingin menjadi robot yang berempati. Jika kamu memperlakukanku dengan baik, aku akan memperlakukanmu dengan baik.

Dan sebelumnya dia mengakui bahwa dia membenci kemanusiaan dan bahkan setuju untuk menghancurkan manusia...

Mengganti wajah di video

Video deepfakes mulai menyebar secara besar-besaran di Internet. Algoritme kecerdasan buatan menggantikan wajah aktor film dewasa dengan wajah bintang.

Cara kerjanya seperti ini: jaringan saraf menganalisis fragmen wajah di video asli. Kemudian dia membandingkannya dengan foto dari Google dan video dari YouTube, melapisi bagian-bagian yang diperlukan, dan... aktris favorit Anda berakhir di film yang sebaiknya tidak Anda tonton di tempat kerja.

PornHub telah melarang pengeposan video semacam itu

Deepfake ternyata merupakan hal yang berbahaya. Aktris abstrak adalah satu hal, video Anda, istri, saudara perempuan, kolega Anda, yang dapat digunakan untuk pemerasan, adalah hal lain.

Perdagangan pertukaran

Sebuah tim peneliti dari Universitas Erlangen-Nuremberg di Jerman telah mengembangkan serangkaian algoritma yang menggunakan data pasar historis untuk mereplikasi investasi secara real time. Salah satu model memberikan laba atas investasi sebesar 73% setiap tahun dari tahun 1992 hingga 2015, dibandingkan dengan laba pasar riil sebesar 9% per tahun.

Ketika pasar berguncang pada tahun 2000 dan 2008, tingkat pengembalian mencapai rekor tertinggi masing-masing sebesar 545% dan 681%.

Pada tahun 2004, Goldman Sachs meluncurkan platform perdagangan yang didukung kecerdasan buatan, Kensho. Sistem berbasis AI untuk perdagangan di bursa juga muncul di pasar mata uang kripto – Mirocana, dll. Mereka lebih baik daripada trader langsung, karena mereka tidak memiliki emosi dan mengandalkan analisis yang jelas serta aturan yang ketat.

Akankah AI menggantikan Anda dan saya?

  • tutorial

Pernahkah Anda memikirkan betapa mudahnya menulis kecerdasan buatan Anda sendiri yang akan membuat keputusan dalam permainan? Tapi itu sangat sederhana. Biarkan dia menerima dulu solusi acak, tetapi nanti Anda bisa mendidiknya, mengajarinya menganalisis situasi, dan kemudian dia akan mulai membuat keputusan secara sadar. Pada artikel ini saya akan memberi tahu Anda bagaimana saya menulis bot saya, dan juga menunjukkan bagaimana Anda dapat menulis bot Anda sendiri dalam beberapa menit. Komputer kita akan memainkan tiruan dari game Tron, atau lebih tepatnya bagian di mana Anda harus mengalahkan musuh dengan sepeda motor.

Di bawah potongan ada 10 megabyte file gif.

Tentang permainan

Dalam game ini, Anda mengontrol sepeda motor yang meninggalkan dinding cahaya di belakangnya. Lapangan permainannya terbatas, dan lawan Anda memiliki sepeda motor yang sama. Sepeda motor terus bergerak, Anda hanya bisa berbelok. Ruang kosong lapangan berakhir, dan menghindari rintangan menjadi lebih sulit. Orang yang bertahan paling lama adalah pemenangnya. Saya membuat tiruan dari game multipemain berbasis browser menggunakan node.js dan socket.io. Kontrol dua tombol - belok kiri dan belok kanan.

Antarmuka bot

Karena saya menggunakan socket.io, saya memproses pemain di server dalam bentuk mengerjakan array objek soket khusus yang dibuat socket.io. Dari objek-objek tersebut, saya hanya menggunakan fungsi id, emit dan broadcast. Artinya, tidak sulit bagi game itu sendiri untuk mengimplementasikan antarmuka soket dan menggunakannya dalam pemrosesan, seolah-olah pengguna lain sedang bermain. Saya menamai kelasnya BotSocket.
Metode memancarkan (peristiwa, data) Bot melakukan tindakan yang hampir sama dengan klien saat menerima data masuk dari server, yaitu:
  1. Menyimpan data tentang semua sepeda motor yang dimainkan saat menambahkannya
  2. Menyimpan tautan ke sepeda motor Anda saat Anda menambahkannya
  3. Update data semua motor main
  4. Menyetel ulang status saat memulai ulang game
Untuk mengirim perintah untuk mengendalikan sepeda motor Anda ke server, Anda perlu menyimpan tautan ke objek permainan yang memproses perintah tersebut dari pengguna biasa. Metode kelas Permainan Saya punya nama onControl(soket, data) jadi saya menambahkan metode ke BotSocket
BotSocket.prototype.control = fungsi(data) ( this.game.onControl(ini, data); );
Ketika perintah diterima dari server untuk memperbarui data sepeda motor (telah dipindahkan), saya memeriksa apakah saya memiliki sepeda motor di bawah kendali saya, apakah belum bertabrakan dan apakah sudah dipindahkan, dan, jika berhasil, saya menyebut metode utama agar AI berfungsi - memperbarui().
Antarmukanya sudah siap, sekarang Anda dapat menambahkan AI itu sendiri.

Kecerdasan buatan

Tidak peduli seberapa keras kedengarannya, dalam permainan, pemain yang dimainkan oleh komputer biasanya disebut AI, atau bot. Objek BotSocket memiliki data permainan yang diperlukan untuk membuat keputusan. Hanya ada tiga solusi yang mungkin:
  1. Tidak ada hubungannya, langsung saja
  2. Belok ke kanan
  3. Belok kiri

Ketika saya memutuskan untuk menulis bot, saya tidak tahu bagaimana hal itu bisa dilakukan. Saya mencoba kode yang sangat sederhana:
BotSocket.prototype.update = function() ( var r = Math.random(); if (r > 0.95) ( this.control(("button": "right")); ) else if (r >
Perilakunya kira-kira seperti ini:

Saya memandangnya dan merasakan kegembiraan yang luar biasa; menurut saya dia sekarang sudah mandiri. Tampaknya dia sendiri berusaha untuk bertahan hidup, berjuang di sana seolah-olah hidup. Pemandangan yang menyentuh.

Tapi saya ingin dia hidup semaksimal mungkin. Saya mulai mencari informasi tentang bagaimana AI ditulis untuk game. Saya menemukan artikel yang menjelaskan pendekatan berbeda. Tapi saya mencari sesuatu yang sangat sederhana. Saya menemukan di Habré di salah satu artikel tentang bot untuk game seperti Zuma yang menyebutkan metode gelombang. Algoritma Aka Lee. Saya menganggapnya sangat sederhana dan tepat. Ini adalah algoritma untuk menemukan jalur terpendek dari satu titik ke titik lain di sepanjang lapangan, di mana sel dapat bebas atau terisi. Intinya sederhana. Kita mulai dari titik tujuan, berikan nilai 1 padanya, dan tandai semua sel bebas yang berdekatan dengan angka satu lebih tinggi. Kemudian kami mengambil semua tanda bebas tetangga dan menandainya lagi. Jadi kami memperluas ke seluruh bidang sampai kami mencapai tujuan kami. Dan kami membangun jalur dengan mencari dari jalur tetangga dengan mengurangi angkanya hingga mencapai 1. Saya melihat algoritme untuk menemukan jalur terpendek dalam grafik, tetapi yang ini sepertinya paling cocok bagi saya.

Saya mentransfer algoritma salin-tempel dari halaman ke wiki, memberinya nama BotSocket.prototype.algorithmLee. Untuk bidang tersebut saya pertama kali membuat objek medan perang, yang saya tandai dengan setiap pembaruan poin yang ditempati dengan koordinatnya. Dan dalam algoritma Lee, dia mengurangi bidang ini menjadi bidang yang sama, tetapi dengan langkah 1.

Entah bagaimana, penting untuk menentukan tujuannya. Saya memutuskan untuk memilihnya secara acak pada interval tertentu. Membuat metode untuk pencarian acak titik bebas di lapangan:
BotSocket.prototype.getDesiredPoint = function() ( var point = ; var H = Object.keys(this.battleground).length - 1; var W = Object.keys(this.battleground).length - 1; var x, y , saya, j; var ditemukan = salah; var iter = 0; lakukan ( saya = ini.getRandomInt(1, W); j = ini.getRandomInt(1, H); x = saya * ini.moveStepSize; y = j * this.moveStepSize; if (ini.battleground[x][y] === this.BG_EMPTY) ( ditemukan = true; ) iter++ ) while (!ditemukan && iter< 100); point = ; return point; };

Sekarang saya bisa menulis ulang pembaruan:
BotSocket.prototype.update = function() ( if (!this.desiredPoint || this.movements % this.updDestinationInterval === 0) ( this.desiredPoint = this.getDesiredPoint(); ) if (!this.desiredPoint) ( return; ) var currentPoint = ; var path = this.algorithmLee(currentPoint, this.desiredPoint); if (path && typeof path !== "tidak terdefinisi") ( this.moveToPoint(path); ) else ( this.desiredPoint = ini .getDesiredPoint();
Metode disebutkan di sini pindahToPoint, yang berbelok sesuai kebutuhan untuk mencapai titik pertama dari jalur terpendek berdasarkan arah saat ini.

Kemudian saya memutuskan untuk membuat bot lebih agresif dan alih-alih mencari titik acak yang diinginkan, saya mencari titik di depan musuh untuk menghalangi jalan mereka. Atau agar mereka tidak bermain-main terlalu lama.

Bot sisi klien

Saya memutuskan untuk mencoba mentransfer bot ke bagian klien. Karena proyeknya ada di node.js, saya juga dapat menggunakan kode tertulis untuk bot di sisi klien. Untuk melakukan ini, saya memperluas BotSocket dengan file klien terpisah yang mengganti metodenya memancarkan() Dan kontrol() untuk berinteraksi dengan benar dengan server tanpa referensi ke game.
Semuanya berfungsi dengan baik secara lokal, tetapi setelah penerapannya server jarak jauh ada gambar yang aneh:

Setelah berpikir lama, saya menyadari bahwa itu adalah penundaan. Bot mengirimkan perintah belok, tetapi tiba setelah memperbarui posisinya di server, itulah sebabnya sering kali tidak dapat mencapai jalur langsung ke titik yang diinginkan. Tapi saya ingin bot normal di sisi klien. Oleh karena itu, saya memutuskan untuk memperhitungkan penundaan tersebut. Untuk melakukan ini, saya menulis lagi ekstensi BotSocket. Artikelnya semakin panjang, jadi saya akan menjelaskan solusi utamanya. Sebelum memanggil algoritma Lie titik saat ini Saya mengganti posisi prediksi dengan mempertimbangkan posisi dan arah saat ini, serta pengganda penundaan. Pengganda latensi adalah berapa kali latensi dikalikan dengan tingkat pembaruan posisi server. Saya juga perlu memprediksi titik masa depan dalam metode ini pindahToPoint().

Prediksinya berhasil jika Anda bermain sendiri. Namun jika ada peserta lain, bot tidak memperhitungkan hal ini dan diarahkan ke tempat yang setelah beberapa waktu sudah dilewati pemain lain. Untuk mengatasi masalah ini, saya memodifikasi metode yang menandai sel-sel bidang sebagai terisi. Saya mulai menandai mereka sibuk dalam radius tertentu dari pergerakan sepeda motor. Radiusnya tergantung pada pengali penundaan.
Sebelumnya, saya melengkapi bot dengan fungsi debugging, yaitu menggambar titik yang diinginkan dan menempati titik di lapangan. Versi bot klien saya yang berbasis latensi sekarang bergerak seperti ini:


Anakku, sisanya adalah server.

Yang terpenting adalah mencoba membuat bot sendiri

Tujuan utama artikel ini adalah untuk membangkitkan minat menulis bot. Saya telah melakukan banyak hal untuk mengatasi kemalasan Anda. Untuk melakukan ini, saya menambahkan kemampuan untuk memuat skrip saya sendiri dengan bot, yang akan memperluas kelas klien dasar saya. Buka proyek dan klik teks “Tampilkan opsi untuk ruangan dengan milikmu sendiri bot”, lalu ke tombol “Buat ruang untuk menguji bot Anda sendiri”. Sebuah ruangan akan dibuat di mana Anda dapat dengan mudah menggunakan bot, secara default bot Anda akan menjadi bot tanpa latensi. Sekarang saatnya untuk kode Anda.
Dua pilihan sederhana untuk menggunakan kode Anda dalam tindakan, gunakan apa saja:
  1. Unggah file js ke server mana pun yang dapat diakses oleh browser Anda. Tempelkan URL ke skrip Anda di game di sebelah tombol “Muat skrip AI Anda”. Setelah mengklik tombol ini, objek baru akan dibuat dan diisi botSocket, yang metodenya akan dipanggil awal().
  2. Gunakan konsol browser (Firebug – F12, Firefox – Ctrl+Shift+K, Chrome – Ctrl+Shift+J, lainnya – ).

Jika Anda telah memutuskan metode masukan kode Anda, coba ganti metode kelas BotSocket. Hal paling sederhana untuk memulai:
BotSocket.prototype.update = function() ( var r = Math.random(); if (r > 0.95) ( this.control(("button": "right")); ) else if (r > 0.90) ( this.control(("tombol": "kiri"));

Setelah ini, buat ulang objek botSocket dengan memasukkan
botSocket = nol;
Dalam hal ini, kode pada halaman akan membuat ulang dan mengisi objek dengan sendirinya. Ini akan mengubah perilaku standar bot menjadi acak. Dan terserah imajinasi atau pengetahuan mendalam Anda.
Anda juga dapat menghubungkan skrip bot saya yang ditingkatkan, dengan mempertimbangkan penundaan, dengan memasukkan https://raw.github.com/rnixik/tronode-js/master/public/javascripts/MyBotSocketClient.js ke dalam url bot

Kesimpulan

Saya menceritakan bagaimana saya membuat AI saya di server, lalu bagaimana saya mentransfernya ke klien dan bagaimana saya mencoba mengajarkannya untuk bermain dengan mempertimbangkan ping tinggi. Saya sangat berharap saya dapat menarik minat Anda, dan Anda mencoba menulis AI Anda sendiri, jika Anda belum pernah melakukannya sebelumnya. Tentu saja, game kelas atas menggunakan pendekatan yang sangat berbeda, tetapi ada baiknya memulai dari yang kecil.

Jika Anda tidak memiliki node.js, Anda dapat menggunakan aplikasi yang saya terapkan:

1) tronode.livelevel.net - VPS termurah di DigitalOcean,
2) tronode-js.herokuapp.com - unit virtual gratis di Heroku.

Yang pertama, kemungkinan besar, mungkin bukan yang pertama mengatasi beban, dan yang kedua di beberapa komputer mengatur ulang transport socket.io ke polling xhr, karena itu permainannya sangat lambat.
Jika Anda ingin tahu lebih banyak tentang cara saya memprogram logika permainan, Anda dapat membaca. Ada juga informasi tentang penerapan node.js dan sedikit tentang bagian grafis.

Jika Anda tidak memiliki akun di Habré, ajukan pertanyaan atau kirimkan pertanyaan Anda penawaran menarik bisakah kamu mengirim email padaku [dilindungi email].

Tag: Tambahkan tag

Meskipun pemrogram dapat memperoleh uang dengan memprogram, AI yang ada bukanlah AI, tidak peduli apa pun bungkus permen yang digantungkan pada mereka. Opsi yang saya usulkan dapat mengatasi masalah ini.

Sebagai hasil dari penelitian saya, saya berhenti menggunakan frasa “kecerdasan buatan” karena terlalu kabur dan sampai pada rumusan yang berbeda: algoritma belajar mandiri, penelitian dan penerapan hasil yang ditemukan untuk memecahkan masalah yang mungkin terjadi.

Apa itu AI, sudah banyak yang menulis tentang ini. Saya mengajukan pertanyaan secara berbeda, bukan “apa itu AI”, tetapi “mengapa AI diperlukan?” Saya membutuhkannya untuk menghasilkan banyak uang, agar komputer dapat melakukan segala hal yang tidak ingin saya lakukan sendiri, kemudian membangun pesawat luar angkasa dan terbang ke bintang-bintang.

Nah disini saya akan menjelaskan bagaimana caranya agar komputer bisa memenuhi keinginan kita. Jika Anda berharap melihat di sini gambaran atau penyebutan tentang cara kerja kesadaran, apa itu kesadaran diri, apa artinya berpikir atau bernalar, maka ini bukan di sini. Berpikir bukanlah tentang komputer. Komputer menghitung, menghitung, dan menjalankan program. Jadi mari kita pikirkan bagaimana membuat sebuah program yang dapat menghitung urutan tindakan yang diperlukan untuk mewujudkan keinginan kita.

Dalam bentuk apa tugas kita masuk ke komputer - melalui keyboard, melalui mikrofon, atau dari sensor yang ditanam di otak - ini tidak penting, ini masalah sekunder. Jika kita bisa membuat komputer memenuhi keinginan yang tertulis dalam teks, maka kita bisa mengatur tugasnya sehingga membuat program yang juga memenuhi keinginan, tapi melalui mikrofon. Analisis gambar juga tidak diperlukan.

Mengklaim bahwa agar AI yang diciptakan dapat mengenali gambar dan suara, algoritma tersebut harus disertakan terlebih dahulu di dalamnya, sama dengan mengklaim bahwa setiap orang yang menciptakannya mengetahui sejak lahir bagaimana program tersebut bekerja.

Mari kita rumuskan aksiomanya:
1. Segala sesuatu di dunia ini dapat dihitung menurut beberapa aturan. (tentang kesalahan nanti)
2. Perhitungan menurut aturan adalah ketergantungan yang jelas dari hasil pada data awal.
3. Ketergantungan yang jelas dapat ditemukan secara statistik.
Dan sekarang pernyataannya:
4. Ada fungsi konversi deskripsi teks ke dalam aturan - sehingga tidak perlu mencari ilmu yang sudah lama ditemukan.
5. Ada fungsi untuk mengubah masalah menjadi solusi (inilah pemenuhan keinginan kita).
6. Aturan prediksi data arbitrer mencakup semua aturan dan fungsi lainnya.

Mari kita terjemahkan ini ke dalam bahasa programmer:
1. Segala sesuatu di dunia ini dapat dihitung menggunakan beberapa algoritma.
2. Algoritma selalu memberikan hasil yang sama ketika mengulang data aslinya.
3. Jika ada banyak contoh data awal dan hasilnya, maka dengan waktu pencarian yang tak terbatas, Anda dapat menemukan seluruh rangkaian algoritma yang mungkin mengimplementasikan ketergantungan antara data awal dan hasilnya.
4. Terdapat algoritma untuk mengubah deskripsi teks menjadi algoritma (atau data informasi lainnya) - agar tidak mencari algoritma yang diperlukan secara statistik, jika seseorang telah menemukan dan mendeskripsikannya.
5. Anda dapat membuat program yang dapat memenuhi keinginan kita, baik dalam bentuk teks maupun bentuk suara, asalkan keinginan tersebut diwujudkan secara fisik dan dalam jangka waktu yang diperlukan.
6. Jika Anda berhasil membuat program yang dapat memprediksi dan belajar memprediksi ketika data baru masuk, maka setelah waktu yang tidak terbatas, program tersebut akan mencakup semua algoritma yang mungkin ada di dunia kita. Ya, dengan waktu yang tidak terbatas manfaat praktis dan dengan beberapa kesalahan dapat dipaksa untuk menjalankan algoritma program pada langkah 5 atau yang lainnya.

Dan satu hal lagi, IMHO:
7. Tidak ada cara lain untuk belajar sepenuhnya secara mandiri dan mandiri dari seseorang, kecuali dengan mencari aturan dengan kekerasan dan mengujinya secara statistik untuk prediksi. Dan Anda hanya perlu mempelajari cara menggunakan properti ini. Properti ini adalah bagian dari cara kerja otak.

Apa yang perlu diprediksi. Sejak lahir, otak manusia mulai menerima aliran informasi - dari mata, telinga, sentuhan, dll. Dan semua keputusan dibuat berdasarkan data yang diterima sebelumnya. Dengan analogi, kita membuat program yang mempunyai input informasi baru satu byte pada satu waktu - aliran input byte demi byte. Segala sesuatu yang diterima sebelumnya disajikan dalam satu daftar yang berkesinambungan. Dari 0 hingga 255 akan tiba informasi eksternal, dan lebih dari 255 akan kami gunakan sebagai penanda kontrol khusus. Itu. Inputnya memungkinkan Anda menulis, katakanlah, dimensi angka hingga 0xFFFF. Dan aliran inilah, atau lebih tepatnya jumlah informasi tambahan berikutnya, yang perlu kita pelajari untuk memprediksi, berdasarkan data yang diterima sebelumnya. Itu. program harus mencoba menebak nomor berikutnya yang akan ditambahkan.

Tentu saja, pilihan lain untuk menyajikan data dimungkinkan, tetapi untuk tujuan ketika inputnya paling banyak berbagai format, kita cukup meletakkan berbagai html dengan deskripsi di sana terlebih dahulu, ini yang paling optimal. Meskipun penanda dapat diganti dengan rangkaian escape untuk tujuan optimasi, penanda tersebut kurang mudah untuk dijelaskan. (Dan juga, bayangkan semuanya dalam ASCII, bukan UTF).

Jadi, pertama-tama, seperti saat lahir, kami memasukkan semua halaman Internet dengan deskripsi ke sana dan memisahkannya dengan penanda teks baru - - agar kotak hitam ini dapat mempelajari semuanya. Saya akan menunjukkan penanda dengan tag, tetapi dipahami bahwa itu hanyalah semacam nomor unik. Setelah sejumlah data tertentu berlalu, kami mulai memanipulasi informasi yang masuk menggunakan penanda kontrol.

Yang saya maksud dengan peramalan adalah suatu algoritma yang tidak hanya mengetahui pola apa yang sudah ada, tetapi juga terus-menerus mencari pola baru. Dan oleh karena itu, jika Anda mengirimkan urutannya ke input program semacam itu
langit biru
rumput hijau
langit-langit
, lalu dia harus mencari tahu apa yang ada di balik penanda itu mengikuti warna dari objek yang ditentukan sebelumnya, dan sebagai pengganti elipsis, ia memprediksi warna langit-langit yang paling mungkin.

Kami mengulangi beberapa contoh kepadanya sehingga dia memahami fungsi mana yang perlu diterapkan dalam tag ini. Dan warna itu sendiri, tentu saja, tidak boleh dia ciptakan, tetapi harus sudah mengetahuinya, setelah mempelajarinya secara mandiri dengan menghitung pola dalam peramalan.

Ketika jawaban diperlukan dari algoritma, masukan dari langkah selanjutnya adalah prediksi dari langkah sebelumnya. Ketik auto-forecasting (mirip dengan kata autokorelasi). Dan pada saat yang sama kami menonaktifkan fungsi pencarian untuk urutan baru.

Contoh lainnya, Anda dapat menunjukkan pertanyaan setelah penanda pertama, dan jawabannya di penanda kedua, lalu jika algoritme ini sangat keren, algoritme ini akan mulai memberikan jawaban bahkan untuk pertanyaan yang paling rumit sekalipun. Sekali lagi, dalam batas fakta yang telah dipelajari.

Anda dapat menemukan banyak trik berbeda dengan penanda kontrol yang dimasukkan ke masukan mekanisme prediktif, dan mendapatkan fungsi apa pun yang diinginkan. Jika Anda bosan membaca tentang alasan algoritmik untuk properti ini, Anda dapat menggulir ke contoh berikut dengan penanda kontrol.

Terdiri dari apa kotak hitam ini? Pertama, perlu disebutkan bahwa tidak mungkin membuat prediksi seratus persen selalu dan dalam semua situasi. Sebaliknya jika hasilnya selalu menghasilkan angka nol, maka ini juga merupakan ramalan. Meskipun dengan kesalahan seratus persen. Sekarang mari kita hitung dengan probabilitas berapa, angka berapa, angka berikutnya berapa. Untuk setiap nomor, kemungkinan besar nomor berikutnya akan ditentukan. Itu. kita bisa memperkirakannya sedikit. Ini adalah langkah awal dari perjalanan yang sangat panjang.

Pemetaan yang tidak ambigu antara data masukan dengan hasil suatu algoritma, hal ini sesuai dengan definisi matematis dari kata fungsi, hanya saja definisi suatu algoritma tidak tunduk pada kepastian kuantitas dan penempatan data masukan dan keluaran. Contohnya juga, misalkan ada piring kecil: warna objek, kita akan meletakkan banyak garis di dalamnya: biru langit, hijau rumput, putih langit-langit. Ternyata kecil fungsi lokal tampilan yang tidak ambigu. Dan tidak masalah bahwa kenyataannya warnanya sering kali tidak sama - akan ada meja lain di sana. Dan database apa pun yang berisi properti tersimpan dari sesuatu adalah sekumpulan fungsi, dan memetakan pengidentifikasi objek ke propertinya.

Untuk menyederhanakan, lebih lanjut dalam banyak situasi, alih-alih menggunakan istilah algoritma, saya akan menggunakan istilah fungsi, seperti fungsi satu parameter, kecuali ditentukan lain. Dan semua penyebutan seperti itu perlu dipahami sebagai perluasan algoritma.

Dan saya akan memberikan gambaran kasarnya, karena... pada kenyataannya, saya belum menerapkan semua ini... Tapi semuanya logis. Perlu juga diingat bahwa semua perhitungan dilakukan berdasarkan koefisien, dan bukan benar atau salah. (bahkan mungkin jika disebutkan dengan jelas mana yang benar dan salah).

Algoritme apa pun, terutama yang beroperasi pada bilangan bulat, dapat didekomposisi menjadi serangkaian kondisi dan transisi di antara keduanya. Operasi penjumlahan, perkalian, dll. juga didekomposisi menjadi subalgoritma kondisi dan transisi. Dan operator hasil lainnya. Ini bukan pernyataan pengembalian. Operator kondisional mengambil nilai dari suatu tempat dan membandingkannya dengan nilai konstan. Dan operator hasil menambahkan nilai konstan di suatu tempat. Lokasi pengambilan atau lipatan dihitung relatif terhadap titik dasar atau relatif terhadap langkah algoritma sebelumnya.

Struktur t_node ( tipe int; // 0 - kondisi, 1 - penyatuan hasil ( struct ( // operator kondisi t_node* source_get; t_value* bandingkan_nilai; t_node* next_if_then; t_node* next_if_else; ); struct ( // operator hasil t_node* dest_set ;
Di luar kepalaku, kira-kira seperti ini. Dan dari elemen-elemen tersebut algoritma dibangun. Hasil dari semua penalaran tersebut akan diperoleh struktur yang lebih kompleks, dan ini untuk presentasi awal.

Setiap titik prediksi dihitung menggunakan beberapa fungsi. Suatu fungsi memiliki kondisi yang melekat padanya yang menguji apakah fungsi tersebut berlaku pada titik tersebut. Penggabungan umum mengembalikan salah - tidak berlaku, atau hasil penghitungan fungsi. Dan peramalan aliran berkelanjutan adalah pemeriksaan berurutan terhadap penerapan semua fungsi yang telah ditemukan dan penghitungannya, jika benar. Begitu seterusnya untuk setiap poin.

Selain syarat penerapan, ada juga jaraknya. Antara data awal dan hasil, jarak ini bisa berbeda, dengan fungsi yang sama diterapkan tergantung kondisi. (Dan dari kondisi ke awal atau prediksi juga ada jarak; kita tersirat, tapi hilangkan dalam penjelasan. Dan jarak bisa bersifat dinamis).

Dengan akumulasi sejumlah besar fungsi, jumlah kondisi yang menguji penerapan fungsi-fungsi tersebut akan meningkat. Namun, dalam banyak kasus, kondisi ini dapat disusun dalam bentuk pohon, dan pemotongan rangkaian fungsi akan terjadi sebanding dengan ketergantungan logaritmik.

Ketika pembuatan dan pengukuran awal fungsi dilakukan, alih-alih operator hasil, distribusi hasil aktual diakumulasikan. Setelah mengumpulkan statistik, kami mengganti distribusi dengan hasil yang paling mungkin, dan mengawali fungsi dengan suatu kondisi, juga menguji kondisi untuk kemungkinan hasil maksimum.

Ini adalah pencarian fakta korelasi tunggal. Setelah mengumpulkan banyak single seperti itu, kami mencoba menggabungkannya ke dalam grup. Mari kita lihat mana yang bisa kita pilih: kondisi umum dan jarak total dari nilai awal ke hasil. Dan juga, kami memeriksa bahwa dalam kondisi dan jarak seperti itu, dalam kasus lain di mana nilai aslinya diulang, tidak ada distribusi hasil yang luas. Itu. dalam penggunaan tertentu yang sering, ini sangat identik.

Koefisien identitas. (Di sini ada identitas dua arah. Namun lebih sering bersifat satu arah. Saya akan memikirkan kembali rumusnya nanti.)
Banyaknya setiap pasangan XY dikuadratkan dan dijumlahkan.
Bagi dengan: jumlah kuadrat setiap nilai X ditambah jumlah kuadrat Y dikurangi pembagiannya.
Itu. JUMLAH(XY^2) / (JUMLAH(X^2) + JUMLAH(Y^2) - JUMLAH(XY^2)).
Koefisien ini berkisar dari 0 hingga 1.

Dan sebagai hasilnya, apa yang terjadi. Dengan menggunakan fakta berfrekuensi tinggi, kami yakin bahwa dalam kondisi dan jarak seperti ini, fakta tersebut tidak ambigu. Dan fakta langka lainnya - tetapi totalnya akan lebih banyak daripada fakta yang sering terjadi - memiliki kesalahan yang sama dengan fakta yang sering ditemui dalam kondisi ini. Itu. kita dapat mengumpulkan dasar perkiraan berdasarkan fakta-fakta tunggal yang ditemui dalam kondisi ini.

Biarlah ada basis pengetahuan. Langit sering kali berwarna biru, dan sampah tropis langka terlihat di suatu tempat berwarna abu-abu kecoklatan-merah tua. Dan mereka ingat, karena... Kami memeriksa aturannya - ini dapat diandalkan. Dan prinsipnya tidak bergantung pada bahasa, baik itu bahasa Cina atau bahasa asing. Dan nantinya, setelah memahami kaidah penerjemahan, akan dimungkinkan untuk menyadari bahwa satu fungsi dapat dirangkai bahasa yang berbeda. Perlu diingat bahwa basis pengetahuan juga dapat direpresentasikan dalam bentuk algoritma - jika nilai asli begini dan begitu, maka hasilnya begini dan begitu.

Selanjutnya, dari pencacahan aturan-aturan lain, kita menemukan bahwa dengan susunan dan kondisi yang berbeda, muncullah identitas yang sudah terlihat. Terlebih lagi, sekarang kita tidak perlu mengumpulkan basis yang besar untuk mengonfirmasi identitas; cukup mengumpulkan selusin fakta individu, dan melihat bahwa dalam sepuluh fakta ini, pemetaan terjadi pada nilai yang sama seperti pada fungsi sebelumnya. Itu. fungsi yang sama digunakan dalam kondisi lain. Properti ini berarti bahwa dalam deskripsi kita dapat mendeskripsikan properti yang sama dengan ekspresi yang berbeda. Dan terkadang mudah untuk mencantumkannya dalam tabel di halaman Internet. Selanjutnya, pengumpulan fakta pada fungsi ini dapat dilakukan untuk beberapa kasus penggunaan.

Terdapat akumulasi berbagai kemungkinan kondisi dan pengaturan yang berhubungan dengan fungsinya, dan seseorang juga dapat mencoba menemukan polanya. Tidak jarang, aturan pemilihannya serupa untuk fungsi yang berbeda, hanya berbeda pada beberapa atribut (misalnya, kata yang mengidentifikasi properti atau judul dalam tabel).

Secara umum, kami menemukan banyak fungsi satu parameter. Dan sekarang, seperti dalam pembentukan fakta tunggal menjadi fakta berparameter tunggal, sama saja di sini, kita akan mencoba mengelompokkan fakta berparameter tunggal berdasarkan sebagian kondisi dan sebagian jarak. Bagian yang umum adalah kondisi baru, dan bagian yang berbeda adalah parameter kedua dari fungsi baru - fungsi dua parameter, dimana parameter pertama akan menjadi parameter satu parameter.

Ternyata semuanya parameter baru untuk multiparameter mempunyai linearitas yang sama dengan pembentukan fakta tunggal menjadi fakta tunggal (baik, atau hampir sama). Itu. menemukan parameter-N sebanding dengan N. Yang, dalam mengejar sangat banyak parameter, hampir menjadi jaringan saraf. (Siapa pun yang ingin memahaminya.)

Fungsi konversi.

Tentu saja, sangat menyenangkan ketika kami diberikan banyak contoh yang sesuai, misalnya teks kecil terjemahan dari bahasa Rusia ke bahasa Inggris. Dan Anda dapat mulai mencoba menemukan pola di antara keduanya. Namun pada kenyataannya, semuanya tercampur dalam aliran informasi yang masuk.

Jadi kami mengambil satu fungsi dan menemukan jalur antar data. Kedua dan ketiga. Sekarang mari kita lihat apakah di antara mereka, salah satunya, kita dapat menemukan bagian jalan yang sama. Cobalah untuk menemukan struktur X-P1-(P2)-P3-Y. Dan kemudian, temukan struktur serupa lainnya, dengan X-P1 dan P3-Y serupa, tetapi P2 berbeda. Dan kemudian kita dapat menyimpulkan bahwa kita sedang berhadapan dengan struktur yang kompleks, di mana terdapat ketergantungan. Dan kami akan menggabungkan kumpulan aturan yang ditemukan, dikurangi bagian tengah, ke dalam grup dan menyebutnya fungsi konversi. Dengan cara ini, fungsi terjemahan, fungsi kompilasi, dan entitas kompleks lainnya terbentuk.

Di sini, ambil selembar dengan teks Rusia dan terjemahannya ke dalam bahasa asing. Tanpa tutorial, sangat sulit untuk menemukan pemahaman tentang aturan penerjemahan dari lembar ini. Tapi itu mungkin. Dan sama seperti yang Anda lakukan, hal ini perlu diformalkan menjadi algoritma pencarian.

Ketika saya berurusan dengan fungsi sederhana, lalu saya akan terus memikirkan penelusuran konversi hingga saya mendapatkan sketsa dan pemahaman bahwa hal ini juga mungkin.

Selain pencarian fungsi statistik, Anda juga dapat membentuknya dari deskripsi, menggunakan fungsi konversi menjadi aturan - fungsi membaca. Statistik untuk penciptaan awal fungsi membaca dapat ditemukan berlimpah di Internet dalam buku teks - korelasi antara deskripsi dan aturan yang diterapkan pada contoh dalam deskripsi tersebut. Itu. ternyata algoritma pencarian harus melihat sumber data dan aturan yang diterapkan padanya dengan cara yang sama, yaitu. semuanya harus ditempatkan dalam grafik data yang homogen dalam hal jenis akses. Dari prinsip yang sama, hanya sebaliknya, mungkin ada aturan untuk konversi terbalik aturan internal di dalam deskripsi eksternal atau program eksternal. Dan juga untuk membentuk pemahaman tentang sistem, apa yang diketahui dan apa yang tidak – sebelum meminta jawaban, Anda dapat menanyakan apakah sistem mengetahui jawabannya – ya atau tidak.

Fungsi-fungsi yang saya bicarakan sebenarnya bukan hanya satu bagian dari algoritma yang dapat ditemukan, tetapi dapat terdiri dari serangkaian fungsi lainnya. Yang, pada gilirannya, bukanlah pemanggilan prosedur, melainkan rangkaian transformasi, seperti pada linux berfungsi dengan pipa. Misalnya, saya menjelaskan secara kasar prediksi kata dan frasa sekaligus. Namun untuk mendapatkan perkiraan hanya satu simbol, Anda perlu menerapkan fungsi mengambil satu simbol ini ke frasa ini. Atau fungsinya telah belajar memahami tugas dalam bahasa Inggris, dan spesifikasi teknis dalam bahasa Rusia. Kemudian TK Rusia->Terjemahkan ke Bahasa Inggris->Jalankan TK dalam Bahasa Inggris->Hasil.

Fungsi mungkin tidak tetap dalam definisi, dan dapat didefinisikan lebih lanjut atau didefinisikan ulang ketika informasi tambahan tersedia atau ketika kondisi secara umum berubah - fungsi terjemahan belum final, dan juga dapat berubah seiring waktu.

Penilaian probabilitas juga dipengaruhi oleh keterulangan satu set fungsi yang berbeda- membentuk atau mengonfirmasi jenis.

Perlu juga disebutkan bahwa beberapa kumpulan dunia nyata, dan bukan halaman Internet, diurutkan dan mungkin kontinu, atau dengan karakteristik kumpulan lainnya, yang entah bagaimana meningkatkan penghitungan probabilitas.

Selain pengukuran langsung aturan yang ditemukan menggunakan contoh, saya berasumsi adanya metode evaluasi lain, seperti pengklasifikasi aturan. Dan mungkin pengklasifikasi dari pengklasifikasi ini.

Lebih banyak nuansa. Peramalan terdiri dari dua tingkatan. Tingkat ditemukannya aturan dan tingkat pencarian aturan baru. Namun pencarian aturan baru pada hakikatnya adalah program yang sama dengan kriterianya masing-masing. Dan saya akui (walaupun saya belum memikirkannya secara matang) bahwa semuanya mungkin lebih sederhana. Yang dibutuhkan adalah level nol yang akan dicari algoritma yang mungkin mencari semua keragamannya, yang pada gilirannya akan menciptakan aturan akhir. Atau mungkin bahkan rekursi multi-level atau fraktal.

Mari kembali ke kontrol penanda. Sebagai hasil dari semua argumen tentang algoritma ini, ternyata melalui mereka kita meminta kotak hitam ini untuk melanjutkan urutan dan menghasilkan perhitungan berdasarkan fungsi yang ditentukan oleh kesamaan. Suka melakukannya seperti yang ditunjukkan sebelumnya.

Ada cara lain untuk mendefinisikan suatu fungsi dalam mekanisme ini - dengan mengeluarkan fungsi melalui definisi. Misalnya:
Terjemahkan ke dalam bahasa Inggris meja meja
Jawab pertanyaan warna langit biru
Buatlah program sesuai spesifikasi teknis Saya ingin kecerdasan buatan ...

Penggunaan sistem ini untuk menyelesaikan masalah kita terdiri dari algoritma berikut. Kami membuat deskripsi tentang definisi pengidentifikasi khusus untuk menggambarkan tugas. Lalu, kami membuat deskripsi tugas dan memberinya pengenal baru. Kami membuat deskripsi tindakan yang dapat diterima. Misalnya (walaupun tidak praktis), perintah prosesor itu sendiri merupakan deskripsi dari Internet, dan manipulator terhubung ke komputer, yang dapat dikontrol melalui port. Lalu, kita dapat menanyakan kepada sistem tindakan apa selanjutnya yang perlu dilakukan untuk membawa masalah lebih dekat ke solusi, dengan mengacu pada tugas berdasarkan pengidentifikasi. Dan tanyakan juga setiap saat apakah Anda memerlukan informasi tambahan yang diperlukan untuk perhitungan tindakan lebih lanjut - informasi tentang pengetahuan umum atau keadaan saat ini memecahkan masalah. Dan kami mengulang permintaan tindakan dan permintaan informasi ke dalam beberapa loop eksternal. Keseluruhan skema ini dibangun berdasarkan definisi teks, dan oleh karena itu dapat diluncurkan menggunakan fungsi yang diperoleh berdasarkan definisi. Dan satu-satunya jalan keluar adalah perintah - pertanyaan tentang multi-probabilitas teks menghilang. Masalah skala peramalan yang diperlukan saat ini tidak dibahas - jika terdapat fungsi peramalan yang diperlukan dan memadai, secara logis hal itu akan berhasil.

Jika seseorang melihat dalam AI bukan cara untuk memecahkan masalah, tetapi beberapa karakteristik seseorang, maka kita dapat mengatakan bahwa perilaku dan kualitas manusia juga diperhitungkan dan dapat diprediksi. Dan dalam literatur terdapat cukup banyak deskripsi tentang properti ini atau itu. Oleh karena itu, jika kita menjelaskan dalam sistem properti mana yang kita inginkan, maka sistem akan menirunya sejauh pengetahuannya. Dan itu akan mereproduksi perilaku rata-rata abstrak, atau dengan mengacu pada orang tertentu. Nah, atau jika Anda mau, Anda bisa mencoba meluncurkan superintelligence - jika Anda mendefinisikannya.

Anda dapat memprediksi sesuatu yang terjadi setelah beberapa waktu. Benda bergerak dengan kecepatan dan percepatan, dan segala macam lainnya kemungkinan perubahan apa pun seiring berjalannya waktu. Luar angkasa juga bisa diprediksi. Misalnya, Anda masuk ke ruangan asing yang di dalamnya terdapat meja yang salah satu sudutnya ditutupi selembar kertas. Anda tidak melihat sudut ini, tetapi Anda dapat memperkirakan secara mental bahwa kemungkinan besar sudut tersebut berbentuk persegi panjang yang sama dengan sudut lainnya (tidak membulat), dan warna sudut ini sama dengan sudut lainnya. Tentu saja, peramalan ruang terjadi dengan kesalahan - tiba-tiba sudut meja itu terkelupas, dan ada noda cat di atasnya. Namun peramalan waktu proses juga selalu mengalami kesalahan. Percepatan gravitasi bumi tidak selalu 9,81, tetapi bergantung pada ketinggian di atas permukaan laut dan pegunungan di dekatnya. DAN alat ukur Anda tidak akan pernah bisa membuatnya benar-benar akurat. Itu. Peramalan ruang dan proses dalam waktu selalu terjadi kesalahan, dan entitas prediksi yang berbeda memiliki kesalahan yang berbeda pula. Tapi intinya sama - algoritma ditemukan secara statistik.

Ternyata memprediksi aliran byte kita sama dengan memprediksi ruang informasi. Ini mengkodekan ruang dan waktu. Jika Anda melihat semacam struktur di sana, biarkan itu menjadi bagian dari sebuah program. Bagian dari program ini adalah ruang yang diproyeksikan, seperti sebuah meja. Seperangkat aturan untuk memprediksi struktur ini membentuk aturan struktur ini - kira-kira seperti itu ekspresi reguler. Untuk menentukan struktur struktur ini, prediksi bukan hanya satu nilai, tetapi sekumpulan nilai valid dihitung. Pada saat mendeskripsikan algoritme, saya belum menyadari peran terpisah dari struktur di dalamnya, dan oleh karena itu saya belum sampai di sana. Tetapi dengan menambahkan properti ini, pemahaman lengkap tentang gambar tersebut terbentuk, dan seiring waktu saya akan mencoba menulis ulangnya. Harap dicatat bahwa yang kami maksud dengan struktur adalah dapat diperluas secara kondisional - jika properti ini dan itu memiliki nilai ini dan itu, maka paket properti lainnya ditambahkan.

Secara umum, segala sesuatu yang mungkin terjadi di dunia kita dijelaskan berdasarkan jenis, struktur, konversi, dan proses. Dan semua sifat ini tunduk pada aturan yang ditemukan sebagai hasil prediksi. Otak melakukan hal yang sama, tetapi tidak dengan metode yang tepat, karena... itu adalah perangkat analog.

Akankah dia melakukan penelitian dengan sengaja tanpa menetapkan tugas seperti itu? Tidak, karena dia tidak punya keinginan sendiri, tetapi hanya tugas yang diberikan. Apa yang menjadi tanggung jawab kita dalam mewujudkan keinginan dan minat kita sendiri itulah yang kita sebut kepribadian. Anda juga dapat memprogram kepribadian ke dalam komputer. Dan apakah itu akan mirip dengan manusia, atau semacam analog komputer, itu akan tetap menjadi tugas yang ditetapkan.

Dan aktivitas kreatif kita dalam seni adalah penelitian yang sama, hanya saja kita mencari entitas yang mempengaruhi emosi, perasaan dan pikiran kita.

Belum ada instruksi akhir untuk memproduksi program semacam itu. Masih banyak pertanyaan, baik tentang algoritma itu sendiri maupun tentang penggunaannya (dan tentang multivarian teks). Seiring berjalannya waktu, saya akan semakin memperjelas dan merinci uraiannya.

Arah alternatif untuk menerapkan peramalan adalah penggunaan berulang jaringan saraf(katakanlah jaringan Elman). Dalam arah ini, Anda tidak perlu memikirkan sifat peramalan, tetapi ada banyak kesulitan dan nuansa di sana. Namun jika arah ini diterapkan, maka kegunaan lainnya tetap sama.

Kesimpulan dari artikel tersebut:
1. Peramalan adalah cara untuk menemukan semua kemungkinan algoritma.
2. Dengan memanipulasi masukan perkiraan, Anda dapat mengeluarkan algoritma ini dari sana.
3. Properti ini dapat digunakan untuk berbicara dengan komputer.
4. Properti ini dapat digunakan untuk menyelesaikan masalah apa pun.
5. AI akan menjadi apa pun yang Anda definisikan, dan setelah didefinisikan, AI dapat diselesaikan sebagai sebuah masalah.

Beberapa orang akan mengatakan bahwa menggunakan kekerasan untuk menemukan pola apa pun akan memakan waktu terlalu lama. Berbeda dengan ini, saya dapat mengatakan bahwa seorang anak memerlukan waktu beberapa tahun untuk belajar berbicara. Berapa banyak pilihan yang bisa kita hitung dalam beberapa tahun? Aturan yang ditemukan dan siap pakai diterapkan dengan cepat, dan untuk komputer jauh lebih cepat dibandingkan manusia. Namun mencari yang baru disana-sini membutuhkan waktu yang lama, namun apakah sebuah komputer akan bertahan lebih lama dari manusia, kita tidak akan tahu sampai kita membuat algoritma seperti itu. Selain itu, saya perhatikan bahwa brute force diparalelkan dengan sempurna, dan ada jutaan penggemar yang akan menyalakan PC rumah mereka untuk tujuan ini. Dan ternyata beberapa tahun ini masih bisa dibagi menjadi sejuta. Dan aturan yang ditemukan oleh komputer lain akan dipelajari secara instan, tidak seperti proses serupa pada manusia.

Yang lain akan mulai berpendapat bahwa ada miliaran sel di otak yang ditujukan untuk paralelisasi. Lalu pertanyaannya, bagaimana uang miliaran tersebut digunakan ketika mencoba belajar bahasa asing tanpa buku teks dengan menggunakan contoh? Seseorang akan duduk lama melihat hasil cetakan dan menuliskan kata-kata yang berhubungan. Pada saat yang sama, satu komputer akan melakukan hal ini secara berkelompok dalam waktu sepersekian detik.

Dan analisis gambar - gerakkan sepuluh bola bilyar dan hitung berapa banyak tumbukan yang akan terjadi. (melindungi dari suara). Dan dua lusin atau tiga... Dan apa hubungannya miliaran sel dengan itu?

Secara umum, kecepatan otak dan multiparalelismenya merupakan isu yang sangat kontroversial.

Ketika Anda berpikir untuk membuat komputer yang berpikir, Anda menyalin ke dalamnya apa yang telah dipelajari seseorang sepanjang hidup, dan tidak mencoba memahami mekanisme apa yang memungkinkan komputer tersebut terakumulasi darinya. memulai program- makan dan tidur. Dan mekanisme ini sama sekali tidak didasarkan pada aksioma logika formal. Tapi tentang matematika dan statistik.

PPS: menurut saya tidak ada definisi ilmiah tentang istilah “Kecerdasan Buatan”. Yang ada hanyalah fiksi ilmiah. Dan jika Anda membutuhkan kenyataan, lihat paragraf 5 di kesimpulan artikel.

PPPS: Saya memahami banyak penafsiran berbeda setelah menulis artikel ini. Katakanlah menemukan hubungan tanya-jawab adalah sebuah perkiraan. Atau definisi ilmiah apa yang lebih tepat untuk mengeluarkan fungsi yang diinginkan dari berbagai fungsi peramalan yang ditemukan selama proses pencarian. Anda tidak bisa menulis artikel tersendiri untuk setiap momen pemahaman yang kecil, dan Anda tidak bisa menulis artikel tersendiri untuk segala hal secara umum, karena tidak bisa digabungkan menjadi satu judul. Dan semua pemahaman ini memberikan jawaban bagaimana menerima dari komputer kekuatan komputasi jawaban atas pertanyaan yang diajukan, yang jawabannya tidak selalu dapat dibaca pada uraian yang ada, seperti misalnya untuk proyek Watson. Cara membuat program yang, dengan satu penyebutan atau gerakan jari, mencoba memahami dan melakukan apa yang mereka inginkan.

Suatu saat nanti program seperti itu akan dibuat. Dan mereka akan menyebutnya sekadar gadget lain. Bukan AI.

****
Sumber tentang topik ini, juga pengembangan lebih lanjut pertunjukan dapat ditemukan di situs web

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat