Pamuk ipliğinden biraz daha sağlam tek bağ: düşünce birliği. O da rüzgarın her an tehdit ettiği bir kandil. Düşünce birliği, düşünen insanlar arasında olur. İnsanların kaçta kaçı düşünür? Düşünenlerin kaçta kaçı karşılaşır ve açılır birbirine. -- Cemil Meriç
Sayfalar
Ana Sayfa
FAQ / SSS
Salı, Ağustos 31, 2021
Ne Yapmalı II
Yine bir Kıssayla başlayalım. 5 Maymun deneyi kıssası*
Bilim Adamları bir kafese 5 maymun ve bir merdive ve kafesin tepesinde Muz kuymuşlar. Dışarıyada bir görevli bırakılmış. Ne zaman maymunlardan biri ICAT çıkarıp merdivene tırmanıp muza ulaşmaya çalışsa, görevli soğuk ve tazyikli suyla başta merdivene çıkan olmak üzere bütün maymunları ıslatıp engellemiş. Doğal olarak maymunlar bir süre sonra muza ulaşmaya çalışmaz olmuşlar. Neyse Efendim maymunlardan birini çıkarıp yerine yeni bir maymun koymuşlar. Yeni maymun hemen muzun farkına varıp ICAT çıkarmak için merdivene hamle yapınca. Diğer maymunlar ICAT ÇIKARMA BAŞIMIZA deyu yeni maymunu bir güzel pataklamışlar. Yeni maymunun durumu öğrendiğini gören bilim adamları diğer maymunlarıda birer birer çıkarıp yerlerine yeni maymunlar koymuşlar ve aynı sonuçlar. görülmüş
Sonuçda Ortada görevli olmasada Maymunlardan hiç biri ICAT çıkarmaya kalkmıyormuş, Icat çıkarmaya kalkanlarıda maymunlar kendileri pataklıyormuş.
Geçenki yazımızda ulaştığımız sonuçlardan devam edersek. Toplum olarak Yetenekli ve Zeki bireylerimizi harıcıyoruz.** Hasbel kader yetişenide ICAT çıkarmasın diye dövüyoruz. Ne yapmamız lazım peki.
Icat çıkarılıyor diye fertleri cezalandırmayı bırakmalıyız. Toplumun cezalandıracağız diye yüzyılllardır öğrendiği negatifi öğrenmeyi tersine çevirecek çalışmalar yapmalıyız.
Tavuk mu yumurtadan çıkar, Yumurta mı tavukdan çıkar ikilemi gibi bir durum var elbette. Yönetimmi kendini düzeltmeli , Insanlarmı kendini düzeltmeli. İçinden çıkılmaz bir durum.
Örnek den yola çıkarsak
Yönetim olarak Islatmayı bırakıp merdivene çıkılmasını teşvik etmeye kalkıyorsunuz. Merdivene çıkılsın diye verdiğinizi yiyip çıkıyormuş gibi yapan maymunlar olabiliyor. Birey olarak maymunun zaten hiç şansı yok, ya çevresinden ya çevresiyle beraber görevlilerden ceza alabiliyor.
Sonuç olarak ne tek başına Yönetim Ne tek başına ferdin çözebileceği bir problem değil. Problemin politikaya evrilip çözümsüzlüğe yuvarlanmasıda ayrı bir problem. Duydunuzmu bilmem Koçi Bey risalesi diye bir makale vardır. Osmanlı devletinin kötü gidişatıının raporlandığı bir çalışma, hemde taa Dördüncü murat devrinde.
Padişah'ların etrafında dalkavuk devlet adamları vardır ve bu yüzden padişah, halkın sorunlarından uzaktır.
Tımar ve Zeamet sistemi bozulmuş, topraklar verimsiz, halk rahatsızdır.
Rüşvet artmış, memuriyet alım satımı yapılmaya başlanmıştır.
Kuruluş felsefesi, disiplin ve devletin beka'sı olan Yeniçeri ocağı artık silahını, padişah, devlet ve millete çevirmiştir.
Devlet adamalarının basiretsizliği, eğitimsizliği ve liyakatsizliği sorunları derinleştirmektedir.
Giderek her işe hatır karıştı, her şeye göz yumuldu ve hak etmeyenlere bir çok mevkiler verildi,
...
İyi-kötü belirsiz oldu. İyilerin iyi işlerinin değeri bilinmediği ve kötülerin kötülükleri cezasız kaldığından, âlim ve cahil birbirinden ayrılmadığından, ulemânın kıymeti bilinmediğinden, bilginlerin halk gözünde saygınlığı kalmadı.
...
âlim ve cahil eşit görülmezse ilim yolu kısa zamanda düzelir. Ancak, aldırış etmemekle âlem elden gider.
Küfr ile dünya durur, zulm ile durmaz.
Evet Nerdeyse 400 yıl geçmiş ama aynı problemlere sahibiz. O zamandan günümüze pek çok değişik siyasi görüşte insanlar, ülkemizin başına gelmiş ve gitmişleridir. Bu demektir ki Şu zevat zamanı iyiydi , yok aslında öteki zevatı muhterem çok iyiydi demenin hiç bir anlamı yok. Toplumsal bir probleme parmak basıldığında iş hemen siyasete evrilip dipsiz bir kuyuya atılıyor. Lütfen yazımızı böyle değerlendirmeyin.
Eğer fert olarak yönetimde bir vazife almışsanız, bu problemleri elinizden geldiğince çözmeye çalışın. Yok yanlızca fert iseniz, yönetimlerin düzelebilmesi için ferdin yapabileceği bence yegane şey ; Hiç kimseye ama hiç kimseye yönetim anlamında gözleri tamamen kapalı güvenmeyin. Futbol takımı gibi taraftarlıkdan vaz geçin. Bütün insanlar gibi siyasetçiler de ödül ve ceza sistemiyle hizaya girer.
Konumuza devam edersek.
Bir ideal belkide bir anlamda hayal peşinde yürümek lazım. Kendimize güçlü olduğumuz yönleri gözetleyerek bir görev tanımı yapmalıyız. Görev dışı konulara fazlaca takılmamalıyız. Çünkü bu takıntılar, başarısızlıklarımızın bahanesi hali geliyor. Nice çok yetenekli ve bilgili insanımızın acizlik batağına düştüğünü görüyoruz. Yönetim şöyle, akademi böyle, halk öyle, vs vs ... . Problemlerin kaynağının değiştiremeyeceğimiz sebeplere bağlanması, Acizlik sızlanması döngülerinde yitip gitmeye sebep oluyor.
Yine darmadağın bir yazı oldu kusurumuza bakmayın.
* kıssası diyorum aslında böyle bir deney yapılmamış. bakınız
** Pek çok zamanda kendi kendilerini harcadıkları vaki. Mevcut düzeni anlayıp oradan çıkış yolu bulmak yerine, Agresif bir tavrıla ben her zaman haklıyım, her şey tam benim istediğim gibi olmalı. Deyip olmadığında küskünlüklerden bataklığında debelenip kalırlar. Oysa ki Çok yetenekli ve zeki de olsanız, başarılı olabilmeniz için çevrenizden destek almanız gereklidir. Bakınız Dr Sheldon nın Nobel konuşmasında . " I have been encouraged, sustained, inspired and tolarated" diyerek çok güzel vurguluyor.
Gönderen birol kuyumcu zaman: 8:55 ÖÖ Hiç yorum yok:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Etiketler: diğer
Cumartesi, Ağustos 08, 2020
Böyle gelmiş böyle gidecek korkarım Vallah !
Kadının biri çoçuğunun durumuyla ilgili görüşmek üzere öğretmenini ziyaret etmiş
Kargaya yavrusu şahan görünürmüş misullu evlanına güzellemeler yaptıktan sonra
hocam demiş olur ya bazen bizimki şımarıklık yapar, gürültü yapar, yaramazlık yapar,
Hiç çekinmeyin Bütün gücünüzle bir tokat vurun yanında oturan çocuğa, hemen susacaktır.
Başkalarının
Şımarıklığı ,
Üç kağıtçılığı,
Hesap bilmezliği
Hovardalığı,
İş bilmezliği,
Beceriksizliği
Yolsuzluğu,
Hırsızlığı,
Arsızlığı,
...
yüzünden tokat yemekten BUNALDIM...
Gönderen birol kuyumcu zaman: 11:24 ÖÖ 1 yorum:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Etiketler: diğer
Perşembe, Temmuz 30, 2020
Ne Yapmalı I / Aptal yada Tembelmiyiz ?
Kim Ne sorduda Ne yapmalı diye bir başlık açma ihtiyacı duyduk önce oradan başlayalım
"Bilim, Teknoloji ve Yenilik Politikaları Kurulu" tarafından çifter çifter anket linkleri geldi.
Sayın BİROL KUYUMCU,
....
T.C. Cumhurbaşkanlığı Bilim, Teknoloji ve Yenilik Politikaları Kurulu (BTYPK) bünyesinde ve TÜBİTAK’ın teknik desteği ile bir “Yapay Zeka Teknoloji Yol Haritası” hazırlanması çalışması yürütülmektedir. Teknoloji Yol Haritasının; ilgili alt teknolojiler özelinde belirlenecek stratejik hedefler, ülkemizin bu hedeflere ulaşması için geliştirilmesi kritik olan ürün/teknolojiler, bunların geliştirilmesine yönelik Ar-Ge projeleri ve son olarak da geliştirilen kritik ürün/teknolojilerin öncelikli sektörel uygulamaları şeklinde çok katmanlı bir yapıda oluşturulması öngörülmektedir. Teknoloji Yol Haritası, belirlenen konularda somut Ar-Ge ve yenilik hedefleri ile bu hedeflerin gerçekleşmesi için gerekli kilometre taşlarını içerecektir. Bu sayede, bu alanda hedef ve ihtiyaç odaklı, izlenebilir sonuçları olan projelerin desteklenmesi sürecine katkı sağlanacaktır.
Teknoloji Yol Haritası oluşturulması sürecinin bu aşamasında ülkemizde yapay zeka algortimalarının geliştirilmesi konusunda çalışmalar yapan ve yapay zeka uygulamalarını kendi faaliyet alanlarında kullanan yetkin uzmanlardan, ülkemizin odaklanması gereken stratejik hedefler konusunda katkılar alınacaktır.
“Yapay Zeka” konusundaki uzmanlığınıza dayanarak, hedef önerilerinizi ve katkılarınızı, .... günü mesai bitimine kadar, aşağıdaki bağlantıdan ulaşabileceğiniz "... formu" aracılığıyla iletmenizden mutluluk duyacağız.
Ilkinde daha kısa ve öneri isteyen bir anket, sonra daha detaylı seçilmiş bazı başlıklar hakkındaki "teknoloji temelli stratejik hedef önerilerinin ve sektörel ihtiyaçların, ülkemizdeki “yapılabilirlik” ve “etki” açısından, yine ekosistemin tüm paydaşlarının değerlendirmeleri" istenmiştir.
Anketleri doldurdum ama bence anketle ne derece sonuca ulaşılabilecek bilemiyorum. Hazır blogumuz var kim tutar bizi deyip sadece Yapay Zeka değil geniş anlamda Ne yapmalı diyerek bir yazı dizisi yazmak istedim. Başlıyoruz...
Bir Şey Yapmalı da Toplum olarak buna uygun bir yapıya sahip miyiz ?
Aptalmıyız ?
Zeka konusundaki popüler ölçüt IQ değeridir. Irklar üzerinden karşılaştırmalı çalışmalarda yapılmıştır.
bakınız : psychology.wikia.org/wiki/Race_and_intelligence
ırklar arasındaki bu değişimin aldatıcı olduğunu düşünüyoruz Nitekim
burada : Irkların değişik yerlerde değişik ortalama IQ değerlerine sahip çıkması bu iddiamızı destekliyor.
Keza bir gerçeklik payı olsada Bütün Irkların bir gaussian bir dağılımla çok zeki fertlerinin olacağı sonucu çıkıyor. Sonuç olarak bizim yada herhangi bir milletin zeka problemi yok, Zeki insanlarını değerlendirme problemi var diyebiliriz sanırım...
Tembelmiyiz ?
Bir Anekdotla başlayalım
"Birinci Dünya savaşının sonlarına doğru Konya ovasının sulanması işlerinde çalışan bir Alman mühendis, Tuz gölü civarında bir köyün arazisini ölçerken duvarın gölgesinde uyuklayan bir Türk köylüsünü görür. Sabahtan beri yakınında çalıştığı halde köylünün bu ölçme işleriyle hiç meşgul olmadığı dikkatini çeker, bu alakasızlıktan dolayı hayret eder ve merakını gidermek maksadıyla onunla konuşmak için yanına yaklaşır. Merhaba der, köylü hiç kımıldamadan uyuklar vaziyette, yarı açık gözleri ile selamını iade eder. Büsbütün hayrete düşen mühendis sorar:
Sabahtan beri burada niçin çalışıyorum biliyormusun ?
Köylü, yine kayıtsız şekilde omuzlarını silker. Mühendis devamla, ben bu arazinin sulanması için çalışıyorum, der;
eğer bu kanallar açılırsa sen bu gün aldığın ürünün iki katını alacaksın diye ilave eder.
O vakite kadar uyuklamasına devam eden köylü, bu son sözleri işitir işitmez, gözlerini açar, içlerinde parlayan şeytani bir pırıltı ve dudaklarında beliren bir gülümsemeyle,
öyle ise ben o vakit bugün çalıştığımın yarısı kadar çalışacağım diye haykırır."*
Bu anekdot Sosyolojide meşhur coğrafi okulun çağdaş temslcilerinden biri olan Huntington 'ırkların karekteri' adlı eserinde Türk Karekterinden bahsederken geçiyor. Sonuç olarak da "Türklerin tembel ve iktisadi zihniyetten yoksun oldukları " neticesine ulaşıyorlar.
Bizce ortada bir gerçek var ama ulaşılan netice yanlış. Dünyanın dört bir yanında burada yetişip gitmiş ama pek çok değişik alanda çok başarılı olmuş Insanımızın varlığı bize göstermektedir ki tembel de değiliz. Bizce böyle davranılmasının arkasında, toplum olarak negatif öğrenmeye maruz kalmış olmamız vardır.
Devamı kısmet olursa devam yazılarımızda...
Her türlü görüş ve önerilerinizi bekleriz.
Notlar :
* Bilimsel Değerlendirme ve Araştırma Metodolojisi / Orhan Türkdoğan S- 212,213
Gönderen birol kuyumcu zaman: 11:03 ÖÖ Hiç yorum yok:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Pazar, Mayıs 17, 2020
Python ile Derin Öğrenme
Bazen söylemek istediklerimi çok karmaşık söyleyebiliyorum. Bir önceki yazımızda anlatmak istediğimiz özetle şudur. Tek başına Keras kullanmak artık mümkün değil. Tesorflow'a geçmek zorundayız. Ama bunu yaparken Kerasdanda vazgeçmiş olmuyoruz çünkü Tensordlow 2.x den sonra Kerası merkeze almış bir yapısı var.
Bu konuda Türkçe basılı kaynak isytenlere önerebileceğimiz yegane kaynak kitap "Python ile Derin Öğrenme" kitabıdır. Bu kitap bir tercüme çalışması. Orijinal Halini "Francois Chollet" yazmış.
Orjinal Kitap Linki : Deep Learning with Python
Tercümesini Bilgin Aksoy kardeş yaptı. Karınca kararınca bizde düzenlemesine yardımcı olduk. Buzdağı yayınevi de basımını yaptı.
Türkçe Kitap Linki : Python ile Derin Öğrenme
Kitap tanıtımından alıntı yapalım
Bu kitap, derin öğrenmeyi sıfırdan öğrenecek ya da bilgilerini artıracak herkes için yazılmıştır. Makine öğrenmesi mühendisi, yazılım geliştirici veya üniversite öğrencisi de olsanız bu kitapta değerli sayfalar bulacaksınız.Bu kitap, uygulamalarla ve kod yazarak derin öğrenmeyi öğretmeye çalışmaktadır. Matematiksel notasyon yerine sayısal kavramları kod örnekleriyle açıklayarak makine öğrenmesi, derin öğrenmenin temel fikirleri hakkında uygulamalı bilinç oluşturmaya çalışmaktadır. Ayrıntılı olarak açıklamaların eklendiği 30’dan fazla kod örneğinden, pratik tavsiyelerden ve derin öğrenmeyi somut problemlerin çözümünde kullanmayabaşlamak için gerekli her şeyin detaylı açıklamalarından öğreneceksiniz. Kod örnekleri Python derin öğrenme kütüphanesi Keras’ı arka planda TensorFlow’la kullanmaktadır. Keras en popüler ve hızlı gelişen derin öğrenme kütüphanelerinden biridir ve genelde yeni başlayanlara yaygın olarak tavsiyeedilmektedir. Bu kitabı okuduktan sonra derin öğrenmenin ne olduğu ne zaman uygulanabilir olduğu ve kısıtları hakkında sağlam bir temele sahip olacaksınız. Makineöğrenmesi problemlerine yaklaşmada standart bir yol haritasını ve sıkça karşılaşılan sorunlara nasıl çözüm getireceğinizi öğreneceksiniz. Görüntü sınıflandırma, zaman serisi tahmini, duygu analizi, resim ve metin üretme gibi bilgisayarlı görüden doğal dil işlemeye kadar birçok gerçek hayat probleminde Keras’ı kullanabileceksiniz.
Kitabın içeriğiyle ilgili daha detaylı bilgi için bakınız
Aslında kitap çıkalı epey zaman oldu. Şimdi niçin duyuru yapıyoruz konusuna geçersek. Bu kitaptaki örnek kodların Tensorflow .2x için adaptasyonunu yapalım diye bir çalışma içine girdik.
https://github.com/birolkuyumcu/deep-learning-with-python-notebooks-tf2.x
Tensorflow adaptasyonu deyince gözünüz korkmasın. Kodun çoğunda değişiklik olmuyor. Kitap yazılalı epey zaman geçmiş bu yüzden Tensorflow adaptasyou olmasada versiyon uyumsuzluğundan düzeltilmesi gereken yerler olabiliyor. Peyder pey kodları düzenleyip paylaşacağız orjinal kodlara bakmak isterseniz burada
Her türlü görüş ve önerilerinizi bekleriz.
Gönderen birol kuyumcu zaman: 11:50 ÖÖ 1 yorum:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Etiketler: derin öğrenme, keras, kitap, tensorflow
Pazar, Mayıs 10, 2020
Keras 'ın akibeti ile Tensorflow 2.x durumu
Bizi takip edenler bilir. Derin öğrenme kütüphaneleri hakkında yazılar yazmıştık.
Derin Öğrenmede Kütüphane Savaşları 1
Derin Öğrenmede Kütüphane Savaşları 2
Bizde bu kütüphanleri içinde "Keras" ı tercih etmiştik. Kullanımı kolay, ağ yapısını tasarlamak kolay, lego vari katman eklemeleri ile çalışıyordu. Genel eğitim fonksiyonları ile hafızdan yada dizinden , yada Python Generator kaynaklı şekilde eğitim tasarlamak mümkündü. Üst düzey bir yapısı vardı alta Theano, Tensorflow, CNTK, mxnet gibi diğer kütüphaleri kullanabiliyordu.
Yukardaki yazılarda bahsettiğim gibi büyük şirketlerin savaş cephesi haline gelmiş bir ortamda, Googleın TF deki tekelci anlayışı. Kerasın yazarının google işe girmiş olması vs durumlar kerasın geleceği hakkında endişelendiriyordu.
Beklediğimiz gibi Büyük şirketlerin savaşı neticesinde geriye 3 şirket ve 3 Kütüphane kaldı
Tensorflow / Google
PyTorch / Facebook
MxNet / Amazon
Theano gelişimi desteksizlikten durduruldu. CNTK ne yapıyor bilen yok. Caffe2 yi PyTorch un içine gömdüler. Keras da müstakil versiyon yani değişik ktüphaneler üzerinde çalışabilen halini DURDURDU. Her tür backend ile çalışan en son versiyon Keras 2.2.5 oldu. Duruma üzülsemde bir anlamda da hak vermek zorundaydım Theano zaten duruduruldu, CNTK ve MxNet cepheside Kerasa yeterli desteği çıkmayınca. Geliştiriciler mecburen böyle bir yola girmek zorunda kaldılar. Madem Tensorflow dışındakilerden destek gelmiyor. Tensorflowun içinde ki keras üzerinde yürümeye devam ederiz dediler.
Yazının başındaki Resmi
"If you’re asking “Keras vs. TensorFlow”, you’re asking the wrong question"
yazısından aldım özetle dediği ; Kerasmı Tensorflow mu diye soruyorsanız yanlış soru soruyorsunuz diyor. Artık zaten böyle bir sorunun hiç bir anlamıda kalmadı
Ama beklenmeyen şey Tensorflow 2.0 ile oldu. Tensorflow'un merkezine süpriz bir şekilde Keras geçti. Pek çok kaynakda sizde araştırın göreceksinizki eski NN kısmının kullanımının anlatıldığı felan yok. Tensorflow 2.x ile temel kısımlar keras üzerinden anlatılmaya başladı ve şimdilik öyle de devam edecek gibi görünüyor.
Elbette herşey güllük gülüstanlık değil. Tensorflow 2.x geçmekle öğrenmemiz gereken yeni şeylerde var. Mesela verilerle ilgili kısımlar için "tf.data" kullanmayı öğrenmek veya Ön eğitimli model kullanımı için TensorFlow Hub kullanmayı öğrenmek gibi.
Intro to TensorFlow for Deep Learning
Udacity de yayınlanan bu ücretsiz kurs ile Keras'dan TF 2.x geçişinizi hızlandırabilirisiniz.
Bu durumun pek çok avantajları var elbette. Çoklu GPU kullanımı , ve elbette TPU kullanımı artık mümkün. Keza yazdığınız kodu pek çok ortamda çalıştırma imkanına kavuşmuş oluyoruz. En büyük çekincem Kerasın logo vari yapısının bozulup "subclassing" yapısının mecburi hale getirilmesi. Yeni tip katman tanımlamaları için bu tür "subclassing" sistemi mecburi olabilir ama bu katmanların yine eski metodlarla bir araya getirilebilmesi şartıyla. Bütün yapıyı bu tip bir sisteme dönüştürdüğünüzde Keras kullanmanın zannımca hiç bir anlamı kalmıyor malesef
Son olarak Kerasın ana geliştiricsinin fikirleri ve "Francois Chollet" in tf.keras'ın detaylarını anlattığı 2 video ile yazımızı tamamlıyoruz.
Keras and TensorFlow 2.0
Inside TensorFlow: tf.Keras (part 1)
Inside TensorFlow: tf.Keras (part 2)
Her türlü görüş ve önerilerinizi bekleriz.
Gönderen birol kuyumcu zaman: 10:48 ÖÖ Hiç yorum yok:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Etiketler: derin öğrenme, keras, mxnet, pytorch, tensorflow
Perşembe, Eylül 19, 2019
FastText ile Kelime Vektörü Oluşturma
Bu yazımızda FastText kullanarak nasıl kelime vektörü oluşturabileceğimizi nasıl göreselleştire bileceğimizi göreceğiz.
İlk yazımızda bahsetmiştik
"Sonra Kelime vektörü - word2vec - denen bir kavram çıkmış ortaya. Her kelime için sabit uzunlukta bir vektör kullanmak. "Birlikte geçen kelimeler anlamca yakındır" var sayımından yola çıkılıyor. Başlangıçda aynı yapay sinir ağlarındaki gibi kelimeler için rastgele seçilmiş vektör değerleri atanıyor. Devasa derlem - corpus - kullanarak danışmansız şekilde - unsupervised - her kelime için birlikte geçtiği kelimelere göre bu vektörler güncelleniyor. "
Kelimelerin anlamca yakınlıklarına göre orantılı birer vektöre dönüştürülebilmesinin önemi büyük. Doğal dil işleme ile yapılacak hemen her işte işimize yarar bir başlangıç noktası verir. Mesela bir arama algoritmasında sadece yazdığınız kelimeyi ararsınız. Aynı yada yakın anlama gelen kelimelerin geçtiği yerlere ulaşamazsınız. Anlamca yakın kelimeler ile arama yapabilmek için kelime vektörleri çok işinize yarayacktır. Bir başka aklıma gelen örnek; iki metnin anlamca yakınlığının hesaplanmasında kullanılabilir.
FastText 'in sitesinde değişik dillerde Common Crawl ve Wikipedia dan toplanmış derlemler le eğitilmiş hazır kelime vektör modelleri var. Elbette Türkçe içinde var.
fasttext.cc/docs/en/crawl-vectors.html
Buradan yayınlanan hazır eğitilmiş kelime vekörleri iki formatta sunuluyor. Uzatnısı .bin olan FastText modeli doğrudan yüklüyebiliyorsunuz. Yada uzantısı .txt olan da her satırda başta kelime devamında vektör olacak şekilde hazırlanmış bir metin dosyası olarak.
Hemen baştan uyarayım dosyalar çok büyük ve devasa kelime sayısına sahip. Bu tip bir modeli her bilgisayarda yüklüyebilmeniz pek mümkün olmaz.
Bu tip genel vektörlerin bir başka handikapıda şudur. Kelimeler çeşitli alanlarda çok farklı anlamlara gelebilmektedir. Sadece eş anlamlı kelimeler için olan bir durum değil bu. Mesela bir başkent ismi turizm ile ilgili metinlerde doğal güzellikleri mesire yerleri felanla geçerken. Uluslar arası politika yazılarında o ülkeyi ifade eden özne olarak kullanılabilir. Böyle durumlarda o kelimenin anlamını yeterince gösterebilen vekötre ulaşamayabiliriz. Bu tip problemlemin kısmen çözümü uygulamanıza has derlem oluşturmak ve eğitimi o derlem üzerinde yapmaktır.
Türkçe için deneme yapmamıza uygun bir derlem buluyoruz. Derlem konusunda eskiden beri çalışmalarıyla bilinen Ahmet Aksoy 'un çalışmasını kullanacağız. Bu derlemi Kaggle da veri kümelerinin yayınlandığı kısımda yayınlamışlar.
www.kaggle.com/ahmetax/hury-dataset
Bizde ordan indirip FastText GUI ile eğitim yapacağız. Bu derlemde Hürriyet gazetesinden çekilmiş haberler cümlelerine ayrılmış, noktalama işaretleri sayılar ve etkisiz kelimeler - stop words - çıkarılmış. Devam etmeden "stop words" kavramından bahsedelim. Kavram olarak anlamı cümle içlerinde kaldırıldığında anlamı değiştirmeyen kelimeler diyebiliriz. Değişik tercümelerine denk gelmek mümkün ; gereksiz kelimeler, dolgu kelimeler, etkisiz kelimeler vs ...
Evet elimizde temizlenmiş hazır dermlem var biz bu derlem ile FastText GUI ile gözetimsiz eğitimler yapıp kelime vektörleri oluşturacağız. Elbette fasttext i komut satırında kullanarak yada python paketindeki fonksiyonlarlada eğitimler yapabilirsiniz. GUI için çalıştıralbilir paket oluşturduk onu da kullanabilirsiniz.
İki ana eğitim metodu var skipgram ve cbow bir her ikisi içinde 100 lük vektörler üretecek şekilde eğitimler yaptık. Ek olarak fasttext 'in klasik wor2vect in gelişmişi olduğunu söylemiştik. Başlıca üstünleklerinden biriside kelimeyi harf ngramlar olarakda tutabiliyor olmasıdır. Bu konuyla ilgili eğitimde seçeneklerimiz var. harf ngram kullansın / kullanmasın diye de 2 seçenekli ilave eğitim yaptık. Toplam da 4 eğitim oldu.
GUI kullanımından bahsedelim biraz
Sol en üstte "Command" kısmındaki açılır listede 4 seçenek var
"skipgram" ve "cbow" gözetimsiz eğitim için kullaınacak seçenekler dir.
"supervised" seçeneği gözetim li eğitim için
"test" de gözetimli eğitimi yapılmış modeli bir veri seti üzerinde çalıştırıp sonuçları görmek için.
Üstte Ortada "Run Mode" var. burda 2 seçeneğimiz var
"slient" da fasttext arkaplanda ekrana çıktı vermeyecek şekilde çalıştırılır ve sonuçlar işlem bittiğinde GUI de ekranda gösterilir.
"std output" seçeneğini seçtiğinizde fasttext çalışıtırılır ve komut satırı penceresinde çalışmasını ve yazdıklarını görebilirsiniz. fakat işlem bittiğinde yaptıkları GUI ekranına gelmez.
Harf ngram seçeneğini belirleyen kısım ise altta ortadaki "min char ngram" ve "max char n gram " seçenekleri her ikisinide 0 yaptığınızda harf ngram kullanmayarak eğitimi yapacakdır.
"learning rate" seçeneği başlangıç öğrenme hızıdır. Yapay öğrenme metodlarının çoğundaki anlamda kullanılır en büyük değer 1.0 dır fakat çok büyük olursa hata - loss - değeri küçülmek yerine büyümeye başlıyor ve sonra program çakılıyor. ona dikkat edin
"epoch" ise yine eğitim iterasyonunun ne kadar fazla yapılacağına dair bir parametre, Ne kadar büyük verirseniz o kadar uzun süre çalışır.
"word ngram" için seçenek var. Bir dışında bir seçenekle kelime ngram yapısını kullanmış olursunuz.
"word vector Dimension" seçeneği kelime için üretilecek vektör büyüklüğünü belirler.
Eğer eğitimi "slient" yaptıysanız eğitim süresince loss değerinin değişimini gösteren bir grafikde çizdiriyoruz gui altta
FastText kendi içinde multi thread bir yapıda olduğundan çalışırken mesaj almakda epey problem yaşadım. Halada tam çözümü olmayan bir sürü kısmı vardır. Ama yinede komut satırı açıp uzun uzun parametereleri yazmayla uğraşmak zorunda kalmıyorsunuz.
Gelelim sonuçlara. Yukarda belirttiğim gibi 4 eğitim yapıtık. hepsinde 100 lük vektör oluşturduk.
skipgram + subwords ( char ngram ( 3 - 6) )
skipgram sadece kelime bazlı
cbow + subwords ( char ngram ( 3 - 6) )
cbow sadece kelime bazlı
sonuçları nasıl görselleştirebiliriz derseniz kelime vektörlerini iki boyuta PCA indirip grafik olarak gösterebiliyoruz. Mesela İlk eğitim sonucu elde edilen vektörlerden rast gele seçilmiş 250 kelime için şöyle bir grafik çıkıyor.
Bazen ilginç bağlantılar görülsede bu şekilde çoğu yerinde karman karışık bir yapı çıkıyor. Bizim anlamca ilgisini bildiğimiz kelimelerden oluşturduğumuz bir listeyi aynı şekilde görselleştirerek bakıyoruz.
Burda gayet şık bir anlamca uygun bir dağılım görüyoruz. altın, gümüş, elmas, zümrüt, platin gibi değerli maden ve metaller sağ üstte toplanmış. Sol üst tarafa doğru ise toplanan kelimeler ise ; Terör, terörist, cinayet, tecavüz, katil, katiller, pkk, deaş, gibi kelimeler. Hatta "terörizst " diye bir kelime bile var. Biz bu kelimeyi mahsus koyduk aslında böyle bir kelime yok. Ama bu eğitimde harf bazlı ngram kullanıldığından bu kelimenin vektörünü doğru konumlandırabilmiş. Diğer kelimeleride inceleyin benzeri yakınlıklarda konumlandıklarını görebilirsiniz.
Hemen 2. eğitim sonucuna bakıyoruz
burda diğer kelimelerde yine mantıklı ve benzeri sonuçlar görürken "terörizst " kelimesinin nisbeten olması gereken yerde uzukta ortaya çıktığını görüyoruz. Buda harf bazlı ngramın faydası diyelim.
3. eğitim cbow + subwords sonuç grafiği
4. eğitim cbow kelime bazlı sonuç grafiği
Eğitim sonrası ulaşılan hata değerleride yazalım
skipgram + subwords ( char ngram ( 3 - 6) ) -- Loss : 0.990
skipgram sadece kelime bazlı -- Loss : 0.961
cbow + subwords ( char ngram ( 3 - 6) ) -- Loss : 1.480
cbow sadece kelime bazlı -- Loss : 1.352
Evet epey uzun da ols bir yazının daha sonuna geldik. Her türlü görüş ve önerilerinizi bekleriz.
Gönderen birol kuyumcu zaman: 5:08 ÖS Hiç yorum yok:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Etiketler: Doğal Dil işleme, FastText, yapay zeka
Pazar, Eylül 15, 2019
Python dan EXE ye çevirmek...
C/C++ ile programlamaya başlayan biri olarak Python ile program yazmak oldukça zahmetsiz geliyor. Bir kütüphane kurmak çoğu zaman komut satırında bir "pip" yazmayla halloluyor. Keza kodun içerisinde de bir "import" ile kurulmuş kütüphaneyi kullanmaya başlıyabiliyorsunuz.
C/C++ da olsa bir kütüphaneyi kurmak için ya o kütüphaneyi derlemeniz gerekiyor ya da kullandığınız derleyiciyle derlenmiş kütüphaneyi bulmanız gerekiyor. Keza yazdığınız kodda kütüphaneyi çağırabilmek içinde bir sürü formaliteyi halletmiş olmanız lazım. Bu konu çok sorulduğundan hakkında Kütüphane kullanımı diye yazı bile yazmıştık. Bütün bunların üstüne programınızı derleyip çalıştırmışsanız. Çalıştırılabilir halini kolayca başkalarıyla paylaşabiliyordunuz. Yanına eğer gerekiyorsa kullanılan dinamik kütüphaneleri -DLL- koyarak elbette.
Pythonda bu imkan kolay değil. Kodu verebilirsiniz elbette ama insanlar sadece kullanmak istiyorsa bile mecburen python ve gereken paketleri kurmaları bekleniyor. Helede kullanıcının programlamayla ilgisi yoksa bu seçenek tümden zor oluyor. Yada python dosyalarından çalıştırılabilir dosya çevrimi yapan bir uygulama kullanacaksınız. Bundan önceki 3 yazımızda FastText ve onun için yazdığımız GUI programından bahsettik. GUI programının kullanımını kolaylaştırmak adına bizde exe formatına çevirelim dedik. Ve kolları sıvadık
Python kodlarını çalıştırılabilir hale getirmek için değişik projeler oluşturulmuş benim görebildiklerimi listeleyim
Py2Exe
cx_Freeze
PyInstaller
Nuitka
Uzun boylu bir inceleme yapmadık. Kabaca bir araştırma sonrası biz PyInstaller kullanmaya karar verdik. Birileri oturup incleyip karşılaştırma yaparsa bizde seviniriz. Çalışmaların çoğunun yaptığı aslında çevrilmesi için belirlenen python dosyasından o dosyada kullanılan paketleri tespit edip sonra ilgili dönüşümleri yapmasıyla oluyor. Elebette zor bir işlem helede kurulmuş paket sayınız çoksa. Burda önerim yeni bir ortam - virtual environment - kurmanız. Benim bilgisayarımda Anaconda verisyonu var. conda komutuyla hemde python versiyonu seçerek oratm kurabiliyorsunuz
conda create -n pvinst python=2.7
komutuyla pvinst isimli bir ortam kurduk. Bu ortamı activate komutuyla aktif edip içine sadece fasttextgui için lazım olan paketleri kuruyoruz.
pyside : 1.2.x versiyonu
numpy
pygal
PyInstaller
artık pyinstaller komutunu kullanabiliriz. genel hali şöyle
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data ]
[--add-binary ] [-p DIR]
[--hidden-import MODULENAME]
[--additional-hooks-dir HOOKSPATH]
[--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
[--key KEY] [-d {all,imports,bootloader,noarchive}] [-s]
[--noupx] [--upx-exclude FILE] [-c] [-w]
[-i ]
[--version-file FILE] [-m ] [-r RESOURCE]
[--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
[--win-no-prefer-redirects]
[--osx-bundle-identifier BUNDLE_IDENTIFIER]
[--runtime-tmpdir PATH] [--bootloader-ignore-signals]
[--distpath DIR] [--workpath WORKPATH] [-y]
[--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
scriptname [scriptname ...]
biz öyle teferruata felan girmeden
pyinstaller fasttext_gui_main.py --clean
diye yazıyoruz ve gereken dosyalar oluşturuluyor. Elbette sonucu denemeniz ve gereken ilave dosyalarıda toplamanız gerekiyor.
GUI içinde düğmelerde kullanılan görüntü dosayalarını diziniyle birlikte ilgili dizine atıyoruz
GUI programı aslında arkaplanda alt işlem olarak fasttext.exe yi çalışıtırıyor. fasttext.exe de bazı DLL dosyalarına ihtiyaç uduryor onlarıda ekliyoruz.
Her nedence pygal ın css ile kısmında bütün herşey ilgili dizine aktarılmamış. O dosyalarıda ekliyoruz.
artık elimizde çalıştırılabilir FastText GUI var hayırlı olsun
Indirmek için github hesabının release sayfasına buyrunuz
bu sayfadaki daki fasttext_gui_main.7z isimli sıkıştırılmış dosyayı indirip açın "fasttext_gui_main.exe" dosyasını çalıştırın
Her türlü görüş ve öneriliriniz bekleriz. Eğer kısmet olursa FastText yazılarımıza kelime vektörleri ile ilgili konularda devam edeceğiz
Gönderen birol kuyumcu zaman: 8:26 ÖÖ Hiç yorum yok:
Bunu E-postayla GönderBlogThis!Twitter'da PaylaşFacebook'ta PaylaşPinterest'te Paylaş
Etiketler: Doğal Dil işleme, FastText, PyInstaller, python
Önceki Kayıtlar Ana Sayfa
Kaydol: Kayıtlar (Atom)
Etiketler
.Net boosting Bulanık Mantık C# caffe catboost cntk derin öğrenme diğer Doğal Dil işleme Embeded FANN FastText FLTK Genetik Algoritma ITK islam Kaos Teorisi keras kitap knn light GBM LSTM Matlab / Octave Matplotlib mbed medical mxnet numpy OpenCv OpenCvSharp OpenMP otonom araç pandas programlama py PyInstaller PySide python pytorch Qt reverse engineering Scikit-Learn ses işleme sinyal işleme svm tensorflow theano veri madenciliği xgboost yapay sinir ağları yapay zeka
Geçen haftadaki sayfa görünümleri
Links
FannTool
cvPreProcessor
Opos
Yansımız - Mirror
MyDownloads
AI günlüğüm
FLTK Linkleri
OpenCv Linkleri
www.nurpenceresi.com
Türkiye'nin Yapay Zeka Portalı
Fast Light Toolkit (FLTK)
Volkan Salma
İsmail Arı
Ahmet Kakıcı
Bora Ciner
Yusuf Taş
About Me
birol kuyumcu
Profilimin tamamını görüntüle
Telif Hakkı
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.