Şub 262017
 
5.799 views

Elon Musk doğru mu söylüyor?

Elon Musk doğru mu söylüyor?

The Sun yazarı Zoe Naumann’ın haberine göre teknoloji milyarderi Elon Musk, “Yapay Zeka yaşamı anlamsızlaştıracak” uyarısını yapıyormuş. Ne dersiniz?

Elon Musk doğru mu söylüyor?

Resim: nypost.com: Elon Musk

Şahsen bu görüşe katılmıyorum.

Bir zamanlar havadan ağır cisimler uçamaz diyen yetkililer; inekler sütten kesilecek diye otomobillerin yasaklanmasını isteyenler vardı.

Ne kadar korkutucu olursa olsun, insanoğlu teknolojiyi hep kendi konforu için kullanabilmeyi başarmıştır.

Bu kez durum değişir mi? Sanımıyorum. Çünkü insanoğlu bir yandan kendisini de değiştirmeye devam ediyor.

Musk’ın kaygılarında haklı olduğu yanlar var. Örneğin insanların çok büyük bir kesimi yakın gelecekte “işsiz” kalmaya aday. Çünkü onların yerini doldurmaya hazır ve maaş bile istemeyecek, uzun mesai saatlerine itiraz etmeyecek bir robot ordusu hızla geliyor.

Musk’ın ve diğer ultra-zenginlerin bu konudaki asıl endişesi, üretilen malları satın alması gereken “müşterilerin” kaybedilmesi riskiyle ilgilidir. Musk buna da bir çözüm öneriyor: küresel düzeydeki işsizlere “evrensel gelir” sağlanması. Böylece temel müşteri kitlesi kaybedilmemiş olacaktır.

Robotların insanları işsiz bırakmasının kerşılığı olarak Bill Gates de “üretici robotlar için çalıştıranlardan vergi alınmasını” öneriyor.

Yapay zekanın “yaşamı anlamsızlaştıracağı” öngörüsüne katılmamakla beraber, her iki öneriyi de destekliyorum. Böylece yaratılan zenginliklerin toplumsal olarak bölüşümü açısından küçük de olsa bir adım atılmış olur.

Elbette bu “evrensel gelir” düzeyinin bizim “asgari ücret” kadar komik düzeyde olmaması gerekiyor. Amaç müşteri kaybetmemek olacağı için bu konuda daha iyimser olduğumu da itiraf edeyim.

Ben gelecekten korkmuyorum. Siz de korkmayın!

Ahmet Aksoy

Kaynaklar:

Şub 252017
 
5.972 views

DeepCoder internetten topladığı kodlarla program yazıyor

DeepCoder internetten topladığı kodlarla program yazıyor

Microsoft ve Cambridge Üniversitesinin işbirliğiyle geliştirilen DeepCoder sistemi internetten ve diğer kaynaklardan derlediği kod parçalarını kullanarak kendisine verilen sorunu çözen yazılımlar üretebiliyor.

DeepCoder internetten topladığı kodlarla program yazıyor

Resim: winbuzzer.com

Aslında bir yapay zeka (AI) çalışması olan DeepCoder, kod parçalarının depolandığı veritabanını tarayarak yapacağı işe uygun bileşenleri buluyor ve uygun şekilde bir araya getiriyor.

Bu teknik, bir çok programcının çalışma biçimini de yansıtıyor. Yeni yazılan bir çok uygulamanın önemli bir kısmı daha önce geliştirilmiş olan çeşitli kütüphaneler ve yordamları kullanarak geliştiriliyor. Doğal olanı da bu. Aksi halde her çalışmada Amerikayı yeniden keşfeder gibi, daha önce binlerce kez yeniden yazılmış olan ve geliştirilerek sorunsuz hale getirilen hazır kodları kullanmak yerine, sıfırdan bir çaba içine girmek gerekirdi. Modern çağın modüler sistemleri, yazılım dünyasında da aynen geçerli.

DeepCoder ve benzer şekilde çalışan diğer sistemler, bir yazılımcının çalışmasını benzer şekilde yineliyor. Üstelik kullandığı yapay zeka teknikleri sayesinde sürekli yeni şeyler öğreniyor ve kendini geliştiriyor.

Buna rağmen, bu sistemi geliştiren programcılar, “geniş kapsamlı projelerin, küçük kod parçalarını birleştirerek elde edilemeyeceği” görüşünü savunuyorlar.

Yapay zeka ve robot bilimi alanında yaşanan gelişmeler, bir çok mesleği doğrudan etkilemeye başladı bile. Yazılımcılar da kendi rakiplerini geliştirmek için var güçleriyle çalışıyorlar.

Ahmet Aksoy

Kaynaklar:

Şub 202017
 
6.777 views

TensorFlow örneği ve küçük bir düzeltme

Bir önceki yazımda TensorFlow örneklerinin yer aldığı bir linkten bahsetmiş ve bazı kodlarda küçük düzeltmeler yapılması gerekebileceğinden bahsetmiştim.

Bu durum, hem yazılım dillerinde, hem de kütüphanelerde çok sık geliştirmelerle karşılaşmamızdan kaynaklanıyor.

TensorFlow örneği ve küçük bir düzeltme

Alıntı: tensorflow.org

Aşağıda, sözünü ettiğim kodlardan birini vereceğim. Yaklaşık 90 satırlık bu python kodunda sadece bir metodun adını değiştirmek gerekiyor. Benim yaşadığım sorunu, benimle benzer ortamlarda çalışan pek çok kişi aynen yaşayacaktır. Bu tür sorunları gidermek, en azından azaltmak için kod yazarlarının paylaştıkları açık kaynaklı kodları hangi koşullarda çalıştırdıklarını not etmelerinde yarar var. Bunun çok kolay olmadığını bir kod yazarı olarak ben de biliyorum. Bu nedenle, test ettiğim aşağıdaki kodu hangi ortamda çalıştırdığımı ve nasıl düzelttiğimi sizlerle de paylaşmak istiyorum.

Orijinal kodun yazarı ve nerede paylaşıldığını kodların başlangıç bölümünde bulabilirsiniz.

Test bilgisayarı: 8GB ram, 4 çekirdek, Intel i5
Test sistemi: Ubuntu 16.04
Python sürümü: 3.5.2
TensorFlow sürümü: 1.0.0
numpy sürümü: 1.12.0
matplotlib sürümü: 1.5.3

Kendi sisteminizdeki kütüphane sürümlerini öğrenmek için aşağıdaki kodu kullanın:

$ pip3 freeze

Kodlarda düzeltme gereği sadece tek bir satırda (satır no 39) var.

Sorunlu satır no: 39

pred = tf.add(tf.mul(X, W), b)

Düzeltilmiş satır:

pred = tf.add(tf.multiply(X, W), b)

Açıklama:

tensorflow.num() metodu devre dışı. tensorflow.multiply() yeni metod adı.
# -*- coding: utf-8 -*-
# Linear regression
# https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py

'''
A linear regression learning algorithm example using TensorFlow library.
Author: Aymeric Damien
Project: https://github.com/aymericdamien/TensorFlow-Examples/
'''

from __future__ import print_function

import tensorflow as tf
import numpy
import matplotlib.pyplot as plt
rng = numpy.random

# Parameters
learning_rate = 0.01
training_epochs = 1000
display_step = 50

# Training Data
train_X = numpy.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,
                         7.042,10.791,5.313,7.997,5.654,9.27,3.1])
train_Y = numpy.asarray([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.221,
                         2.827,3.465,1.65,2.904,2.42,2.94,1.3])
n_samples = train_X.shape[0]

# tf Graph Input
X = tf.placeholder("float")
Y = tf.placeholder("float")

# Set model weights
W = tf.Variable(rng.randn(), name="weight")
b = tf.Variable(rng.randn(), name="bias")

# Construct a linear model
# pred = tf.add(tf.mul(X, W), b)    # deprecated
pred = tf.add(tf.multiply(X, W), b)

# Mean squared error
cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)
# Gradient descent
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

# Initializing the variables
init = tf.global_variables_initializer()

# Launch the graph
with tf.Session() as sess:
    sess.run(init)

    # Fit all training data
    for epoch in range(training_epochs):
        for (x, y) in zip(train_X, train_Y):
            sess.run(optimizer, feed_dict={X: x, Y: y})

        # Display logs per epoch step
        if (epoch+1) % display_step == 0:
            c = sess.run(cost, feed_dict={X: train_X, Y:train_Y})
            print("Epoch:", '%04d' % (epoch+1), "cost=", "{:.9f}".format(c), \
                "W=", sess.run(W), "b=", sess.run(b))

    print("Optimization Finished!")
    training_cost = sess.run(cost, feed_dict={X: train_X, Y: train_Y})
    print("Training cost=", training_cost, "W=", sess.run(W), "b=", sess.run(b), '\n')

    # Graphic display
    plt.plot(train_X, train_Y, 'ro', label='Original data')
    plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')
    plt.legend()
    plt.show()

    # Testing example, as requested (Issue #2)
    test_X = numpy.asarray([6.83, 4.668, 8.9, 7.91, 5.7, 8.7, 3.1, 2.1])
    test_Y = numpy.asarray([1.84, 2.273, 3.2, 2.831, 2.92, 3.24, 1.35, 1.03])

    print("Testing... (Mean square loss Comparison)")
    testing_cost = sess.run(
        tf.reduce_sum(tf.pow(pred - Y, 2)) / (2 * test_X.shape[0]),
        feed_dict={X: test_X, Y: test_Y})  # same function as cost above
    print("Testing cost=", testing_cost)
    print("Absolute mean square loss difference:", abs(
        training_cost - testing_cost))

    plt.plot(test_X, test_Y, 'bo', label='Testing data')
    plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')
    plt.legend()
    plt.show()

Diğer kodlarla ilgili takıldığınız yerler olursa, yorum alanından sorularınızı bana yöneltebilirsiniz. 15 ayrı örneği yukarıda belirttiğim koşullarda denedim. 12 örneği sorunsuz çalıştırdım. 3 tanesindeki sorunlar hala devam ediyor. Testleri sürdürüyorum.

Ahmet Aksoy

Kaynaklar:

Şub 182017
 
5.904 views

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Zirvesi 15 Şubat’ta izleyicileriyle buluştu. Etkinlik, aynı zamanda Mountain View üzerinden canlı olarak da yayınlandı. Bu yayına ait kayıtlara https://events.withgoogle.com/tensorflow-dev-summit/watch-the-videos/#content adresinden erişebilirsiniz. Sözkonusu yayının süresi 8 saat 17 dakikadır.

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Summit

TensorFlow kendi web sayfasında: “sayısal hesaplama için akış grafiklerini kullanan açık kaynaklı bir yazılım kütüphanesi” olarak tanımlanıyor. “Grafik üzerindeki düğümler matematiksel işlemleri temsil ederken, kenarlar, bunların arasında iletişim gerçekleştiren çok boyutlu veri dizilerini (tensor) ifade etmektedir.”

Tensorflow kütüphanesi tek veya birden fazla CPU veya GPU üzerinden çalışabilmektedir. Şu anda kütüphanenin 1.0 sürümü yayınlanmış durumdadır.

Eğer bu kütüphane bilgisayarınızda daha önceden kurulmuşsa sürüm numarasını şu komutla sorgulayabilirsiniz:

pip3 list | grep tensorflow

TensorFlow kütüphanenizi en güncel (1.0.0) sürümüne yükseltmek istiyorsanız ya da tamamen yeniden kurmak niyetindeyseniz https://www.tensorflow.org/ adresindeki ilgili linkleri takip etmeniz yeterlidir.

Örneğin benim bir önceki TensorFlow sürüm numaram (0.11.0) idi. Bu sürümü yeni sürüme yükseltmek için Ubuntuda sadece şu komut yeterli oldu:

sudo pip3 install --upgrade tensorflow

Yeni sürümüm: tensorflow (1.0.0)

Bir çok kütüphanenin yeni sürümüyle ilgili çalışan örnek bulmak çoğu zaman biraz problemlidir. TensorFlow 1.0.0 konusunda şanslıyız. Hemen kodlayıp çalıştırabileceğiniz kodlarla dolu bir github sayfası var: https://github.com/aymericdamien/TensorFlow-Examples. Bazı kodlarda artık kullanılmayan bazı metodlarla karşılaşabilirsiniz. Endişelenmeyin. Hata mesajını araştırdığınızda yanıtlarını hemen bulabiliyorsunuz.

Örneğin, tf.neg() metodu yeni düzenlemede tf.negative() şeklini almış. Yani sadece küçük isim değişiklikleriyle baş etmek zorundasınız.

Kütüphane, örnek veri setlerine de sahip. Elle yazılmış rakam görüntülerinden oluşan “mnist” veri seti, örneklerde yoğun şekilde kullanılıyor. Örneklerin bir çoğunu 8GB belleğe sahip, 4 CPU’lu i5 makineye kurulu Ubuntu 16.04 üzerinde, Python-3.5.2 ile test ettim. Sorunsuz çalışıyorlar.

Eğer bilgisayarınızda GPU kullanma imkanınız varsa, verilen örneklerin sonuçlarını çok kısa sürede alabilirsiniz. Benim gibi sadece CPU kullansanız bile, kodların çalışma süresi aşırı uzun değil.

TensorFlow, “herkesin makine öğrenmesini kolayca uygulayabilmesini” hedefliyor. Bunda da başarılı olacak gibi.

Eğer siz de makine öğrenmesi konularıyla ilgileniyorsanız, TensorFlow’la bir an önce tanışmayı programınıza alın.

Ahmet Aksoy

Kaynaklar:

Şub 172017
 
3.780 views

Ek enerji istemeyen soğutma sistemleri geliyor

www.livescience.com tarafından aktarılan bir habere göre binaları ek enerjiye ihtiyaç duymayan, üretilmesi basit ve ucuz bir yöntemle soğutabilmek mümkün olacak.

Ek enerji istemeyen soğutma sistemleri geliyor

Kaynak: www.livescience.com

Bu çözümü sağlayan malzeme, sıradan plastik rulolara benziyor. Aslında o, ısı yansıtıcı bir süper malzeme. Bu malzeme ile kaplanan yapılar, harici ısı kaynaklarının olumsuz etkilerinden korunacak.

Güneş panellerinin aksine, bu malzeme güneşin ortalıkta olmadığı zamanlarda da etkisini sürdürüyor ve en ufak bir enerjiye ihtiyaç duymuyor.

Bu süpermalzemenin bir diğer özelliği de ucuz, kolay ve büyük oranlarda üretilebilir olması.

Soğutucu malzeme üç temel bileşenden oluşuyor:
1- Saydam polimer polimetilpenten
2- Cam boncuklardan oluşan tabaka
3- İnce bir yansıtıcı gümüş katman

Cam boncukların boyutu, “phonon-polariton resonance” adı verilen kuantum etkiyi oluşturacak şekilde seçiliyor. Bu etkinin, kızılötesi ışınların cam atomlarının titreşimiyle etkileşime girmesi sırasında ortaya çıktığı belirtiliyor. Cam boncukların ve en alttaki gümüş tabakanın görünür ışığı yansıtırken malzemenin alt tabakalarındaki kızılötesi ışıma da yüzeye ulaşmakta; dolayısıyla malzeme soğumaktadır.

Yapılan hesaplara göre, yaz döneminde normal bir konutu soğutabilmek için çatıdaki 10 ila 20 metrekarelik bir kaplama yeterli olacaktır.

Bu malzemenin termoelektrik santralların soğutulmasında da kullanılabileceği, hatta aşırı ısınma nedeniyle verimli çalışamayan güneş panellerinin ömrünü uzatabileceği söyleniyor.

Bu tür süper malzemelerin fosil yakıt kullanımının azaltılmasına katkıda bulunması da kuvvetle mümkün. Bekleyip, göreceğiz.

Kaynak: http://www.livescience.com/57902-magic-foil-cools-buildings.html

Şub 162017
 
3.621 views

Yeni dünya rekoru – 18 dakikada 104 uydu uzaya gönderildi

Hemen sevinmeyin! Bu rekoru bizim ülkemiz kırmadı. Amerika veya Çin de değil. Bu rekorun sahibi Hindistan.

Yeni dünya rekoru

Resim: science.alert.com

Hindistan Uzay Araştırmaları Örgütü (ISRO) tarafından 18 dakika içinde uzaya gönderilen 104 adet uydu, Hindistana yeni bir dünya rekoru kazandırdı.

Bir önceki rekor 2014 yılında aynı gün içinde uzaya 37 uydu gönderen Rusya Uzay Ajansına aitti.

Uydular, 27358 km/saat hızla hareket eden bir roket tarafından bir kaç saniye içinde yörüngelerine fırlatıldı. Bu, çok riskli işlem başarıyla gerçekleştirildi. Sözkonusu uydulardan 88 adedi Planet Labs‘a ait yaklaşık 3.5 kilogramlık küçük birimlerden oluşuyor. Uyduların hepsi Hint Okyanusu üzerindeki yörüngelere konuşlandırıldı.

ISRO yöneticisi A.S. Kiran Kumar, proje maliyetinin yaklaşık yarısının ticari işletmeler tarafından karşılandığını belirtti.

Uzaya uydu göndermenin maliyeti giderek düşerken, dünya çevresinde oluşan uzay atıklarının giderek daha fazla endişe yaratmakta olduğu belirtiliyor. Bunda, gönderilen uyduların pek çoğunun sadece bir kaç yıllık ömre sahip olması önemli. Bu süre tamamlandığında, o uydular birer uzay çöpü haline dönüşüyor.

Haberle ilgili ayrıntılara aşağıdaki “sciencealert” linkinden ulaşabilirsiniz.

Ahmet Aksoy

Kaynak: http://www.sciencealert.com/india-just-set-a-new-world-record-launching-104-satellites-in-18-minutes