Xinzhiyuan Raporu
Kaynak: entegre kod hattı vb.
Derleyici: Xiao Qin
Xin Zhiyuan Rehberi Oak Ridge Ulusal Laboratuvarı'ndaki bazı uzmanlar, 2040'a kadar AI teknolojisinin programcıların yerini alacak kadar güçlü olacağını tahmin ediyor. Bununla birlikte, makineler bugün programcıların yaptığı işi tamamen değiştirebilse bile, bu onların insan yardımına ihtiyaçları olmadığı anlamına gelmez.
Programcılar ve diğer BT işleri türleri şüphesiz şu anda en sıcak işlerdir. Ancak bu eğilim sonsuza kadar sürmeyebilir.
Oak Ridge Ulusal Laboratuvarı'ndaki bazı uzmanlar, 2040'a kadar AI teknolojisi, programcıların yerini alacak kadar güçlü olacak ve AI yazma yazılımı, insan programcılardan daha iyi ve daha hızlı olacak. Başka bir deyişle, yazılım tarafından yazılan yazılım, insanlar tarafından yazılan yazılımlardan daha iyidir.
Bu nasıl oldu? Yapay zeka, son derece yaratıcılık gerektiren entelektüel çalışmaların nasıl yapılacağını gerçekten öğrenebilir mi? Sonuçta, yaratıcılığın her zaman insanlara özgü olduğu düşünülmüştür. AI, bizim öğretebileceğimizden daha fazlasını öğrenecek mi?
Yapay sinir ağı, insan beyninin öğrenme mekanizmasını taklit etmeye çalışan bir teknolojidir. Gerçek sinir ağlarından esinlenmiştir ve kısmen gerçek sinir ağlarını simüle eder. İnsan sinir sistemini çok güçlü bir bilgisayar olarak hayal etmeye çalışabiliriz.
Yukarıdaki resimde, her nöronun bir girişi ve çıkışı vardır Giriş aslında bir dizi sinyalin ağırlıklı bir kombinasyonudur. Her sinyalin kendi matematiksel olarak ifade edilebilir etkisi vardır ve sinyallerin toplamı çıktıyı belirler. İnsan sinir ağları ile ilgili özel olan şey, öğrenme ve deneyime göre adapte olabilmeleri ve değişebilmeleridir; bu, aynı girdinin her zaman aynı çıktıyı üretmediği anlamına gelir.
Bu aracılığıyla Farklı darbelerin önceliğini değiştirin ve nöronlar arasındaki fiziksel bağlantıları değiştirin Tamamlamak için. Bu değişiklikler, insanların yeni ortamlara uyum sağlama ve gelecekteki davranışları optimize etme becerilerini geliştirmek için öğrenme algoritmaları ve maliyet işlevleri aracılığıyla belirlenir.
Yapay sinir ağları üzerinde çalışan bilim adamları ve mühendisler bu mekanizmayı kopyalayıp yazılım geliştirmede uygulamaya çalışıyorlar. Bu özellikle, yazılımın bir dizi "eğer ... o zaman" kuralı gibi geleneksel bir şekilde yazılmayacağı anlamına gelir. Teoride, kademeli öğrenme ve optimizasyon süreci yoluyla, yapay sinir ağlarının, insanların yazdığından daha iyi çıktılar elde etmek için kuralları nasıl formüle edeceğini (veya "yazacağını") öğrenebileceğini hayal edebiliriz. AI biliminde buna derin öğrenme denir ve genellikle bir dereceye kadar insan geribildirimine dayanır.
Aşağıda programcıların yerini alabilecek birkaç uygulama bulunmaktadır.
Stanford Üniversitesi'nde bilgisayar bilimi alanında doktora öğrencisi olan Andrej Karpathy, 2015'in başlarında kod üretmek için tekrarlayan sinir ağlarını kullandı. Bir Linux deposu (tüm kaynak dosyalar ve başlık dosyaları) kullandı, onu büyük bir belgede birleştirdi (400 MB'nin üzerinde kod) ve bu kodları RNN'yi eğitmek için kullandı.
Sistemin bütün gece çalışmasına izin verdi. Ertesi sabah şunu aldı:
AI tarafından oluşturulan kod örnekleri
Yapay zeka tarafından üretilen kod, tam anlamıyla işlevler ve işlev dekorasyonları içerir. Parametrelere, değişkenlere, döngülere ve doğru girintiye sahiptir. Parantezlerde açma parantezleri ve kapatma parantezleri ve hatta yorumlar bulunur.
Bu kodlarda, AI kesinlikle bazı hatalar yaptı. Bazen değişkenler asla kullanılmaz. Diğer zamanlarda, bazı değişkenler daha önce tanımlanmamıştır. Ancak Karpathy sonuçtan memnun.
Karpathy blogunda "Kod genel olarak harika görünüyor. Elbette, derleneceğini sanmıyorum, ancak üretilen koda göz attığınızda, çok büyük bir C kodu tabanı gibi geliyor," diye yazdı.
Bu proje GitHub'da bulunabilir. Torch7'nin derin öğrenme kütüphanesini kullanır. İşte Karpathy'nin aldığı tüm çıktı dosyası:
https://github.com/karpathy/char-rnn
Microsoft ve Cambridge Üniversitesi'nden araştırmacılar, DeepCoder adı verilen ve öğrenme yeteneğine sahip kod yazabilen bir makine öğrenme sistemi geliştirdiler.
DeepCoder büyük bir kod tabanında arama yapabilir ve ardından etkili kod yazabilir. DeepCoder tarafından kullanılan teknolojiye Program sentezi (Program sentezi), mevcut yazılımın kod satırlarını yakalayarak yeni bir program oluşturmak için. Şimdi birçok programcının aynı şeyi yaptığını itiraf etmeliyim. DeepCoder, bir dizi kod parçasının giriş ve çıkış verilerini öğrenerek, hedef görev için yararlı olan kod parçalarını otomatik olarak çıkarabilir.
DeepCoder bir saniye içinde çalışabilen bir program yazabilir. DeepCoder'in programlama deneyimi arttıkça, yararlı ve yararsız kod parçalarını ayırt etme yeteneği artar ve program oluşturma hızı daha hızlı ve daha hızlı hale gelecektir.
Bu, yapay zekanın kod çaldığı veya mevcut yazılımdan kod kopyalayıp yapıştırdığı veya İnternette çözüm aradığı anlamına gelmez. DeepCoder'in yazarı, yakın gelecekte programlama yarışmalarına katılacağını umuyor.
DeepCoder tarafından oluşturulan Etki Alanına Özgü Dil (DSL) örnek programı
Cambridge Üniversitesi'nde bir Microsoft araştırma projesine katılan DeepCoder'in yaratıcılarından Marc Brockschmidt şunları söyledi: "Bu program, programcı olmayanların program fikirlerini istedikleri programı almak için bilgisayara açıklamalarına izin verecek ve sistem bunu otomatik olarak yazacak."
DeepCoder'in belgelerini burada bulabilirsiniz:
https://openreview.net/pdf?id=ByldLrqlx
Bir Fransız mühendis BenjaminTD takma adıyla "bir AI sistemine Python kodunun Python koduyla nasıl yazılacağını" nasıl öğrettiğini açıklayan bir blog yazısı yayınladı.
En popüler tekrarlayan sinir ağı yapılarından biri olan Uzun Kısa Süreli Belleği (LSTM) kullandı. Ağı "beslemek" için pek çok Python kodu (Pandas, Numpy, Scipy, Django, Scikit-Learn, PyBrain, Lasagne, Rasterio, vb. Kullanarak) kullandı. Birleşik dosya boyutu 27 MB'dir.
Ardından, AI kendi kodunu oluşturdu. İşte tanım başlatma:
... Boole ifadelerini kullanma:
... Ve diziyi oluşturun:
Diziye yakından bakarsanız, bir sözdizimi hatası bulacaksınız. BenjaminTD'nin kodu mükemmel olmaktan uzak, ancak yalnızca örnek kodları okuyarak öğrenen bir ağ için iyi göründüğüne inanıyor.
2017'de Bloomberg ve Intel Labs araştırmacıları, otomatik olarak eksiksiz bir yazılım programı oluşturabilen ilk AI sistemi "AI Programcısı" nı gerçekleştirdiklerini iddia ettiler.
AI Programmer, karmaşık talimatları simüle etmek için makine öğreniminde genetik algoritmalar kullanır. AI Programmer tarafından oluşturulan programlar artık acemi programcılar tarafından yazılanlarla aynı karmaşıklığa sahip olsa da. Ancak araştırmacılar, AI Programmer tarafından yazılan programların geleneksel kategorileri tamamen aşabileceğine ve insan zamanı ve bilgeliğiyle sınırlı olmadığına inanıyor.
AI Programmer'ın yazılım mimarisi. İnsan tarafından tahrik edilen çok az parça olduğu şekilden görülebilmektedir.Yalnızca başlangıçta komut girmeniz ve sonunda belirli bir göreve uygun işlevleri almanız yeterlidir.Geri kalanı makine tarafından yapılır.
Araştırmacılar, birçok yazılım programı oluşturmak için AI Programmer'ı kullanabileceklerini söylediler. Aşağıdaki tablo, oluşturulan programların bir listesidir.
İnsanların yerini alabilecek programlar var, ancak aşağıdaki soru şu: makineler kendi kendilerine öğrenebilirse, ne kadar öğrenebilirler? Limit nerede? Bu optimizasyon süreci gerçekten yazılıma insanlardan daha iyi kod yazmayı öğretebilir mi? Web sitesi geliştirme ajansları ve yazılım şirketleri, paradan tasarruf etmek için kendileri için kod yazmak üzere yapay zeka odaklı programlar kullanacak mı? Gerçek şu ki biz hala belirsiz Makine ne kadar yapabilir.
Bununla birlikte, yapay zekanın zaten BT endüstrisindeki bazı işleri etkilediğini biliyoruz. Hintli bir yazılım danışmanlığı ve dış kaynak kullanımı şirketi olan Wipro Ltd., geçen yılın Haziran ayından bu yana yazılımın bakımını yapmak için yapay zeka platformu Holmes'u kullanıyor ve 3000'den fazla mühendisi işlerinden endişe duyuyor. Bahsetmiyorum bile, sıklıkla kullandığımız teknolojilerin çoğu - konuşma tanımadan makine çevirisine kadar - makine öğrenimi tekniklerini kullanıyor.
Yapay sinir ağlarıyla ilgili bir sorun, kullandıkları algoritmaların "kara kutular" olması, yani dahili çalışma yöntemlerinin çok karmaşık olmasıdır. Tesla'nın yapay zeka direktörü Andrej Karpathy, çoğu uygulama için tamamen yapay zekaya dayalı% 100 doğru bir modeli asla elde edemeyeceğimize inanıyor. Yapay zeka sistemlerinin doğruluğunun% 90'ı aşacağına, ancak mükemmel olmadıklarına ve zaman zaman beklenmedik şekillerde başarısız olacaklarına inanıyor.
Genel olarak, denetlenen ve denetlenen derin öğrenme sistemleri denetimsiz sistemlerden daha iyi performans gösterir. Bu, en karmaşık AI yazılımının bile yeni çevreyi öğrenmek ve ona uyum sağlamak için insan katılımını ve geri bildirimi gerektirdiği anlamına gelir. Bu gerçek, gelecekte yapay zeka ile insan programcılar arasındaki gerilime - birlikte çalışarak bir çözüm sağlıyor.
Yakın gelecekte, yapay zeka ve insan programcıların programlamada olacağından emin olabiliriz Tamamlayıcı roller oynayın . Yapay zekanın işi, makinenin mükemmel doğruluğunu gerektiren tekrarlayan, zaman alan görevlerle uğraşmak olabilir. Makine, insan faktörlerinden kaynaklanan gramer hatalarını veya tasarım hatalarını önleyebilir. Örneğin, yapay zekanın yardımcı olabileceği bir yol işlevi otomatik olarak tamamlamaktır.Programcı kodun yalnızca küçük bir bölümünü yazar ve ardından YZ, programcının niyetini tanır ve kodun geri kalanını tamamlar, böylece insanlar için çok fazla işten tasarruf sağlar.
Makineler bugün programcıların yaptığı işi tamamen değiştirebilse bile, bu onların insan yardımına ihtiyaçları olmadığı anlamına gelmez. Ancak programcılar dikkatlerini program yazmaktan yapay zekanın performansını izlemeye kaydırmalı ve yapay zekayı verilerle "beslemeli". Karpathy'nin işaret ettiği gibi, programcılar bir Veri sahibi Verileri toplayın, düzenleyin ve analiz edin, ardından bunları yapay zekaya girdi olarak kullanın ve gerisini yapay zekanın yapmasına izin verin.