← Computers & Automation

Languages Logic Learning and Computers

B
Bilinmeyen Yazar
1958 · Computers and Automation

Diller, Mantık, Öğrenme ve Bilgisayarlar

Diller, Mantık, Öğrenme ve Bilgisayarlar

John W. Carr III
Michigan Üniversitesi
Ann Arbor, Mich.

(15 Kasım 1957’de Purdue Üniversitesi Bilgisayar Sempozyumu’nda verilen konferans)

Dijital bilgisayar kullanıcılarının son on yılda öğrendiği ders şudur: garip bir biçimde, bu yeni bilgi makinelerinin asıl kullanımı hiç de bilgisayar olarak değil, daha çok birer “sembol işleyici” olarak olabilir. Dijital bilgisayar, kendi çevresinden gelen sembolleri değerlendiren ve yorumlayan bir sembol işleyici olarak, en etkileyici işlerini yapabilecek konuma gelebilir.

Ancak makine kullanıcısı bu dersten yararlanabilmeden önce dijital bilgisayara “dıştan içe bir bakış” açısını benimsemelidir. Çok daha fazla problem odaklı, çok daha az donanım odaklı olmalıdır. Önemli olanın, problemin tanımlanma yöntemi olduğunu; gerçek fiziksel donanımın ya da hatta donanımın birbirine bağlandığı mantıksal yapının bile ikinci planda kaldığını kavramalıdır.

Bir kullanıcı bir problemi nasıl tanımlar? Genellikle gerçek dünyanın öğeleri ve ilişkileri ile, kendisinin ve daha sonra makinenin üzerinde işlem yapacağı ya da etkileşime gireceği bir semboller kümesi arasında bir karşılık ya da eşleme geliştirir.

Diller

Bu tür sembollerin düzenli ve anlamlı dizileri, insanların dil olarak adlandırmayı öğrendiği şeylerdir. Dolayısıyla, bu makinelerin kullanıcıları için temel problemlerden biri, önce problemlerini tanımlayan dilleri anlamak, daha sonra ise bu dilleri kurabilir hâle gelmektir.

Bu diller, doğal dillerden (İngilizce, Almanca, Rusça) farklı olarak, çok daha düzenlidir, çok daha kesindir ve makinelerin kendileri tarafından makinelerin içsel diline çok daha kolay çözümlenip çevrilebilir.

Sezgisel olarak tanımlanan böyle bir dilin tanımı şudur:

  1. Dilin temel öğelerini oluşturan bir semboller kümesi.
  2. Örneğin “kelimeler”, “ifadeler”, “tümceler”, “cümleler” ya da “sabitler”, “işlenenler”, “ilişkiler”, “önermeler”, “bildirimler” olarak adlandırılan sembol dizilerinin özyinelemeli bir tanımı.

Dizi adlarının ilk grubu, açıkça İngilizce gibi doğal dillerden birinin yapısını tanımlar. İkinci grup ise aritmetik dilinin tanımından gelir.

Özyinelemeli tanımların önemi ne kadar vurgulansa azdır. Örneğin, İngilizcede ad benzeri niteliklere sahip birçok farklı varlık vardır. Bunlardan biri isimler sınıfıdır ve “Tom” buna bir örnektir. Ancak İngilizcede, isim benzeri öğelerin ve diğer sözcük türlerinin özyinelemeli birleşimlerinden oluşan, yine isim gibi davranan başka öğeler de vardır.

Örneğin, bir zamir, isim ve fiilin bu sırayla birleşimi — “what Tom said” — yine isim benzeri bir niteliğe sahiptir ve “Tom said it” cümlesindeki “Tom” gibi isimsel bir şekilde kullanılabilir: “What Tom said was funny.” Bu son üç kelimelik isim benzeri yan tümce, özyinelemeli olarak başka bir tümcenin içine alınabilir: “What what Tom said meant, I don't know.” Bu tanıma göre bir kez daha özyineleme yapılabilir ve anlamsal olarak kafa karıştırıcı olsa da tamamen geçerli bir başka ifade elde edilir: “What what what Tom said meant had to do with the war was not apparent.”

Benzer şekilde, bilgisayarlar için biçimsel bir makine giriş dilinde, örneğin Profesör Perlis’in IT dilinde, özyinelemeli tanımlar yapının merkezindedir. Örneğin, “Y1” bir işlenendir; “sin(y1)” de öyledir ve “Y1 sin(y1)” de.

Oluşturma ve Dönüştürme Kuralları

Bir dilde kabul edilebilir dizgelerin bu özyinelemeli tanımlar kümesi, dilin oluşturma kurallarını meydana getirir — bir dildeki olası her cümlenin ya da kabul edilebilir her dizgenin hangi kurallarla elde edilebileceğini tanımlayan eksiksiz kurallar kümesi.

Buna ek olarak, günlük doğal dili kullanan kişiler olarak hepimiz ikinci bir dil kuralı kümesine aşinayız: dönüştürme kuralları — eşdeğer tüm cümleleri birbirine dönüştüren eksiksiz bir kurallar kümesi. Burada eşdeğerlik kavramının ayrıntılandırılması gerekir; genellikle sezgisel olarak, dışsal bir modele uyuma dayanır.

Örneğin, İngilizcede kabul edilen dönüştürme kurallarından biri, fiilleri ve fiillerin öznelerini niteleyen zarf tümcelerinin yer değiştirebilmesidir. Dolayısıyla, “In the square stood the City Hall” ve “The City Hall stood in the square” eşdeğer cümlelerdir.

Aritmetikte dönüştürme kurallarıyla birbirine çevrilen, özdeş derecede eşdeğer iki dizgeye bir başka örnek “z = x + y” ve “z = y + x” ifadeleridir. Belirli bir tek-adresli bilgisayarda, üç eşdeğer dizge şu şekilde olabilir:

  • CLA 1000
    ADD 0027
    STO 0045

  • CLA 0027
    ADD 1000
    STO 0045

  • CLA 1000
    JMP 0005
    ADD 0027
    JMP 0006
    JMP 0003
    STO 0045

Bu eşdeğerlikler ve bir sembol dizgesini bir başkasına dönüştüren örtük dönüştürme kuralları, otomatik programlamadaki verimlilik probleminin anahtarıdır. Burada amaç, bir derleyicinin çıktısını yeniden düzenleyerek, belirli bir anlamda “en iyi” olan — en hızlı, en az depolama gerektiren vb. — kodlamayı üretmesini sağlamaktır.

Bu tür dönüştürme kuralları altında sembol işlemenin bir başka örneği İngilizcedeki iki dizgedir: “Some men are liars” ve “It is not true that all men are not liars.” İngilizce konuşan bireyler bunların eşdeğer cümleler olduğu konusunda büyük ölçüde hemfikirdir.

Bu durumda, Almanca, Fransızca, Rusça ya da hemen hemen herhangi bir doğal dili konuşan bir kişi, sözcükleri kendi dilindeki sembollerle eşleştirdikten sonra bu eşdeğerlik konusunda hemfikir olacaktır. Ayrıca, bir dijital bilgisayar da yukarıdaki semboller üzerinde bir insanın yaptığı dönüşümlerin aynısını yapacak şekilde programlanabilir.

Dolayısıyla bilgisayarların sembol işleyici olarak kullanılması, diller ve anlam, tümevarım ve tümdengelim alanlarındaki problemleri çözmek için onları kullanma fırsatları sunar. Bilgisayarlar için ilk basit, problem odaklı giriş dillerinin geliştirilmesi bu yöndeki ilk adımdır.

Çeviri

Dillerden birkaçının geliştirilmiş olduğunu zaten gördük: Purdue’da ve daha sonra Carnegie Tech’te Profesör A. J. Perlis tarafından geliştirilen, Type 650 ve Datatron için IT (Internal Translator); Type 704 için geliştirilen Fortran; Univac makineleri için geliştirilen Unimatic ve Unicode.

Michigan Üniversitesi’nde bu tür diller arasındaki uyumluluk problemleri üzerinde çalışıyoruz. İlk görevimiz, bu dillerin en basit olanının (IT) Üniversiteye kurulması planlanan yeni bir makine için sürümlerini geliştirmektir. Bununla eşzamanlı olarak, örneğin IT’den Fortran’a genelleştirilmiş çeviri yöntemleri üzerine bir inceleme yürütülmektedir.

Ulaşmak istediğimiz genel hedef, bir bilgisayarın kendisinin bu tür dillerden herhangi birinden diğerine otomatik olarak bir çevirici oluşturabileceği genel bir yöntemdir. Bu durumda, bu diller arasında tam uyumluluk bir gerçeklik hâline gelecektir. (Carnegie Tech, Case Institute, IBM–New York, Sperry Rand–Philadelphia gibi birçok başka laboratuvar da aynı problem üzerinde çalışmaktadır.)

Çoklu Makine Problemi

Bilgisayar yapısından ziyade dillere vurgu yapma tekniğinin bazı pratik değerlendirmeleri, Michigan Üniversitesi’nde aşağıdaki problemin önerilen çözümünde görülebilir:

“Şu anda kampüste bir IBM-650 bilgisayarı kullanılmaktadır. Yaklaşık olarak 1 Ağustos 1958 civarında bir Type 701 bilgisayarının kurulması planlanmaktadır. Type 701’in yerine geçmek üzere Mart 1959 civarında bir IBM-704 bilgisayarı programlanmıştır. Bu bilgisayarlar tamamen farklıdır; makine dilinde yazılmış programlar birbirleriyle uyumlu değildir; komut yapıları farklıdır; aritmetik farklıdır. Bu bilgisayarları, ayrılacakları güne kadar ve bir sonraki makinenin geldiği gün de dâhil olmak üzere, problemleri değiş tokuş ederek ve yine de verimli bir şekilde kullanmak istenir. Bu mümkün müdür?”

Bizce yanıt “evet”tir ve Şekil 1’de yer almaktadır. Çözüm, Type 704 için sözde dil olan Share Assembly Program’ın komut listesinin bir alt kümesi olan bir “çekirdek-SAP” dili gerektirir. Bu dil, hem Type 701 hem de Type 704 üzerinde çalıştırılabilir olacaktır.

İlk görev, bu çekirdek-SAP diliyle bir SAP’ten 701’e çevirici yazmak olacaktır. Bu çevirici hemen en yakın 704’e götürülüp sınanabilir. Daha sonra, 701 makinesi teslim edilmeden çok önce, kendisini 701 diline çevirmek için hemen kullanılabilir.

Benzer şekilde, IT’den 701’e çeviri de çekirdek-SAP diliyle yazılırsa, o da 704 üzerinde 701 diline ve ayrıca 704 diline çevrilebilir.

Bu yöntem tamamen pratiktir; çünkü 704 genellikle (ancak tamamen değil) 701’in genişletilmiş bir sürümüdür. Aynı çekirdek-SAP dilinin Type 650 ile de kullanılabilmesi için benzer bir adımlar dizisinin uygulanıp uygulanamayacağı hâlen belirsizdir.

Eğer uygulanabilirse, öğrenciler mevcut bir bilgisayar üzerinde hemen eğitime başlayarak, gelecek Ağustos’ta kullanılacak olan bir sonraki makinenin ve 1959’daki üçüncü bir makinenin dillerini öğrenebilirler. Bunun avantajları açıktır.

(Lütfen 25. sayfaya bakınız)

(22. sayfadan devam)

Verimlilik

Verimlilik sorunları, çeviri teknikleri yerine el ile programlamanın sürdürülmesine güçlü biçimde inanan programcılar tarafından sık sık vurgulanmıştır. Bunun için birkaç teknik önerilmiştir. Fortran ile kullanılan, ancak henüz yayımlanmamış olan bir yöntem, bilgisayar dilinin temel dönüşüm kurallarından yararlanır.

Bu tür tekniklerin yayımlanmış tek açıklamaları, Ianov, Kantorovich, Markov ve Razumovskii dâhil olmak üzere saygın Sovyet matematikçilerin bir dizi makalesidir. Bu raporlar son derece kısadır; ancak dil çevirisi, otomatik programlama ve otomatik matematiksel analiz üzerine yoğunlaşmış yüksek düzeyde bir Sovyet çabasına işaret ettiği şeklinde yorumlanabilir—Birleşik Devletler bilgisayar kullanıcılarının henüz girmediği bir alan.

Bu alanda makine kullanıcısı için önemli yeni fikir, bu genelleştirilmiş çevirmenleri kurmak için gerekli kuramsal çalışmanın büyük bölümünün matematiksel mantıkçılar tarafından zaten geliştirilmiş olduğudur. Turing, Post, Markov ve diğerleri gibi matematiksel mantıkçılar tarafından çok yararlı simgeler ve çeviri algoritmaları incelenmiştir.

Matematiksel mantık, bu tür genelleştirilmiş dillerin, bunların nasıl çevrileceğinin, sembol dizilerinin doğruluğunun nasıl belirleneceğinin vb. biçimsel incelemesidir.

Günümüzün ortalama bilgisayar programcısının geleceğinin, dilleri kullanan bu yeni tekniklerin mantıksal-matematiksel doğasına uyum sağlama yeteneğine bağlı olarak yükseleceği ya da düşeceği açıktır. Programcıların temel becerileri—bilgisayar programlama verimliliği—makinelerin kendi yetenekleri tarafından gölgede bırakılmaması için, sürekli yetişkin eğitimi, iş başında eğitim ya da tazeleme kurslarına duyulan gereksinim son derece açıktır.

Programcılar, ayrıntıların bilgisayarların kendileri tarafından ele alınacağı bir ortamda hayatta kalabilmek için, ayrıntıdan ziyade problem stratejisinin bütünsel sorunlarıyla başa çıkabilecek düzeyde kendi eğitim seviyelerini yükseltmelidir.

Öğrenme

Dijital bilgisayar kullanıcılarının derinlemesine ilk kez girmekte oldukları yeni bir alan öğrenme kuramıdır. Bu alan uzun süre yalnızca psikologların uğraş alanı olmuştur; ancak dijital bilgisayar, insanlara ilk kez öğrenme süreçlerini yalnızca analiz etmekle kalmayıp sentezleme olanağı da vermektedir.

Strachey, Samuel, Ulam, Keister ve başkaları tarafından dama ve son zamanlarda satranç gibi oyunların incelenmesi, basit öğrenme modellerinin programlara dâhil edilmesine olanak sağlamıştır. Bu tür yöntemler yetkinleştirildiğinde, bilgisayarla problem çözmenin her türünde kullanılmaya başlanacaktır.

“Endüktif davranış”, bir teorem ispatlama programı biçiminde, Newell ve Simon tarafından henüz geliştirilmiştir. Bu tür yöntemler anlaşılabilir ve genişletilebilirse, makinelerin yalnızca karar vermekle kalmayıp, kararların nasıl verilmesi gerektiğini planlamaya da başlaması mümkün olabilir.

İlk bakışta, etkinlikleri kullanıcısı tarafından “tamamen anlaşılan” bilgisayar gibi mekanistik bir aygıtın oyun oynaması, teoremler ispatlaması ya da insanlara herhangi bir biçimde benzer davranışlar sergilemesi—yapıları bakımından açıkça çok daha karmaşık ve neredeyse tamamen anlaşılamamış olan insanlara—ilk anda gülünç görünmektedir.

Ancak, bu dünyadaki insanlar ve diğer organizmalar üzerinde bir dizi deney yapsaydık, büyük bir benzerlik bulurduk:

  1. Bir adam araba kullanmaktadır. Kırmızı ışığı görür (bir sembol girdisi) ve ayağını frene basar (bir sembol çıktısı).
  2. Bir adam bir restorandadır. Garson “Ne alırsınız?” der (bir sembol dizisi girdisi); o da “Kahve” diye yanıt verir (bir sembol çıktısı).
  3. Bir posta siparişi firmasının sevkiyat bölümüne bir mektup gelir (bir sembol dizisi girdisi); depoya bir sevkiyat emri çıkar (bir sembol dizisi çıktısı).
  4. Bir programcı bir dizi denklem alır (semboller girdisi) ve bir makine kodu yazar (semboller çıktısı).
  5. Bir teknenin kaptanı yanağında bir rüzgâr esintisi hisseder (bir sembol girdisi); yoldaşına bir yelkeni çekmesini söyler (bir sembol dizisi çıktısı).
  6. Bir bankacı bir gazetede bir manşet okur (bir sembol girdisi); bir komisyoncuya telefon eder ve 1000 hisse satar (bir sembol çıktısı).
  7. Bir matematikçi bir dergide bir makale okur (bir sembol dizisi girdisi); bir varsayım yazar (semboller çıktısı).

Bilgisayar kullanıcılarının çoğu, dijital bir bilgisayarın 3 numaradaki organizmanın yerine tatmin edici biçimde geçebileceğini; isteksizce de olsa 4 numarada; ancak diğerlerinin hiçbirinde geçemeyeceğini söylemeye hazırdır.

Bununla birlikte, dili girdi olarak alıp dili çıktı olarak verme eylemini sembol manipülasyonu olarak adlandırmak istiyoruz; bu, görünüşe göre tüm canlı organizmaların, birçok büyük insan yapımı örgütün ve genel amaçlı dijital bilgisayarların sahip olduğu bir yetenektir.

Evrensel Makineler

Mantığın temellerini incelemenin yanı sıra birkaç İngiliz dijital bilgisayarının tasarımına ilk katkılarda bulunan Britanyalı mantıkçı A. M. Turing, günümüzde Evrensel Turing Makinesi olarak adlandırılan bir makinenin, çok az sayıda iç duruma ve birkaç basit yeteneğe (bir “sıfır” ya da “bir” okuma, bir “sıfır” ya da “bir” yazma, bir sonraki okuma ya da yazma konumuna geçme) sahip olarak, kaç sembol okuyup yazabildiğinden, kaç iç duruma sahip olduğundan ya da içsel olarak ne kadar karmaşık olduğundan bağımsız biçimde, diğer herhangi bir makine gibi davranabileceğini göstermiştir.

İnsanlar, sevkiyat bölümleri, matematikçiler ve dijital bilgisayarlar üzerindeki deney ve gözlemlere dayanarak, kesin olarak söylenebilecek tek şey, sembolleri aldıkları ve buna karşılık başka semboller verdikleridir. Dolayısıyla, Turing’in evrensel makinelerle ilgili kanıtına dayanarak şu varsayımı ileri sürmek mümkündür:

  1. İnsanlar dâhil canlı varlıkların iç yapısı, soyut olarak bir sembol manipülatörü şeklinde tanımlanabilir.
  2. Canlı varlıkların tüm eylemleri, yeterince anlaşıldıklarında, yeterli kaynağa sahip olması koşuluyla, böyle bir sembol manipülatörü için yazılmış bir programla tanımlanabilir.
  3. Dijital bilgisayarlar sembolleri manipüle edebilir; her ne kadar şu anda yalnızca kaba bir biçimde olsa da, Evrensel Turing Makinelerinin tüm özelliklerine sahiptirler.
  4. Dolayısıyla dijital bilgisayarlar, kendi kaynakları (hız ve depolama) dâhilinde, kahve sipariş etmekten teoremler hakkında varsayımda bulunmaya kadar insan davranışını kopyalayabilir.

Bu varsayım doğruysa ve günümüzde bilgisayar kullanıcılarının üzerinde çalışabileceği daha iyi bir işlevsel hipotez bulunmuyor gibi görünüyorsa, elektronik bilgi makineleriyle sembol manipülasyonu alanı en yüksek olası getiriyi sağlayabilir.

Bir sınır alanında bireyler olarak dijital bilgisayar kullanıcıları, makine geliştirme ve kullanımının son birkaç yılında edinilmiş yeteneklere göre ikonoklastik olsa bile, her türlü yeni ya da alışılmadık fikre son derece hoşgörülü olma eğiliminde olmalıdır. Kullanıcılar, önerilen her yeni sınır girişimini yalnızca kendi değerleri üzerinden deneyimlemeli ve değerlendirmelidir.

Programcılar İçin Gelecek

Tüm bu sınır çalışmaları, bugün “programcı” olarak adlandırılan profesyonel bilgisayar kullanıcısının gelecekteki eğitimine giden yolu göstermektedir. Bilimsel problemlerle uğraşıyorlarsa sayısal analiz yapabilecek matematiksel yetkinliğe sahip olmalı; iş problemlerinde ise büyük sistemlerin yapısını ve denetimini anlamalıdırlar. Bunun ötesinde,

biçimsel dillerin, bunların arkasındaki mantıksal kuramların ve bilgisayarların kendi kendini geliştirmesini ya da “öğrenmesini” tanımlayan matematiğin işlevsel bir anlayışına sahip olmalıdırlar. Bu arka plan, mevcut bilgisayar programcıları için bir meydan okumadır; onların eğitimi, makineleri günümüzde anlaşıldığı anlamda kullanmayı öğrendiklerinde gerçekten başlayabilir.

Milyonlarca dolarlık donanımlar kuramsal olarak yalnızca karar vermekle kalmayıp, kararların nasıl verilmesi gerektiğini planlayabilecek durumdadır. Ayrıca, çevrelerine dayanarak kendi performanslarını iyileştirebilecekleri de kuramsal olarak mümkündür. Bu nedenle, bu tür makinelerin verimli kullanımı, kullanıcılarının makinelerin bu alanlardaki yetenekleri hakkında yeterince bilgi sahibi olmasını ve makinelerin kullanımını kuram alanından günlük performans düzeyine indirmesini gerektirir.