Yapay zeka öğrenmeye nasıl başlanır?
Yazılım mühendisliği öğrencisiyim ve yapay zekaya yeni başlıyorum. Yapay zeka öğrenmeye nasıl başlayacağına dair birçok makale okudum, ancak her makale farklı bir yol gösteriyor. Bazı uzmanlarınızın doğru şekilde başlamama yardımcı olup olamayacağını merak ediyordum.
Birkaç özel soru
Hangi dile odaklanmalıyım? Birçok makale AI için Python, C ++ veya Lisp'yi önermektedir. Belirtilen diğer diller yerine Java kullanabilir miyim?
Ne tür bir matematiksel altyapıya sahip olmalıyım? İlk yıl boyunca, aşağıdaki konuları içeren ayrık matematik yaptım: kümeler, matrisler, vektörler, fonksiyonlar, mantık ve grafik teorisi (Bu konuları kısaca öğrettiler). Şimdi öğrenmem gereken başka konular var mı? Örneğin, matematik?
Mümkünse, başlamak için kullanabileceğim kaynakları veya kitapları takdir ediyorum veya belki de seviyenize yetişmek için izleyebileceğim ayrıntılı bir prosedür verebilirsiniz.
Not: Şimdilik sinir ağlarına ve makine öğrenimine odaklanmak istiyorum. Bundan sonra robotik ve doğal dil işlemeyi keşfetmek istiyorum.
Olası yinelenen adımları nelerdir yapay zeka öğrenmek takip etmek?
Yapay Zeka çok geniş bir alandır ve bilgisayar bilimi, matematik, donanım tasarımı ve hatta biyoloji ve psikolojinin çok ve çok derin alanlarını kapsar. Matematik gelince: Bence matematik, istatistik ve optimizasyon en önemli konulardır, ancak mümkün olduğu kadar çok matematik öğrenmek acı vermez.
Yeni başlayanlar için AI hakkında birçok iyi ücretsiz giriş kaynağı vardır. Bununla başlamayı kesinlikle öneriyorum: http://aiplaybook.a16z.com/ Ayrıca AI'nın genel kavramları hakkında iki video yayınladılar, onları Vimeo'da bulabilirsiniz: "AI, Derin Öğrenme ve Makine Öğrenimi: Bir Astar "ve" AI'nın Vaadi "
Temel AI terimlerini ve yaklaşımlarını net bir şekilde anladıktan sonra, hedeflerinizin ne olduğunu bulmanız gerekir. Ne tür bir AI yazılımı geliştirmek istiyorsunuz? Hangi sektörlerle ilgileniyorsunuz? Büyük şirketlerin projelerine katılma şansınız nedir? Neyi başarmak istediğinizi tam olarak bildiğinizde doğru araçları almak daha kolaydır.
Yapay zekaya yeni gelenlerin çoğu için en ilginç alan Derin Öğrenme'dir. Açıkça söylemek gerekirse, Makine Öğrenimi'nin dışında birçok AI alanı vardır ve Derin Öğrenme'nin dışında Makine Öğrenmenin birçok alanı vardır. (Yapay Zeka> Makine Öğrenimi> Derin Öğrenme) Son gelişmelerden ve haberlerin birçoğu DL ile ilgilidir.
Derin Öğrenme ile de ilgileniyorsanız, yapay sinir ağları kavramlarını öğrenmeye başlamanız gerekir. Neyse ki temelleri anlamak çok zor değil ve web üzerinde çok sayıda öğretici, kod örneği ve ücretsiz öğrenme kaynağı var ve denemeye başlamak için birçok açık kaynaklı çerçeve var.
Bu tür en popüler Derin Öğrenme çerçevesi TensorFlow'dur. Google tarafından desteklenmektedir. Sevin ya da nefret edin, bu Python tabanlı bir çerçevedir. Python tabanlı başka çerçeveler de var. Scikit-learn, Theano, Keras derslerde de sıkça bahsedilmektedir. (İpucu: Windows kullanıyorsanız tüm bu çerçeveleri içeren WinPython'u indirebilirsiniz.)
Java çerçevelerine gelince, maalesef çok fazla seçenek yok. DL için en önemli Java çerçevesi Deeplearning4j'dir. Küçük bir şirket tarafından geliştirildi ve kullanıcı tabanı TensorFlow'un etrafındaki kalabalıktan çok daha küçük. Bu çerçeve için daha az proje ve eğitim vardır. Ancak endüstri uzmanları, Java tabanlı çerçevelerin sonunda Java tabanlı Büyük Veri çözümleriyle daha iyi entegre olduğunu ve daha yüksek düzeyde taşınabilirlik ve daha kolay ürün dağıtımı sağlayabileceğini söylüyor. Sadece bir sidenote: NASA'nın Jet Sevk Laboratuvarı Deeplearning4j'yi birçok proje için kullandı.
Akışa devam etmeye karar verirseniz ve TensorFlow hakkında daha fazla bilgi edinmek istiyorsanız, "DeepLearning.TV", "sentdex" ve "Siraj Raval" YouTube kanallarına göz atmanızı öneririm. Onlar güzel öğreticiler ve bazı serin demolar var. Daha derin bir dalış yapmaya karar verirseniz, udacity veya coursera'da çevrimiçi bir kursa kaydolabilirsiniz.
Java Sanal Makinesi için alternatif dillere sahip başka Derin Öğrenme çerçeveleri, örneğin Clojure olduğunu bilmek de ilginç olabilir. (Clojure bir LISP lehçesidir ve "yapay zeka" terimini icra eden aynı bilgisayar bilimcisi John McCarthy tarafından icat edilmiştir. Başka bir deyişle, daha modern ve popüler programlama dilleri ve araçları vardır, ancak yine de mümkündür / ve çok havalı Başlangıçta yapay zeka için tasarlanmış yapay zeka dilini kullanmak için Boulder'daki ThinkTopic ve Hamburg'daki Freiheit, AI projeleri için Clojure kullanan iki şirkettir ve AI ve robotikte Clojure'u kullanmak için ilham almak için harika bir şey görmek istiyorsanız, "OSCON 2013: Carin Meier, Clojure ile Uçan Robotların Sevinci" adlı YouTube videosunu izlemenizi tavsiye ederim.
(+++ Yanlış bir şey söylersem herkes beni düzeltmekten çekinmeyin. +++)
Java için daha az çerçeve olduğundan, TensorFlow'un yerine kullanabileceğim kendi çerçevelerimi yazmak mümkün müdür? Teşekkürler
Temel kavramları incelemek için kendi çerçevenizi oluşturmak çok iyi bir fikirdir. Öte yandan, TensorFlow büyük bir topluluk ve çok yetenekli profesyoneller tarafından geliştirilmiştir. Dürüst olmak gerekirse, herhangi bir ev yapımı çerçevenin başarıyla rekabet edebileceğini düşünmüyorum. Btw, neden bu kadar az Java AI çerçevesi olduğunu anlamıyorum ... hala 1 numara. programlama dili ve JVM hemen hemen her yerde. Sanırım AI hala üretimden ziyade araştırma ile ilgili.
Hem Matematik hem de Lineer Cebirin AI / ML tekniklerinde bazı uygulamaları olduğunu göreceksiniz. Birçok anlamda ML'nin çoğunun Doğrusal Cebire indirgendiğini ve Kalkülüs'ün örn. sinir ağlarının eğitimi için geri yayılım algoritması.
Olasılık ve istatistik konusunda da bir ya da iki ders almanız iyi olur.
Programlama dili seçimi daha az önemlidir, IMO. AI / ML'yi hemen hemen her ana dilde ve birçok ana dilde olmayan dilde yapabilirsiniz. En büyük fark performans ve kütüphanelerin / araçların kullanılabilirliğini içerir. Örneğin, C ++ genellikle Java veya Python'dan daha iyi performans gösterir ve donanımınızın yeteneklerini en üst düzeye çıkarmak için "metale yakın" olmanızı sağlar. Bununla birlikte, Python'un gerçekten iyi bir FFI'si vardır ve genellikle C veya C ++ ile birlikte kullanılır. Python, C ++, Java, R, Octave / Matlab ve diğer birkaç dilde, ne yapmak istediğinize bağlı olarak sizin için önemli olabilecek birçok yüksek kaliteli kitaplık bulunur.
Bununla birlikte, muhtemelen, COBOL veya PL / I veya RPG / 400 veya benzeri bir şeyde ML / AI denemek ve yapmak istemezsiniz. En azından makul derecede popüler bir şeye sadık kalın. Mloss.org'u araştırın ve farklı dillerde hangi kitaplıkların / araç setlerinin mevcut olduğuna bakın ve bu sizin seçiminize yardımcı olacaktır.
Yapay zekaya ilgi duyduğumda, en temel şeylerle başladım. İlk kitabım Russell & Norvig'in Yapay Zekası - Modern Bir Yaklaşımdı . Çoğunlukla Deep Nets ile ilgileniyor olsanız bile, başlamak için iyi bir yer olduğunu düşünüyorum. Sadece temel AI kavramlarını ve algoritmalarını (uzman sistemler, önce derinlik ve önce genişlik arama, bilgi gösterimi, vb.) Değil, aynı zamanda temel matematiği (Bayes akıl yürütme, Birinci Dereceden Mantık, NL n-gram, vb.) ve yaygın olarak bilinen bazı sorunlar (örneğin Gezgin satıcı sorunu olarak).
Özellikle ML ile ilgileniyorsanız, istatistikleri öğrenmek de iyi bir fikir olabilir. Bahsedilen kitaptan sonra, bir sonraki adımda ne öğreneceğiniz konusunda iyi bir fikriniz olmalıdır.
Programlama dilini fazla önemsemeyin.
Programlamanın kendisini ve ilgili teknikleri anlamak çok daha önemlidir. Veri yapıları, algoritmalar ve farklı programlama paradigmaları (OOP, Fonksiyonel Programlama vb.) Hakkında bir şeyler öğrenin. Sadece belirli bir dili değil, programlamanın arkasındaki mantığı anlamaya çalışın. Sonuçta, nasıl programlanacağını anladıktan sonra yeni bir dil öğrenmek o kadar zor değil (o zaman yeni bir dil öğrenmek az çok sözdizimsel şekerdir).
Okunabilirlik için hafif bir düzenleme yaptım ve ders kitabına bir bağlantı ekledim. Özellikle tavsiye: programlama dilleri. ("Herhangi bir sözdizimi ile herhangi bir dilde" çalışan kodlayıcılara bakın :) Gerçekten belirli bir proje veya görev için en uygun veya en uygun olana iner.
İşte AI'nin temellerini öğrenmek için yararlı bulduğum bazı kaynaklar
Andrew Ng'in yapay zeka üzerine konuşma dizisi
Andrew Ng'in Stanford Business School konferansı
Andrew Ng - Yapay Zekanın Durumu
Andrew Ng, Courseford'un kurucusu Stanford'da misafir profesör ve şu anda Alibaba'da araştırma başkanıdır. Yukarıdaki videolar size AI hakkında ihtiyacınız olan temel bilgileri vermelidir.
Yukarıdaki algoritmayı tamamladığınızda hatanıza odaklanmaya çalışın. Şimdi AI geldi. Sinir ağının hatayı azaltmanıza ve doğruluğu artırmanıza nasıl yardımcı olduğunu anlamaya çalışın. Sonra sigmoid, relu ve cnn gibi bazı temel sinir ağlarını deneyin. Sinir ağınızda düşmeyi kullanmayı unutmayın. Tensorflow veya keras veya Tensorflow'u keras ile kullanabilirsiniz
Yan yana kontrol edin 3 Blue 1 Brown Doğrusal cebir videoları matematik geliştirmek için. günde bir kez ama her gün bir video.
Ve şimdi mantığın arkasındaki matematiğe odaklanın (herhangi bir algoritma) Makine öğrenimi kursunu deneyebilirsiniz.
Android uygulaması, IOS uygulaması, RaspPi Check Tensorflow dev zirvesi 2016/2017 oluşturmak için Tensorflow'u kullanın.
Veya çökme kursuna ihtiyacınız varsa, bu https://youtu.be/u4alGiomYP4 adresini kontrol edin
Netleşelim, AI html kitap okumakla ilgili değil ve programlamaya başlıyorsunuz, burada netleşelim,! OP Oxford, harvad vb. Profesörlere danışmalıdır
Yapay Zekaya girmeden önce, önkoşullarla yapılması gerekir. Sağlam bir liste yoktur, ancak çeşitli algoritmalar hakkında iyi bir bilgi zorunludur. Bunun dışında C ++ veya Java gibi en az bir programlama dili ile rahat olmalısınız. Bilgisayar Bilimlerinde tamamen yeniyseniz Yapay Zekaya dalmanızı önermeyeceğim. Yapay Zekaya dalmadan önce programlama ile ilgili bazı deneyimler sizin için artı bir nokta olacaktır.
Yapay Zeka ile ilgili okumaya (bloglar, makaleler, akademik makaleler, vb.) Başlayın. Ne olduğu gibi, uygulamaları, mevcut durumu ve bulabileceğiniz diğer şeyler. Tic Tac Toe, Sudoku, Reversi (Othello) gibi küçük oyunlar için başlangıç ​​için AI kodları yapmaya başlayın. Kendi simülatörünüzü oluşturabilir ve Rubik küpünü çözen bir kod oluşturabilirsiniz. Benzer şekilde, Örüntü Tanıma ve Makine Öğrenmesi için kodlar oluşturun. Hiçbir şey yaparak öğrenmekten daha iyi olamaz. LISP ve python gibi diller çok yardımcı olacaktır. İşte size yardımcı olacak iki cevap, ans1 ve ans2 .
Kitapları okumayı ve okumayı (benim gibi) seven biriyseniz Yapay Zeka: Modern Bir Yaklaşım (Peter Norvig ve Stuart Russell) satın alabilirsiniz. Kitap çok iyi ve orta ve ileri seviye için iyi çalışıyor. Kitapta verilen egzersiz problemlerini çözmeye çalışın. Kitapların çözüm pdf'lerini çevrimiçi olarak bulabilirsiniz . Makine Öğrenimi için önerdiğim iki kitap Örüntü Tanıma ve Makine Öğrenmesi (Christopher M. Bishop) ve Programlama Kolektif Zeka (O'Reilly).
Başlangıç ​​olarak, Yapay Zeka ve Teknolojik Tekillik hakkında çok iyi bir makale var.
Makale uzun ve iki bölüme ayrılmıştır. Yapay Zeka konusunda ciddiyseniz bu makaleyi okumanızı şiddetle tavsiye ederim. Size bazı iyi bilgiler verecektir.
Hesaplama Teorisi bilgisi size çok yardımcı olacaktır. Özellikle Doğal Dil İşleme alanında çalışırken. Yapay Zeka'nın ilginizi çekebilecek diğer alt alanları Makine Öğrenimi, Evrimsel Hesaplama, Genetik Algoritmalar, Takviye Öğrenme, Derin Öğrenme vb. Olacaktır. Liste devam ediyor. İstatistik bilginiz ne kadar iyi olursa, Yapay Zeka için o kadar iyi olacaktır. Forumlar, web siteleri, vb. Aracılığıyla sahadaki son gelişmeleri takip edin. Açık AI web sitesi de çok iyi bir kaynaktır.