paint-brush
Yapay Zekada Rho-Hesabının Durumuile@f1r3flyceo
2,508 okumalar
2,508 okumalar

Yapay Zekada Rho-Hesabının Durumu

ile Lucius Meredith13m2023/02/03
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Zihin teorisi, beynimizin mimarisini kolonileştiren belirli bir hesaplama modelini mi dikte ediyor?
featured image - Yapay Zekada Rho-Hesabının Durumu
Lucius Meredith HackerNoon profile picture


Beynin Kolonizasyonu Olarak Bilinç

Bu kuşağın en orijinal düşünürlerinden biri olan Joscha Bach ile yakın zamanda yapılan bir sohbette, mobil eşzamanlılığın yapay genel zekayla çeliştiği yönünde şaşırtıcı bir iddiada bulundu. Bu bağlamda mobil eşzamanlılık, etmenlerin (diğer bir deyişle hesaplamalı süreçler) birbirlerini keşfedebildiği zaman bulunan eşzamanlılık türü anlamına gelir; bu da iletişim topolojisinin (kim kimi biliyor ve kimin kiminle konuştuğunu) gelişmesidir. Bu model, hesaplamalı öğelerin anakarttaki bileşenler gibi birbirine lehimlendiği bir modelden çok farklıdır. Mobil eşzamanlılık daha çok, ilk kez tanışan kişilerin birbirlerinin web sitelerini, e-posta adreslerini ve telefon numaralarını öğrendikleri İnternet veya telefon ağlarına benzer. Joscha'nın argümanı, beyinlerin yalnızca plastik olduğu, yani nöronlar arasındaki bağlantıların yalnızca öğrenme sırasında değiştiği, ancak genel hesaplama sırasında değişmediği yönünde.


Kendi kuşağının en orijinal düşünürlerinden biri olan Joscha Bach , mobil eşzamanlılığın yapay genel zekayla çeliştiği yönünde şaşırtıcı bir iddiada bulundu


Bu önermeye cevabım, zihnin, beynin donanımı üzerinde çalışan mantıksal bir hesaplama modelinde barındırılmadığını varsaymasıdır. Sonuçta Java sanal makinesi (JVM), üzerinde çalıştığı donanımdan çok farklı bir hesaplama modelidir. Haskell'in hesaplama modeli, hesaplama fikrinin, muhteşem Haskell derleyicisinin ( GHC ) tipik olarak barındırıldığı donanımda yer alan modelden çok daha dramatik bir varyasyonudur. Zihin neden bu şekilde organize olmasın? Joscha'nın grafik metaforunu kullanacak olursak, neden zihin kendisini beynin donanımında barındıran kolonileştirici bir hesaplamalı model olarak ortaya çıkmasın? Eğer öyleyse, rho-hesaplamanın bir uygulaması olan rholang, başlangıç olarak Intel ve AMD çiplerinde barındırılıyor ve bunların hesaplama modelleri, rho-hesaplamanın yakaladığı modelden çok farklı.


Özellikle, rho-hesabı mobil eşzamanlı hesaplama için doğrudan destek sağlar. Rho-hesabında yürütülen süreçlerden oluşan bir toplum arasındaki iletişim topolojisi dinamiktir. Bu toplumda kimin kimi tanıdığı ve kiminle konuşabildiği hesaplama süreci boyunca değişmektedir. Rho-hesabı hakkında bu şekilde düşünmek, rho-hesabı gibi bir modelin insan beyninin, aslında bir beyni destekleyen herhangi bir beynin donanımında barındırıldığını ve kolonileştirildiğini varsaymak için çok iyi nedenlerin olduğu yönündeki iddiamın habercisidir. akıl teorisi.


Kod, Veri ve Hesaplama

Bu iddiayı ortaya koymak için, bırakın her geliştiriciyi, her bilgisayar bilimcisinin bile yapmadığı bazı ayrımlara değinmek istiyorum. Kod, veri ve hesaplama arasında ayrım yapıyorum. Rasgele kod, hesaplama modelinin ifade edildiği veya barındırıldığı bazı veri yapısının bir örneği olan bazı veriler olarak ele alınabilir. Örneğin, Haskell gibi Turing-tam bir hesaplamalı modeli , bağlamdan bağımsız bir dilbilgisi aracılığıyla ifade edilen bir terim dilinde, örneğin iyi biçimlendirilmiş Haskell programlarının dilbilgisinde barındırabilirsiniz. Ancak bağlamdan bağımsız gramerlerin Turing açısından tam olmadığını biliyoruz. Bu nasıl olabilir? Turing-tamamlanmış modellerden daha az anlamlı olduğu kanıtlanabilen bir şey nasıl Turing-tamamlanmış hesaplamayı temsil edebilir?


Unsplash'ta Walkator'ın fotoğrafı



Sözdizimi ve anlambilim arasındaki ayrımın kalbine iniyor. Dil teriminin grameri, hesaplamanın dinamiklerini , yani kodun anlambilimini değil, programların sözdizimini ifade eder. Bunun yerine, hesaplamanın dinamikleri, (sözdizimi üzerinde işleyen) kuralların belirli bir sözdizimi parçasıyla, yani kişinin gerçekleştirmek istediği hesaplamayı temsil eden bazı kodlarla etkileşimi yoluyla ortaya çıkar. Lambda hesabında (Haskell'in dayandığı hesaplama modeli), hesaplamanın en önemli gücü beta indirgeme adı verilen bir kuraldır. Bu kural, kodda meydana gelen değişkenlerin yerine verileri koyma eylemi yoluyla bir fonksiyonun veriler üzerindeki çalışmasını temsil eder. Üzerinde çalıştığı veriler, bir fonksiyonun verilere uygulanmasının sözdizimsel bir temsilidir, ancak fonksiyonun verilere uygulanmasına karşılık gelen hesaplama değildir. Bu hesaplama, beta indirgeme sözdizimi üzerinde çalıştığında ve onu yeni bir sözdizimi parçasına dönüştürdüğünde gerçekleşir. Bu ayrım, Turing-tamamlanmış modellerden daha az anlamlı olan modellerin (örneğin, bağlamdan bağımsız gramerler) Turing-tamamlanmış hesaplamayı nasıl barındırabileceğidir.


Turing-tamamlanmış modellerden daha az anlamlı olduğu kanıtlanabilen bir şey nasıl Turing-tamamlanmış hesaplamayı temsil edebilir? Sözdizimi ve anlambilim arasındaki ayrımın kalbine iner. Dil teriminin grameri, hesaplamanın dinamiklerini, yani kodun anlambilimini değil, programların sözdizimini ifade eder.


Konuyu daha fazla uzatmak istemem ama aynı ayrım Java ve JVM'de de oluyor. JVM'deki hesaplamanın dinamikleri, kodun temsiliyle birlikte sanal makinedeki kayıtların bir kombinasyonu üzerinde çalışan kurallar aracılığıyla gerçekleşir. Bir Java kodu parçasına bakan bir Java programcısı hesaplamaya bakmıyor. Ne münasebet. Bir Java programının sözdizimi, kodun çalıştırıldığı andaki JVM kayıtlarının durumuna bağlı olarak ortaya çıkan, muhtemelen farklı hesaplamaların tamamına açılan bir penceredir. Bu iki değerlendirme biçimi arasındaki fark, lambda hesabındaki beta azalmasına karşı JVM'nin geçişleri çok önemlidir ve buna geri döneceğiz.


Ancak şimdilik kod ile hesaplama arasındaki bu ayrımı düşünmenin bir yolu fizikle bir benzetme yapmaktır. Geleneksel olarak fizik yasaları üç şeyle ifade edilir: fiziksel durumların bir temsili (bunu programların sözdizimi olarak düşünün), durumların zaman içinde nasıl değiştiğini söyleyen hareket yasaları (bunu sözdizimi üzerinde işleyen kurallar olarak düşünün) ; ve başlangıç koşulları (bunu çalıştırmak istediğiniz belirli bir kod parçası olarak düşünün). Bu açıdan bakıldığında fizik, yürütülmesi fiziksel dünyanın gözlemlerimize dayalı olarak gelişme biçimine belirli bir şekilde karşılık gelen özel amaçlı bir programlama dili olarak görülmektedir. Fizik test edilebilir çünkü bir programı çalıştırmamıza ve bazı başlangıç durumlarından hareket yasaları yoluyla ulaştığı bir duruma doğru evrimin gözlemlerimizle eşleşip eşleşmediğini görmemize olanak tanır. Özellikle, fiziksel dünyayı başlangıç durumumuza uygun bir konfigürasyonda gördüğümüzde, hareket yasalarımızın söylediğine uygun bir evrim sürecinden geçiyor mu ve hareket yasalarımızın söylediği duruma mı iniyor? olması gerekiyor? Fiziğin bu şekle sahip olması onu kodda etkili bir şekilde temsil edebilmemizin nedenidir.


Fizik analojisi, lambda hesabı, π-hesabı veya rho-hesabı gibi hesaplama modellerini, JVM'nin geçişleri gibi modellere karşı tam bir rahatlık içinde koyar. Bir Java kodu parçasına baktığınızda, onun nasıl davranacağını anlamak için gerekli tüm bilgilere sahip olmazsınız. JVM'nin durumuna bağlı olarak aynı Java kodu parçası çok farklı davranabilir. Bunun tersine, yukarıda sözü edilen hesaplamalı hesaplamalar, biçim ile işlev arasında uyum sağlar. Bir ifadede ne görüyorsanız onu alırsınız. Fizik açısından bakıldığında, bir bilim insanı olarak tersine mühendislik yapmanız gereken tek şey hareket yasaları, yani hesaplama kurallarıdır. Bir sürü gizli durumu tahmin etmenize gerek yok.


Kod ve hesaplama arasındaki ayrımı gördüğümüzde, kod ve veri arasındaki ayrım, biraz incelikli olsa da, nispeten sezgiseldir. Bir bilgisayar programındaki veriler de yalnızca söz diziminden ibarettir. Bu anlamda sadece söz dizimi olan koddan hiçbir farkı yoktur. Her Lisp programcısı, bir şekilde kodun veri, verinin de kod olduğu fikrini anlıyor. Java bile Java kodunun Java nesneleri olarak değiştirilebildiği bir tür metaprogramlamayı destekler. Soru şu: Kod ve veri arasında gerçek bir ayrım çizgisi var mı?


Cevap kesin bir evet. Veri, çok spesifik özelliklere sahip olan koddur; örneğin, kod her zaman kanıtlanabilir bir şekilde sona erene kadar çalışır. Tüm kodlar bunu yapmaz. Aslında, Turing'in Entscheidungs problemine ilişkin ünlü çözümü bize, genel olarak, belirli bir ifade kalitesine, yani Turing-tamlığına sahip bir dil için bir programın ne zaman duracağını bilemeyeceğimizi göstermektedir. Ancak, daha az ifade edici diller vardır ve Turing-tamamlanmış diller, dilin tamamından daha az ifade edici olan uygun alt dillere veya parçalara sahiptir. Veriler, bir sözdizimi parçasıyla ilişkili hesaplamanın duracağının kanıtlanmasına olanak tanıyan sözdiziminde bulunur. Benzer şekilde veriler, hesaplamanın yalnızca sonlu dallanmadan yararlanacağını kanıtlamaya olanak tanıyan sözdiziminde bulunur.


Programcılar bu gibi veriler hakkında düşünmezler, yalnızca verileri gördüklerinde bilirler. Ancak yerleşik veri türleriyle donatılmayan lambda hesabı gibi hesaplama modellerinde her şey, hatta sayma sayıları veya Boolean değerleri, doğru ve yanlış gibi şeyler bile kod olarak temsil edilir. Hangi kodun veri, hangisinin genel amaçlı program oluşturduğunu seçmek, kodun yukarıda tartıştığımız türde özelliklere sahip olduğunu tespit edebilmekle ilgilidir. Genel olarak bu gibi özellikleri tespit edebilen sistem türleri bulunmaktadır. Yine, bu incelikli bir konudur, ancak neyse ki, tüm incelikleri anlamamıza ya da veri ile kod arasındaki ayrım çizgisinin tam olarak nerede olduğunu anlamamıza gerek yok, sadece bir tane var.

Özetle, kod ve verilerin her ikisi de yalnızca bir kuralın veya birçok kuralın üzerinde çalışacağı durumu temsil eden sözdizimidir. Veriler, sözdiziminin koddan daha az anlamlı bir parçasıyla ifade edilir ve ona kodun her zaman hoşlanmadığı kesin veya sonlu bir karakter verir. Hesaplama, bazı kuralların bir durumun temsiliyle etkileşime girmesiyle ortaya çıkan evrim sürecidir. Şimdi, tüm bunların yapay zekayla, zihinle ve hatta rho-matematikle ne ilgisi var?


Zekanın Tanımlayıcı Bir Özelliği Olarak Yansıma

Rho-matematik, hesaplama ve kod arasındaki ayrımın sözdizimsel bir temsiline sahiptir. Bir hesaplamanın üzerinde çalışılabilecek şekilde bir kod parçası olarak paketlenip yeni koda dönüştürülmesini ifade eden bir işlemi vardır. Ayrıca bir kod parçasını tekrar hesaplamaya dönüştürme işlemi de vardır. Vay, bunun bir sonraki seviye saçmalık olduğunu söyleyebilirsin. Ancak bahsettiğimiz gibi Lisp programcıları ve Java programcıları bu tür metaprogramlamayı uzun süredir yapıyorlar. Onlar zorunda. Bunun nedeni ölçekle ilgilidir. İnsan ekiplerinin milyonlarca ve milyonlarca kod satırı içeren kod tabanlarını otomatik destek olmadan yönetmesi imkansızdır. Bilgisayar programları yazmak için bilgisayar programlarını kullanırlar. Bilgisayar programı dağıtımları oluşturmak için bilgisayar programlarını kullanırlar. Metaprogramlama günümüz dünyasında bir zorunluluktur.


Smith'in argümanı, zihnin kendi sürecine bakabilme yeteneği olan iç gözlemin zekanın temel bir özelliği olduğu yönündedir. Hatta bazıları için bu zekanın belirleyici özelliğidir.


Ancak 80'lerde, yani yapay zekanın hala ilk günlerinde, Brian Cantwell Smith adlı bir araştırmacı, yapay zeka ve yapay zekaya yakın alanlarda çalışan diğer birçok insanda ve bende yankı uyandıran bir gözlem yaptı. Smith'in argümanı, zihnin kendi sürecine bakabilme yeteneği olan iç gözlemin zekanın temel bir özelliği olduğu yönündedir. Hatta bazıları için bu, zekanın tanımlayıcı özelliğidir. Smith, hesaplamalı yansıma olarak adlandırdığı bu iç gözlem fikrini somut hale getirmek için, rho-matematikteki operatörlerin aynısına sahip olan 3-Lisp adında bir programlama dili tasarladı. Spesifik olarak, 3-Lisp, bir hesaplamanın koda dönüştürülmesini temsil eden bir sözdizimine ve kodun çalışan hesaplamaya geri yansıtılmasına yönelik bir sözdizimine sahiptir.


Bugünün geliştiricilerinin karşılaştığı ölçek sorunu ile düşünen varlıklar olarak yansıtıcı, iç gözlemsel kapasitemizi modelleme sorunu arasında bir bağlantı olduğundan şüphelenmek için iyi bir neden var. Özellikle, kendi akıl yürütmemizi temsil etmenin karmaşıklığını yönetmek, hesaplamalı yansımanın varlığında izlenebilir hale gelir. Daha iyi akıl yürütme elde etmek için tüm algoritmik hilelerimizi kendi akıl yürütmemizin temsillerine uygulayabiliriz. Bu gözlem, evrimci biyologların zihin teorisi olarak adlandırdığı bağlamda daha da güçlendirilmektedir.


Özellikle iç gözlem, başkalarının, özellikle de kendi türünüzün üyelerinin davranışlarını hesaplamalı olarak modelleyebilmenin sağladığı evrimsel avantajdan kaynaklanır. Eğer Alice, Barbara'nın davranışını modelleme yeteneğini geliştirirse ve Barbara Alice'e oldukça benzerse (aynı türde, aynı kabilede, hatta aynı geniş aile yapısında olduğu gibi), o zaman Alice, Alice'in davranışını modellemeye çok yakındır. Ve Alice, Barbara Alice ile etkileşim halindeyken Barbara'nın davranışını modellemeye ihtiyaç duyduğunda, o zaman Alice doğrudan Alice'in davranışını modellemeye dahil olur. Bunu Alice'in aile birimini veya kabilesinin davranışlarını modelleyebileceği bir ölçeğe çıkarmak, işlerin gerçekten ilginç hale geldiği yerdir. Kısaca bu konuya daha fazla değinmekle birlikte şimdilik, hesaplamalı yansımayla ilgili bir şeyin, kelimenin iki anlamında geniş ölçekte akıl yürütmeyi geliştirmekle ilgili olduğunu görebiliriz: (karmaşıklık ölçeği) akıl yürütmeyi kendisine uygulayarak akıl yürütmeyi geliştirmek ve (toplumsal ölçek) ) çok sayıda akıl yürütme aracısı hakkında akıl yürütmeyi geliştirmek.


Aslında Smith'in hesaplamalı yansıma ve bunun zekadaki rolü ve programlama dillerinin tasarımı hakkındaki fikirleri, şeyleştirme ve yansımayı ilkel hesaplamalı operatörler olarak alan rho-matematik tasarımı için bir ilham kaynağıydı. Bununla birlikte, 3-Lisp ve rho-calculus'un ortak noktası, 3-Lisp'in kesinlikle sıralı olmasıdır. Etkileşim kurarken ve koordine ederken bağımsız olarak çalışan özerk bilgi işlem süreçlerinden oluşan bir toplumu makul bir şekilde temsil etmenin hiçbir yolu yoktur. Ancak zihin teorisi bağlamında, bu tam da bir akıl yürütücünün yapması gereken şeydir. Bağımsız hareket eden, aynı zamanda iletişim kuran ve koordine eden özerk aktörlerden oluşan, sosyal bağlamlarının açık bir modeline ihtiyaçları var.


Rho-Hesap: 3-Lisp'ten Zihin Toplumuna

Smith'in hesaplamalı yansıma fikirlerini geliştirdiği sıralarda, Marvin Minsky de ünlü Zihin Derneği tezini geliştiriyordu. Benim Minsky'nin önerisine ilişkin düşüncem, zihnin ABD Kongresi ya da başka herhangi bir müzakereci organ gibi bir şey olduğudur. Hepsi farklı kaynaklar (vergi tabanından finansman gibi) için yarışan bir grup bağımsız temsilciden oluşur. Bilinçli bir karar olarak düşündüğümüz şey, daha çok, bir grup bağımsız, özerk fail arasında gerçekleşen ve genellikle bilinçli deneyimin çok altında devam eden uzun bir müzakere sürecinin sonucu gibidir. Ancak müzakere süreci bağlayıcı bir oyla sonuçlanır ve bu bağlayıcı oy, bilinçli bir karar olarak deneyimlenen şeydir.


Unsplash'ta Simon Kadula'nın fotoğrafı


Hesaplamaların çoğunu bilinçli akıl yürütmenin dışına koyan bu görüş, zihnin özünde, aslında tanımsal olarak yansıtıcı olduğu görüşüyle nasıl uzlaştırılabilir? Rho-hesabı bu sorunun cevabı akılda tutularak tasarlandı.


Rho-matematik, hesaplama aracılarının yalnızca altı şekilde geldiğini söylüyor:


  • 0 - hiçbir şey yapmayan durdurulmuş veya boş aracı;
  • for( y <- x )P - x kanalını dinleyen aracı, P aracısı olmadan önce y değişkenine bağlanacak veriyi bekliyor;
  • x!( Q ) - x kanalına bir parça kod/veri gönderen aracı;
  • P|Q - eşzamanlı olarak, özerk bir şekilde çalışan, P ve Q olmak üzere iki aracının gerçekte paralel bileşimi olan aracı;
  • *x - x tarafından belirtilen kodu çalışan bir hesaplamaya geri yansıtan aracı


Bu yapılardan üçünün nasıl x sembolünü kullandığına dikkat edin. Bunlardan ikisi x'i aracılar arasındaki iletişim için bir kanalmış gibi kullanıyor ve içlerinden biri x'i sanki bir kod parçasına referansmış gibi kullanıyor. Rho-hesabının elindeki tek sihir numarası, kanalların bir kod parçasına referans olmasıdır. Alışmak biraz zaman alıyor ama zamanla oluyor.


Alice'in sosyal bağlamının dışarıdan gözlemcileri olarak, onun davranışını her bireyin davranışının paralel bir bileşimi olarak yazabiliriz. Sembollerde P1 | P2 | … | Pn burada Pi, Alice'in sosyal bağlamındaki i'inci bireyin modelidir. Şimdi, Alice'in davranışına ilişkin bir modelin, kendi davranışıyla ilgili akıl yürütmeyi temsil etmesi için paralel kompozisyonun bir temsiline ihtiyacı var. Sembollerde bu @( P1 | P2 | … | Pn ).


Rho-matematik hakkında sadece bu kadar bilgiyle donanmış olarak Alice hakkındaki hikayemize geri dönebilir ve onun gelişmekte olan sosyal ve içebakışsal zekasının karşı karşıya olduğu tüm zorlukların cimri temsillerini bulabiliriz. Alice'in sosyal bağlamının dışarıdan gözlemcileri olarak, onun davranışını her bireyin davranışının paralel bir bileşimi olarak yazabiliriz. Sembollerde bu P1 | P2 | … | Pn, burada Pi, Alice'in sosyal bağlamındaki i'inci bireyin modelidir. Şimdi, Alice'in davranışına ilişkin bir modelin, kendi davranışıyla ilgili akıl yürütmeyi temsil etmesi için paralel kompozisyonun bir temsiline ihtiyacı var. Sembollerde bu @( P1 | P2 | … | Pn ). Alice'in bu veriyi erişebileceği bir yere yerleştirmesi için modeli x!(P1 | P2 | … | Pn) kanalına koyar ve onu alması gerektiğinde çalıştırır.


for( y <- x )AliceMeslektaşları HakkındaDüşünüyor( y ) | x!( P1 | P2 | … | Pn )


Ruhsal olarak lambda hesabının beta indirgemesine çok benzeyen rho-matematiğindeki ağır hesaplama kuralı, bunun gibi bir ifadenin şu şekilde gelişmesidir:


AliceMeslektaşları Hakkında Düşünüyor( @( P1 | P2 | … | Pn ))


Yani artık Alice'in meslektaşları hakkındaki düşünceleri, onların davranışlarının açık bir temsilini Alice'in kullanımına sunmuştur. Bununla, P1 |'in davranışını simüle ederek meslektaşlarının davranışını simüle edebilir. P2 | ... | @( P1 | P2 | ... | Pn ) işlemleri aracılığıyla Pn. Alice'i meslektaşının gerçek davranışını gözlemleyerek Alice | P1 | P2 | ... | Pn. Alice simülasyonunu gözlemleriyle karşılaştırabilir. Aslında modelleyebildiğimiz her şey, Alice'in hem çalıştırması hem de verilerde somutlaştırması ve kodu ve onun simülasyonlarını, sosyal bağlamının gerçek davranışına ilişkin gözlemlediği şeylerle karşılaştırması için de mevcuttur. Buna Alice'in kendi davranışı da dahildir.


Bu biraz hızlı geçmiş olabilir ama bir düşünün. Bu, Alice'in hem sosyal bağlamını hem de bu bağlam içindeki kendisini eş zamanlı olarak modellemesi için gereken en küçük işlemler dizisidir. Özellikle, kendi davranışı bu iplikleri verilere dönüştürdüğünde ve işlemesi bu verilerle etkileşime girdiğinde, iplikler Alice için "bilinçli olarak erişilebilirdir". Bu argüman, rho-hesabı için tasarım tartışmalarının bir parçasıdır. Bu, Smith'in hesaplamalı yansıma argümanları ile Minsky'nin, evrimsel biyolojinin zihin teorisine sahip organizmalar hakkındaki açıklamasına uyan Zihin Toplumu argümanlarını uzlaştıran en küçük hesaplama modelidir. Daha küçük olan herhangi bir şey, durumun önemli bir bileşenini gözden kaçırıyor.


Düşmanla Karşılaştık ve Onlar Biziz.

Bu argüman, rho-hesabı gibi bir hesaplama modelinin Alice'in beynindeki donanımda satın alınmasının neden makul olduğunu açıklıyor. Kendi sosyal bağlamlarının davranışlarını modellemek için yarışan türünün diğer üyeleriyle rekabet edebilmek için bu modelin tüm unsurlarına ihtiyacı var. Bu nedenle, Joscha'nın görüşünün tam tersine, mobil eşzamanlılığın yapay genel zekanın kalbinde yer aldığını savunuyorum.


Ralph Benko'ya şaşmaz derecede zekice editoryal yorumları için çok teşekkür ederiz!