LinkedIn FriendFeed Twitter

Feza Gürsey Enstitüsü Yoğun Programlı Dersler

by Ordinaryus 1. August 2010 00:30

Yaklaşık 6 aydır beklemekte olduğum ve katılmak konusunda planlarımı çok önceden yapmaya başladığım eğitim geldi çattı. Yaklaşık 6 saat sonra bu eğitime katılmak için üsküdara gidiyor olacağım.

Faz Geçişleri ve Renormalizasyon grubu eğitiminin uzun vadede yapacağım Research üzerine çok fazla katkı sağlayacağını düşünmekteyim ve benim için önemli bir eğitim programı.

Feza Gürsey hakkında fizikçi arkadaşlarımdan pek çok şey duydum yoğun program, ödevler kısa sınavlar vs daha bir sürü etkenden dolayı yorucu ve stresli geçtiği söyleniyor. Ben tatilimden bu eğitim için vazgeçtim beklentilerim yüksek. Kısaca eğitimin sayfasında alıntı yaparak bu eğitimi tanıtayım.

Lisans 3. ve 4. sınıf öğrencilerine yönelik


FAZ GEÇİŞLERI ve RENORMALİZASYON GRUBU

(Massachusetts Institute of Technology Physics 8.334)

Haluk Özbek, İSTANBUL TEKNİK ÜNİVERSİTESİ
Nihat Berker, SÜ, Osman Canko, Erciyes Ü, Sondan Durukanoğlu, İTÜ
Gül Gülpınar, Dokuz Eylül Ü, Alkan Kabakçıoğlu, KÜ, Levent Subaşı, SÜ, Sevtap Yıldız, İTÜ
Emine Arslan, Abant İzzet Baysal Ü, Hacer Ayaz, KÜ, Tolga Çağlar, KÜ
Bayram Deviren, Nevşehir Ü, Ercan Kılıçarslan, Sivas Cumhuriyet Ü
Ongun Özçelik, KÜ, Ozan Sarıyer, KÜ, Çağrı Şişman, ODTÜ, Enes Uysal, KÜ

1 – 12 Ağustos 2010

Faz değişimlerinde oluşan ve evrensellik kuramıyla geniş alanda sistemlerde etkili, dikkate değer olgular incelenecektir.  Bu olguları türetebilen, basit ve fiziksel yapılı teori öğretilecektir.  Deney ve teori arasındaki dialog; ayrıca içgüdüsel, olgusal, yaklaşıklı, kesin ve sayısal yaklaşımların zengin buluşma noktaları örneklendirilecektir.  Dersin sonunda, öğrenciler güncel araştırma sınırlarına ulaşmış olacaktır.
1.    Giriş: Hal diyagramları, termodinamik limit, kritik üsteller, evrensellik.
2.    Klasik Kuramlar: Ortalama alan kuramı, varyasyonel ortalama alan kuramı, Landau kuramı, ölçeklenme formları, düzgün olmayan dalgalanmalar, Ginzburg ölçütü.
3.    Ising Modeli ve Kesin Sonuçlar: 1 ve 2 boyutlu Ising modeli, hal geçişleri (genel bakış), transfer matrisi yöntemi, dual dönüşümler, global hal diyagramları.
4.    Kadanoff’un Ölçeklenme Kuramı: Blok spinleri, kritik üsteller.
5.    1-Boyutta Kesin RG Hesaplamaları: 1 boyutta Ising modeli (kesin RG hesabı).
6.    2-Boyutta Yaklaşık RG Hesaplamaları: 2 boyutta Ising modeli (yaklaşık RG hesabı), termodinamik fonksiyonlar ve 1. dereceden hal geçişleri.
7.    Momentum Uzayında RG: Gauss modeli, Landau-Wilson modeli, epsilon açılımı.
8.    2 Boyutta XY Modeli: Kosterlitz-Thouless kuramı, cebirsel düzen.
9..- Migdal-Kadanoff dönüşümleri, kesin çözümlü Berker örgüleri, Blume-Emery-Griffiths modeli, bütünsel çoklu-kritik hal diyagramları.
10.   Sıvı Kristal Malzemelerde Kritik Olgular: Sıvı kistal malzemelerde fazlar, nematik-izotropik, nematik-smektik A, smektik A-smektik C hal geçişleri (deney-teori), nematik-smektik A-smektik C çoklu-kritik noktası.
11. Faz geçişi modelleri kullanarak; sinirsel ağlar, tavlama yakıştırmasıyla karmaşık sistem optimizasyonu, kodlama.
Ders aralıksız on gün artı yazılı ve sözlü sınavlar için iki günde verilecektir.  Başarılı öğrencilere sertifika verilecektir.  İstanbul dışından gelen öğrencilerin otobüs masrafı, tüm öğrencilerin derse devam ettikleri müddetçe barınma ve yemekleri karşılanacaktır.  Katılım için hiç bir ücret yoktur.  Dersin içerik ve ödev yoğunluğu dolayısıyla, tüm öğrencilerin ders boyunca F. Gürsey Enstitüsünde kalmaları zorunludur.
Önkoşulu: Basit istatistik mekanik.  Eğer bölüşüm fonksiyonu nedir biliyorsanız (veya kolayca hatırlayabilecekseniz) ve istekliyseniz, bu dersi tamamlayabilirsiniz.  Derse Devam: Derse gelen tüm öğrenciler, derse (not için) kayıtlı olmalıdır ve bütün etkinliklere katılmalıdır.  Doktoralı meslekdaşlar dersin tümüne veya kısımlarına dinleyici olarak katılabilirler.
Derste her günde iki tane yazılı kısa sınav, her gün bir ev ödevi ve sonunda yazılı ve sözlü sınav olacaktır.  Ders süresince öğrencilerin başka akademik veya sosyal faaliyetlere zaman ayırabilmeleri beklenilmemelidir.
Ders programı: 9:00-9:15 kısa sınav, 9:15-10:45 ders, 11:00-11:15 kısa sınav, 11:15-12:45 ders, 13:45-14:45 ders, 15:00-15:30 uygulama I, 15:30-16:15 uygulama II, 16:30-17:30 araştırma semineri.  Ödevler her gün 9:00 da toplanacaktır.  Çarşamba 11/8 yazılı sınav, Perşembe 12/8 sözlü sınav.  Nota katkı: kısa sınavlar 40%, ödevler 25%, yazılı sınav 25%, sözlü sınav 10%.
Ders 3. ve 4. sınıf lisans öğrencilerine yönelik olsa da, diğer sınıflardan lisans ve lisansüstü öğrencileri başvurabilirler.

Tags:

EMO Yarışmasında 1. oldum

by Ordinaryus 31. July 2010 21:58

Elektrik Mühendisleri odasının Proje yarışması olan EMOya katılarak derece aldım. Bu projede bana destek olan bitirme hocam Yard. Doc. Mustak Erhan Yalçın ve Mühendis Tuba Ayhan’a teşekkürlerimi iletiyorum.

Sonuçların açıklandığı sayfaya ve derece alan projelerin kısa özetlerine buradan oluşabilirsiniz. 

emo

Tags:

IKVM.NET

by Ordinaryus 22. July 2010 00:34

IKVM.NET projesi java dosyalarının .NET ortamında dinamik olarak çağrılmasını amaçlayan bir uygulamadır.Bu uygulama içerisinde JVM içerisinde .NET uygulamaları geliştirilebildiği gibi hazırlanmış Java uygulamarının .NET içinde kullanılmasına da olanak vermektedir.

IKVM ile java kodunu çalıştırmak istediğimizde ise bunu Java uygulamasının bin dizini üzerinden yapmaktayız.

Burada yazılmış olan deneme Java uygulaması aşağıdaki gibidir.

1

Burada oluşturulan uygulamanın bin dizini altındaki dosyasının çalıştırılması ile uygulamanın çalıştığı doğrulanmaktadır.

2

Aynı zamanda çalıştırılan bir java uygulamasına ait *.jar paketini daha sonra .NET programı haline geririp *.exe uzantısı alması sağlanabilmektedir. Bunun için jar dosyasının dizininde çalıştırılması gereken program ikvmc olmaktadır.

3

Burada illaki jar dosyaları kullanılmak zorunda olmamaktadır. Bunun haricinde javaya ait .class dosyaları da kullanılmaktadır.Bunun için java projesinin bin dizini altında komut çalıştırılması gerekmektedir.

4

Bu işlemin tersini tabiki de yapmak mümkün olmaktadır. Bunun için verilen bir *.dll dosyası IKVM yardımıyla javada kullanılmak üzere bir *.jar dosyasına dönüştürülebilmektedir. Burada örnek teşkil etmesi açısından bir mscorlib.dll dosyasını kullandık.

5

Veya C#ta yazmış olduğumuz basit bir class library için kullanıldığında buradan gelen jar dosyası Java projelerine aktarılabilmektedir.

Kullanılan class library projesine ait kod Java Projesinde olduğu gibi basit bir uygulamadır. Buna ait yazılan metot ve konsol için çıktı üreten kod aşağıdaki gibidir.

6

Kütüphanelerimizi oluşturduk bunun yanında bunların kullanılmasını inceleyelim. HelloJava uygulaması içerisinde oluşan hello.class dosyasından hello.exe oluşturulmuştu.

Bunu referanslardan C# uygulamamıza eklemek mümkün olmaktadır. Bunun dışında eklenmesi gereken bir adet daha dll bulunmaktadır. IKVMye ait olan bu dll IKVM.OpenJDK.Core.dll adlı dosyadır. Bundan sonra hello sınıfındaki main metodu çalıştırılabilir.

7

8

Bu uygulama sonucunda öncelikli olarak C#ta yazılan Class Library çalışmakta daha sonra ise Javada yazılan uygulamanın C#a dönüştürülmesi sonucu oluşan .exe kullanılmaktadır.

9

http://www.ikvm.net adresinden daha fazla bilgi alınabilmektedir.

http://sourceforge.net/projects/ikvm/ adresinden ise proje indirilebilmektedir.

Tags:

LCS (Longest Common Subsequence)

by Ordinaryus 16. July 2010 02:28

Bu yazıda anlatılacak problem LCS (Longest Common Subsequence) olarak adlandırılmaktadır. Bu yöntem sadece kelimeler arasındaki benzerlik için düşünülmemelidir. Bunun haricinde gen dizilimleri üzerindeki en uzun ortak dizilimlerin bulunması amacıyla da literatürde sıklıkla kullanılmıştır. Önceki örneklerde izlenen yöntemlerde iteratif olarak işlemler tekrarlanırken aslında aynı problemin çözümü birden çok kez yapılmaktadır. Bu da temel olarak işlem gücünün düşmesine neden olmaktadır. Bunun yerine bellek üzerinde yapılan saklama sonucu daha performanslı sonuçlar elde edilebilir.

Burada yapılacak uygulama için 2 farklı DNA dizisi kullanılmakta olduğunu ve bunların birbirlerine olan benzerlikleri bulunmak istenmektedir. Burada bir dizi için 3 farklı durum söz konusu olabilmektedir. Bu dizililer X ve Y olsun. Bunların ilk elemanları çıkarılınca kalan halleri ise X* ve Y* olsun. LCS(X,Y) için olası 3 farklı alt problem ise

  • LCS(X*,Y)
  • LCS(X,Y*)
  • LCS(X*,Y*)

Bu alt problemlerde daha sonra kendi içlerinde daha alt parçalara ayrılabileceklerdir. Ancak burada burada karmaşıklık O(X.length * Y.length) kadar olmaktadır.

Elimizde aşağıdaki şekilde bir tablo içerisinde temsil edebileceğimiz DNA dizileri olsun. Bunlar X=[GCCCTAGCG] ve Y=[GCGCAATG] olmaktadır. Bunların için LCS uygulayabiliriz ve bunu bir tablo yardımıyla da gösterebiliriz. Bu sayede daha sonra tabloya dönerek burada tekrardan işlem yapılması yükünden kurtulmuş oluruz.

1

Bu tablo doldurulmaya başlanacak ve burada elde edilen sonuçlar bizim için optimum sonucu bulurken ihtiyacımız olan değerler olacaktır. Öncelikle ilk satır ve sütun bir karşılaştırma olmayacağı için 0 değerleri ile doldurulur. Daha sonra teker teker satırlar en sağdan başlayarak sütunlarla karşılaştırma yapılarak doldurulur.

2

Burada kısmen doldurulmuş bir tablo gözükmektedir. Bu tablonun nasıl doldurulduğuna bakacak olursak. Öncelikle sol üst köşeden başlanarak satır boyunca ilerleniyor. Eğer o satır için olan kod ile bulunulan sütunun kodu aynı ise tablodaki değer 1 arttırılmaktadır. Bu şekilde tüm satırlar doldurulduğundan aşağıdaki gibi bir sonuç elde edilmektedir.

3

Burada kullanılan tablonun en iyi yanı hangi seri içerisinde hangi elemanların ortak oldukları, hangi indexlerde oldukları ve hangi sequence için maksimum olduğunun bilgisi yer almaktadır. Bu tablolar her zaman optimum çözüme ulaşmak mümkün olmaktadır.

4

Bu tablo üzerinde görüldüğü gibi her zaman izlenen yol sayıları azaltacak şekilde sağ alt köşeden başlayarak mümkün olan ilk fırsatta yukarı çıkarak bu mümkün değilse soldaki elemana geçerek devam etmeye yöneliktir. Burada görüleceği gibi tekrar eden dizi GCCAG olmaktadır.

Dinamik programlama ile alakalı diğer yöntemlere ait bilgi vermeye devam edeceğim. Kod örnekleri için biraz nette dolaşmakta fayda var ancak burada da paylaşabilirim. En sonunda bir uygulama ile örnek bir proje yüklemeyi düşünüyorum.

Tags:

Dinamik Programlama

Dinamik Programlama

by Ordinaryus 14. July 2010 22:05

Dinamik programlama bir problemin çözümünde en kısa veya istenilen şartları sağlayacak olan sonucu bulmayı sağlayan bir yöntemdir. İteratif olarak çalışmaktadır ve önceden yapılan hesapları kendi bünyesinde saklamakta problemi alt problemlere bölerek çözmeye çalışmaktadır.

Örnek vermek istersek en kısa yol için çözülecek bir problemde kullanılan yöntemler çeşitlidir. Burada dinamik programlama kullanarak çözüme gitmek isteyelim. Bunun için elimizde var olan bir graf üzerinde en kısa yolu nasıl elde edeceğimizi bulmamız gerekmektedir.

1

Burada E noktasına varmak amacıyla yola çıkalım. Bunun için E noktasına giden yollar olan D ve Bden hangisi üzerinden daha hızlı gelinebileceğini belirlememiz gerekmektedir. Yani

Dist( E ) = min{dist(D)+1, dist(B)+2}

Burada görüldüğü üzere problemin tam çözümüne ulaşmak için her bir alt parçacık içinde benzer fonksiyon işletilecektir.

Benzer bir problem daha örnek verilecek olursa elimizde var olan bir rakam dizisi içerisinde yer alan elemanlardan en uzun artan diziyi bulmaya çalışalım. Bunun için verilen sayılar içerisinde dinamik programlama yardımıyla problem alt problemlere dönüştürülmeye çalışılacaktır.

2

Burada görüleceği üzere elemanlar içerisinde kendinden sonra gelen ve büyük olan elemanlar için bir recursif program yazılabilir ve en uzun zincirin boyu hesaplanabilmektedir. Ancak burada yapılmakta olan ve resursion olarak adlandırdığımız durumda aynı işlemleri tekrarlamamız gerekmekte. Benzer ikililer birden çok defa hesaplanabilmekte. Bundan kurtulmanın yolunu bulmak işlem gücünü arttırmak için önemli bir adım olacaktır.

Benzer bir problem üzerinden giderek dynamic programlamayı zor yapanın kodlama kısmından çok buradaki alt programlara bölecek yapıyı kurmak ve bunun alt programlar içerisinde gidildikçe çözülmesini sağlamaktır.

Problemimiz içerisinde 2 kelimenin birbirinden ne derece farklı olduklarını bulmak olsun. Burada kelimeler arasındaki fark harflerin ortaklığıyla veya sayısı ile bulunabilir ama daha iyi bir yöntem ise bir kelimenin diğerine dönüşmesi için yapılması gereken işlemlerdir. Burada 2 kelimenin dönüşümü için gereken cost hesaplanabilmektedir.

Burada X ve Y kelimelerimiz olsun bunlar X=[x1 x2 x3 … xi] ve Y=[y1 y2 y3 … yj] olarak i ve j harften oluşan kelimeler olsun. E(m,n) ise bu kelimelere ait verilen ilk m ve n harf arasındaki dönüşümü sağlamanın cost fonksiyonu olsun.

X ve Y kelimeleri için toplam cost fonksiyonu E(i,j) olmaktadır. Bu durumda karşılaşılan 3 farklı durum vardır ve bu 3 durum için ayrı cost fonksiyonlar yazılarak problem küçük parçalar haline getirilebilir.

  • Kelimeler (..abcx) ve (..abc) ise
  • Kelimeler (..abc) ve (..abcx) ise
  • Kelimeler (..abcx) ve (..abcy) olduğu durumda değişmektedir.

Bu durumlar içerisinde ilk durumda birinci kelimenin ilk harfi çıkarılacaktır ve costu 1 olarak belirtilir. Diğer durumda ise kelimenin başına bir x harfi eklenecektir ve bu işlem içinde cost 1 olmaktadır. Son durumda x ve y nin birbiriyle aynı olması durumunda cost 0 olmaktadır farklı olduklarında ise x yerine y yazılacaktır ve bu işlemin costu 1 olmaktadır.

Burada her bir işlem bir başka alt işlem ile devam ettirilmektedir. İlk olası durumda olan alt işlem E(i-1,j) olmaktadır. İkinci durum için benzer şekilde E(i,j-1) olarak ifade edilebilir. Son durum göz önüne alındığında ise cost 0 veya 1 olsada alt program E(i-1,j-1) olarak ifade edilir.

Burada cost minimum yapılmaya çalışıldığından cost fonksiyonu aşağıdaki şekilde yazılabilir

4

Burada diff olarak tanımlanan fonksiyon (..abcx) ve (..abcy) durumlarından x==y ise 0, x!=y ise 1 olmaktadır. Exponential ve polynomial kelimeleri arasındaki cost fonksiyonu 6 çıkmıştır.

3

Burada görüldüğü gibi dinamik programlama yapılırken işin önemli bir kısmı planlama üzerinde geçmektedir. Sağlam temeller üzerine oturtulmuş bir program çatısı sağlam olarak sonuç verecektir. Bunun dışından farklı yöntemler bulunmaktadır. Bunların hangisinin hangi program için daha uygun olacağı ise bir miktar tecrübe ile beraber kazanılmaktadır. Ancak temel olarak görülmekte olan 4 farklı problem tipi bulunmaktadır.

  • Girdiler [x1 x2 x3 … xi] iken alt problem bunun bir parçası olan j<i için [x1 x2 x3 … xj] olması durumudur.
  • Bu problem tipinde 2 farklı sınıf girdi bulunmaktadır. [x1 x2 x3 … xi] ve [y1 y2 y3 … ym] olması durumunda alt problemler bunların alt parçaları ise j<i ve n<m koşulları altında [x1 x2 x3 … xj] ve [y1 y2 y3 … yn] olduğu durum. Bu problemin karmaşıklığı O(im) olmaktadır.
  • Alt problem [x1… xi xj xk …xn] için problem [xi xj xk] olduğu durumda karmaşıklık O(n^2) olmaktadır.
  • Diğer bir problem ise yapının bir ağaç üzerinde olması durumunda ortaya çıkmaktadır. Bu durumda ise alt problem bu ağacın alt dallarının oluşturduğu ağaçtır.

Aslında bunlar en temel durumlardır ve bir arada oldukları durumlarda gözlenmektedir.

"In dynamic programming, the trick is to choose subproblems so that all vital information

is remembered and carried forward."

Dinamik programlamanın bir diğer önemli yanıda hesap gerektiren işlemlerde recursiyon oluşması durumunda aynı işlemlerin tekrar tekrar hesaplanmasına bir çözüm bulmaktır. Burada hesaplanan sonuçlar bir hash tablosuna atılmakta ve daha sonra bu tabloda olup olmamaları durumuna gire hesaplanmakta veya buradan alınıp kullanılmaktadır. Hız bakımından bu işlem önemli miktarda kazanç sağlamaktadır.

Bundan sonraki yazılarda Dinamik Programala içerisinde kullanılan yöntemlerden bazılarına yer verilecektir.

Tags:

Dinamik Programlama

PCA (Principal Component Analysis)

by Ordinaryus 10. July 2010 16:13

PCA boyut düşürmede kullanılan en temel metotlardan biridir. Ancak bunu anlamadan önce temel olarak anlaşılması gereken başka kavramlarda mevcuttur. Bundan sonra PCA hakkında fikir yürütebilmemiz daha kolay olacaktır bu nedenle açıklamaya bu temel kavramlardan başlıyorum.

Bir veri kümesi için bakılabilecek belli özellikler vardır. 1 boyutlu bir vektörel data için ortalama, standart sapma veya spread tanımlanabilmektedir. Burada spread haricindeki diğer terimleri biliyoruz. Spread ise aynı standart sapma gibi ancak N-1 ile bölüm olan halidir.

1

Bunun haricinde kovaryans terimini de bilmemiz PCA kavramak açısından önemlidir. Kovaryans 2 boyutta çalışan bir değer kriteridir. Çok boyutlu verilerde birbirleri arasında işlem yapılmaktadır. 3 boyutlu bir veri için öncelikle xy, xz, yz arasında kovaryans hesaplanabilmektedir. Bir vektörün kendisi ile kovaryansı aslında varyansını vermektedir.

2

Kovaryansın almış olduğu değer pozitif veya negatif olmasına bakılarak 2 boyut arasındaki ilişkinin doğru veya ters orantılı olduğu bilgisi elde edilebilir. Bir bakıma bize değişimlerini veren grafiğin eğiminin bilgisini vermektedir.

Kovaryans işleminin sadece 2 boyut arasında olduğundan bahsetmiştik peki ya daha fazla boyutta veriler için elimizdeki veri setini nasıl kullanacağız? Bunun için her ikişer boyuttu ayrı ayrı hesaplamaktayız. Burada n!/[(n-2)!*2] adet kovaryans hesaplanması işlemi vardır. Bunlar daha sonra kovaryans matrisi olarak adlandırılan matris üzerine aktarılmaktadır.

3

PCA konusunda kullanılacak temel bilgilerden bir diğeri ise özdeğer ve özvektörlerdir. Bir matrisi özdeğer ve özvektörleri ile temsil edebiliriz. Özvektörler birbirine dik olan ve boyut sayısı kadar bulunan vektörlerdir. Özvektörlerin ve özdeğerlerin nasıl hesaplandığını zaten bilmekteyiz. Kısaca anımsatacak olursak.

Bir A matrisi için det(λ-A)=0 için oluşan denklemde λ değerleri hesaplanır ve bunlar daha sonra yerine konur ve bir ξ vektörüyle çarpımı sıfıra eşitlenir buradaki ξ vektörü o matrise ait özvektörlerdendir, λ ise özdeğer olmaktadır.

PCA ise verilen datadaki benzerlikleri ve farklılıkları ölçmenin bir yoludur. Veri sıkıştırmada veri kaybına neden olmaksızın kullanılabilmektedir. Burada adım adım PCA için gereken adımları takip edeceğiz.

    Ortalama değerleri verilerden çıkar. Bu sayede kovaryans hesaplarken ortalamaları doğrudan 0 kabul eder ve bunu hesaplamakla uğraşmayız.
    Kovaryans matrisi hesaplanır
    Kovaryans matrisine ait özdeğer ve özvektörler çıkarılır. (Burada özvektörlerin uzunluklarının normalize olması önemlidir yani boyları 1 olmalıdır, bunlar daha sonra özdeğerlerine göre sıralanacaktır)
    Elemanların seçilmesi ve feature vektörü oluşturulması

Hesaplamalar sonucunda görüleceği üzere özdeğerler arasında farklılıklar bulunmaktadır. Bu farklılıkları daha sonra kullanacağız. Veri kümesinin principle component değeri en yüksek özdeğerli özvektör olmaktadır.

PCA yaparken özvektörler içerisinden en değerli olan p tanesi kullanılabilmektedir. Bunun için en büyük özdeğerlere sahip özvektörler seçilmektedir. Burada veri kaybı yaşanmaktadır ama özdeğerleri ne kadar küçükse kaybolan veride o ölçüde önemsiz olmaktadır.

Özvektörlerde p adet seçildikten sonra feature vektörü kolaylıkla elde edilebilir. Bunun için FV = [eig1 eig2 … eigp] olmaktadır.

Bu adımlarda tamamlandıktan sonra artık yeni veri kümemize ulaşabiliriz. Bu veri kümesi boyutu azaltılmış olan veri setini temsil etmektedir. Bunun için elde edilen yüksek öneme sahip özvektörler ve özdeğerler kullanılacaktır.

[SonVeri] = [SatırÖzVektörleri] x [SatırVerileri]

Burada belirtilen SatırÖzVektörleri özvektörlerin en yüksek önceliklisi en üstteki satırda yer alacak şekilde bir matris oluşturulması sonucu elde edilen matristir. SatırVerileri ise diğer matriste olduğu gibi bu vektördeki değerlerin yer aldığı matrisi temsil etmektedir. Elde edilen Final data ise bizim p boyutta verilerimizdir.

PCA kullanılarak boyut küçültme işlemi de yapmak mümkündür. Bunun için kullanılan datayı D boyuttan d boyuta küçültmek için D-d adet en önemsiz özvektörler atılmaktadır. Daha sonra kalanlardan görüntü veya diğer veriler geri getirilebilmektedir.

Tags:

Numerical Methods

Siz benseniz ben kimim?

by Ordinaryus 30. June 2010 23:14

Teknik olarak yazmaya yeniden başlamadan önce sanırım biraz daha Şizorfrenik Zırvalar bölümüme birşeyler yazmak istiyorum. Belkide teknik konularda yazma konusunda bir miktar bencil davranıyorum şu sıralar. Mezuniyet ve Lisans hayatı hakkında daha sonra detaylı bir yazı yazmayı planlıyorum zaten önümüzdeki hafta içerisinde.

IEEEde olsun Matematik Dünyasında sürekli Tayfun Akgül hocamızın karikatürlerini görmekteydim. Bunları özellikle seviyor ve dikkatli bakınca içindeki derinliği de görüyoruz. Benim en sevdiklerimden biri ve zaman zaman akademik hayatımdaki karmaşayı anlayamayan kişilerden duyduğum sözleri bana hatırlatan bir karikatür.

262fd9fb-b3d4-438d-af7c-0d0f557dcd48Hakikatten nasıl bulaştım bu işlere akıllı adam 4 sene (Lafın gelişi oldu efektif olarak 2.5 senede okulu bitirdim 1 senede kalan 3 dersi yavaş yavaş alınca bölüm bitti) elektronik okuduktan sonra birde yanında Fizik Mühendisliği okurken neden Masterını Bilgisayar Bölümünde yapar demi :) Benim kendimce nedenlerim var ve ileride bunun mükafatını alacağıma inanıyorum ama ne zaman ne işin var burda veya deli misin diyen insanlar duysam bu karikatür aklıma geliyor.

Tayfun Hocanın en sevdiğim ve içinde barındırdığı anlamın görüldüğüne inanmadığım karikatürü ise aşağıda yer alan karikatürüdür. Sizlerinde incelemeniz için kendi bakışımı açıklamadan önce karikatüre yer veriyorum.

8714ab83-88f0-4995-a4af-280c37becf10Evet bir adam aynaya bakıyo ve i= sqrt(-1) olduğunu öğreniyoruz. Eğer böyle bir bakışa sahipseniz çok yazık. En azından zahiri görüntü ve irrasyonel sayılar arasında ikisininde reel olmamaları ilişkisinin olduğunun görülmüş olmasını beklerim.

Peki ozaman biraz kafaları karıştıralım ve bir miktar mindfuck yapalım. Ben bu yazıyı yazarken muhtemelen kendimce düşünceler sergiliyorum belkide sizde aynı şeyleri düşünüyorsunuz veya belkide bu yazıyı yazan sizsiniz. Evet neden siz olmayasınız ki, kendim yazsam bilirdim desenizde bilemeyeceğinizi iddaa ediyorum.

Kim olduğunuzu nereden biliyorsunuz? Sokakta gördüğünüz ve dikkatinizi çeken biri veya en yakın arkadaşınız aslında sizseniz bunu anlayabilirmiydiniz. Bilinçle alakalı bildiğimiz herşey beynimizde değil midir? Açıkça bir gerçekte vardır ki beynimiz bizi çok kolay kandırabilir. Vücudumuzda tüm organlarımız bize o anki şartları hakkında bilgi verir ancak beynimiz çok farklıdır. Beynimiz herzaman bencildir. Nietzcheninde yazdıklarında üstü kapalı olarak belirttiği ve “hay aklınla bin yaşa” diyebileceği bir düşüncem vardır ki beyin kendini öylesine bencilce korur ki bunu anlamak o beyine sahipken mümkün olmayacaktır.

Ruhsal hastalıkların temelinde yatanda bu değilmidir? Beyin kendi reddettiği gerçekleri kabul etmemek için sanrılar oluşturmaz mı, kötü anılarımızı belleğimizden atmaz mı? Yetişkinlerin çoğu kendi çocukları hakkında doğru olduğuna inandığı ama tamamen yanlış hatıralara sahip değilmidir? False Memory denen durum budur aslında.

O zaman çevrenizdeki herkes aslında siz olabilir belkide siz yoksunuzdur. Aslında var olmakla alakalı da düşünmeye başlayabiliriz. Dünyanın merkezinde kendimiz varsak ve bakışımız herzaman bu yöndeyse ozaman diğerleri kimdir? Ortak bir bilincin parçaları olmak ve kendi hayalimizi yaşıyor olmamız kadar mümkündür bu. Ozaman bu resme baktığımda aslında aynada kendimi mi gördüğümden şüphe edebilirim. Biliyorum öyleyse varım diyebilirmiyim acaba?

Biliyorsam o zaman çevremdeki herşey benim üretimimdir. Tanıdığım insanları benim zihnim üretmiştir. Doğa yasalarını da ben mi biliyorum peki? Neden olmasın bilemediğim şeyleri zaten zihin kendi yalanlarını örtbas edeceğinden çok rahat gizleyebilecektir. Ozaman dünyayı hiç problemsiz görmem lazım. Belkide i=? desem bile bunun kök –1 olduğunu söyler. Bunu kabul ederim ispatlarımda zaten tersini ispatlayan varmıdır olsada bilemezdik sanırım. Yada bunu bilmemize zihin izin vermezdi.

Saçmaladım mı acaba, yoksa anlaşılmaz mı oldum. Bir gün kör bir adam gelse ve kıyafetlerimiz hakkında güzel sözler söylese ona gülermisiniz yoksa kamera şakası olduğunu mu düşünürsünüz? Bu adam daha sonra kör olduğunu inatla inkar etse.. Kör olan birisini görmediğine ikna etmek kolay diyebilirsiniz ama edemeyebilirsiniz, çünkü beyni onunla oynamaktadır bencilce zihni tarafından kandırılmaktadır. Güzel bir senaryo yazdım ve sizde okudunuz ama böyle birşey var. Literatürde Anton–Babinski sendromu olarak geçmekte.   

Sanırım biraz ikna edici oldum, kafaları karıştırdım. Peki ozaman kendiniz hakkında bildiklerinizi sorguluyormusunuz? En iyisi boşverin bilmemeniz gereken şeyleri bilemezsiniz en azından buna beyniniz sizi mecbur eder. Bencil Beyin.. Devamının geleceğini umuyorum

Tags:

Sizofrenik Zırvalar

İnsanları 7 Boyutta Tanımlamak

by Ordinaryus 19. June 2010 01:42

Geçtiğimiz gün otobüste seyahet ederken aklıma gelen bir düşünceydi. Çeşit çeşit insan ve herkes karakter olarak birbirinden bu kadar ayrı. Bilinçsiz olarak çoğunlukla insanlara karşı bir fikir sahibi olabiliyoruz. Birkaç konuşma bir miktar zaman geçirmek bunun için yeterli olmakta. O zaman bunu nasıl yaparız insanları nasıl ayırabiliriz?

Sanırım fazlasıyla izlediğim Full Metal Alchemist animesinden olsa gerek aklıma doğrudan 7 günah geldi. İnsan tabiatı bu 7 temel davranıştan oluşmakta. Kibirimiz, kıskançlıklarımız insan olmanın verdiği şeyler ve herkeste bunlar farklı ölçülerde bulunmakta. Bunların birleşimi de insaların birbirinden farklı olmasını sağlamakta ve çevre etkileri muhakkak bu 7 etken üzerinde etkili olmaktadır. 

Ozaman nedir bu 7 günah diye bakabiliriz. Farklı şekillerde isimlendirilebildikleri halde benim okuduğum şekilde isimlerini vericek olursam:

  • Lust (İhtiras)
  • Gluttony (Açlık)
  • Greed (Açgözlülük)
  • Sloth (Tembelik)
  • Wrath (Öfke)
  • Envy (Kıskançlık)
  • Pride (Kibir)

Daha ayrıntılı bilgiyi farklı dinlerde 7 günahın yorumlarını detaylı olarak okumak Wikipedia üzerinden mümkün o nedenle bunları sadece isimlerini vererek geçeceğim ama bana ilginç gelen kısıma sıra geldi.

Bir insanı insan yapan veya birbirlerinden ayrılmasını sağlayan şey. Yani bilgisayar bilimi açısından bakmaya çalışırsak bu 7 bileşenli bir öznitelik vektörü ile insanların karakterlerini belirleyebilir insanları sınıflandırmaya çalışabiliriz. Burada herbir değer için kişinin notlanması ile sahip olduğu özelliklere ait öznitelikler belirlenmektedir. Elimizdeki bu öznitelik vektörü ile tüm insanları ayırabilir ve ne tür bir kişiliğe sahip olduğuna ilişkin bilgi elde edebiliriz.

Belkide futbol oyunlarında oyuncunun performansını gösteren bir çart gibi insanları da gösterebiliriz =) Mesela örnek olarak aşağıdaki gibi birşey neden olmasın.

7sin
  
İlginç nerden geldi aklıma bilmiyorum sanırım fazla Anime izledim son zamanlarda =) Olaylara dünyaya bakışımızda da değişiklikler olmuyor değil. Son zamanlarda blogu ihmal etmiştim ama yaz dönemi için güzel planları var sanırım yazacak çok fazla şeyim var. Fırında pişiyor…      

Tags:

Sizofrenik Zırvalar

ITURO 2010

by Ordinaryus 6. April 2010 10:53

Bu yıl dördüncüsü düzenlenen İTÜ Robot Olimpiyatları, 15-16-17 Nisan 2010 tarihlerinde İstanbul Teknik Üniversitesi Ayazağa Yerleşkesi'nde bulunan Süleyman Demirel Kültür Merkezi'nde gerçekleşecek.

Bu sene diğer senelerde olduğu gibi heyacanlı yarışmalar olacak gibi gözüküyor. Seminer ve söyleşilerde dinlenmeye değer nitelikte ve kaçmaması gereken bir etkinlik.

Detaylı bilgi: www.ituro.org

Tags:

RIPv1 ve RIPv2 arasındaki farklar

by Ordinaryus 5. April 2010 00:37

 

 

V1

V2

VLSM/CDIR

Yok

Var

Classless/Classful

Classful

Classless

Routing Updatelerinde subnt maskesi var mı?

Yok

Var

Update Adresi

255.255.255.255

224.0.0.9

Kimlik denetimi

Yok

Var

Aşağıdakiler her ikisinde de vardır

 

 

Hop sınırı

Var

Var

Metrik

Hop

Hop

 

 

 

 

NULL 0 -> ÇÖP

Virtual Interfaceler routerlar içerisinde kullanılan özel interfaceler vardır. Bunlardan Null interface yasaklanmış bağlantılar için gelen paketlerin direk çöpe atılmasını ve loop olmasını engellemeyi sağlamaktadır.

İp route 180.10.10.0 255.255.255.0 NULL 0

Loopback 0-65535

İnterface loopback 15

Exit

Routing tablosunda ise

C 60.0.0.0/8 loopback olarak tabloda görülür. Fiziksel olarak var olmayan bir interface olursa ona ulaştıktan sonra her türlü erişirim.  Loopbackin asli amacı down olmayan bir interface elde etmek için kullanılır.

Discontinuous network yani bir major networkün başka bir major network sokup tekrar aynı major netwrku kullanmaya discontinuous network denir. VLSM desteklemeyen bir protokolda yapılamaz.

VLSM desteklemeyen bir routing protokolü kullanılıyorsa süper neting yapılamaz.

VLSM desteklemeyen bir routing protokolü kullanılıyorsa. Aynı major network içerisinde subnet maskesi değiştirilemez.

 

)#router rip

-config)#version 2

Yukarıdaki komut ile RIP versiyon 2 kulanılmaktadır.

Discontinuous network 2 ayrı networke ayırmaktadır. Burada load balancing durumu olmaktadır tekrardan çünkü router kıyak olsun diye auto-summarization yapmaktadır.

VLSM destekleyen bir routing protokolümüz varsa, RIP veya EIGRP gibi. Yinede bir major network bitince router bütün network kendi üzerindeymiş gibi özetleyerek anons yapar. Eğer discontinuous network yapıldıysa kapatılmalıdır. Kapatma komutu ise no auto-summary

16.12.2009

Özetleme yapıldığında loop oluşması ve çözümü

Özetleme yapıldığı durumda örnek verecek olursak ITU ağı içerisinde ISP üzerinden 160.75 olan B sınıfı tüm IP istekleri ITUye yönlenmektedir. ITUdeki cihazda 160.75.1.0, 160.75.2.0, 160.75.3.0 networkleri tanımlanmış olsun. Bu durumda bu IPler dışarısında gelen tüm istekler eğer ağ yöneticisi dikkatsiz davrandıysa *S 0.0.0.0 olan default rotayı tercih etmektedir. Bu durumda geri dönen paket ISP üzerinden tekrardan ITUye yönlenir ve TTL süresi kadar loop olur. Bunun öncelemek için ITU içerisinde lojik bir interface daha oluşturulur. Burada ITUye gelen tüm paketler config)# ip Router 160.75.0.0 255.255.0.0 NULL 0 komutu ile çöpe gönderilir. Burada tüm paketlerden kastedilen routerın tablosundan baktıklarından var olan diğer networkleri default gatewayleri nedeniyle öncelikli olarak kendi networklerine bunun dışından kalmakta olan tüm IP değerleri içinse çöpe yollanır.

(#no ip classless)  bu komut sayesinde de yukarıdaki işlevi gören işlem gerçekleştirilebilir.

  

Router Tablosu Lookup

Level1 rotalar: Major network rotası, süper network rotaları, default rota level 1 rotası olarak anılır.

Ultimate rota: Routing tablosundan yazan bir network satırının çıkış interfacei veya ulaşacağı IP belli ise bu bir ultimate rotadır.

Level 2 rota: Subneting yapılmış rotalara level2 rota denir.

Parent Rota: Subnetting yapılmışsa routing tablosunda bu rota ile ilgili en üst satıra major networkü yazılır. Bu bir level 1 routing satırıdır. Ama ultimate değildir. Altına o major network için oluşturulmuş subnetler listelenir. Bu rotalar child rotadır ve ultimate rotadır.

1

(Cisco Netacad Dokumanlarından alınmıstır) 

Yukarıdaki routing çıktısında subnet maskesi her subnet için aynıdır(VLSM yapılmamıştır). En üst satırın yanındaki subnet maskesi bütün child rotalar için geçerlidir.

2

(Cisco Netacad Dokumanlarından alınmıstır)

Eğer değişken uzunluklu subneting yapılıyorsa. Oluşacak routing tablosunda en üst satırda major network kendi subnet maskesi ile yazılır. Child rotaların subnet maskesi ise kendi network adresinin yanında belirtilir.    

IP Classless komutu

Global configuration modunda verilmektedir. Bütün cisco cihazlarda açık olarak gelmektedir. Buna göre hedef major network routing tablosundan subnetting yapılmış bir şekilde bulunuyorsa Router çıkış interfaceini öğrenmek için child rotalara bakar. Child rotalar arasında hedef rota yoksa. Diğer level1 rotalara bakar. Örneğin default rota varsa paketi o rotadan yollar. Bu da çeşitli durumlarda loopa sebep olur. No IP classless komutu çalıştırılmış ise hedef networkler arasında bu IP adresi yoksa paket çöpe atılır. ITU gibi bir major network sadece kendi iç networkünde kullanılıyorsa bu komut kullanılabilir. Discontinious network yapılmış ise bu komut kullanılmamalıdır. Burada classless çalışan routing protokolleri ile routerın classless çalıştığını farz ederek çalışması ile karışmamalıdır.

Tags:

Cisco

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Ordinaryus Hakkında

Hayata gözlerini İzmirde açtı. 3 yaşında legolarla oynadı =) Küçük yaşta baskete başladı zaten başka sporlarla arası hiç olmadı. Orta okulda matematikle ilgilendi. Liseyi Karşıyaka Anadolu Lisesinde okudu. 

İTÜ Elektronik Mühendisliğinden 2010 yılında mezun oldu. Fizik bölümünde çift anadala kabul oldu lisans hayatına Fizikten devam etmekte. Koç Üniversitesinde Bilgisayar Mühedisliği Master programına kabul edildi ve akademik hayatının ilk adımlarını sevdiği bir alanda çalışarak atıyor. Fizik ve Bilgisayarın ortak noktalarını gördü ve bunları geliştirmek amacıyla çalışıyor.

Yazılımı sevdi.. Başlarda herşeyle ilgilendi web programlama da yaptı, sokette programladı yeri geldi ağ yönetimi ile uğraştı. Görüntü işlemeden keyif aldı Makine Öğrenmesi ve Örüntü Tanımada kendisini geliştirmeyi istemekte.

2008te MSP oldu belkide bu blogu yazmaya başlamasında en büyük etken=) Bu görevi 2 sene boyunca sürdürdü. Bir yandan 2008de EuroSkillsde Mobil Robotik alanında Türkiyeyi temsil etti. Ardından 2009da Kanada da tekrardan yarışmacı olarak bulundu. Artık bu alanda hakemlik yaparak ve Robotino hakkında öğrendiklerini paylaşarak faydalı olmaya çalışıyor. 

Yapay Zeka, Görüntü İşleme, Kuantum Mekaniği, İstatistik Mekanik ve Bilişsel Bilimlerle ilgili. Geceleri kafasına göre takılıyo. Sabahlarıda öğrencilik yapıyo =)

gibi gibi... 

 

Page Rank

Loading

Google Translate


Şuan ne okuyorum

Bilişsel Psikoloji

Singularity is Near


Ayrıca okuduklarımdan seçtiğim kitaplara buradan ulaşabilirsiniz..

Okuduklarımı üye olarak takip etmek için ise aşağıdaki RSS bağlantısını kullanabilirsiniz. Ayrıca bana kitapta hediye edebilirsiniz =)


CCL


Copyright © Ordinaryus Says That by http://www.vypro.org/ is licensed under a Creative Commons Attribution-No Derivative Works 3.0