Bagaimana seseorang mulai belajar kecerdasan buatan?


16

Saya seorang mahasiswa rekayasa perangkat lunak dan saya seorang pemula yang lengkap untuk AI. Saya telah membaca banyak artikel tentang cara memulai belajar AI, tetapi setiap artikel menyarankan cara yang berbeda. Saya bertanya-tanya apakah beberapa ahli dari Anda dapat membantu saya memulai dengan cara yang benar.

Beberapa pertanyaan lebih spesifik

  1. Bahasa apa yang harus saya fokuskan? Banyak artikel menyarankan Python, C ++ atau Lisp untuk AI. Bisakah saya menggunakan Java alih-alih bahasa lain yang disebutkan?

  2. Apa latar belakang matematika yang harus saya miliki? Selama tahun pertama, saya melakukan matematika diskrit, yang mencakup topik-topik berikut: set, matriks, vektor, fungsi, logika dan teori grafik (Mereka mengajarkan topik-topik ini secara singkat). Apakah ada topik lagi yang harus saya pelajari sekarang? Misalnya, kalkulus?

Jika memungkinkan, saya akan menghargai sumber daya atau buku apa pun yang dapat saya gunakan untuk memulai, atau mungkin kalian dapat memberi saya prosedur terperinci yang bisa saya ikuti untuk mengejar ketinggalan hingga ke level Anda.

Catatan: Untuk saat ini saya ingin fokus pada jaringan saraf dan pembelajaran mesin. Setelah saya itu saya ingin mengeksplorasi robotika dan pemrosesan bahasa alami.


Jawaban:


16

Inteligensi buatan adalah bidang yang sangat luas dan mencakup banyak bidang ilmu komputer, matematika, desain perangkat keras, dan bahkan biologi dan psikologi. Adapun matematika: Saya pikir kalkulus, statistik dan optimasi adalah topik yang paling penting, tetapi belajar matematika sebanyak yang Anda bisa tidak akan sakit.

Ada banyak sumber pengantar gratis yang bagus tentang AI untuk pemula. Saya sangat merekomendasikan untuk memulai dengan yang satu ini: http://aiplaybook.a16z.com/ Mereka juga menerbitkan dua video tentang konsep umum AI, Anda dapat menemukannya di Vimeo: "AI, Pembelajaran Dalam, dan Pembelajaran Mesin: A Primer "dan" Janji AI "

Setelah Anda memiliki pemahaman yang jelas tentang ketentuan dan pendekatan AI dasar, Anda harus mengetahui apa tujuan Anda. Apa jenis perangkat lunak AI yang ingin Anda kembangkan? Industri apa yang Anda minati? Apa peluang Anda untuk terlibat dalam proyek perusahaan besar? Lebih mudah untuk mengambil alat yang tepat ketika Anda tahu persis apa yang ingin Anda capai.

Bagi kebanyakan pendatang baru di AI, bidang yang paling menarik adalah Deep Learning. Hanya untuk memperjelas, ada banyak area AI di luar Machine Learning dan ada banyak area Machine Learning di luar Deep Learning. (Kecerdasan Buatan> Pembelajaran Mesin> Pembelajaran Dalam) Sebagian besar perkembangan terkini dan berita hangat tentang DL.

Jika Anda tertarik dengan Deep Learning juga, Anda harus mulai dengan belajar tentang konsep jaringan saraf tiruan. Untungnya tidak terlalu sulit untuk memahami dasar-dasarnya dan ada banyak tutorial, contoh kode, dan sumber belajar gratis di web dan ada banyak kerangka kerja open-source untuk mulai bereksperimen.

Kerangka kerja Deep Learning yang paling populer adalah TensorFlow. Ini didukung oleh Google. Suka atau benci, ini adalah kerangka kerja berbasis Python. Ada banyak kerangka kerja berbasis Python lainnya, juga. Scikit-belajar, Theano, Keras juga sering disebutkan dalam tutorial. (Kiat: jika Anda menggunakan Windows, Anda dapat mengunduh WinPython yang mencakup semua kerangka kerja ini.)

Adapun tentang kerangka kerja Java, sayangnya tidak ada begitu banyak pilihan. Kerangka kerja Java yang paling menonjol untuk DL adalah Deeplearning4j. Ini dikembangkan oleh perusahaan kecil dan basis penggunanya jauh lebih kecil daripada kerumunan di sekitar TensorFlow. Ada lebih sedikit proyek dan tutorial untuk kerangka kerja ini. Namun, spesialis industri mengatakan kerangka kerja berbasis Java akhirnya berintegrasi lebih baik dengan solusi Big Data berbasis Java dan mereka dapat memberikan tingkat portabilitas yang lebih tinggi dan penyebaran produk yang lebih mudah. Just a sidenote: Jet Propulsion Laboratory NASA menggunakan Deeplearning4j untuk banyak proyek.

Jika Anda memutuskan untuk mengikuti arus dan ingin mulai belajar lebih banyak tentang TensorFlow, saya sarankan Anda untuk memeriksa saluran YouTube "DeepLearning.TV", "sentdex" dan "Siraj Raval". Mereka memiliki tutorial yang bagus dan beberapa demo keren. Dan jika Anda memutuskan untuk menyelam lebih dalam, Anda dapat mendaftar untuk kursus online di udacity atau coursera.

Mungkin juga menarik bagi Anda untuk mengetahui bahwa ada kerangka Pembelajaran Jauh lainnya untuk Java Virtual Machine dengan bahasa alternatif, misalnya Clojure. (Clojure adalah dialek LISP dan diciptakan oleh John McCarthy, ilmuwan komputer yang sama yang menciptakan istilah "kecerdasan buatan". Dengan kata lain ada lebih banyak bahasa dan alat pemrograman modern dan populer, tetapi masih mungkin / dan agak keren Saya menggunakan bahasa untuk AI yang awalnya dirancang untuk AI. ThinkTopic di Boulder dan Freiheit di Hamburg adalah dua perusahaan yang menggunakan Clojure untuk proyek AI. Dan jika Anda ingin melihat sesuatu yang luar biasa untuk mendapatkan inspirasi untuk menggunakan Clojure dalam AI dan robot, Saya sarankan Anda untuk menonton video YouTube "OSCON 2013: Carin Meier, Kegembiraan Robot Terbang dengan Clojure".

(+++ Siapa pun merasa bebas untuk mengoreksi saya jika saya mengatakan sesuatu yang salah. +++)


Karena ada lebih sedikit kerangka kerja untuk Java, apakah mungkin untuk menulis kerangka kerja saya sendiri untuknya, yang dapat saya gunakan sebagai pengganti TensorFlow? Terima kasih
aspire29

1
Membuat kerangka kerja Anda sendiri untuk mempelajari konsep-konsep dasar adalah ide yang sangat bagus. Di sisi lain, TensorFlow dikembangkan oleh komunitas besar dan banyak profesional yang sangat berbakat. Jujur saya tidak berpikir kerangka kerja buatan sendiri dapat berhasil bersaing dengannya. Btw, saya tidak mengerti mengapa ada begitu sedikit kerangka kerja Java AI ... mengingat masih no.1. bahasa pemrograman dan JVM ada di mana-mana. Saya kira AI masih lebih tentang penelitian daripada produksi.
akopacsi

6

Anda akan menemukan bahwa Kalkulus dan Aljabar Linier memiliki beberapa aplikasi dalam teknik AI / ML. Dalam banyak hal, Anda dapat berpendapat bahwa sebagian besar ML berkurang menjadi Aljabar Linier, dan Kalkulus digunakan dalam, misalnya. algoritma backpropagation untuk pelatihan jaringan saraf.

Anda akan dilayani dengan baik untuk mengambil satu atau dua kelas dalam probabilitas dan statistik juga.

Pilihan bahasa pemrograman kurang penting, IMO. Anda dapat melakukan AI / ML dalam hampir semua bahasa utama, dan banyak bahasa non-mainstream. Perbedaan terbesar melibatkan kinerja, dan ketersediaan perpustakaan / alat. C ++, misalnya, biasanya akan mengungguli Java atau Python dan memungkinkan Anda untuk "dekat dengan logam" untuk benar-benar memaksimalkan kemampuan perangkat keras Anda. Python, bagaimanapun, memiliki FFI yang sangat bagus, dan sering digunakan bersamaan dengan C atau C ++. Python, C ++, Java, R, Octave / Matlab dan beberapa bahasa lain cenderung memiliki banyak perpustakaan berkualitas tinggi yang tersedia, yang mungkin penting bagi Anda tergantung pada apa yang ingin Anda lakukan.

Yang mengatakan, Anda mungkin tidak ingin mencoba dan melakukan ML / AI di, katakanlah, COBOL atau PL / I atau RPG / 400 atau sesuatu. Tetaplah pada sesuatu yang setidaknya cukup populer. Lihat-lihat mloss.org dan lihat perpustakaan / toolkit apa yang tersedia dalam berbagai bahasa dan yang akan membantu memandu pilihan Anda.


5

Ketika saya tertarik pada AI, saya mulai dengan hal-hal yang paling mendasar. Buku pertama saya adalah Inteligensi Buatan Russell & Norvig - Pendekatan modern . Saya pikir itu adalah tempat yang baik untuk memulai, bahkan jika Anda sebagian besar tertarik dengan Deep Nets. Ini memperlakukan tidak hanya konsep AI dasar dan algoritma (sistem pakar, pencarian mendalam-pertama dan luas-pertama, representasi pengetahuan, dll.) Tetapi juga matematika dasar (penalaran Bayesian, Logika Orde Pertama, Logika Orde Pertama, NL n-gram, dll.) dan beberapa masalah yang umum diketahui (sebagai masalah salesman keliling misalnya).

Mungkin juga merupakan ide bagus untuk mempelajari statistik, karena Anda sangat tertarik pada ML. Setelah buku yang disebutkan, Anda juga harus memiliki ide bagus tentang apa yang harus dipelajari selanjutnya.

  • Jangan terlalu peduli tentang bahasa pemrograman.

Jauh lebih penting untuk memahami pemrograman itu sendiri dan teknik terkait. Pelajari sesuatu tentang struktur data, algoritma, dan paradigma pemrograman yang berbeda (seperti OOP, Pemrograman Fungsional, dll.). Cobalah untuk memahami logika di balik pemrograman dan bukan hanya bahasa tertentu. Lagipula, belajar bahasa baru tidaklah sulit setelah Anda memahami cara memprogram (kemudian mempelajari bahasa baru lebih kurang gula sintaksis).


1
Saya melakukan sedikit pengeditan agar mudah dibaca dan menambahkan tautan ke buku teks. Saran yang bagus, terutama kembali: bahasa pemrograman. (Lihat ke coders yang bekerja di "bahasa apa pun dengan sintaks" :) Benar-benar turun ke apa yang paling optimal atau nyaman untuk proyek atau tugas yang diberikan.
DukeZhou


3

Untuk memulai AI, pertama-tama pahami apa itu AI. Mengapa akurasi MNIST meningkat dengan cepat setelah 2012. Mengapa pembelajaran mesin membutuhkan AI untuk meningkatkan akurasinya.

Untuk memulai dan membangun Aplikasi di Machine learning dengan AI Anda tidak perlu matematika atau semacam ilmu roket. Anda terlambat, kawan saya membuat pintasan untuk semua masalah pembelajaran mesin seperti pembungkus. Anda hanya perlu meneruskan data ke suatu metode dan metode akan melakukan semua omong kosong. Mulailah dengan masalah MNIST yang menarik. Baca tentang sejarah MNIST menggunakan algoritma dasar di atasnya. Coba Regresi Linier, Regresi Logistik, Kmean clusting, KNN. Alat untuk pembelajaran Mesin Skite learning (python lib) atau Tensorflow (python lib) tflearn (api tingkat yang lebih tinggi dari Tensorflow seperti pembungkus) Keduanya merupakan sumber terbuka. Contoh tersedia di GitHub. Mulai mencari di GitHub. Anda menemukan contoh yang bagus. Untuk keduanya lib. Gunakan kaggel untuk memecahkan masalah berpartisipasi dalam kompetisi.

Ketika Anda menyelesaikan semua algoritma di atas, cobalah untuk fokus pada kesalahan Anda. Sekarang AI muncul. Coba cari tahu bagaimana jaringan saraf membantu Anda mengurangi kesalahan dan meningkatkan akurasi. Kemudian coba beberapa jaringan saraf dasar seperti sigmoid, relu dan cnn. Jangan lupa untuk menggunakan dropout di jaringan saraf Anda. Anda dapat menggunakan Tensorflow atau keras atau Tensorflow dengan keras

Pemeriksaan berdampingan 3 Video aljabar linier Biru 1 Brown untuk meningkatkan matematika Anda. sekali sehari tetapi setiap hari satu video.

Dan sekarang fokus pada matematika di belakang logika (algoritma apa saja) Anda dapat mencoba andrew kursus pembelajaran mesin.

Gunakan Tensorflow untuk membangun aplikasi Android, aplikasi iOS, RaspPi Periksa KTT dev Tensorflow 2016/2017.

Atau jika Anda memerlukan kursus kilat maka periksa https://youtu.be/u4alGiomYP4 ini


1
Mari kita perjelas, AI tidak semua tentang membaca buku html dan Anda memulai pemrograman, mari kita perjelas di sini ,! OP perlu berkonsultasi dengan profesor dari Oxford, harvad, dll
quintumnia

3

Sebelum masuk ke Kecerdasan Buatan, seseorang harus melakukan prasyarat. Tidak ada daftar yang solid, tetapi pengetahuan yang baik tentang berbagai algoritma adalah wajib. Selain itu Anda harus nyaman dengan setidaknya satu bahasa pemrograman, seperti C ++ atau Java. Saya tidak akan menyarankan Anda untuk terjun ke Intelegensi Buatan jika Anda benar-benar baru dalam Ilmu Komputer. Beberapa pengalaman dengan pemrograman sebelum menyelam ke dalam Kecerdasan Buatan akan menjadi nilai tambah bagi Anda.

Mulai membaca (blog, makalah, artikel ilmiah, dll.) Tentang Kecerdasan Buatan. Seperti apa itu, aplikasinya, status saat ini, dan hal-hal lain yang dapat Anda temukan. Mulai buat kode AI untuk gim kecil seperti Tic Tac Toe, Sudoku, Reversi (Othello), dll. Untuk permulaan. Anda dapat membuat simulator Anda sendiri dan membangun kode yang memecahkan kubus Rubik. Demikian pula, buat kode untuk Pengenalan Pola dan Pembelajaran Mesin. Tidak ada yang lebih baik daripada belajar sambil bekerja. Bahasa seperti LISP dan python akan sangat membantu. Berikut adalah dua jawaban yang akan membantu Anda, ans1 dan ans2 .

Jika Anda orang yang suka membaca dan belajar dari buku (seperti saya), maka Anda dapat membeli Kecerdasan Buatan: Pendekatan Modern (Peter Norvig dan Stuart Russell). Buku ini sangat bagus dan berfungsi dengan baik untuk tingkat menengah dan lanjutan. Cobalah untuk menyelesaikan masalah latihan yang diberikan dalam buku ini. Solusi pdf dari buku-buku tersedia online . Untuk Machine Learning dua buku yang saya rekomendasikan adalah Pattern Recognition dan Machine Learning (Christopher M. Bishop) dan Programming Collective Intelligence (O'Reilly).

Sebagai permulaan, ada artikel yang sangat bagus tentang Kecerdasan Buatan dan Singularitas Teknologi.

Artikel itu panjang dan dibagi menjadi dua bagian. Saya sangat menyarankan Anda untuk membaca artikel ini jika Anda serius tentang Kecerdasan Buatan. Ini akan memberi Anda wawasan yang bagus.

Pengetahuan tentang Teori Komputasi akan sangat membantu Anda. Terutama saat Anda bekerja di bidang Natural Language Processing. Sub-bidang AI lain yang mungkin menarik bagi Anda adalah Machine Learning, Evolutionary Computing, Genetic Algorithms, Reinforcement Learning, Deep Learning dll. Daftarnya terus berlanjut. Lebih baik pengetahuan Anda tentang Statistik, lebih baik untuk Intelegensi Buatan. Ikuti perkembangan terkini di lapangan melalui forum, situs web, dll. Situs web AI terbuka juga merupakan sumber yang sangat baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.