simendiferlerin efendisi @simendiferlerin
Cevaplamadığım ciddi soru varsa http://justpaste.it/simendiferlerin 'de vardır, veya Google'da
RSS Report answers
gelecekte birebir insan gibi dusunen yapay zekali seyler uretilebilir ve bu yapay zekali seyler psikolojik deneylerde denek olarak kullanilabilirler mi? mesela girdi olarak "okulda basariliydi, babasi biraz katiydi, mahallede oyunlara alinmazdi" vs. verilip psikolojiye etkileri incelenebilir mi?
Konu gelmişken, şunu paylaşmak istiyorum (Why Philosophers Should Care About Computational Complexity): http://www.scottaaronson.com/papers/philos.pdf
"Aa felsefeciler için bilgisayar bilimi anlatmışlar" diye yaklaşmamak lazım, ben eminim bilgisayar bilimcilerin/mühendislerinin %99'u sonunu getiremeyecek makalenin -- ama anlamasanız da sonunu getirmeye çalışın, arada çok güzel konulardan bahsediyor. Ben yukarıda "sosyal bilimciler hesaplama
bilmeli" derken bu kadar derinden bahsetmiyordum örneğin, ama "ben yapay zeka felsefesi çalışmak istiyorum" diyorsanız bunları bilmek *zorundasınız*, Isaac Asimov okuyup Star Wars izleyerek filozof olunmuyor çünkü. Konuya döneyim: Konu sosyal ağlar olunca da bu böyle. Üzerine uzmanlaşmak
istiyorsanız "Merhaba ben sosyoloji mezunuyum. İstatistiği sadece p-value hesaplayacak kadar biliyorum, bilgisayarlar hakkında bilgim yok, algoritmanın ne demek olduğunu bile anlayamadım ama Twitter
üzerine konuşmayı seviyorum, çünkü Twitter'ı çok seviyorum" diyerek yapamazsınız.
Mesela birisi gelip "Twitter kimi takip edeceğimizi önermesin, çünkü kimden hoşlanacağımı bilemez" dese, "Youtube bize video önermesin, ne izleyeceğimi bilemez, çünkü makine o, R2D2 gibi bişey, ne anlar ki" dese bir yerimizle güleriz -- (Twitter'ın öneri sistemini çok kullanmadım) çünkü Youtube'unkini başarılı buluyorum, hatta beni en iyi tanıyan insan her kimse ona sorun, ondan daha iyi tanıyor beni Youtube (video bağlamında), eminim onun önereceğinden daha iyisini öneriyor bana. Ama bunu "ben sosyal bilimciyim, dolayısıyla Facebook/Youtube/Twitter böyle işlere girişmesin, insanlarla yarışamaz. Benim dediğim doğru, zaten bilgisayar bilimciler ne anlar böyle işlerden" diye yapınca sanki anlamlı bir şey söylenmiş gibi oluyor. Halbuki anlamsız.
Şunu ısrarla söylüyorum, söylemeye de devam edeceğim:
1) Elimizde bilincimizin, "ruh" dediğimiz şeyin, zekamızın fiziksel bünyemizin sonucu olmadığına dair hiçbir belirti yok.
2) Aksine, zihnimizi günümüzde en iyi açıklayan teori "computational theory of mind" (Searle-çin odası gibi çok da anlamı olmayan itirazları saymazsak), yani beyni bir nevi bilgisayar, bilgi-işleme-makinesi olarak gören görüş. Bu sırf bir "görüş" de değil, empirik olarak da doğrulayabiliyoruz: günümüzün teknolojisine bakınca artık insanın yapabildiği ama makinenin kesinlikle yapamayacağı şeyleri bulmakta zorlanıyoruz: https://i.imgur.com/imS8y0l.gif .
3) "Ama insan farklı canım, mesela arabanın sürücü panik anında doğru karar verir bir anda, tecrübesi var çünkü, ama makineye bütün olası kaza senaryolarını yükleyemeyeceğimiz için makine yanlış şeyi yapar" şeklinde itiraz çok duyuyorum. Buna cevap olarak verilecek çok şey var, en basidi de şu: hiçbir yapay zeka "şu olursa bunu yap, bu olursa bunu yap" diye kodlanmıyor. Bunu kim ortaya attı, niye bu kadar popüler oldu bilmiyorum ama kim olduğunu bulursam bir gün feci pataklıycam.
https://eksisozluk.com/entry/40714849
gelecekte birebir insan gibi dusunen yapay zekali seyler uretilebilir ve bu yapay zekali seyler psikolojik deneylerde denek olarak kullanilabilirler mi? mesela girdi olarak "okulda basariliydi, babasi biraz katiydi, mahallede oyunlara alinmazdi" vs. verilip psikolojiye etkileri incelenebilir mi?
Evet, ancak bu simülasyonun sınırı önemli. Doğru sonuç almak için
gerçek dünyanın Matrixvari bire bir kopyasını yapmanız gerekebilir.
Ama gerekmediği düşünülen birçok alan da var.
Örneğin Schelling Segregation Model bunun ilk örneklerinden:
http://www2.econ.iastate.edu/tesfatsi/demos/schelling/schellhp.htm
. Şehirdeki bireylerin kişisel tercihlerinin makro seviyede
nelere yol açtığını (segregasyon bağlamında) modelliyor. Oldukça
basit bir model, soruda bahsedilen parametrelerle uzaktan
yakından alakası yok, ama zamanında göre önemli bir adım.
Günümüzde bu şu hale evrildi: Sosyal ağlar bize soruda bahsedilen
parametreleri direkt söylemese de onlar hakkında ipuçları
verebiliyor. Gittiğiniz okul başarınızı-babanızla sosyal ağ
üzerindeki ilişkiniz babanızın katılığını-ilkokul
arkadaşlarınızla iletişiminiz onlarla yakınlığınızı gösterebiliyor. Yine gerçek bir sosyal ağı izleyerek tahmin yapabilir,
sosyal ağın evrimine bakıp tahmininizin doğru oldup olmadığını
test edip, gerekirse tahmin yönteminizi iyileştirebilirsiniz --
bu da bilimsel yöntemle bire bir benzerlik gösteriyor.
Dolayısıyla bunun üzerine araştırma yapan çok araştırmacı
var (laboratuvarımda benim köşemdeki insanlar mesela sosyal ağlar
üzerine çalışıyorlar, yapay zeka labının bir parçası olarak).
İlla elinizde gerçek bir sosyal ağın verisi olması da gerekmiyor,
Schelling'in yaptığı gibi "neden" olarak gördüğünüz şeyleri
modelleyerek makro seviyede hangi sonuçlara yol açacağını bunun
gibi simülasyonlarla gösterebilirsiniz. Konu sosyal ağlar ise
bunun için de "hayali sosyal ağ" yaratmanız gerekiyor öncelikle.
Ama bu da başka bir araştırma konusu: Örneğin rastgele graph
oluşturursanız, düğümlerin arasında binbir türlü ilişki
yaratarak, bu gerçek hayattaki bir sosyal ağa benzemeyecek,
gerçek sosyal ağlarda bizim bilmediğimiz "gizli" bir structure
daha var. Bu gizli yapı-ilişkiler bütünü nedir, bir sosyal ağı
sosyal ağ yapan ilişkiler nedir ise güzel bir araştırma konusu.
Söylemeden de edemeyeceğim: Konu sosyal ağlar olunca
sosyologlar (veya başka sosyal bilimciler) çıkıp "açılın ben
sosyal bilimciyim, siz mühendisler olarak hiçbir şey
anlamıyorsunuz" diyebiliyorlar. Bunları görünce "belki haklılardır, ne diyorlar acaba" diye
bakıyorum ama çoğu zaman zırva dolu oluyor.
Sosyolog olmak eskiden kolaydı, artık "ben araştırma yapan bir
sosyoloğum" derseniz, sosyal ağlar konusunda araştırma
50 yıl önceki sosyoloğun araçlarını kullanamazsınız. "Ben sosyal
ağ analizi yapmak istiyorum" diyorsanız matematik-istatistik
bilmelisiniz, programlama bilmelisiniz (en azından veri analizi
yapabilecek kadar), hesaplamanın-ve sınırlarının ne olduğunu
bilmelisiniz, psikoloji (hatta onun da 50 yıl önceki halini değil şimdiki halini, bilişsel psikoloji-evrimsel psikoloji) bilmelisiniz. Bunların birçoğunun 50 sene önce sosyal bilimlerde yeri yoktu --
artık var. Bunları yapmayacaksanız da "mühendisler anlamaz, ben
anlarım çünkü ben 50 sene öncenin sosyolojisini biliyorum" demeniz
yeterli değil.
uzun uzun yazmak seni hiç sıkmıyor mu? bu kadar mı çok boş vaktin var?
Bunun cevabını daha önce verdim, ama çok eskilerde kaldı diye tekrar veriyorum:
(1) Sıkmıyor. Sıktığı anda bırakırım zaten, sıkıyorsa niye yapayım?
(2) Dün "başkalarına karışıyoruz, her şeyin uzmanıyız" derken böyle şeylerden bahsediyordum. Hayır, "bu kadar çok boş vaktim" yok, duyan da her gün 20 sayfalık makale yazıyorum sanacak: çoğu cevap 15 dakika içinde hem yazılmış, hem de üzerinden bir kere daha geçilmiş oluyor. Ama 15 dakikamı nasıl harcadığımdan bir şekilde siz çok boş vaktim olduğu sonucuna ulaşabiliyorsunuz. Nasıl?
Bana bir tane insan gösterin, günde 15 dakikası (haydi 30 dakika diyelim, haydi abartalım 45 dakika olsun) dahi kalmayacak şekilde "meşgul" ve "üretken" olsun. Bu mümkün değil, özellikle beyninizi kullandığınız bir iş yapıyorsanız günde 8-10 saatten fazla çalışamazsınız. 8 saat uyku deseniz, 9 saat diyelim haydi fazla uyuyun, geriye 5 saat fazlanız kalıyor. Bunun 2 saati yemek 2 saati sosyalleşme (hatta bu ikisi iç içe olduklarında daha az sürer) derken geriye 1 saat kalıyor en az. Yani vaktimi bu şekilde dolu dolu geçirsem bile normalde yazdığımın kat kat fazlasını yazacak kadar vaktim kalıyor.
İşin üzücü kısmı, tam da dün bahsettiğim gibi "kültürlü" ülkelerde insanlar "bu adamın çok mu boş vakti var" diye sorgularken bulurlarsa kendisini "yahu banane, adamın kendi vakti, kendi tercihi" deyip utanırlar. Kabul, burası soru-cevap platformu, insanı didiklemeye itiyor bir nevi; ama bu platformun dışında bile herkesin birbirine "senin çok mu boş vaktin var" diye sorması düşündürücü (örneğin sözlükte akilligelisim tartışmalarını hatırlayın).
Neyse, en azından şunu diyeyim: Dizi-film izlemiyorum. Ortalama Türk insanına göre günlerim 2 saat daha uzun, dolayısıyla buradan kazandığım 2 saatin 15 dakikasını yazarak geçirmeyi anormal görmüyorum (bu soru 15 dakika önce soruldu, soruların sorulma vakti gözükmüyor sanırım ama yine de en azından soruyu soran ne kadar sürede cevap yazıyorum görmüş olsun).
mehmet piskin hakkinda ne dusunuyorsun ? intiharini nasil degerlendiriyorsun gercekten merak ediyorum
Çok takip edemedim. Vimeo videosu silinmiş, kısa bir 59saniye videosu var onu izledim. Başlıkta çok yazı vardı, ilk birkaç sayfaya göz gezdirip şukela modunda baktım bir de.
Direkt olarak diyeceğim çok bir şey yok. Ama üzerine konuşanlar hakkında şuna katılıyorum: https://eksisozluk.com/entry/46389350
Daha bugün bir arkadaşımla bizim kültürümüzle şu anda içinde yaşadığım kültürü karşılaştırıyordum. Biz hepimiz her şeyi çok iyi biliyoruz. Nasıl yaşanması gerektiğini, kimin amacının ne olduğunu, öznel her türlü kararını eleştirmek için koşa koşa sıraya giriyoruz, her şeyde uzmanız. Başkalarının herhangi bir tercihi (illa intihar değil, herhangi bir şey olur; çay/kahve tercihinden tut, giymeyi sevdiğine, seçtiği mesleğe kadar) "bu onun tercihi" diye yorumlanacakken bir anda saçmasapan eleştirilere dönüşüyor.
Başlığa şükela modunda bakınca anlamsız binbir türlü yorum var mesela:
https://eksisozluk.com/entry/46378113 - bunun ciddi değil, sadece komiklik için denilmiş olduğuna inanmak istiyorum. Bir insan intihar edecekse normalde yapmayacağı her şeyi yapabilmesi etik midir? Bazılarını yapabilip (örneğin kültablası aramamak), bazılarını yapamaycaksa (mesela tecavüz) bunun eşiği nedir? Söyleyeyim: Eşiği yok, tamamen öznel bir tercih. Ben olsam ben de kültablası arardım, en basit dayanağı "ben ölsem de birisi temizlemek zorunda kalacak bunu" diye düşünmek, dolayısıyla aranıyorsa da saçma bir şey değil. Ama eminim yüzlerce insan bunu görünce "ahahaha adama bak kültablası aramış ya hahaha" dedi.
https://eksisozluk.com/entry/46379174 - Yine saçma, niyet okumalı bir entry. Adam gitmiş arkadaşlarının niyetini şııp diye okumuş. Amaçları ilgi çekmekmiş. Ölen arkadaşı hakkında bilgi vermek, bilgi vermeyecekse de yorum yapmak niye ilgi çekmek olsun? Sizin arkadaşınız ölse kimseyle konuşmadan kendi kendinize mi üzüleceksiniz cidden? Bunu "gerçek hayatta yorum yapmak farklı-sanal hayatta yapmak kötü ama" diye ayırmaya gerek görmüyorum. Artık gerçek=sanal. Bunun linkini arada veriyorum: https://eksisozluk.com/entry/15789339 . Sanıyoruz ki "sanal" iletişim aşağılık, "yüz yüze" iletişim kutsal, normal. Yok böyle bir şey. Ya da ulaştığı kitlenin büyüklüğü mü sorun? Küçük gruplarda ölen arkadaş hakkında konuşabiliyorken, büyük gruplar içinde mi konuşamıyoruz? Peki yine soruyorum, eşiği ne bunun? 10 kişi mi? 50 kişi mi? Kim belirliyor? Yine tamamen öznel bir tercihken üstelik bu sefer niyet okuya okuya kendi doğrularıyla yargılamış adam. İstersen yargılarsın, ama bu "ben kırmızıyı seviyorum-ben maviyi seviyorum"dan farkı yok.
https://eksisozluk.com/entry/46382893 - Bundaki eleştiriyi turing'e bırakıyorum, o eleştirmiş zaten. Kısaca, "sen iki gıdım acı çektin diye herkesin acısını, üzüntüsünü nasıl anlayabiliyorsun, nasıl küçümsüyorsun". Bunun eşiği de öznel, seçtiğiniz eşik sabit bir yerde olsa bile başkasının o eşiğin neresinde olduğunu (hele 30 dakika önce internetten doğru tanıdığınız adamınkini) bilemezsiniz.
Daha çok var eleştirilecek yazı, ama yeter bukadar
Bir programlama dilinin performansı nelere bağlıdır?
Çok şeye bağlı. Akla ilk gelen derleme-yorumlama hızı farkı. Araya sanal makine sokunca elbet ekstra bir katman yüzünden yavaşlama görülüyor, ancak modern dillerde bu fark salt yorumlamaya göre azalmış durumda (JIT compilation vb).
Ama bu her zaman "makine diline en yakın dilde yazmak en hızlısıdır" demek değil. En güzel örnek assembly vs C. Teorik olarak C'nin dönüştürüleceği makine kodunu assembly ile yazabilirsiniz, ama bunu aciz insan beyniyle (ve kısıtlı vaktiyle) yapmanız çok zor. Onun için projeler baştan sonra assembly ile yazılmak yerine başka dilde yazılıp performansın kritik olduğu noktalarda C/C++/assembly ile yazılıyor. Örneğin işletim sistemlerinde assembly, Python ile yapılan veri işleme uygulamalarında C'ye dönüş yapılıyor parça parça. "Premature optimization=evil" geyiğiyle bağlantılı. Gerisi de ssg'den gelsin: https://stackoverflow.com/questions/2684364/why-arent-programs-written-in-assembly-more-often/2685541#2685541
Bunun dışında garbage collection tartışmaları var. Benim gözlemim garbage collection'ın (ve her türlü otomatik hafıza yönetimi, verinizin nerede neyle yan yana duracağını seçemediğiniz dillerin) manuel hafıza yönetimine göre performansı düşürdüğü (bu işkembemden uydurduğum bir şey değil, çalışma alanımda en azından elimde sayılar var, en-ama-en az iki kat, çoğu zaman 10 kat civarı fark çıkabiliyor ortaya). Eminim bunun tersinin olduğu uygulama alanları da vardır, ileride muhtemelen çok daha fazla artacak, ama günümüzde böyle.
Gelelim tersi yöne: İleride yüksek seviyeli diller "kesinlikle", "hiç tartışmasız" C/C++ (ve manuel hafıza yönetiminin) performansını aşacak. Şu anda insanlar programlarını çoğu zaman "yüksek seviyede" derleyicilerden daha iyi anlıyorlar (programlarının ne iş yaptığını biliyorlar, ancak derleyiciler daha düşük seviyede, yerel alanlarda optimizasyon yapıyor), dolayısıyla kullanılan hafızanın ne anda gerekli ne anda gereksiz olduğunu biliyorlarsa bunu gözeterek yazdıkları kod (çoğunlukla) runtime'da tahmin etmeye çalışacak bir garbage collector'a bağlı koddan daha verimli oluyor. Ancak statik analizin (veya hatta dinamik analizlerin) çok daha başarılı olacağı ileri bir tarihte bunun dengesi değişecek: Binlerce-milyonlarca satırlık sürekli değişen bir kod parçası üzerinde insan ancak bir yere kadar akıl yürütebilir.
Bu sırf hafıza yönetimi açısından değil, her türlü optimizasyon için geçerli: Derleyicinize ne kadar yardımcı olursanız o kadar iyi optimizasyon yapabilir. Bunun için bazı dillerde "bu değer constant'tır, bu fonksiyon pure'dur" şeklinde annotationlarınız optimizasyonda yardımcı olabiliyor (malum, böyle değerler farklı birimler tarafından aynı anda kullanılıp, çağrılabiliyor, memoization'a imkan verebiliyor vb). Ama her zaman değil -- örneğin C++'taki const keyword'leri çoğu zaman const_cast'lerin varlığı yüzünden optimizasyon imkanı tanımıyor.
Klavye tercihiniz nedir? Mekanik klavye mi kullanıyorsunuz?
Birkaç kere geldi bu soru sanırım, ama bu sefer daha geniş cevap vereyim:
Bende şu anda bu var:
http://www.walmart.com/ip/Microsoft-Natural-Keyboard-Elite-Retail/2470625
Mekanik klavye isterdim, ama çok pahalı. Bu yukardakini de 1 yıllık birikimimi birleştirerek aldım (abartıyorum tabii, ama yine de 40-50 dolar bir doktora öğrencisi için az değil).
Bunun dışında bilek desteği olan klavye kullanmak istiyorum (malum, bütün gün klavye başındayım), klavyenin ikiye bölünmüş olması önemli (hem bilek için, hem de dar olan klavyelerde omuz büzüşüyor, ulnar nerve sıkışabiliyor).
Bunları düşündüğümde klavye seçeneği çok kalmıyor zaten, bu elimdeki buna uyan 1-2 klavyeden birisiydi. Ekstra olarak numpad'in olmamasını isterdim (hiç kullanmadığım bir tuştakımı, ama bir sürü klavyede standart, boşu boşuna masada yer kaplıyor. Otururken yanımda içecek, makale, defter derken erişebileceğim alanda çok yer kalmıyor sıkışıyorum hep. Bir numpad boyu büyük değil, ama boşa giden alan boşa giden alandır. İlla klavyenin boyo o olacaksa da home row'u daha geniş tutarak da kullanabilirler o alanı, her halükarda numpad'in varlığından daha faydalı). Ok tuşlarının dizilişini sevmiyorum bir de, ama çok kullanmıyorum zaten (bütün editörleri, komut satırını vb. Emacs kısayollarıyla kullanıyorum, Ctrl+a Ctrl+e, Ctrl/Alt-n/f Ctrl/Alt-p/b işimi görüyor. "Bunlar ne la" demeyin, alışınca bence ok tuşlarından/home/end tuşlarından çok daha kullanışlı. Çünkü (1) eliniz home row'dan uzaklaşmıyor (2) Daha da önemlisi bütün klavyelerde aynı yerde bu tuşlar. Her klavyede home/end tuşları farklı yerlerde, yanlışlıkla screenshot falan alıp duruyorum kullanmaya çalışırsam. Github-Bitbucket nükleer saldırı sonrası havaya uçarsa yanlışlıkla aldığım screenshotlarımı birleştirip bütün yazdığım kodları tekrar oluşturabilirim (abartıyorum yine)). Hoşuma gitmeyen başka bir şey de F1-F12 tuşlarının iki gruba ayrılması, üç gruba ayrılanlarda klavyeye bakmadan doğru tuşu bulmak çok daha kolay. Eğer caps lock tuşu olmayan bir klavye bulursam bonus puan alır, çünkü klavyenin en stratejik yerinde hiç kullanmadığım bir tuş duruyor. Her işletim sisteminde Ctrl'e dönüştürüyorum onu (malum bu da Emacs pinky tehlikesi yüzünden).
Bir de Apple klavyelerden nefret ediyorum. Hem kullanışlılığı, hem de ergonomisi en kötü klavyelerden.
Satranç oyunundaki amaç nedir ? Tüm hamleleri hesaplamak mı ? Sezgileri kullanmak mı ?
Kazanmak.
Eğer insan olarak sezgilerinizle kazanabiliyorsanız sezgilerinizle oynayın. Hamleleri hesaplayıp kazanabiliyorsanız hamleleri tek tek düşünün. Bunu statik olarak seçmek zorunda değilsiniz, oyun sırasında hibrid bir strateji belirleyerek de yapabilirsiniz. Hatta stratejinizi de statik seçmek zorunda değilsiniz, isterseniz %90 sezgi %10 hesaplama ile başlayıp (bu bir hibrid strateji), oyun sonlarına doğru parçalar azalıp hesaplama kolaylaştıkça %90 hesaplama %10 sezgiye dönebilirsiniz (bu da başka bir hibrid). Hatta stratejinizin stratejisinin stratejisini de belirleyebilirsiniz, bu böyle gidiyor.
Son baktığımda satranç motorları da benzer şekildeydi. Intelligent search yaparken bir yandan da "endgame tablebase"lerden yardım alabiliyorlar. Kendim ciddi şekilde satranç oynamadım, ama duyduğuma göre tecrübeli insan oyuncular da "bu konfigürasyon 1971'de bilmemkim ile bilmemkim arasında olmuştu, şu oyuncu bunu yapıp kazanmıştı" şeklinde düşünmeye başlıyor -- beni satrançtan soğutan şeylerden birisi de bu olmuştu, "inanılmaz bir zeka oyunu, aptallar oynamasın" denilen bir oyunda tecrübenin yerinin bu kadar olmaması lazım (bu örnekte olduğu kadar olmasa bile tecrübeli bir oyuncunun tecrübesiz ama kendisinden daha çok daha zeki bir oyuncuyu ezip geçeceği neredeyse kesin).
(http://ask.fm/anjin_san/answer/118478338072) Soruyu ben sormadım ama sizin bu konu hakkındaki düşüncelerinizi merak ediyorum. Bu konudaki düşünceleriniz nelerdir? (Üşenmeyin 1 değil 2-3 sayfa olsa da olur, okurum ben :))
(devam) Doktora konusu daha da farklı. Doktora boyunca çoğu üniversitede ders bile almıyorsunuz, alıyorsanız da birkaç tane alıyorsunuz ancak. Bunlar da daha çok seminer dersi şeklinde oluyor, yani araştırma makalesi okumak-tartışmak-sunum yapmak vb üzerine (birçok dersin sınavı-ödevi olmuyor bile). Kendiniz makale okursanız doğru açıdan yorumlayıp yorumlamayacağınızı bilemezsiniz, muhtemelen de yanlış açılardan bakacaksınız.
Mesela ben kendim de o açıdan zorlandım zamanında. Makaleyi okurdum, anlardım, her bir detayını, satırını anlayana kadar üzerinde düşünürdüm. Ama konu tartışmaya gelince orada yazan dışında tartışılacak, konuşulacak o kadar çok şey çıkardı ki araştırma grubuyla toplanınca "vay canına, ben ne kadar yüzeysel bakmışım, insanlar nelere nelere kafa yoruyorlar" derdim. Zamanla alışıyor insan, satır aralarını da okumayı öğreniyor. Araştırmanın eksiklerini, faydalarını, kendi araştırmasına olası katkısını düşünmeyi öğreniyor. Bunları makaleyi baştan sona okuyup, anlayıp, bırakınca bir insan kendi kendine düşünmeyi öğrenebileceğini çok düşünmüyorum, çünkü bunun düzgün yapıldığı bir ortamda bile uzun süre alıyor bu bakış açısını oturtmak.
Tabii bir de yine teknik eksiklikler var araştırma seviyesinde insanın evde oturup kitap-blog-video izleyerek öğrenmesinin. Örneğin, birçok bilimsel makaleye ücretsiz erişim yok, bunları üniversitede okursanız okuyabilirsiniz, ama dışarıdan edinmeniz kolay değil (ekşi sözlük'te "makale aranıyor duyuruları"na yazarım diyorsanız pratik değil pek, ayda yılda bir makale okumak isterseniz orada isteyebilirsiniz ama her gün her gün de oradan makale edinmek istemezsiniz herhalde). Bunun dışında, evet, evinizde Android uygulaması yazabilirsiniz, laptop'ınız dışında hiçbir ekstra malzemeye gerek yok ama örneğin paralel algoritmalarla ilgileniyorsanız üniversitede yüzlerce node'luk cluster'lara, belki süperbilgisayarlara erişiminiz olacak, ama evinizde en fazla 3-5 core'la çalışabileceksiniz. Bu teknik yetersizlikler yeterince parayla aşılabilir elbette, ama yine de varlar, üniversitenin varlığı da bu noktalarda önemli.
Bunun dışında anjin san'ın bahsettiği açı da var: Bazı şeyler de ne sırf üniversitede, ne de kitaplardan öğreniliyor zaten. Mesela bir üniversitede distributed workflow'a bağlı çalışmayı öğrenmek zor, agile vb gibi metodolojileri öğrenmek zor (ben bunu bilmiyorum mesela), hatta TDD bile birçok üniversitede atlanıyor (ya da çok geç haberi oluyor öğrencilerin, kültürü oturmuş oluyor TDD'ye alışması zor oluyor). Bunlar da gerçekten okuya okuya değil yapa yapa öğrenilen şeyler (ya da içlerinde yüzlerce case study olan kitaplar da bulabilirsiniz, ama bazı şeyler karşınıza çıkana kadar okuyup anladığınızı sansanız bile ancak karşınıza çıkıp bocalayınca gerçekten anlamaya başlıyorsunuz). Ama bu soru sorulurken soranın aklında "üniversitedeki bilgisayar bilimi" mi yoksa "genel bilgisayar bilimi" mi vardı bilmiyorum, çoğunluğu ilki için olsa da her ikisi için de cevap yazmış oldum.
(http://ask.fm/anjin_san/answer/118478338072) Soruyu ben sormadım ama sizin bu konu hakkındaki düşüncelerinizi merak ediyorum. Bu konudaki düşünceleriniz nelerdir? (Üşenmeyin 1 değil 2-3 sayfa olsa da olur, okurum ben :))
( ͡ಠ ʖ̯ ͡ಠ)
Şimdi sırf bilgisayar bilimi/mühendisliği konularından daha geniş bir şey söyleyeyim: Hemen her türlü mühendislik bölümünden arkadaşım oldu, hem lisans hem yüksek lisans seviyesinde. Bunlardan ikinci grubun değişik derslere asistanlık yaptığını da gördüm, dolayısıyla önüme değişik üniversitelerde, değişik ülkelerde birçok dersi yüzeysel olsa da görme imkanım oldu (bir de birisinin evinde, masasında vb. başka bir alandan ders kitabı görünce "aa ne ilginç bakayım ben buna" diyen insanlardanım). Vardığım sonuç şu: Mühendislik ve doğal-formel bilimlerde lisans seviyesinde hiçbir ders (profesörü manyak olmadığı, notlamada sorunlar olmadığı, teknik imkansızlıklar, şanssızlıklar olmadığı sürece) bir insanın kendi kendine öğrenemeyeceği kadar zor değil. Hemen her ders zaten o konulara giriş niteliğinde. Çok zaman isteyen, zorlayan dersler elbete var, ama bir insanın bu dersleri anlamak-geçmek için süper-zeki olması gerektiğini düşünmüyorum. Sırf derslere girip çıkıp da geçebilecek kadar zeki insanlar var, her gün 3 saat tekrar yapıp ancak anlayacak insanlar da. Ama mümkün.
Şimdi biraz "yaa sen ne diyosun sen hiç termodinamik dersi almadın ki" diyecekler çıkacak, onları savuşturayım: Almadım, ya da sizin bölümünüzün en zor dersi hangisiyse onu da almadım. Ama kendi bölümümün en zor derslerini her seviyede aldım, ve de yukarıda anlattığım gibi diğer bölümler için sample size'ımın yeterince büyük olduğuna inanıyorum. Sosyal bilimleri hariç tutuyorum, onlarda belki illa ki sınıfta oturup tartışmak gerekiyor olabilir.
Dolayısıyla lisans seviyesinde olup da kitaptan okuyarak öğrenilmeyecek şey olduğuna inanmıyorum pek. Tek sorununuz yazılım lisanslarına erişmek olabilir (örneğin Visual Studio Professional kullanmak istiyorsanız yasal bir yolu yok bildiğim kadarıyla, ama üniversitenizden doğru ulaşabiliyorsunuz). Ayrıca üniversitenin içinde bulunmak, notlandırılmak vb insana çalışmak için motivasyon sağlıyor, evde insanın kendisi oturup öğrenmesi için motivasyon bulması genelde zor bayağı (insan ister istemez kendisine uzun vadede faydalı olacak şeylere değil, ilgilenmekten zevk aldığı şeylere eğiliyor). Ama teorik olarak mümkün tabii.
Master seviyesine geleceksek bunun cevabı tek değil. Tezli, bilime yönelik master'larla ve tezli/tezsiz piyasaya yönelik master'lar farklı bayağı. İkincisi lisanstan çok farklı değil, uğraşıp çabalayıp ne ders görülüyorsa kitabını/materyallerini edinip çoğu zaman kendiniz takip edebilirsiniz. Ama konu tez yazmak olunca bunun tez yazmayı bilen birisinin eşliğinde yazılması lazım, ben insanın kendi kendine düzgün tez yazabileceğine inanmıyorum (ki profesörünüz eşliğinde yazsanız bile savunmada genelde ağzınızdan girilir burnunuzdan çıkılır "bunu niye böyle yaptın, bunu niye yapmadın, bunu niye düşünmedin" diye, yardım alsanız dahi mükemmel olmuyor yani). Mesela master tezi boyunca profunuz sizi defalarca uyarır, doğru yola çeker, bunu kitapla-internetle vb. yapabilmeniz pratikte imkansız.
coursera'da cryptography dersini alıyorum. her hafta yüklenen video uzunluğu toplam üç saat, bir de bunu anlaması var. gereksiz değil mi sence de bu kadar ayrıntılı anlatılması?
Eğer Coursera üniversitelere denk olmak istiyorsa çok değil haftada 3 saat. Normal bir kriptografi dersi 3-4 saattir üniversitelerde, 13-14 hafta sürer. Coursera'daki Cryptography I ve Cryptography II derslerinin toplam süresi 12 hafta.
Genel olarak kriptografi derslerinde anlatılanların derinliğini sorguluyorsanız da bunun çok bir anlamı yok. Haftalık yükünüz 3 saat değil 2 saat olsa da birileri "çok gereksiz değil mi bu kadarı" diyecekti. Standart bir kriptografi dersinin kapsamı bu kadar, demek ki üniversiteler bilgisayar bilimi/mühendisliği okumuş birisinin "ben kriptografi biliyorum" diyebilmesi için alt eşiğin orada olması gerektiğine kadar vermişler.
Üniversite derslerinin kapsamı için şu da önemli: Hiçbir üniversite kabul ettiği yüksek lisans öğrencilerini temel konular hakkında eğitmek istemez. Bir öğrenci kriptografi üzerine araştırma yapacaksa giriş dersinin de temel konuları araştırma yapmaya başlayacak kadar oturtmuş olması gerekir öğrencinin kafasında. Dolayısıyla bu ders daha yüzeysel işlenirse araştırmaya başlayacak öğrenciye yetmeyecek olabilir.
Ama merak ettiğim, sizin kriteriniz ne? Niye 3 saat fazla, kaç olmalı? Buna karar verirken de nasıl veriyorsunuz?
her okulda recitation olmali midir? bizim okulda yok mesela. halbuki mit ocw'den takip ettigim kadariyla cok faydali bir sey. dersten daha faydali bile diyebilirim sanki.
Bunun gibi konular hakkında konuşurken aklıma şu geliyor hep, geceleri kabuslarıma bile giriyor:
(1:10daki hanımefendi): "Ben engelli asansörünü kullanıyorum çünkü buradan çıkınca 20 dakika işime yürüyorum"
Sözlükte de tartışması dönmüştü: O asansörü engelliler dışında insanlar kullanabilir mi diye, bunu tartışmak istemiyorum. Ama eğer cevabınız "benim hakkım zaten kullanmak" değil de "kullanıyorum çünkü bahanem var" ise bir nevi o asansörlerin "engelli asansörü" olduğunu biliyor ve buna rağmen kullandığınızı söylemiş oluyorsunuz. Yukarıdakiyle aynı şey bu: İnsanlar kendi "tercih"i yüzünden (üniversiteye gitmek/20 dk uzaktaki bir işe gitmek) hakkı olmadığını düşündüğü şeyleri elde etmelerini meşrulaştıracağını düşünüyorlar (bu arada hava İstanbul'dan 10 kat kötüyken ben her gün 25 dk yürüyorum, bir şeyi gasp etmeye çalışmıyorum bunu bahane edip. Çünkü bu ülkede, bu şehirde, bu üniversitede yaşamak benim tercihim, artıları ve eksileri var, bunların da farkındayım).
Neyse, dediğim şu ki üniversite diploması "onurlu" olana veya "en fakir ama en gururlu" olana verilmez. Sabit bir eşiği vardır, kim olursa olsun o eşiği geçebiliyorsa diplomayı alır. İsterseniz "benim aklıma alternatif bir sistem var, herkes kısıtları dahilinde ne kadar çok emek gösteriyorsa ona verelim diplomayı" dediğiniz bir sistem de yaratabilirsiniz, ama onun adı "üniversite" olmaz, başka bir şey olur. Tartıştığım konu da zaten "üniversite ne olmalı" değil, "üniversite nedir", üniversitenin şu anki tanımı da bu. Bu da son dakikada söylenmiyor, en başından beri sizden beklenenler belli.
Dolayısıyla sizin üniversite dışında da iş sahibi olmanız gerekiyorsa demek ki üniversite sizin için uygun yer değil. Üniversite para ve emek karşılığında aldığınız bir hizmettir, başka bir hizmette nasıl "ben hesabı ödemiycem çünkü dün gece bütün paramı içkiye yatırdım, para kalmadı para" demiyorsanız bu da öyle. İsterseniz paranızı içkiye de yatırırsınız, eleştiri oraya değil; ama restorana gidip, para ödemeniz beklendiği beklenip tam en son anda hesap gelince "ya ama param yok benim" demeniz kabul edilemez. Nasıl paranızı yönlendirebileceğiniz iki nokta (1-içki 2-restoran) varsa ama sadece birini seçmeniz gerekiyorsa, konu üniversite-iş konusunda da öyle: eğer zamanınız ikisine de yetmiyorsa, birine paşa paşa gidip ikincisinde de "vaktim kalmadı" diyorsanız kimsenin sizi anlamasını beklemeyin.
Toparlıyorum: Recitation iyi, ama karakterli öğrenci için iyi. Bunu "abuse" edecek öğrenciyi cezalandırmaktan çekinmiyorsanız, bu "abuse" konusunda yeterince düşünmüşseniz, cezalandıranları da eleştirenlere de vereceğiniz cevaplar hazırsa bence de sizin üniversitenizde de olmalı.
her okulda recitation olmali midir? bizim okulda yok mesela. halbuki mit ocw'den takip ettigim kadariyla cok faydali bir sey. dersten daha faydali bile diyebilirim sanki.
(cevap, sorunun istediğinden çok geniş oldu, ilk birkaç paragraf aslında asıl cevap)
Kötüye kullanılmadığı sürece iyi bir şey. Ama kötüye kullanılıyor. Hele Türkiye'de kat kat kötüye kullanıldığından/kullanılacağından eminim.
Ben Sabancı Ünv.de kendi gözümle gördüm: Birçok insan lecture'lara gitmeyip recitation'lara gidip asistanın her şeyi kendilerine anlatmasını beklerdi. (1) 3 haftalık konunun 1 saatte anlatılması mümkün değil (2) Derslere asistan girince üniversitelerde olay çıkar, "aaa asistan dersi" diye aşağılanır, ama dersin adını recitation yapıp dersi asistanın anlatmasını bekleyince herkes buna pozitif yaklaşıyor. Yani "bu dersi şanlı prof X'ten aldım" demeyi istiyor insanlar, ama "aldım"ın karşlığı olan "verme" kısmını o profesör yapsın istemiyorlar. Bu da bana öğrenme sevdası gibi değil etiket sevdası gibi geliyor.
Şu anda bile üniversitelerimizde "derse katılım" büyük bir sorun, her dersin recitaton'ı olursa "ben zaten bunu recitation'da öğreniyorum" diyenler artıp derslere katılım daha da azalacak. Eğer "ben zaten recitation'da öğreniyorum" yeterli olsaydı ülkeye üniversite yerine etüd merkezi açsaydık, niye o kadar profesör yetiştiriyoruz, yurtdışından getirtiyoruz ki?
Derslere katılım konusunda da mesela ilginçtir ki "benim derse katılmamak için bahanem varsa dersin gereklerini yerine getirmeden, veya haksız avantaj sağlayarak dersten geçebilmeliyim" görüşü yaygın. Örneğin "ben derse gelmek istemiyorum çünkü profesör sıkıcı anlatıyor". Daha tartışmalı bir örnek: "Ben çalışıyorum bir yandan, onun için ödevlerde bana daha çok yardım edilsin".
Hatta ikinci örneği bu hafta gördüm, kısaca anlatayım: Dersteki öğenci geceye yetiştirilmesi gereken ödeve aynı gün başlamış (2 haftası vardı), derslere gelmemiş, 1 ay boyunca yüzünü ilk defa gördüm. Neyse, gelmiş diyor ki "bu ödevi ben regexp'lerle yapsam olur mu? Yapmayın yazmamışsınız ödeve" diye. Dedim ben de "bu kadar zaman geçti, 1 kere bile regexp kullandık mı derste a evladım" diye, "e derslere gelmedim ki". "E niye gelmedin", "çalışıyodum çünkü". Bunun üzerine de hala "kullanayım ama bak kullansam yetişir yoksa yetişmez" diyor, sanki benim sorumluluğum onun ödevinin yetişmesi. Çalışıyor olmanız niye haksız avantaj elde etmenize, derste anlamanız gereken şeyleri anlamadan geçmenize olanak sağlasın? Sanki üniversite zorla dedi çalış diye?
Recursive ile Tail-Recursive arasındaki farkı tam olarak anlamadım. Functional Programming Principles in Scala(coursera) dersinde faktoriyel'i iki türlü de yazdı, fakat neden ikinci yöntem daha iyi tam olarak anlayamadım. Kısaca açıklayabilir misiniz?
Tail recursion çok ilginç bir şekilde hakettiğinden çok daha fazla tartışılan bir konu. Bu nedenle internette arayınca bunu anlatan yüzlerce yazıya rastlamak mümkün.
Wikipedia'dan: "In computer science, a tail call is a subroutine call performed as the final action of a procedure.", bu bana çok açık geliyor. Ancak bunu daha geçen hafta sınıfta öğrencilerin yarısının anlamadığını gördüm. Sorunları neyin tail call olup neyin tail call olmadığını söylemek oluyor genelde ama, sizin sorununuz aynısı mı, yoksa tail call'u anlayıp niye daha verimli olacağını mı anlamıyorsunuz bilmiyorum.
Neyse, baştan sona açıklamak istemiyorum, ama belki analojili şu entry'm bir miktar işe yarar: https://eksisozluk.com/entry/40103940 . Ne kadar anlaşılır 2. kişilere bilmiyorum. Onun için bunun dışında yönlendirmek isteyebileceğim bir iki şey daha var:
1) Bunların farkını ve optimizasyonunu anlamak için programlama dilleri, yorumlayıcılar, derleyiciler nasıl çalışıyor bilmek faydalı. Onun için fonksiyonel programlamaya girmeden önce Programming Languages tadında (bunlar işleniyorsa) bir ders almak faydalı. Yoksa derleyici dizaynı dersinde işleniyor bunlar, o da olur (ama biraz overkill olabilir). Örneğin https://en.wikipedia.org/wiki/Call_stack#Structure buradaki call stack layout üzerinden düşününce çok açık yapabileceğiniz optimizasyon.
2) İlla bu kadar düşük seviyeli detaylarla düşünmeniz de gerekmiyor aslında. Sürekli dönüp dolaşıp geldiğimiz SICP'de environment model diyagramları çiziliyor: https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-21.html#%_sec_3.2 , bu az çok yukarıdaki call stack frame'e denk geliyor ama daha anlaşılabilir. Her halükarda "SICP'yi okuyun, Scheme/Racket kullanmasanız da bilin" dediğim için (1) yerine bu da seçilebilir.
Son olarak konu dağılıyor ama şunu da demeden edemeyeceğim: C++'ta artık modern kodlarda çıplak pointer görmek "burada bir bit yeniği var" demeye yol açıyorsa (çok low level şeyler yapmadıığnız sürece), FP içinde de çıplak recursion görmek birçok durumda "bu daha sade implement edilebilir" demeye yol açabiliyor. Örneğin şu: https://eksisozluk.com/entry/38373197 , çok basit max operasyonu için binbir türlü hata yapılabiliyor recursion ile. Asıl önemli olan şu ama: max'ı kendiniz yazmanız gerekirse (ya da atıyorum custom comparator kullanmak isteyebileceğiniz bir versiyonunu yazmanız gerekirse) bunu recursion ile yapmayın: fold (bazı dillerde reduce deniyor) kullanın:(1) daha kısa (2) hataya daha az müsait (3) kodu okuyanlar fold'u biliyor olacak, 5 satır kod anlamaktan çok daha kolay anlayacaklar. Recursive yazmak isteyeceğiniz fonksiyonların "çok" büyük bir bölümü map/filter/fold üçlüsü ile yazılabiliyor. Bunları kullanıyorsanız da zaten tail recursion'ı bilip bilmediğiniz önemsizleşiyor (foldl mesela tail recursive), zamanla kafanızda oturacağını umup tail call'u ve optimizasyonunu anlamayı ileri bir tarihe de bırakabilirsiniz.
1 person likes this
THE üniversite sıralamaları hakkında ne düşünüyorsun? türk üniversiteleri bayağı yükselmiş 2014-15 sıralamasında. http://www.timeshighereducation.co.uk/world-university-rankings/2014-15/world-ranking
Bunu dedim geçenlerde:
https://twitter.com/simendiferlerin/status/518255580180250624
Bunun dışında böyle sıralamalara temkinli yaklaşmakta fayda var. Kriterlere verilen ağırlıklar bayağı keyfi, mesela öğretime %30, araştırmaya %30 ağırlık verilmiş, ama niye? %25-35 olamaz mı? %27.5-%32.5 olamaz mı? Bu ağırlıklarla oynadıkça sıralamalar da değişecek, onun için bunlara mutlak başarı olarak bakmamak lazım.
Böyle keyfi puanlamalarda puanların büyüklükleri arasındaki farkı yorumlamak zor, ama ilk 150 üniversiteden sonra 50/100'e düşüyor puanlar. 85. sırada olan ODTÜ'nün puanı da 56/100. Bu açıdan bakınca "dünya üniversiteleri olmasına çok var daha Türk üniversitelerinin" diyebiliriz belki (diyemeyebiliriz de, belki puanların birbirinin iki katı olması üniversitenin diğerinin iki katı iyi olması demek değildir, dediğim gibi yorumunu yapmak zor). Mesela kriteri sırf "research" seçince daha da sinir bozucu: 30'lara düşüyor puan Türk üniversitelerinde. Yine ne kadar önemli bilmiyorum bu skorun mutlak değeri, ama bir Türk üniversitesi rektörü olsam toplaşıp Gazze bildirisi yayınlayacağıma toplaşıp "bizim üniversitelerin araştırma skoru neden en iyilerin 1/3'üne bile ancak ulaşıyor" diye rapor yayınlardım.
"Yorumlamak zor"u şunun için diyorum: Diyelim bu skorlardan birisi A*B şeklinde iki faktöre sahip. Bir üniversite 10*a*10*b=100*a*b skora sahipken, diğeri ondan sadece %50 daha iyi olsun bu faktörlerde: 15*a*b*15*a*b=225*a*b, yani skoru sezgisel olarak "150*a*b civarıdır" diye tahmin etsek de aslında çok daha büyük çıktı. Bunun gibi hızlı büyüyen fonksiyonlara bağlı kriterleri var mı, yok mu bilmiyorum. Ama aynı causal nedenin iki farklı sonucunu iki farklı yerde topluyorlarsa bile haksız (veya öngörülmemiş, kriterlerin ağırlıklarına yansımamış) bir avantaja dönüşüyor bu. Neyse, dediğim gibi yorumlamak zor, üniversitelerin "niye bizim üniversitenin sırası burada, daha iyi olmak için ne yapmalıyız" diye sorması lazım, başka üniversitelere göre sıralama çok net bir şey ifade etmiyor.
Coursera'da Washington Üniversitesi "Programming Languages" diye ders açmış: https://www.coursera.org/course/proglang Nasıl sizce, tavsiye eder misiniz? Kaydoldum Emacs falan kullanıyorlar korktum biraz :)
- Unv. of Washington iyi bir üniversite CS alanında. Yapay zeka alanında daha da iyi olduğu için belki biraz yanlı (olduğundan daha iyi) geliyordur belki bana, ama ne olursa olsun iyi bir üniversite (ARWU CS 2014 sıralaması 40 küsür).
- PL dersi önemli bir ders, modern programlama açısından öğrenilecek çok şey var. Ama "ben javacı dotnetçi olucam" diyorsanız konuların birçoğu alakasız kalıyor. Örneğin sokaktan geçen göbeğini kaşıyan programcıya şunları deyin: algebraic datatype, pattern matching, tail recursion, closure, lexical scope vs dynamic scope, currying, parametric polymorphism, ADT, higher order function, dynamic dispatch; bu saydığım 10 şeyin 3 taneden fazlasını açıklayabilen, 5 taneden fazlasını duymuş olanı bulabilirseniz şaşarım (rakamları salladım tamamen, ama eminim az olacak, gerekirse 3-5'i 5-7 falan yapın).
- Bu dersi ben 14 haftalık almıştım, şimdi de 13 haftada öğretiyoruz. Konuları Coursera'dakinden daha dar olmasına rağmen zor yetişiyor, 10 haftada bu kadar çok şey işlenecekse iki ihtimal var (1) Ya çok yüzeysel anlatılacak (2) Ya da çok yoğun olacak. Dersi almadan hangisi geçerli olacak bilemem.
- Emacs sorun değil. Örneğin (standard) ML için cicili bicili IDE bilmiyorum ben, en uygun seçenek Emacs gibi geliyor. Kullanmak çok da zor değil, 15 dakikalık tutorial'ını takip edince aç-kapa-kaydet vb. gibi şeyleri öğreniyorsunuz, sml-mode için de topu topu 3-5 keybinding daha gerekli (interpreter'ı aç, interpreter'a yolla yeter hatta).
Biraz. Gazeteciler sağdan soldan duyduklarını adam gibi yayınlamayı, kaynak koymayı ne zaman öğrenecekler merak ediyorum.
1) Bu yeni bir haber değil. 2007'de yapılmış bir çalışmanın sonucu. Paywall arkasında diye veremiyorum, ama üniversitenizden vb erişim varsa şu makale: http://onlinelibrary.wiley.com/doi/10.1002/per.634/abstract
2) Bu IQ skorları değil, birçok test üzerinden hesaplanan bilişsel yetenek toplamları. Bunun içinde IQ da var, ama diğer testlerin ağırlığı (okuma, matematik, fen, gerçek hayatta problem çözme vb.) 2 kat.
3) Bir de "mutlak skor" diye bir şey yok, normalde IQ testinin (ve bazı benzerlerinin) ortalaması/medyanı 100 kabul edilir, ona göre diğer skorlar oluşturulur. Bu uluslararası bir çalışma olduğu için İngiltere'nin 2006 skoru 100 kabul edilip buna göreceli olarak skorlar. Onun için mesela grafikte İngiltere için 100'e çok yakın bir değer var. Ama ham IQ puanlarını merak ediyorsanız onlar da haritadaki değerlere yakın bayağı (yani Türkiye geride bayağı çoğu Avrupa ülkesinden, IQ puanı 90), hatta şurada var: http://hypnosis.home.netcom.com/iq_vs_religiosity.htm (kaynağını kontrol ettim, doğrular).
4) Mesela Türkiye'nin IQ puanı, toplam puanından az daha yüksek. Çünkü matematikli-fenli vb testler geriye çekiyor. Bu da eğitim verme özürlüsü olan bir ülke için şaşırtıcı sayılmaz.
5) OECD üyesi ülkelerde IQ dışındaki testleri (PISA) karşılaştırınca Türkiye geride yine. Örneğin matematikte ve fende Şili ve Meksikayı geçebiliyor onca ülke arasından. "okuma"da bir de Slovakyayı geçiyor.
6) OECD üyesi olmayan ülkelerde de sanmayn önlerdeyiz, bu üç konuda ortalardayız, bu testlerin (PISA) normalize edilmiş IQ'su da Türkiye için 85 çıkıyor.
Jaron Lanier'in Darwinci yaklaşımla yazılım geliştirmeye güvenemeyeceğini okudum bir yerde... Onun yapay zeka konusundaki tutumu belli de, sence böyle bu yaklaşımın yapay zekaya gelecekte katkısı ne ölçüde olacak?
Jaron Lanier ne diyor bilmiyorum, onun için direkt yorum yapamıyorum. Ama eğer "doğaya salıp kendi kendisine evrilmesine izin verdiğimiz programlara güvenemem" diyorsa, çok yerinde bulmuyorum. Onun için illa "Darwinci yaklaşım" gerekmiyor, data driven programlar bile yeterince tehlikeli o açıdan (hatta machine learning başlı başına bir sorun: insanın kendisi öğrenemeyeceği şeyler öğrenebiliyor bilgisayarlar. Bunların domain'i şimdilik sınırlı olmasına rağmen şimdi bile çok tartışılıyor (klasik gmail örneği: makine e-maillerinizi okuyor, bilinci olmadığı için pek çok insan sorun olarak görmüyor, ama hangi noktada Gmail'i tehdit oluşturacak kadar (yani bir insanın okumuş olduğunda tepki vereceğimiz kadar) bilinçli sayacağız, bunun sınırı nedir, onun cevabı kimsede yok).
Bunun dışında eğer konu sırf genetik algoritmalar ise benim çok da hoşuma giden algoritmalar değil. Evrim gerçek hayatta çalışıyor, sanal olarak çalışmaması için de ciddi bir neden yok gibi gözüküyor, empirik veriler de bunu bir yere kadar destekliyor. Ama evrimin dezavantajları var: (1) Çok zaman alıyor. En basit bir optimizasyon problemi için bir sürü nesil, bir sürü birey simüle etmek gerekiyor. Net ve kolay olan bazı problemler için de "overkill". Örneğin, elinizde n sayı varsa, bunu sıralamak için genetik algoritma yazmak, bilinen en kötü sort algoritmalarından bile daha verimsiz. Dolayısıyla "genetik algoritmayla ortaya çıkmış bir strong AI" bir ihtimal "bilinçli seçimlerle ortaya çıkmış bir strong AI"dan daha geç gelecek, bu ihtimal de bana göre küçük değil (2) Evrim fiziksel bir olay, fiziksel dünyadaki problemlere çözüm buluyor. Buraya kadar güzel, ama evrimi açıklamak için kullandığımız bazı soyutlamalar simülasyonlarda/hesaplamalarda ne kadar gerekli bilmiyoruz. Örneğin cinsiyet. Gerçek hayatta yeri çok büyük. Ancak genetik algoritmalara cinsiyet ekleyince, çoğu zaman aseksüel reprodüksiyon kadar başarı göstermiyor.
Cinsiyet ilginç bir konu cidden. Mesela şu açıdan bakın: İki cinsiyetsiz insanın gametlerini birleştirmesi pratikte mümkün değil. Çünkü hücredeki organellerden iki kopya olunca bunlar uyumsuzluk gösteriyor. Onun için doğanın çözümü şu: Bir taraf asıl hücre olacak (yumurta), diğeri de hücre içeriğinden fedakarlık edip minik kalacak (sperm). Bu da yumurtanın pahalı, spermin ucuz olmasına yol açıyor, bu da atalarımız olan türlerdekinden tutun, modern toplumdaki kadın-erkek ilişkilerine kadar bir ekonomiye yol açıyor (kadının seçici, erkeğin seçilen olması; kadının talebinin hep olması ama erkeğin talebi yaratmak zorunda kalması; kadının en iyi erkeğe, erkeğin de olabildiğince çok kadına ulaşma isteği vb hep bu yumurta-sperm dengesizliğinin bir sonucu ortaya çıkıyor). Bu açıdan bakınca da hesapsal genetik algoritmalarda cinsiyetin yeri olmaması normal olabilir, çünkü hesapsal dünyada cinsiyetsiz bireylerin gametlerinin uyumsuzluğu gibi "fiziksel" bir kısıt yok (ama bir ihtimal cinsiyeti anlamıyor olabiliriz, anladığımız gün algoritmalara eklenebilir).Yerimbitti
1 person likes this
Herhangi bir algoritmanın testini yapan araçlara ne deniliyor ?(hız, karşılaştırma testleri)
Ben öyle standalone bir araç kullanmadım, varsa bilmiyorum. Ama "benchmarking library" adı altında şeyler gördüm. Kendi karşılaştırmalarımı yapan kendi script'lerim var (input dosyalarını algoritmalarla çalıştır, memory-cpu zamanı ölç, bunları birden fazla core varsa onlara dağıt, çıktıları sakla, sonuçları tablo oluştur, pdf'e yaz vb), ama sorsalar "x aracım" demem herhalde, en fazla "benchmarking script'lerim" derim.
Ders çalışma planı için bir bilgisayar programı kullanmak gerekli midir ?
(Todo app benzeri programlar için soruluyor sanırım)
İlla değil, ama istiyorsanız kullanın tabii. Ben kısa vadeli şeyler için kullanmıyorum pek, ancak "dur ileride bunu da yapmayı unutmayayım" diye kullanabiliyorum (o da çoğunlukla "not alma" seviyesinde). Ama tabii artık ders almayan bir öğrenci olmamın da etkisi vardır belki.
Bir yandan da kısıtlarınızın doğasında ve sayısına bağlı. Yapmak istediğiniz çok şey, sınırlı vaktiniz var ve bazı şeyler sadece bazı vakitlerde yapılabiliyorsa bu biraz bin packing problem'a (veya timetabling/scheduling problemlerine) dönüşüyor, işin içinden çıkmak kolay olmayabiliyor (tabii bu kadar detaylı yardım eden bir program var mı onu da bilmiyorum. Benim emacs org-mode için yazdığım heuristic tabanlı bir planlayıcı var ama ihtiyaçtan çok eğlencesine yazmıştım). Dediğim gibi, sizin isteğinize bağlı, "kesinlikle lazım" veya "kesinlikle olmaz" diye bir şey yok.
http://ask.fm/simendiferlerin/answer/120109660015 Bencede kazanmak daha zor, ders çalışmak için dershanelerin ortamı ev ortamına göre biraz daha elverişli sayılır, disiplin sağlamak için yardımcı olabilir.
Mesela şu anki gibi dershane değil ama (1) çalışma ortamı (2) her dersten soru sorulabilecek öğretmen (veya öğrenci bile olur) (3) Haftalık sınavlar sunan bir yer iyi olabilir. Çünkü okullar ne kadar mükemmel olursa olsun öğrencinin pratik yapmaya ihtiyacı var. Sürekli sınava girmek onun için faydalı, özellikle önünde tavşan koşucuları görmek güzel motivasyon sağlıyor.
Dershanede ciddi ciddi ders anlatılmasının birçok açıdan sorunu var:
- Öğrenciler okullarında ders dinlemiyorlar, "bunu nasıl olsa dershanede komikliklerle şakalarla bize anlatan Murat hoca var, ondan dinlerim" diyorlar
- Öğretmenler "çok da detaylı anlatmama gerek yok, hepsi dershaneye gidiyor zaten, ben niye uğraşayım" diye işlerini düzgün yapmıyorlar (benimkiler öyleydi). Okuların kalitesi düşüyor, kalite düştükçe dershanelere daha çok prim veriliyor.
- Ne olursa olsun vakit kaybı. Aynı şeyleri iki kere dinlemek, zaten anladığınız konuları düşününce boşuna zaman kaybı. Kümeleri anlayan öğrenci bir kere daha dinlememeli, coğrafyayı zaten adı gibi bilen bir öğrenci dershanede oturup tekrar saatlerce bunu dinlememeli. İlla okul dışından yardım alınacaksa bu öğrenciye spesifik olmalı.
- Bunun dışında öğrenciler cidden dışarıya bağımlılığa alışıyor. ÖSS/ÖYS/YGS kapsamındaki hiçbir konu sıradışı zorlukta değil, hatta açın matematik testlerine bakın çoğu gerçekten basit konular (kümeler, aritmetik, kelime problemleri (böyle miydi bunun adı), çok basit cebir vb. Elbette ilk kez öğrenince zorlanacak öğrenciler, ancak bunun çözümü başkasının elinden tutup bunları beynine sokması değil bunları kendi kendine yapabilmeyi öğrenmesi. Dershane sistemi gerçekten entelektüel tembelliğe alıştırıyor öğrencileri. Sonra üniversiteye gelince ağlaşıyorlar "bu ders de çok zormuş" diye. Ders zor değil, sen 3-4 yıl boyunca tembelliğe alıştırıldın, şimdi de bedelini ödüyorsun.
Bu sırf dershane bağlamında da geçerli değil. Hayatı boyunca özel ders almaya alışmış insanlar da günü gelir de kendi ayakları üzerinde durmak zorunda kalırlarsa çok zorlanıyorlar. Özel ders de kısa vadeli çözüm, işe yarar mı yarar, ancak günü kurtarır.
Kurban bayramı hakkında ne düşünüyorsunuz?
Sağda solda "arkadaşlar kurban bayramının asıl amacı olan fakirlere yardım etmeyi unutmayalım" gibi şeyler görüyorum.
Bu yanlış.
(Kurban'dan tamamen sapıyorum, daha genel olarak "ibadet" bundan sonraki konu:) Hiçbir ibadetin "amacı" kendine/başkasına iyilik yapmak değildir. "İbadetin amacı" diye bir şey de yoktur, yapmak zorunda olduğun için, Tanrı buyurduğu için yaparsın.
Mesela çok basit bir soru: Diyelim ki bilim ortaya çıkardı ki namaz kılmak omuriliğe zararlı. Namaz kılanlar "aa yararlı değilmiş" diye kılmayı bırakacaklar mı? Hayır, çatır çatır kılacaklar hala. O zaman "namaz beden sağlığına iyi geliyor diye kılıyoruz zaten" demek ne kadar doğru? Kurban bayramı da bunun gibi ("kurbanın zararlı olduğunun kesin kanıtı" pek mümkün olmadığı için örneği namaz üzerinden verdim).
Çok isterseniz en fazla "ibadeti ibadet olduğu için yapıyorum, bir yandan da kendime/dünyaya katkı oluyor" diyebilirsiniz, o da bir yere kadar tutarlı ancak. Tanrı'nın niyetini okumaya çalışabilirsiniz, "bunu zaten iyi olduğu için emretti" diye, ama niyet okumak insanlar arasında bile kaba bir şey, Tanrı niyetini okuduğunuz için size kızabilir. Bunun dışında "iyi"nin tanımı da oldukça muğlak -- herkesin fakirleri doyurduğu, refah dolu bir dindar toplum düşünün, peki welfare problem'ı nasıl çözecekler? Çözmeyeceklerse ortaya çıkan toplum gerçekten "daha iyi" bir toplum mu?
Neyse, dünyada karşılaştığımız her kötü şey için, veya kötülük problemi konu olduğunda "Tanrı'nın bildiği bir şey vardır, insanın aklı yetmez" diye kendisini aşağılayan insanlar, her nasılsa konu iyilik olunca "ben Tanrı'yı çok iyi biliyorum, niyetini de okurum, ibadetlerin amacını biliyorum, her şeyi biliyorum" moduna giriyorlar. Bunun ne kadar tutarlı olduğuna, biryüzlülük mü ikiyüzlülük mü olduğuna siz karar verin.
Önem verdiğiniz ya da patron-profesör gibi statüsü gereği ters gidemeyeceğiniz birisi size burcunuzu sorarsa ne yaparsınız? Burcuzunu mu söylersiniz yoksa inanmadığınızı mı belirtirsiniz? Ya da "İnanmıyorum ama Sodyum Burcu" mu dersiniz? (Not:Ben de burçlara inanmıyorum.)(Not 2: Galatabahçetaşlıyım)
Profesörüm sorsa "inanmıyorum ama Sodyum burcu" derim. Derken de "c'moooon, bana bunlara inandığını söyleme hahaha" derim. Ama inanmayacağını biliyorum, bir insan 40 yıl mantık falan çalışıp nasıl burçlara inanabilir ki?
Haklıdır. İnternete gerçekten giderek daha çok karşı oluyor.
Bunun gibi konularda (hakaret, aşağılama, dalga geçme, ırkçılık, cinsiyetçilik vb) değişik kültürlerde yerleşmiş değişik denge noktaları var. Örneğin, Türkiye'de bir zenci için "hehehe gündüz feneri gibi bu adam" demek hiçbir tepkiye yol açmıyorken, Batı'da insanların gözlerini kocaman yapmanız için yeterli bunun gibi bir şey demek. Örneği değiştirelim: Türkiye'de zenciye/Hintliye "güneşte yandım ama senin kadar karamamışım" derseniz çok normaldir, birçok insana sorsanız "bunda sorun nedir, görebiliyor musun" diye "ne var la bunda" diye azarlar seni. Ama bunu Batı'da sorunca insanlar tepki gösterir "sen ne diyosun ya" diye (bu gerçek bir örnek, abarttığımı düşünmeyin). Ben mesela ikisinden birisinin doğru veya yanlış olduğuna inanmıyorum, insanlar üzerinde anlaştığı sürece ikisi de normal.
Din-hakaret vb. konusu da öyle: Kimsenin kimsenin dini hakkında tek
kelime etmediği bir kültür de normal bana göre; herkesin herkesin dini
hakkında konuşabildiği, gerekirse dalga geçebildiği de (uçan atlara
inanan bir din duyunca mesela ben de dalga geçmek istiyorum, anormal
değil. Bir gün keyfimin kahyası uzayın derinliğinde unicorn'lara
inanmak istese benle de dalga geçsinler, ikiyüzlülük yapmam bu
konuda). Batı bunun "konuşulabildiği" ucunda duruyor, ama ya Türkiye?
Kimsenin kimsenin dini hakkında konuşmadığı bir ülke olsa çok da
itiraz etmem, ama biliyorsunuz ki durum böyle değil. Alevilerin ne
aleviliği, ateistlerin ne ateistliği kalıyor. Dolayısıyla samimiyetine
inanmıyorum RTE'nin "ühü hakaret" laflarına.
Bakın bu çok yaygın bir şey, sosyal hayatın her tarafında karşıma
çıkıyor, gerek arkadaş gerek ilişkilerde olsun:
X tarafı Y tarafına hatalı (genelgeçer hatalı kabul edilen bir şey
olmak zorunda değil; sırf Y'nin istemediği, hoşuna gitmeyen de
olabilir) bir davranışta bulunsun. Bundan sonra Y de X'e bunun doğru
olmadığını anlatsın (ya da "kavga ettiler"), ve de konu kapansın. Buraya
kadar çok normal, herhangi bir sosyal çatışmada bu olur zaten. Ama
inanılmaz olan şey şu: Y elini kolunu sallayarak aynı istenmeyen davranışı X'e
yapmaya başlayabiliyor. X sorarsa "sen yaparken iyiydi" diye üste
çıkıyor, X sormazsa da X'le konuşup yapmaması gerektiği üzerine
anlaştıkları şeyin aynısını X'e rahat rahat yapabiliyor. RTE'nin (veya genel olarak muhafazakar kesimin)
yaptığı da din-özgürlük vb konusunda Y'nin yaptığıyla aynı.
Haskell hakkında şöyle bir entry var, bu konuda ne düşünüyorsunuz?: https://eksisozluk.com/entry/44389727
"Başka dillerde bunları arıyorum" kısmı benim için de. Mesela ben de Haskell öğrendiğim yıllarda her zamanki gibi kendi işim için C++ yazarken fonksiyonel özellikleri arıyordum. C++'ta template'larla pislik dolu parametrik polimorfizm varken Haskell'da (Haskell'ı "haskel" diye okuyanların varlığını farkettim, şimdi garip geliyor. Mesela Java'ya Türkçe'de ortama ayak uydurmak için java diye okuyorum, Caa-va diye okursam tepki çekiyor, ama Haskell'ı haskel diye okuyabileceğimi sanmıyorum hiç, neyse.) tertemiz olduğunu görünce insanın hoşuna gitmiyor değil.
Mesela şurada C++/Haskell karşılaştırması var iki örnek üzerinden:
https://eksisozluk.com/entry/30561141
İlk örnek haydi neyse ama ikinci örnekte generic fonksiyon yazmak için binbir türlü takla atılıyor (yanıltmış olmayayım, yeni standartta biraz daha sade, ama yine de verbose bayağı. Template hatalarının okunaksızlığı tamamen ayrı bir boyut, Haskell'da bunun eşleniği çok daha temiz, hata alınca sorun ne çok rahat anlaşılıyor).
İkinci kısım için çok yorum yapamıyorum, çünkü Haskell ile sadece yapay zeka uygulamaları yazdım, network yok, I/O sadece en başta ve en sonda var, vb. Dolayısıyla HUnit dışında dependency'm olmadı hiç. Dökümantasyon konusunda katılmıyorum çok, istediğimi her zaman pat diye, çok temiz bir şekilde buluyorum ben. Örneğin Python'a bakacak olursanız karman çorman, arada alakasız şeylerden bahsediliyor, iki satırda net olarak anlatılacak şey dönüp dolaşıp çok da gerekli olmayan örnekler üzerinden anlatılıyor vb, Ahmet Mithat romanı okur gibi hissediyorum bazen Python dökümantasyonunda.
Mesela, python.org'daki parsing wiki'si burada:
https://wiki.python.org/moin/LanguageParsing
En üstte main python dist'teki shlex kütüphanesi var. Tıklayalım üstüne, karşımıza 404 çıkıyor. Google'da aratınca https://docs.python.org/2/library/shlex.html adresini buluyoruz. Ama o da ne, bu parser değil, lexer kütüphanesi? Ne arıyor parsing sayfasında? Alakalı elbette, ama parsing deyince insan lexing kütüphanesi beklemiyor.
Neyse, listede pyparsing var, ona bakalım: http://pyparsing.wikispaces.com/ , documentation altında kitaplara referans var, konuşmalara var, HTML Howto var ama sourceforge'a yönleniyor, orada bulamıyorum nerede. Introduction'a tıklıyorum, bir paragraf yazı var. Sonuçta karman çorman, ben memnun değilim.
Google'a "haskell parsing" yazın, ilk şu çıkıyor: http://www.haskell.org/haskellwiki/Parsec , her şey derli toplu, yanlış link yok, referanstan tutun, tutorial'a kadar her kaynak anında bulunuyor.
Bu belki spesifik bir örnektir, tersi olduğu durumlar da vardır ama benim deneyimim Haskell'in ortalamanın en azından daha üstünde olduğu yönünde.