Bahasa yang kurang dikenali untuk mencipta kecerdasan buatan. Kecerdasan buatan: bagaimana dan di mana untuk belajar - pakar menjawab

Robotik mewakili gabungan yang bertentangan. Sebagai pakar, mereka mahir dalam selok-belok pengkhususan mereka. Sebagai ahli generalis, mereka dapat menampung keseluruhan masalah setakat yang dibenarkan oleh asas pengetahuan mereka yang luas. Kami sampaikan untuk perhatian anda bahan yang menarik mengenai topik kemahiran dan kebolehan yang diperlukan oleh seorang robotik sebenar.

Dan selain bahan itu sendiri, terdapat juga komen dari salah seorang pakar robot kami, kurator Yekaterinburg, Oleg Evsegneev.

Jurutera robotik biasanya terbahagi kepada dua kategori: pemikir (ahli teori) dan pelaku (pengamal). Ini bermakna robotik mesti berbeza gabungan yang baik dua gaya kerja yang bertentangan. Orang yang "penyiasat" biasanya suka menyelesaikan masalah dengan berfikir, membaca dan mengkaji. Sebaliknya, pengamal suka menyelesaikan masalah hanya dengan mengotorkan tangan mereka, kononnya.

Robotik memerlukan keseimbangan yang halus antara penerokaan yang sengit dan jeda santai untuk menyelesaikan masalah sebenar. Senarai yang dibentangkan termasuk 25 kemahiran profesional, dikumpulkan kepada 10 kemahiran penting untuk pembina robot.

1. Pemikiran sistem

Seorang pengurus projek pernah menyatakan bahawa ramai orang yang terlibat dalam robotik akhirnya menjadi pengurus projek atau jurutera sistem. Ini sangat masuk akal, kerana robot sangat sistem yang kompleks. Pakar yang bekerja dengan robot mestilah seorang mekanik yang baik, jurutera elektronik, juruelektrik, pengaturcara, dan juga mempunyai pengetahuan tentang psikologi dan aktiviti kognitif.

Seorang pakar robotik yang baik dapat memahami dan secara teorinya mewajarkan bagaimana semua pelbagai sistem ini berinteraksi bersama dan harmoni. Jika seorang jurutera mekanikal boleh berkata dengan agak munasabah: "ini bukan tugas saya, kami memerlukan pengaturcara atau juruelektrik," maka seorang ahli robot mesti mahir dalam semua disiplin ini.

Secara umum, pemikiran sistem adalah kemahiran penting untuk semua jurutera. Dunia kita adalah satu sistem yang besar dan sangat kompleks. Kemahiran kejuruteraan sistem membantu memahami dengan betul apa yang berkaitan dan bagaimana di dunia ini. Mengetahui ini, anda boleh mencipta sistem yang cekap mengawal dunia sebenar.

2. Pemikiran pengaturcara

Pengaturcaraan adalah kemahiran yang cukup penting untuk ahli robotik. Tidak kira sama ada anda bekerja pada sistem kawalan peringkat rendah (hanya menggunakan MATLAB untuk mereka bentuk pengawal) atau sama ada anda seorang saintis komputer yang mereka bentuk sistem kognitif peringkat tinggi. Jurutera robot boleh terlibat dalam kerja pengaturcaraan di mana-mana peringkat abstraksi. Perbezaan utama antara pengaturcaraan biasa dan pengaturcaraan robot ialah pakar robotik berinteraksi dengan perkakasan, elektronik dan kekusutan dunia nyata.

Lebih daripada 1,500 bahasa pengaturcaraan digunakan hari ini. Walaupun anda jelas tidak perlu mempelajari semuanya, ahli robotik yang baik mempunyai pemikiran pengaturcara. Dan mereka akan berasa selesa mempelajari apa-apa bahasa baharu, jika perlu secara tiba-tiba. Dan di sini kita lancar beralih ke kemahiran seterusnya.

Komen oleh Oleg Evsegneev: Saya akan menambah itu untuk mencipta robot moden pengetahuan tentang bahasa peringkat rendah, tinggi dan juga ultra tinggi diperlukan. Pengawal mikro mesti beroperasi dengan cepat dan cekap. Untuk mencapai matlamat ini, anda perlu mendalami seni bina peranti pengkomputeran, ketahui ciri-ciri bekerja dengan memori dan protokol peringkat rendah. Hati robot mungkin berat sistem operasi cth ROS. Di sini anda mungkin sudah memerlukan pengetahuan tentang OOP dan keupayaan untuk menggunakan pakej yang serius penglihatan mesin, navigasi dan pembelajaran mesin. Akhir sekali, untuk menulis antara muka robot di web dan menyambungkannya ke Internet, adalah idea yang baik untuk mempelajari bahasa skrip, seperti python.

3. Keupayaan belajar kendiri

Tidak mustahil untuk mengetahui segala-galanya tentang robotik; sentiasa ada sesuatu yang tidak diketahui yang perlu dikaji apabila keperluan timbul semasa melaksanakan projek seterusnya. Walaupun selepas menerima pendidikan tinggi dalam robotik dan beberapa tahun bekerja sebagai pelajar siswazah, ramai yang baru mula benar-benar memahami asas robotik.

Berusaha untuk kajian berterusan melakukan sesuatu yang baharu adalah keupayaan penting sepanjang kerjaya anda. Oleh itu, menggunakan kaedah pembelajaran yang berkesan untuk anda secara peribadi dan mempunyai kefahaman bacaan yang baik akan membantu anda dengan cepat dan mudah memperoleh pengetahuan baharu apabila diperlukan.

Komen oleh Oleg Evsegneev: Ini adalah kemahiran utama dalam sebarang usaha kreatif. Anda boleh menggunakannya untuk mendapatkan kemahiran lain

4. Matematik

Tidak banyak kemahiran asas dalam robotik. Satu kemahiran teras tersebut ialah matematik. Anda mungkin akan merasa sukar untuk berjaya dalam robotik tanpa pengetahuan yang betul tentang sekurang-kurangnya algebra, analisis matematik dan geometri. Ini disebabkan oleh fakta bahawa pada peringkat asas Robotik bergantung pada keupayaan untuk memahami dan memanipulasi konsep abstrak, sering diwakili sebagai fungsi atau persamaan. Geometri amat penting untuk memahami topik seperti kinematik dan lukisan teknikal (yang anda mungkin akan melakukan banyak perkara semasa kerjaya anda, termasuk beberapa yang dilakukan pada serbet).

Komen oleh Oleg Evsegneev: Tingkah laku robot, tindak balasnya terhadap rangsangan sekeliling, keupayaannya untuk belajar - ini semua adalah matematik. Contoh mudah. Drone moden terbang dengan baik terima kasih kepada penapis Kalman, alat matematik yang berkuasa untuk menapis data tentang kedudukan robot di angkasa. Robot Asimo boleh membezakan objek terima kasih kepada rangkaian saraf. Malah pembersih vakum robot menggunakan matematik yang kompleks untuk mengemudi di sekeliling bilik.

5. Fizik dan matematik gunaan

Terdapat beberapa orang (ahli matematik tulen, contohnya) yang berusaha untuk beroperasi dengan konsep matematik tanpa merujuk kepada dunia sebenar. Pencipta robot bukan jenis orang ini. Pengetahuan tentang fizik dan matematik gunaan adalah penting dalam robotik kerana dunia sebenar tidak pernah setepat matematik. Keupayaan untuk membuat keputusan apabila pengiraan cukup baik untuk benar-benar berfungsi adalah kemahiran utama bagi seorang jurutera robotik. Yang membawa kita lancar ke titik seterusnya.

Komen oleh Oleg Evsegneev: makan contoh yang baikstesen automatik untuk penerbangan ke planet lain. Pengetahuan tentang fizik membolehkan untuk mengira trajektori penerbangan mereka dengan begitu tepat sehingga selepas bertahun-tahun dan berjuta-juta kilometer peranti itu berakhir di kedudukan yang ditetapkan dengan tepat.

6. Analisis dan pilihan penyelesaian

Menjadi ahli robotik yang baik bermakna sentiasa membuat keputusan kejuruteraan. Apa yang perlu dipilih untuk pengaturcaraan - ROS atau sistem lain? Berapakah bilangan jari yang sepatutnya dimiliki oleh robot yang direka bentuk? Penderia mana yang harus saya pilih untuk digunakan? Robotik menggunakan banyak penyelesaian dan antaranya hampir tidak ada penyelesaian yang betul.

Terima kasih kepada pangkalan pengetahuan yang luas yang digunakan dalam robotik, anda mungkin dapat mencari penyelesaian yang lebih baik untuk masalah tertentu daripada pakar daripada disiplin yang lebih khusus. Analisis dan membuat keputusan adalah perlu untuk memanfaatkan sepenuhnya keputusan anda. Kemahiran berfikir analitikal akan membolehkan anda menganalisis masalah dari pelbagai perspektif, manakala kemahiran berfikir kritis akan membantu anda menggunakan logik dan penaakulan untuk mengimbangi kekuatan dan pihak yang lemah setiap keputusan.

Minggu ini anda boleh membaca kes yang sangat memotivasikan daripada pelajar GeekBrains yang mempelajari profesion, di mana dia bercakap tentang salah satu matlamatnya yang membawa kepada profesion - keinginan untuk mempelajari prinsip kerja dan belajar cara membuat bot permainan sendiri.

Tetapi sebenarnya, ia adalah keinginan untuk mencipta yang sempurna kecerdasan buatan, sama ada model permainan atau program mudah alih, memberi inspirasi kepada ramai daripada kita untuk menjadi pengaturcara. Masalahnya ialah di sebalik banyak bahan pendidikan dan realiti keras pelanggan, keinginan ini telah digantikan dengan keinginan mudah untuk pembangunan diri. Bagi mereka yang masih belum mula memenuhi impian zaman kanak-kanak mereka, berikut adalah panduan ringkas untuk mencipta kecerdasan buatan sebenar.

Tahap 1. Kekecewaan

Apabila kita bercakap tentang mencipta bot yang mudah sekalipun, mata kita dipenuhi dengan kilauan, dan beratus-ratus idea terlintas di kepala kita tentang perkara yang sepatutnya dapat dilakukan. Walau bagaimanapun, apabila bercakap tentang pelaksanaan, ternyata kunci untuk merungkai corak tingkah laku sebenar adalah matematik. Ya, ya, kecerdasan buatan jauh lebih rumit daripada menulis program aplikasi - pengetahuan tentang reka bentuk perisian sahaja tidak akan mencukupi untuk anda.

Matematik ialah papan anjal saintifik di mana pengaturcaraan anda selanjutnya akan dibina. Tanpa pengetahuan dan pemahaman tentang teori ini, semua idea akan cepat rosak akibat interaksi dengan seseorang, kerana kecerdasan buatan sebenarnya tidak lebih daripada satu set formula.

Peringkat 2. Penerimaan

Apabila keangkuhan itu sedikit dihancurkan oleh sastera pelajar, anda boleh mula berlatih. Anda tidak perlu tergesa-gesa ke LISP atau yang lain - mula-mula anda harus selesa dengan prinsip reka bentuk AI. Untuk cepat belajar, dan Python sesuai untuk pembangunan selanjutnya - ia adalah bahasa yang paling kerap digunakan untuk tujuan saintifik, yang mana anda akan menemui banyak perpustakaan yang akan memudahkan kerja anda.

Peringkat 3. Perkembangan

Sekarang mari kita beralih terus ke teori AI. Mereka boleh dibahagikan secara kasar kepada 3 kategori:

  • AI yang lemah - bot yang kita lihat permainan komputer, atau pembantu ringkas seperti Siri. Mereka sama ada melaksanakan tugas yang sangat khusus atau merupakan kompleks yang tidak penting, dan sebarang interaksi yang tidak dapat diramal membingungkan mereka.
  • AI yang kuat ialah mesin yang kecerdasannya setanding dengannya otak manusia. Pada masa ini tiada wakil sebenar kelas ini, tetapi komputer seperti Watson sangat hampir untuk mencapai matlamat ini.
  • AI yang sempurna ialah masa depan, otak mesin yang akan mengatasi keupayaan kita. Bahaya perkembangan sedemikian yang Stephen Hawking, Elon Musk dan francais filem Terminator memberi amaran.

Sememangnya, anda harus bermula dengan bot yang paling mudah. Untuk melakukan ini, ingat permainan lama yang baik "Tic Tac Toe" apabila menggunakan medan 3x3 dan cuba memikirkan sendiri algoritma asas tindakan: kebarangkalian kemenangan dengan tindakan bebas ralat, tempat paling berjaya di padang untuk letakkan sekeping, keperluan untuk mengurangkan permainan menjadi seri, dan sebagainya.

Beberapa dozen permainan dan dengan menganalisis tindakan anda sendiri, anda pasti akan dapat mengenal pasti semuanya aspek penting dan tulis semula kod mesin. Jika tidak, maka teruskan berfikir, dan pautan ini akan berada di sini untuk berjaga-jaga.

By the way, jika anda masih mengambil bahasa sawa, maka anda boleh membuat bot yang agak mudah dengan merujuk kepada manual terperinci ini. Untuk bahasa lain, seperti C++ atau Java, anda tidak akan menghadapi sebarang masalah mencari bahan langkah demi langkah. Sebaik sahaja anda merasakan bahawa tiada perkara ghaib di sebalik penciptaan AI, anda boleh menutup penyemak imbas anda dengan selamat dan memulakan eksperimen peribadi.

Peringkat 4. Keterujaan

Sekarang setelah perkara-perkara telah hilang, anda mungkin mahu mencipta sesuatu yang lebih serius. Sumber berikut akan membantu anda dengan ini:

Seperti yang anda fahami walaupun dari namanya, ini adalah API yang akan membolehkan anda mencipta beberapa rupa AI yang serius tanpa membuang masa.

Peringkat 5. Kerja

Sekarang setelah anda mempunyai idea yang jelas tentang cara mencipta AI dan perkara yang perlu digunakan, tiba masanya untuk membawa pengetahuan anda kepada tahap baru. Pertama, ini memerlukan mempelajari disiplin yang dipanggil "Pembelajaran mesin". Kedua, anda perlu belajar cara bekerja dengan perpustakaan yang sesuai bagi bahasa pengaturcaraan yang dipilih. Untuk Python yang sedang kita lihat, ini ialah Scikit-learn, NLTK, SciPy, PyBrain dan Numpy. Ketiga, dalam pembangunan tidak ada jalan keluar. Nah, dan yang paling penting, anda kini boleh membaca kesusasteraan tentang AI dengan pemahaman penuh tentang perkara itu:

  • Kecerdasan Buatan untuk Permainan, Ian Millington;
  • Corak Pengaturcaraan Permainan, Robert Naystorm;
  • Algoritma AI, Struktur Data dan Idiom dalam Prolog, Lisp dan Java, George Luger, William Stubfield;
  • Neurosains Kognitif Pengiraan, Randall O'Reilly, Yuko Munakata;
  • Kecerdasan Buatan: Pendekatan Moden, Stuart Russell, Peter Norvig.

Dan ya, semua atau hampir semua literatur mengenai topik ini dibentangkan Bahasa asing, jadi jika anda ingin mencipta AI secara profesional, anda perlu meningkatkan bahasa Inggeris anda untuk peringkat teknikal. Walau bagaimanapun, ini adalah relevan untuk mana-mana bidang pengaturcaraan, bukan?

"Saya mahu melakukan AI. Apa yang patut dipelajari? Apakah bahasa yang harus saya gunakan? Apakah organisasi yang patut saya belajar dan bekerja?

Kami berpaling kepada pakar kami untuk mendapatkan penjelasan, dan kami membentangkan jawapan yang diterima untuk perhatian anda.

Ia bergantung pada latihan asas anda. Pertama sekali, anda memerlukan budaya matematik (pengetahuan tentang statistik, teori kebarangkalian, matematik diskret, algebra linear, analisis, dll.) dan kesediaan untuk belajar banyak dengan cepat. Apabila melaksanakan kaedah AI, pengaturcaraan (algoritma, struktur data, OOP, dll.) akan diperlukan.

Projek yang berbeza memerlukan pengetahuan tentang bahasa pengaturcaraan yang berbeza. Saya akan mengesyorkan mengetahui sekurang-kurangnya Python, Java dan mana-mana bahasa berfungsi. Pengalaman bekerja dengan pelbagai pangkalan data data dan sistem teragih. Kemahiran bahasa Inggeris diperlukan untuk mempelajari amalan terbaik industri dengan cepat.

Saya cadangkan belajar di universiti Rusia yang bagus! Contohnya, MIPT, MSU dan HSE mempunyai jabatan yang sepadan. Pelbagai jenis kursus tematik tersedia di Coursera, edX, Udacity, Udemy dan platform MOOC yang lain. Beberapa organisasi terkemuka telah program sendiri latihan dalam bidang AI (contohnya, Sekolah Analisis Data di Yandex).

Masalah aplikasi yang diselesaikan dengan kaedah AI boleh didapati di pelbagai tempat. Bank, sektor kewangan, perundingan, peruncitan, e-dagang, enjin carian, perkhidmatan pos, industri permainan, industri sistem keselamatan dan, sudah tentu, Avito - semuanya memerlukan pakar pelbagai kelayakan.

Naikkan Turun Turun

Kami mempunyai projek fintech yang berkaitan dengan pembelajaran mesin dan visi komputer, di mana pembangun pertamanya menulis segala-galanya dalam C++, kemudian seorang pembangun datang yang menulis semula segala-galanya dalam Python. Jadi bahasa bukanlah perkara yang paling penting di sini, kerana bahasa pertama sekali adalah alat, dan terpulang kepada anda cara menggunakannya. Cuma dalam sesetengah bahasa, masalah boleh diselesaikan dengan lebih cepat, dan dalam bahasa lain lebih perlahan.

Sukar untuk mengatakan di mana untuk belajar - semua lelaki kami belajar sendiri, mujur ada Internet dan Google.

Naikkan Turun Turun

Saya boleh menasihati anda untuk menyediakan diri anda dari awal lagi kerana anda perlu belajar banyak. Tidak kira apa yang dimaksudkan dengan "melakukan AI" - bekerja dengan data besar atau rangkaian saraf; pembangunan teknologi atau sokongan dan latihan sistem tertentu yang telah dibangunkan.

Mari kita ambil profesion saintis Data yang sedang trend untuk kepentingan khusus. Apa yang orang ini buat? Secara umum, ia mengumpul, menganalisis dan menyediakan data besar untuk digunakan. Ini adalah yang AI berkembang dan melatih. Apakah yang perlu diketahui dan boleh dilakukan oleh Saintis Data? Analisis statik dan pemodelan matematik- secara lalai, dan pada tahap kefasihan. Bahasa - katakan, R, SAS, Python. Ia juga bagus untuk mempunyai beberapa pengalaman pembangunan. Secara amnya, saintis data yang baik harus berasa yakin dengan pangkalan data, algoritma dan visualisasi data.

Ia bukan untuk mengatakan bahawa set pengetahuan seperti itu boleh diperolehi di setiap universiti teknikal kedua di negara ini. Syarikat besar yang mengutamakan pembangunan AI memahami perkara ini dan membangun dengan sewajarnya program pembelajaran— terdapat, sebagai contoh, Sekolah Analisis Data daripada Yandex. Tetapi anda mesti sedar bahawa ini bukan skala di mana anda datang ke kursus "dari jalanan", tetapi biarkan mereka sebagai junior siap sedia. Lapisannya besar, dan masuk akal untuk mempelajari disiplin apabila asas (matematik, statistik) telah pun diliputi, sekurang-kurangnya dalam rangka program universiti.

Ya, ia akan mengambil masa yang agak lama. Tetapi permainan itu bernilai lilin kerana data yang baik Saintis sangat menjanjikan. Dan sangat mahal. Terdapat juga satu lagi perkara. Kecerdasan buatan, di satu pihak, bukan lagi sekadar objek gembar-gembur, tetapi teknologi yang telah mencapai tahap produktiviti sepenuhnya. Sebaliknya, AI masih berkembang. Pembangunan ini memerlukan banyak sumber, banyak kemahiran dan banyak wang. Setakat ini ini adalah peringkat liga utama. Saya akan mengatakan yang jelas sekarang, tetapi jika anda mahu berada di barisan hadapan serangan dan memacu kemajuan dengan tangan anda sendiri, sasarkan untuk syarikat seperti Facebook atau Amazon.

Pada masa yang sama, teknologi ini telah digunakan dalam beberapa bidang: sektor perbankan, dalam telekomunikasi, di gergasi perindustrian, dalam runcit. Dan mereka sudah memerlukan orang yang boleh menyokongnya. Gartner meramalkan bahawa menjelang 2020, 20% daripada semua perusahaan di negara maju akan mengambil pekerja yang berdedikasi untuk melatih rangkaian saraf yang digunakan dalam syarikat ini. Jadi masih ada sedikit masa untuk belajar sendiri.

Naikkan Turun Turun

AI kini sedang giat membangun, dan sukar untuk meramalkan sepuluh tahun lebih awal. Dalam tempoh dua hingga tiga tahun akan datang, pendekatan berdasarkan rangkaian saraf dan pengkomputeran GPU akan mendominasi. Peneraju dalam kawasan ini ialah Python dengan persekitaran interaktif Jupyter dan perpustakaan numpy, scipy, dan tensorflow.

Terdapat banyak kursus dalam talian yang memberikan pemahaman asas tentang teknologi ini dan prinsip umum AI, contohnya kursus Andrew Ng. Dan dari segi pengajaran topik ini, Rusia kini yang paling berkesan pendidikan kendiri atau dalam kumpulan tempatan mengikut minat (contohnya, di Moscow saya tahu kewujudan sekurang-kurangnya beberapa kumpulan di mana orang berkongsi pengalaman dan pengetahuan).

Naikkan Turun Turun

Naikkan Turun Turun

Hari ini, bahagian kecerdasan buatan yang paling pesat berkembang adalah, mungkin, rangkaian saraf.
Kajian rangkaian saraf dan AI harus bermula dengan menguasai dua cabang matematik - algebra linear dan teori kebarangkalian. Ini adalah minimum wajib, tonggak kecerdasan buatan yang tidak tergoyahkan. Pemohon yang ingin memahami asas AI, apabila memilih universiti, pada pendapat saya, harus memberi perhatian kepada fakulti yang mempunyai sekolah matematik yang kukuh.

Langkah seterusnya ialah mengkaji masalah isu tersebut. Terdapat sejumlah besar kesusasteraan, pendidikan dan khusus. Kebanyakan penerbitan mengenai topik kecerdasan buatan dan rangkaian saraf ditulis dalam Bahasa Inggeris, bagaimanapun, bahan berbahasa Rusia juga diterbitkan. Sastera berguna boleh didapati, contohnya, di perpustakaan digital awam arxiv.org.

Jika kita bercakap tentang bidang aktiviti, di sini kita boleh menyerlahkan latihan rangkaian saraf gunaan dan pembangunan versi rangkaian saraf yang benar-benar baharu. Contoh yang menarik perhatian: Terdapat kepakaran yang sangat popular sekarang - "saintis data" (Saintis Data). Ini adalah pembangun yang, sebagai peraturan, terlibat dalam mengkaji dan menyediakan set data tertentu untuk melatih rangkaian saraf secara khusus, kawasan yang digunakan. Sebagai ringkasan, saya ingin menekankan bahawa setiap pengkhususan memerlukan laluan penyediaan yang berasingan.

Naikkan Turun Turun

Sebelum memulakan kursus khusus, anda perlu mempelajari algebra dan statistik linear. Saya akan mengesyorkan anda mula menyelami AI dengan buku teks " Pembelajaran mesin. Sains dan Seni Membina Algoritma yang Mengekstrak Pengetahuan daripada Data" ialah buku asas yang baik untuk pemula. Di Coursera, adalah berbaloi untuk mendengar kuliah pengenalan oleh K. Vorontsov (saya menekankan bahawa mereka memerlukan pengetahuan yang baik tentang algebra linear) dan kursus "Pembelajaran Mesin" di Universiti Stanford, yang diajar oleh Andrew Ng, profesor dan ketua Baidu AI Kumpulan/Otak Google.

Sebahagian besar ditulis dalam Python, diikuti oleh R dan Lua.

Jika kita bercakap tentang institusi pendidikan, adalah lebih baik untuk mendaftar dalam kursus di jabatan matematik gunaan dan sains komputer yang sesuai program pendidikan Terdapat. Untuk menguji kebolehan anda, anda boleh mengambil bahagian dalam pertandingan Kaggle, di mana jenama global utama menawarkan kes mereka.

Naikkan Turun Turun

Dalam mana-mana perniagaan, sebelum memulakan projek, adalah baik untuk mendapatkan asas teori. Terdapat banyak tempat di mana anda boleh memperoleh ijazah sarjana formal dalam bidang ini, atau meningkatkan kelayakan anda. Sebagai contoh, Skoltech menawarkan program sarjana dalam bidang "Sains dan Kejuruteraan Pengkomputeran" dan "Sains Data," yang merangkumi kursus dalam "Pembelajaran Mesin" dan "Pemprosesan Bahasa Asli." Anda juga boleh menyebut Institut Sistem Sibernetik Pintar Universiti Nuklear Penyelidikan Kebangsaan MEPhI, Fakulti Matematik Pengiraan dan Sibernetik Universiti Negeri Moscow dan Jabatan Sistem Pintar MIPT.

Jika anda sudah mempunyai pendidikan formal, terdapat beberapa kursus pelbagai platform MOOC. Sebagai contoh, EDx.org menawarkan kursus kecerdasan buatan dari Microsoft dan Columbia University, yang kedua menawarkan program sarjana mikro pada harga yang berpatutan. Saya ingin ambil perhatian terutamanya bahawa anda biasanya boleh mendapatkan pengetahuan itu sendiri secara percuma; anda hanya membayar sijil jika ia diperlukan untuk resume anda.

Jika anda ingin "menyelami dengan mendalam" topik ini, beberapa syarikat di Moscow menawarkan kursus intensif selama seminggu dengan latihan amali, dan juga menawarkan peralatan untuk eksperimen (contohnya, newprolab.com), namun, harga kursus tersebut bermula dari beberapa puluh ribu rubel.

Daripada syarikat yang membangunkan Kecerdasan Buatan, anda mungkin tahu Yandex dan Sberbank, tetapi terdapat banyak lagi saiz yang berbeza. Sebagai contoh, minggu ini Kementerian Pertahanan membuka ERA Military Innovation Technopolis di Anapa, salah satu topiknya ialah pembangunan AI untuk keperluan ketenteraan.

Naikkan Turun Turun

Sebelum mengkaji kecerdasan buatan, kita perlu memutuskan soalan asas: adakah kita perlu mengambil pil merah atau pil biru.
Pil merah adalah untuk menjadi pemaju dan terjun ke dunia kejam kaedah statistik, algoritma dan pemahaman berterusan yang tidak diketahui. Sebaliknya, anda tidak perlu segera tergesa-gesa ke dalam "lubang arnab": anda boleh menjadi pengurus dan mencipta AI, sebagai contoh, sebagai pengurus projek. Ini adalah dua laluan yang pada asasnya berbeza.

Yang pertama adalah bagus jika anda telah memutuskan bahawa anda akan menulis algoritma kecerdasan buatan. Kemudian anda perlu bermula dengan arah yang paling popular hari ini - pembelajaran mesin. Untuk melakukan ini, anda perlu mengetahui klasik kaedah statistik pengelasan, pengelompokan dan regresi. Ia juga berguna untuk membiasakan diri dengan langkah-langkah utama untuk menilai kualiti penyelesaian, sifatnya... dan segala-galanya yang menghampiri anda.

Hanya selepas asas dikuasai, ia patut mengkaji kaedah yang lebih khusus: pokok keputusan dan kumpulannya. Pada peringkat ini, anda perlu menyelami secara mendalam kaedah asas membina dan melatih model - ia tersembunyi di sebalik perkataan yang hampir tidak baik mengemis, meningkatkan, menyusun atau mengadun.

Ia juga berbaloi untuk belajar tentang kaedah untuk mengawal latihan semula model ("ing" lain - overfitting).

Dan akhirnya, tahap yang sangat Jedi - memperoleh pengetahuan yang sangat khusus. Sebagai contoh, untuk pembelajaran yang mendalam perlu menguasai seni bina dan algoritma asas keturunan kecerunan. Jika anda berminat untuk memproses tugasan bahasa semula jadi, maka saya mengesyorkan mengkaji rangkaian saraf berulang. Dan pencipta algoritma masa depan untuk memproses gambar dan video harus melihat dengan baik rangkaian neural konvolusi.

Dua struktur terakhir yang disebut ialah blok binaan seni bina popular hari ini: rangkaian adversarial (GAN), rangkaian hubungan dan rangkaian jaringan. Oleh itu, adalah berguna untuk mengkajinya, walaupun anda tidak bercadang untuk mengajar komputer untuk melihat atau mendengar.

Pendekatan yang sama sekali berbeza untuk mempelajari AI - aka "pil biru" - bermula dengan mencari diri sendiri. Kecerdasan buatan melahirkan sekumpulan tugas dan keseluruhan profesion: daripada pengurus projek AI kepada jurutera data yang mampu menyediakan data, membersihkannya dan membina sistem berskala, dimuatkan dan tahan terhadap kesalahan.

Oleh itu, dengan pendekatan "pengurusan", anda harus terlebih dahulu menilai kebolehan dan latar belakang anda, dan kemudian memilih di mana dan apa yang hendak dipelajari. Sebagai contoh, walaupun tanpa minda matematik anda boleh mereka bentuk antara muka dan visualisasi AI untuk algoritma pintar. Tetapi bersedialah: dalam masa 5 tahun, kecerdasan buatan akan mula mengejek anda dan memanggil anda "humanis."

Kaedah ML utama dilaksanakan dalam bentuk perpustakaan siap sedia yang tersedia untuk sambungan perbezaan bahasa. Bahasa yang paling popular dalam ML hari ini ialah: C++, Python dan R.

Terdapat banyak kursus dalam bahasa Rusia dan Inggeris, seperti kursus Yandex School of Data Analysis, SkillFactory dan OTUS. Tetapi sebelum melaburkan masa dan wang dalam latihan khusus, saya fikir ia berbaloi untuk "memasuki topik": tonton kuliah terbuka di YouTube daripada persidangan DataFest sejak beberapa tahun lalu, ambil kursus percuma dari Coursera dan Habrahabr.

Dan apabila semua pengetahuan yang diterangkan dikuasai, kami berharap padawan muda menyertai pasukan Navicon kami, di mana kami akan membantu dan mengajar cara berkawan dengan "intelek buatan" dalam kehidupan sebenar.

Naikkan Turun Turun

Topik AI dan pembelajaran mesin telah menjadi jauh lebih demokratik berbanding beberapa tahun lalu.
Anda boleh mendapatkan kursus berbayar dan percuma mengenai topik ini di Internet; alat menjadi lebih mudah dan kurang menuntut kedua-dua pengetahuan dan perkakasan.

Saya mengesyorkan agar pengaturcara yang berpengalaman dan baru bermula dengan kursus dalam talian pada platform MOOC. Sebagai contoh, Coursera mempunyai pengkhususan yang sangat baik "Pembelajaran Mesin dan Analisis Data" daripada Yandex dan Pusat Pengajian Tinggi Ekonomi. Jika anda tiada masalah memahami kuliah dalam bahasa Inggeris, anda juga boleh mengikuti kursus "Pembelajaran Mesin" Andrew Ng di sana.

Bahasa pengaturcaraan utama untuk bekerja dalam bidang AI dan pembelajaran mesin ialah R dan Python. Untuk masa yang lama bahasa-bahasa ini digunakan dalam kalangan akademik dan sejumlah besar perpustakaan telah dicipta untuk mereka. Pada masa kini, alatan sedang dibangunkan yang membolehkan anda memulakan projek anda dengan cepat: Keras, TensorFlow, Theano, Caffe, scikit-learn. Kebelakangan ini Microsoft mula aktif membangunkan alatannya: CNTK, ML.NET. Mereka membenarkan anda mencipta penyelesaian pintar dalam bahasa C#.

Cari kerja tanpa perlu pengalaman praktikal dalam bidang analisis data dan pembelajaran mesin agak sukar sekarang. Tetapi anda boleh belajar sendiri melalui kursus dalam talian, menyertai pertandingan di Kaggle dan platform yang serupa. Ini akan membolehkan anda membangunkan portfolio yang akan menjadi kelebihan daya saing anda apabila mencari pekerjaan.

Naikkan Turun Turun

Pakar, dan kami akan mengumpul jawapan kepadanya jika ia ternyata menarik. Soalan yang telah ditanya boleh didapati dalam senarai isu. Jika anda ingin menyertai barisan pakar dan menghantar jawapan daripada syarikat anda atau anda sendiri, kemudian tulis kepada, kami akan memberitahu anda bagaimana untuk melakukan ini.

Bagaimanakah kecerdasan buatan berjaya dibangunkan, tetapi masih tiada definisi "betul" untuknya? Mengapa harapan yang diletakkan pada neurokomputer tidak menjadi kenyataan, dan apakah tiga tugas utama yang dihadapi oleh pencipta kecerdasan buatan?

Anda akan menemui jawapan kepada soalan ini dan soalan lain dalam artikel di bawah potongan, yang ditulis berdasarkan ucapan Konstantin Anisimovich, pengarah jabatan pembangunan teknologi di ABBYY, salah seorang pakar terkemuka negara dalam bidang kecerdasan buatan.
Dengan dia penyertaan peribadi teknologi pengecaman dokumen telah dicipta yang digunakan dalam produk ABBYY FineReader dan ABBYY FormReader. Konstantin bercakap tentang sejarah dan asas pembangunan AI di salah satu kelas induk untuk pelajar Mail.Ru Technopark. Bahan dari kelas induk menjadi asas untuk satu siri artikel.

Akan ada tiga jawatan secara keseluruhan:

Aplikasi pengetahuan: algoritma untuk mencari keadaan spatial
Mendapat Pengetahuan: Reka Bentuk Sistem Pintar dan Pembelajaran Mesin

Jatuh bangun pendekatan AI

Sejak tahun 1950-an, dua pendekatan telah muncul dalam bidang kecerdasan buatan: pengkomputeran simbolik dan sambungan. Pengkomputeran simbolik ialah arah berdasarkan pemodelan pemikiran manusia, dan sambungan adalah berdasarkan pemodelan struktur otak.

Pencapaian pertama dalam bidang pengkomputeran simbolik ialah bahasa Lisp yang dicipta pada tahun 50-an dan hasil kerja J. Robinson dalam bidang inferens logik. Dalam connectionism, ini adalah penciptaan perceptron - pengelas linear pembelajaran kendiri yang memodelkan operasi neuron. Pencapaian menarik selanjutnya adalah sejajar dengan paradigma simbolik. Khususnya, ini adalah karya Seymour Pipert dan Robert Anton Winson dalam bidang psikologi persepsi dan, tentu saja, bingkai Marvin Minsky.

Pada tahun 70-an yang pertama sistem aplikasi, menggunakan unsur kecerdasan buatan - sistem pakar. Kemudian terdapat kebangkitan semula sambungan dengan kemunculan rangkaian saraf berbilang lapisan dan algoritma untuk latihan mereka menggunakan perambatan balik. Dalam kegilaan 80-an rangkaian saraf ia hanya berleluasa. Penyokong pendekatan ini berjanji untuk mencipta neurokomputer yang akan berfungsi hampir seperti otak manusia.


Tetapi tiada apa yang istimewa datang daripadanya, kerana neuron sebenar jauh lebih kompleks daripada yang formal di mana rangkaian saraf berbilang lapisan berasaskan. Dan bilangan neuron dalam otak manusia juga jauh lebih besar daripada yang boleh diperolehi dalam rangkaian saraf. Perkara utama yang sesuai untuk rangkaian saraf berbilang lapisan ialah menyelesaikan masalah klasifikasi.

Paradigma popular seterusnya dalam bidang kecerdasan buatan ialah pembelajaran mesin. Pendekatan itu mula berkembang pesat sejak akhir 80-an dan tidak kehilangan populariti sehingga hari ini. Dorongan yang ketara kepada pembangunan pembelajaran mesin telah diberikan oleh kemunculan Internet dan Kuantiti yang besar pelbagai data yang tersedia yang boleh digunakan untuk melatih algoritma.

Tugas utama semasa mereka bentuk kecerdasan buatan

Adalah mungkin untuk menganalisis perkara biasa di antara tugas-tugas yang berkaitan dengan kecerdasan buatan. Adalah mudah untuk melihat bahawa persamaan mereka ialah ketiadaan prosedur penyelesaian yang diketahui dan ditakrifkan dengan jelas. Sebenarnya, ini adalah bagaimana masalah yang berkaitan dengan AI berbeza daripada masalah dalam teori kompilasi atau matematik pengiraan. Sistem pintar mencari penyelesaian suboptimum kepada masalah. Adalah mustahil untuk membuktikan atau menjamin bahawa penyelesaian yang ditemui oleh kecerdasan buatan akan menjadi sangat optimum. Walau bagaimanapun, dalam kebanyakan masalah praktikal penyelesaian suboptimum sesuai dengan semua orang. Lebih-lebih lagi, kita mesti ingat bahawa seseorang hampir tidak pernah menyelesaikan masalah secara optimum. Sebaliknya.

Ada sangat soalan penting: Bagaimanakah AI boleh menyelesaikan masalah yang tiada algoritma penyelesaiannya? Intinya adalah untuk melakukannya dengan cara yang sama seperti yang dilakukan seseorang - untuk mengemukakan dan menguji hipotesis yang munasabah. Sememangnya, pengetahuan diperlukan untuk mengemukakan dan menguji hipotesis.

Ilmu adalah penerangan bidang subjek, di mana sistem pintar beroperasi. Sekiranya kita mempunyai sistem pengecaman watak bahasa semula jadi di hadapan kita, maka pengetahuan itu merangkumi penerangan tentang struktur simbol, struktur teks dan sifat-sifat tertentu bahasa. Jika ia adalah sistem pemarkahan kredit pelanggan, ia mesti mempunyai pengetahuan tentang jenis pelanggan dan pengetahuan tentang bagaimana profil pelanggan berkaitan dengan potensi kekurangan kepercayaan kreditnya. Terdapat dua jenis pengetahuan – tentang bidang subjek dan tentang mencari penyelesaian (pengetahuan meta).

Tugas reka bentuk utama sistem pintar bermula dengan pilihan cara menyampaikan ilmu, cara memperoleh ilmu dan cara mengaplikasikan ilmu.

Perwakilan pengetahuan

Terdapat dua cara utama untuk mewakili pengetahuan - deklaratif dan prosedural. Pengetahuan deklaratif boleh dipersembahkan dalam bentuk berstruktur atau tidak berstruktur. Perwakilan berstruktur ialah beberapa bentuk pendekatan bingkai. Iaitu, bingkai atau tatabahasa formal, yang juga boleh dianggap jenis bingkai. Pengetahuan dalam formalisme ini diwakili sebagai satu set objek dan hubungan antara mereka.



Perwakilan tidak berstruktur biasanya digunakan dalam bidang yang berkaitan dengan penyelesaian masalah pengelasan. Ini biasanya vektor anggaran pekali pemberat, kebarangkalian, dan seumpamanya.

Hampir semua kaedah perwakilan pengetahuan berstruktur adalah berdasarkan formalisme bingkai, yang diperkenalkan oleh Marvin Minsky dari MIT pada tahun 1970-an untuk menunjukkan struktur pengetahuan untuk persepsi adegan spatial. Ternyata, pendekatan ini sesuai untuk hampir semua tugas.

Bingkai terdiri daripada nama dan unit individu yang dipanggil slot. Nilai slot boleh, seterusnya, menjadi pautan ke bingkai lain... Bingkai boleh menjadi keturunan bingkai lain, mewarisi nilai slot daripadanya. Dalam kes ini, keturunan boleh mengatasi nilai slot nenek moyang dan menambah yang baharu. Pewarisan digunakan untuk menjadikan huraian lebih padat dan mengelakkan pertindihan.

Adalah mudah untuk melihat bahawa terdapat persamaan antara bingkai dan pengaturcaraan berorientasikan objek, di mana bingkai sepadan dengan objek, dan slot sepadan dengan medan. Persamaan ini tidak disengajakan, kerana bingkai adalah salah satu sumber OOP. Khususnya, salah satu bahasa berorientasikan objek pertama, Small Talk, melaksanakan perwakilan bingkai objek dan kelas hampir tepat.

Untuk perwakilan prosedur pengetahuan digunakan oleh produk atau peraturan pengeluaran. Model pengeluaran ialah model berdasarkan peraturan yang membolehkan pengetahuan diwakili dalam bentuk ayat "keadaan - tindakan". Pendekatan ini sebelum ini popular di pelbagai sistem diagnostik Adalah wajar untuk menggambarkan gejala, masalah atau kerosakan dalam bentuk keadaan, dan dalam bentuk tindakan - kemungkinan kerosakan yang membawa kepada kehadiran gejala ini.

Dalam artikel seterusnya kita akan bercakap tentang cara-cara mengaplikasikan pengetahuan.

Bibliografi.

  1. John Alan Robinson. Logik Berorientasikan Mesin Berdasarkan Prinsip Resolusi. Komunikasi ACM, 5:23-41, 1965.
  2. Seymour Papert, Marvin Minsky. Perceptrons. MIT Press, 1969
  3. Russell, Norvig. Kecerdasan Buatan: Pendekatan Moden.
  4. Simon Haykin. Rangkaian saraf: asas yang komprehensif.
  5. Nils J. Nilsson. Kecerdasan Buatan: Sintesis Baharu.

Di mana dia bercakap tentang salah satu matlamatnya yang membawanya ke profesion - keinginan untuk mempelajari prinsip kerja dan belajar cara membuat bot permainan sendiri.

Tetapi sememangnya, keinginan untuk mencipta kecerdasan buatan yang sempurna, sama ada model permainan atau program mudah alih, yang mendorong ramai daripada kita ke laluan pengaturcara. Masalahnya ialah di sebalik banyak bahan pendidikan dan realiti keras pelanggan, keinginan ini telah digantikan dengan keinginan mudah untuk pembangunan diri. Bagi mereka yang masih belum mula memenuhi impian zaman kanak-kanak mereka, berikut adalah panduan ringkas untuk mencipta kecerdasan buatan sebenar.

Tahap 1. Kekecewaan

Apabila kita bercakap tentang mencipta bot yang mudah sekalipun, mata kita dipenuhi dengan kilauan, dan beratus-ratus idea terlintas di kepala kita tentang perkara yang sepatutnya dapat dilakukan. Walau bagaimanapun, apabila bercakap tentang pelaksanaan, ternyata kunci untuk merungkai model tingkah laku sebenar adalah ... matematik. Untuk menjadi lebih spesifik, berikut ialah senarai bahagiannya yang perlu dipelajari sekurang-kurangnya dalam format pendidikan universiti:

    Algebra linear;

  • Teori graf;

    Teori Kebarangkalian dan Statistik Matematik.

Ini adalah papan anjal saintifik di mana pengaturcaraan anda selanjutnya akan dibina. Tanpa pengetahuan dan pemahaman tentang teori ini, semua idea akan cepat rosak akibat interaksi dengan seseorang, kerana kecerdasan buatan sebenarnya tidak lebih daripada satu set formula.

Peringkat 2. Penerimaan

Apabila keangkuhan itu dirobohkan sedikit oleh sastera pelajar, anda boleh mula belajar bahasa. Anda tidak perlu tergesa-gesa ke LISP atau yang lain; mula-mula anda perlu belajar cara bekerja dengan pembolehubah dan keadaan bernilai tunggal. Ia sesuai untuk pembelajaran pantas dan pembangunan lanjut, tetapi secara amnya anda boleh mengambil sebagai asas mana-mana bahasa yang mempunyai perpustakaan yang sesuai.

Peringkat 3. Perkembangan

Sekarang mari kita beralih terus ke teori AI. Mereka boleh dibahagikan secara kasar kepada 3 kategori:

    AI yang lemah – bot yang kita lihat dalam permainan komputer, atau pembantu ringkas seperti Siri. Mereka sama ada melaksanakan tugas yang sangat khusus atau merupakan kompleks yang tidak penting, dan sebarang interaksi yang tidak dapat diramal membingungkan mereka.

    AI yang kuat ialah mesin yang kecerdasannya setanding dengan otak manusia. Pada masa ini tiada wakil sebenar kelas ini, tetapi komputer seperti Watson sangat hampir untuk mencapai matlamat ini.

    AI yang sempurna ialah masa depan, otak mesin yang akan mengatasi keupayaan kita. Bahaya perkembangan sedemikian yang Stephen Hawking, Elon Musk dan francais filem Terminator memberi amaran.

Sememangnya, anda harus bermula dengan bot yang paling mudah. Untuk melakukan ini, ingat permainan lama yang baik "Tic Tac Toe" apabila menggunakan medan 3x3 dan cuba memikirkan sendiri algoritma asas tindakan: kebarangkalian kemenangan dengan tindakan bebas ralat, tempat paling berjaya di padang untuk letakkan sekeping, keperluan untuk mengurangkan permainan menjadi seri, dan sebagainya.

Seperti yang anda fahami walaupun dari namanya, ini adalah API yang akan membolehkan anda mencipta beberapa rupa AI yang serius tanpa membuang masa.

Peringkat 5. Kerja

Memandangkan anda mempunyai idea yang jelas tentang cara mencipta AI dan perkara yang perlu digunakan, sudah tiba masanya untuk membawa pengetahuan anda ke peringkat seterusnya. Pertama, ini memerlukan mempelajari disiplin yang dipanggil "Pembelajaran Mesin". Kedua, anda perlu belajar cara bekerja dengan perpustakaan yang sesuai bagi bahasa pengaturcaraan yang dipilih. Untuk Python yang sedang kita lihat, ini ialah Scikit-learn, NLTK, SciPy, PyBrain dan Nump. Ketiga, dalam pembangunan tidak ada jalan keluar