Yapay Sinir Ağları Nedir

Yapay Sinir Ağları Hakkında özet bilgiler

Fann Nedir

Fast Artifical Neural Networks Kütüphanesi hakkında

FannTool

Nedir Ne işe yarar Nasıl Kullanırız

What are Artificial Neural Networks ?

short info about Artificial Neural Networks

What is FANN ?

about Fast Artifical Neural Networks library

FannTool

What is and How to use

13 Kasım 2012 Salı

Yapay Sinir Ağları ile Koroner Arter Hastalığı Risk Hesaplama


Kırıkkale Üniversitesi - Bilgisayar Mühendisliği Bölümü
Yapay Sinir Ağları Final Projesi
Sinem Özder

Bu çalışmada amaç, bir hastadan alınan input seti ile hastada 10 yıl içinde Koroner Arter hastalığı görülme olasılığının tahmin edilmesidir

Proje için şekildeki gibi bir YSA dizayn edilmiştir.
Giriş değerleri ;
• Cinsiyet
• Yaş
• LDL Kolesterol
• HDL Kolesterol
• Diyastolik Kan Basıncı
• Sistolik Basıncı
• Diyabet
• Sigara
Çıkış değeri;
• KAH Riski
Yazıyı İndirmek için ;  KAH-Risk 

FANN Kütüphanesinin Kullanımı


FANN yani Fast Artificial Neural Network Library Bir Yapay Sinir Ağı (YSA) Kütüphanesi.
YSA nın ne olduğunu bildiğinizi varsayıp. Basitçe kullanımını anlatmak istiyorum.
1) YSA oluşturulur
2) YSA Eğitilir
3) YSA Çalıştırılır.
4) YSA yı Tekrar Kullanama

1) Öncelikle Bir YSA oluşturmamız lazım
Kullanabileceğimiz Fonksiyonlardan biri fann_create_standard

struct fann *FANN_API fann_create_standard( unsigned int num_layers, ... )

YSA nın kaç katmandan oluştuğunu yazıp - num_layers -
Sırayla Giriş, Gizli Katman - yada Katmanlar - Çıkış Katmanlarının kaç birimden oluştuğunu yazıyoruz

Mesela :

5 giriş 2 çıkışlı Tek ve 7 birimlik Gizli Katmanlı bir YSA oluşturmak için

struct fann *ann = fann_create_standard(3, 5, 7, 2);

5 giriş 2 çıkışlı , 7 ve 3 birimlik olmak üzere 2 Gizli Katmanlı bir YSA oluşturmak için

struct fann *ann = fann_create_standard(4, 5, 7,3, 2);

ann işaretçisi artık bizim oluşturduğumuz YSA yı gösteriyor


2) YSA Eğitimi için Kullanabileceğimiz Fonksiyonlardan biri fann_train_on_file

void FANN_API fann_train_on_file(
struct fann * ann, // fann_create_standard ile almıştıkconst char * filename, // Veri Dosyaunsigned int max_epochs,unsigned int epochs_between_reports,
float desired_error
)
ann : fann_create_standard ile aldığımız bizim YSA mızı gösteren işaretçi
filename : Eğitim için kullanacağımız Veri Dosyasının adı
max_epochs : Eğitimin çalışacağı maksimum adım Sayısı
epochs_between_reports : Kaç Adımda bir Rapor verilmesi isteniyor
desired_error : Eğitim sonunda arzulanan hata miktarı

Bu fonksiyonu çağrılınca İsmini belirttiğimiz Dosyadan veriler alınır ve Hata miktarı istenen değere yada maksimum adım sayısına ulaşana kadar YSA eğitime tabi tutulur. Arada belirttiğimiz adımda rapor verilir. Eğer istenen hata değerine ulaşılamazsa eğitim başarısız olmuş olur.

Veri Dosyasının yapısı : Veri Dosyası dediğimiz şey Giriş ve çıkış değerlerinin bulunduğu basit bir text dosyasıdır.
Örnek Sayısı(N) Giriş(K) Çıkış (J)
G11 G12 G13 ...G1K
Ç11 Ç12 Ç13...Ç1J
G21 G22 G23 ...G2K
Ç21 Ç22 Ç23...Ç2J
....
GN1 GN2 GN3 ...GNK
ÇN1 ÇN2 ÇN3...ÇNJ

Mesela 3 Giriş 1 Çıkışlık 2 Örnekli bir veri dosyası

2 3 1
1 1 1
0
1 0 1
1

Eğitim öncesi Aktivasyon Fonksiyonlarını Ayarlamak istiyorsanız

fann_set_activation_function_hidden(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

fann_set_activation_function_output(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

Mesela
fann_set_activation_function_hidden(ann, FANN_SIGMOID);
fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
gibi

Kendi rapor Fonksiyonumuzuda tanımlayabiliriz
void fann_set_callback( struct fann * ann, fann_callback_type callback )
Mesela 

int FANN_API my_report(struct fann *ann, struct fann_train_data *train,
unsigned int max_epochs, unsigned int epochs_between_reports,
float desired_error, unsigned int epochs)
{ 
printf("Adım %8d. MSE: %.5f. Desired-MSE: %.5f\n", epochs, fann_get_MSE(ann),desired_error);return 0;
 }

fann_set_callback( ann, my_report );




Eğer Dinamik bir eğitme süreci gerekmiyorsa, Eğitim ve Parametre ayarlarını kolayca FannTool ile yapabilirsiz

3) Artık Eğitimini tamamladığımız YSA yı çalıştırabiliriz. YSA'nın çalışması demek Giriş değerleri verilerek sonuçta elde edilen çıkış değerlerini almak demektir
Bu iş için kullanacağımız fonksiyon fann_run

fann_type * FANN_API fann_run( struct fann * ann, fann_type * input )

Yani YSA'yı giriş değerlerini içeren bir dizinin adresini gönderiyoruz.

Mesela 3 giriş 2 çıkışlı bir YSA için

fann_type *sonuc;
fann_type input[3]={1,1,0}; // giriş değerleri
sonuc = fann_run(ann, input);
printf("Çıkış Değerelri %f %f \n", sonuc[0], sonuc[1] );

4) YSA yı her kullandığımızda yukardekileri tekrar tekrar yapmamıza gerek yok. YSA eğitildikten sonra Kaydedip. Kullanacağımız zaman bu kayıttan yeniden YSA yı oluşturabiliriz.
Kaydetmek için fann_save Kullanımı çok basit

int fann_save( struct fann * ann, const char *FileName )

FileName kısmına bir Dosya ismi girip kaydediyoruz. Kayıt Geri dönüş değerine göre 0 ise başarılı -1 ise başarısız.

Kaydettiğimiz YSA yı tekrar yüklemek için fann_create_from_file fonksiyonu kullanılır.

struct fann * fann_create_from_file(const char *FileName)

Fonksiyon Kaydedilmiş Dosya ismiyle çağrılır.

Eğer YSA ile işimiz bittiyse fann_destroy kullanılarak hafızada YSA için kullandığımız alanlar boşaltılır.

void fann_destroy( struct fann * ann )

Mesela : YSA için İlk üç adımı yaptık kaydediyoruz

fann_save(ann, "YSA.net");
fann_destroy(ann);

Tekrar çağırıyoruz

fann_create_from_file("YSA.net");

 5) Test Etmek : Eğittiğimiz YSA yı test etmek gerekmektedir Eğitim için kullandığımız verinin % 10 - 30 arasındaki bir miktarda veriyle YSA test edilir ve Hata faktörüne bakılır. Öncelikle aynı Eğitim verisi için kullandığımız dosya yapısında bir dosya hazırlanır ve fann_read_train_from_file fonksiyonuyla yüklenir. Bundan sonra tek yapacağınız fann_test_data fonksiyonunu çağırmak. işi bitincede fann_destroy_train ile hafızdaki yerleri boşaltmak

Mesela :
struct fann_train_data *dt;
dt=fann_read_train_from_file("test.dat");
ann=fann_create_from_file("aproje.net");
fann_reset_MSE(ann);
fann_test_data(ann,dt);
printf("\n Test Sonucu MSE : %f \n\n", fann_get_MSE(ann) );
fann_destroy_train(dt);

MSE (Mean Square Error) dediğimiz şey ortalama karesel hata yani bizim YSA mız yaptığı - Eğitim yada Test - işte istenenle hesaplanan değerler arasındaki - Hata - farklarının karelerinin ortalaması gibi birşey

void fann_reset_MSE(struct fann *ann)
MSE değerini sıfırlar

float FANN_API fann_get_MSE(struct fann *ann)
MSE değerini okur


6) Diğer Faydalı Fonksiyonlar

Eğitim Algoritmalarını ayarlayanlar

enum fann_train_enum fann_get_training_algorithm(struct fann *ann)
Kullanılan Eğitim metodunu okur

void fann_set_training_algorithm(struct fann *ann,enum fann_train_enum training_algorithm)
* Eğitim metadunu değiştirir.

Eğitim metodları ise  
FANN_TRAIN_INCREMENTAL, 
FANN_TRAIN_BATCH, 
FANN_TRAIN_RPROP, 
FANN_TRAIN_QUICKPROP 
olarak 4 çeşittir. Metodların detayı için kitaplara yada google müracaat edilsin

* Öğrenme hızını ayarlayanlar


float fann_get_learning_rate(struct fann *ann)
kullanılan öğrenme hızını döndürür.

void fann_set_learning_rate(struct fann *ann, float learning_rate)
Öğrenme hızını ayarlar. Öğrenme hızı için geçerli Normal Değer 0.7
Bu fonkisyonları FANN_TRAIN_RPROP metodu için kullanamıyoruz

* Aktivasyon Fonksiyonlarını Ayarlayanlar
Daha önce geçmişti
Gizli katman için
fann_set_activation_function_hidden(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)
Çıkış katamanı için
fann_set_activation_function_output(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

kullanılır
Aktivasyon fonksiyonlarıda ;  
FANN_LINEAR,
FANN_THRESHOLD,
FANN_THRESHOLD_SYMMETRIC,
FANN_SIGMOID, 
FANN_SIGMOID_STEPWISE, 
FANN_SIGMOID_SYMMETRIC, 
FANN_GAUSSIAN, 
 FANN_GAUSSIAN_SYMMETRIC, 
FANN_ELLIOT, 
FANN_ELLIOT_SYMMETRIC, 
FANN_LINEAR_PIECE, 
FANN_LINEAR_PIECE_SYMMETRIC 

gibi pek çok çeşit var detayı için bakınız


Uygulama 

 Güneş lekeleri

Güneş lekeleri , Güneş'in yüzeyinde (ışık yuvarda), çevresine oranla daha düşük sıcaklığa sahip olan, ve mıknatıssal etkinliğin gözlemlendiği bölgelerdir. Her ne kadar 4000-4500 K sıcaklık ile son derece parlak olsalar da, çevrelerinin 5778 K'de olması, karanlık bölgeler olarak görüldüklerinden bu ismi alırlar.
Neyse işte insanların işi gücü yok bu lekeleri sayıp kaydını tutmuşlar.Biz de bu verileri kullanacağız.

Öncelikle Neural networks for financial time series prediction isimli dosyaya bir göz atın. O yazıda detaylarıyla anlatıldığı gibi Verileri aldığımız haliyle kullanmayız, ön işlemeden geçirmeliyiz. ( 3.4 Design of ANNs in finance kısmı )

Güneş lekelerinin (2006 - 1980) aralığında aylık ortamalarını raw.dat isimli dosyaya her satır 1 değer olarak kaydedildi. Öncelikle verileri YSA da kullanabilmek için - Kullandığınız aktivasyon fonksiyonuna göre - (0 , 1) yada ( -1 , 1 ) değerleri arasına çekiyoruz Normalizasyon. Bir ay sonraki ortalama güneş lekesi sayısını bulmak için önceki 24 ayın değerleri kullanılıyor. 2 adet gizli katman kullanılıyor yani YSA mızın yapısı girişten çıkışa doğru
24 -> 16 -> 7 -> 1

şeklinde oluyor. Peki Bu değerleri Nasıl belirliyoruz ? derseniz Net bir cevabı yok.* Genellikle Giriş ve çıkış düğüm sayısı bellidir. Saklı katman yada katmanlardaki düğüm sayıları YSA nın eğitim performansına göre seçilir.

Programımız
LoadRawData("raw.dat");
Normalize();
WriteTrainData(24,1,"sunspot.dat");
Train();
Test();
Run();

dan ibaret
Açıklamalarına gelince
  • LoadRawData : Ham verileri ismi verilen - Veri dosyasında Her satır 1 veri içeriyor- text dosyasından okuyup data dizisine aktarıyor
  • Normalize : Diziye atılmış verileri -0.8 ile 0.8 arsına çekerek Normalize ediyor
  • WriteTrainData : Normalize edilmiş verileri alıp FANN kütüphanesinin kullanabileceği veri dosyası olarak kaydediyor
  • Train : YSA yı Eğitiyor.
  • Test : test.dat dosyasındaki verileri kullanarak Eğitilmiş YSA'yı test edip sonuçta ulaşılan Hatadeğerini bildiriyor
  • Run : Verilerimizden Rasgele 10 adedini kullanarak YSA çalıştırılıyor ve YSA nın hesapladığı ve gerçek değeri birlikte gösteriyor
Şimdi gelelim benim yapmadığım fakat aslında yapılması gereken şeylerden bazılarına

1) Veri sayısı yeterince büyük olması lazım
2) Bu veriler Eğitim, Test ve Kontrol için 3 parçaya ayrılıp her işlem için kendine ayrılan veri kulanılması lazım.


Sonuçta yazılan projeyi indirmek için : SunSpot

* bakınız NN_FAQ Bu YSA için yazılmış Sıkça Sorulan Soruları İndirmenizi ve incelemenizde tavsiye ediyorum FAQ.

10 Kasım 2012 Cumartesi

Diagnosis of Coronary Artery Disease Using ANN / YSA ile Koroner Arter Hastalığı Tanısı

Veri Setini University California Irvine nin ilgili sayfasından
http://archive.ics.uci.edu/ml/datasets/Heart+Disease
indirdik. Bu sayfadaki verilerden biz "Cleveland Clinic Foundation" tarafından oluşturulanları kullandık.
Bu syafada görebileceğiniz gibi bu verilerle pek çok çalışma yapılmıştır

Bizde YSA ile bir çalışma yapalım istedik.
YSA ya bir şeyler öğretebilmek için eğitim gerekli, Eğitim içinse veri.

Sınıflandırma yapmamız için etkili olan faktörler tespit edilir - Giriş değişkenleri -
Sonuçta bu faktörlere göre bir sınıflara ulaşırız -Çıkış değerleri - 
İşte Bu giriş ve çıkış değerleri YSA nın giriş ve çıkış değerleri oluyor.

Peki YSA verileri doğrudan verebilirmiyiz ?
Malesef veremeyiz.
YSA da katmanlar arasında veri iletişimi bir çeşit aktivasyon fonksiyonundan geçerek sağlanır. Bu fonksiyonlarda tipine göre (0 , - 1 ) yada (-1 , 1) aralığında sonuçlar verir. Bu durumda bizim verilerinizi bu aralıklara çekmemiz lazım.

Peki Bu normalizasyon işlemini nasıl yapacağız.
Değişkenin en küçük (min) ve en büyük (max) değerleri tespit edilir ve bir aralık hesaplanır
range = max-min
Biz bu uygulamamızda ( 0 - 1) aralığını kullandığımızdan normalizasyon formülümüz şöyle oluyor.
Norm(x)= (x-min)/range
ufak bir tavsiyede bulanayım değişkenin veri kümesinden tespit ettiğimiz min max değerlerini aralığı hafifçe açacak şekilde genişletirseniz daha iyi olur.

Giriş değişkeni eğer mantıksal bir değişkense, (doğru-yanlış) gibi sadece iki değeri içeriyorsa normalizasyonu gayet kolay değerin biri 0 diğeri 1 olarak seçilir.

Peki değişken eğer sayısal değilse ne yapacağız mesela bizim örneğimizde "chest pain type"
göğüs ağrısı tipi diye bir değişken var ve bu değişken {angina, abnang, notang, asympt} gibi 4
değişik kategoriden oluşuyor. Bu durumda yapacağımız şey bu tip değişkenleri mantıksal değişkenlere bölmek
yani chest pain type değişkenini 4 adet mantıksal alana yayıyoruz
eğer ağrı tipi
angina ise 1 0 0 0 
yok 
notang ise 0 0 1 0 gibi.
Şimdi gelelim verilerimize verilerin aslı aşağıdaki gibi bir matriste tutuluyor

60, male, asympt, 140, 293, fal, hyp, 170, fal, 1.2, flat, 2, rev, sick.
37, male, notang, 130, 250, fal, norm, 187, fal, 3.5, down, 0, norm, buff.
64, male, angina, 110, 211, fal, hyp, 144, true, 1.8, flat, 0, norm, buff.

bu matriste 14 sütün var ilk 13 ü giriş değişkenleri son sütün çıkış değişkeni. fakat biz bu
değişkenleri YSA ya aktarabilmek için normalize ederken sütün sayımız 25 e çıkıyor nasıl mı oluyor bakınız


ANN Dizaynı

| Inputs
| ------------------------
| -- 1. age : 1 sütun
| -- 2. sex : 1 sütun
| -- 3. chest pain type (4 values) : 4 sütun
| -- 4. resting blood pressure : 1 sütun
| -- 5. serum cholestoral in mg/dl : 1 sütun
| -- 6. fasting blood sugar > 120 mg/dl : 1 sütun
| -- 7. resting electrocardiographic results (values 0,1,2) : 3 sütun
| -- 8. maximum heart rate achieved : 1 sütun
| -- 9. exercise induced angina : 1 sütun
| -- 10. oldpeak = ST depression induced by exercise relative to rest : 1 sütun
| -- 11. the slope of the peak exercise ST segment : 3 sütun
| -- 12. number of major vessels (0-3) colored by flourosopy : 4 sütun
| -- 13. thal: ( normal, fixed defect,reversable defect) : 3 sütun
25 giriş

| Outputs
| ------------------------
| Absence (1) or presence (2) of heart disease 1 sütun

1 Çıkış

evet Elimizdeki 180 adet veriyi  normalize ettiktten sonra ikiye ayırıyoruz.
155 adedi eğitim için 25 adedi test için. ve verileri FANN kütüphanesinin standartına uygun olarak kaydediyoruz.

Bundan sonrasını FannTool'u kullanarak yapacağız. FannTool'u çalıştırın ve Eğitim için Training
Data File olaraka "heart_train_data.dat" yükleyin, Test içinde  "heart_test_data.dat" 'ı yükleyin.

Artık Keyfinize ve tecrübelerinize göre eğitim denemelerinini yapabilrsiniz.

ilk etapta saklı katman sayısı (# of Layer)
ve bu katmanlardaki hücre sayılarını (Hid Layer 1 ...) ayarlaya bilirsiniz.
İsterseniz Eğitim metodunu (Detect Optimum Training Algorithm)
ve Aktivasyon foksiyonlarını (Detect Optimum Activation Functions )
sizin için seçmesini istiyebilirsiniz.
Ezberci bir eğitime düşmemek için   ( Overtraining Caution System ) seçeneğini açıp eğitim esnasında test verilerinin hata durumlarını takip edebilirsiniz.
Artık Train -> Normal diyerek YSA eğitimini başlata bilirsiniz. Eğer Belirlediğiniz hata değerine yada altına ulaşıldığında Eğitilmiş YSA yı kaydetmek için sizden bir dosya ismi istenir. Bir isim verip kaydedin .net uzantılı olarak kaydetmeniniz iyi olur.

Eğitimin bir diğer metoduda Train->Cascade dir bu metodda YSA nın Saklı katmanlarını kendisi dinamik olarak belirler. Siz sadece kullanabileceği maksimum hücre sayısını belirtebilirsiniz. Bu değeri de FannTool Saklı katmanlardaki hücre sayılarını giriş ve çıkış hücre sayılarına ekleyerek hesaplar.
Ulaştığımız sonuçlar şöyle

Eğitim verileri İçin % 91.61  ( 142 Doğru 13 Yanlış )
Test Verileri İçin % 92 ( 23 Doğru 2 Yanlış )

 Eğitimizi tamamlayıp testimizi yaptık ve sonucunda tatminkar hata değerine ulaştık. Bütün bunlardan sonrayapılacak şey  bir arabirim yazmaktır. 
Onuda yazdık, İndirmek ( Download ) için : Hearth
Program Tanı için gereken verileri alıp Eğitilmiş YSA ya verileri verip sonucu ondan istiyor ve size gösteriyor. yani kısaca  Koroner Arter Hastalığı Tanısı işlemini gerçekleştiriyor.

6 Kasım 2012 Salı

FANN – neural networks made easy

Author : Swizec
Source : FANN – neural networks made easy

Over the weekend I was struck with the realization that I don’t know how to use neural networks in practice, damn it. Even though a few months ago I realized what neural networks are, even though I’ve tried implementing them, even though I’ve used them in a class setting …
How the hell do you use these things in real life!?
Implement from scratch? … no that can’t be it.
Find a library, write some code, run some tests, fiddle with features, run a test, fiddle with features, realize everything is slow, decide to use more layers, fiddle with features, play around with activation functions, run a test, fiddle with features, rewrite the code because it’s a mess, fiddle with features, run a test, run the network, run more tests and so on and on ad nauseum.
That can’t be it either …

FANN

Looking far and wide for a good library to use I stumbled upon FANN – Fast Artificial Neural Networks.
Fast Artificial Neural Network Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. Cross-platform execution in both fixed and floating point are supported. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast. Bindings to more than 15 programming languages are available. An easy to read introduction article and a reference manual accompanies the library with examples and recommendations on how to use the library. Several graphical user interfaces are also available for the library.
Perfect!
Not only has someone gone to the trouble of implementing everything and making sure it works – nothing sucks more than figuring out whether you’re using your learning software wrong or it’s just buggy – they even gave it all the fiddly features I need!
It gets better! There’s a slew of graphical interfaces -> You get to play with the fiddly bits without even knowing what you’re doing! Yes!
Put the data in the fann format, load it up, and away you go. Playing around until you figure out what you’re looking for, then you can just implement the same thing with the FANN binding of your choice.












It can suggest a good training algo














You get to set up the neural network











Fiddly bits!



Watch it converge in real time

Done in a few hours

FANN really saved my skin last night. At least the GUI did. I still haven’t solved my problem – trying to predict how many people will read a whole post – but it took me literally a couple of minutes to realize that the same network can’t be used to predict two outputs since it won’t even converge.
That’s something very specific to the problem.
I also realized the networks were overfitting my data, then performing poorly on the test.
Another specific thing.
It is because of this incredibly problem-specific nature of most work involving neural networks that having tools like these is really important. Who wants to fiddle around with implementing all this stuff by hand for several hours before even running the first tests?
I probably ran twenty or thirty different configurations in the space of three hours last night. Could I have done that without a simple tool? Probably not – wouldn’t even have the first configuration implemented by now.
Now if only the GUI tool calculated precision and recall instead of mean standard error …

5 Kasım 2012 Pazartesi

Rapport de Projet VidéoBuzz

 Rapport de Projet Master -Université d'Avignon

Description

Les sites d'hébergement de vidéos déposées par les utilisateurs ont connu un très fort développement ces dernières années. Certaines de ces vidéos ont été consulté par des milliers d'internautes, d'autres restent archivées sans qu'elles soient significativement visionnées. Ce projet consiste à développer un système de prédiction de la fréquentation à court terme d'une vidéo. Cette prédiction pourra utiliser 2 indices complémentaires :
- à partir d'un historique de la fréquentation d'une sur une période donnée (par exemple de 2 jours), on pourra utiliser un système prédictif (par exemple un réseau de neurones) pour faire une estimation de la fréquentation future,
- les utilisateurs ajoutent souvent des méta-données (des tags) aux vidéos déposées. Ces informations et le titre de la vidéo peuvent donner une indication sur le buzz potentiellement généré par une vidéo.

Outre les propositions de méthodes et leur évaluation objectives, le projet consiste à développer une application Web permettant de visualiser les prédictions réalisées.

Fanntool ; 

 

FannTool est un logiciel multi-plateforme développé en C qui fournit un ensemble d’outils permettant l’utilisation de la librairie FANN. FANN ( pour Fast Artificial Neural Network ) est une librairie open-source de réseaux de neurones qui permet à la fois l'entraînement du réseau neuronal et ensuite l’utilisation de celui-ci.
Il faut lui fournir en entrer un fichier respectant ce format:

3 Kasım 2012 Cumartesi

Handwritten Digit Recognition

Handwritten digits recognition is a classic problem of machine learning. The objective is to recognize images of single handwritten digits(0- 9). in This example We will apply FANN and FANNTool on this problem. Semeion Handwritten Digit Data Set is used for training and testing.

1593 handwritten digits from around 80 persons were scanned, stretched in a rectangular box 16x16 in a gray scale of 256 values.Then each pixel of each image was scaled into a boolean (1/0) value using a fixed threshold. This data set contains no missing values. Each person wrote on a paper all the
digits from 0 to 9, twice. The commitment was to write the digit the first time in the normal way


and the second time in a fast way



This data set consists of 1593 records (rows) and 256 attributes (columns). Each record represents a handwritten digit, originally scanned with a resolution of 256 grays scale. Each pixel of the each original scanned image was first stretched, and after scaled between 0 and 1 (setting to 0 every pixel
whose value was under the value 127 of the grey scale (127 included) and setting to 1 each pixel whose original value in the grey scale was over 127). Finally, each binary image was scaled again into a 16x16 square box (the final 256 binary attributes).

 Firstly We train a ANN for this Data set by using FannTool. After that we write a demonstration program to show a results.

Reached ANN prediction Succes ;
For Training Data : %100 Succes
For Testing Data   :  % 90.1 Succes

31 Ekim 2012 Çarşamba

Yapay Sinir Ağları ile Ses Tanıma

Ses Tanıma genel olarak  üç aşamadan oluşuyor.
1) Ön işleme
2) Öznitelik Çıkarma
3) Tanıma ( YSA ile)
Deneysel olarak yapılan  bu çalışmada  RASTA-PLP, MFCC ve LP yöntemleri gerçekleştirildi Bu yazıda akustik vektörlerin MFCC (mel frequency cepstral coefficients) yöntemiyle oluşturulması anlatılıyor. ( deatylı bilgi için YSA ile Ses Tanıma )

Küçük bir veri seti hazırlandı 6 değişik kelime 10 kez seslendirildi. Bu ses dosyalarına yukardaki yazıda belirtilen metodlar uygulanarak öznitelik çıkarma işi yapıldı. Çıkarılan bu özniteliklerin 48 tanesini eğitim 12 tanesini test için kullandık.

    Giriş : 360
    Çıkış : 6

şeklinde bir YSA tasarlandı ve FannTool ile eğitildi, Ulaştığımız sonuçlar

    Eğitim Verisi : %100
    Test Verisi     : % 91

Pedestrian Detection

FYP - Pedestrian Detection Local Binary Pattern with HOG trained with ANN (FANN & FANNTool). Written in C using OpenCV. Now with rolling average of the last 5 frames. 4x Speed. Intensity of green represents probabilistic measurement of a cell containing a person. There's still some false positives and false negatives but should be fixable with larger training set and better MSE.

30 Ekim 2012 Salı

Forecasting the ozone concentrations


Forecasting the ozone concentrations with WRF and artificial neural network based system

Department of Climatology and Atmosphere Protection
Wrocław University, Poland

Introduction;

Ground level ozone (O3 ) has serious adverse impacts on human health and ecosystems. Accurate tools that support human and ecosystem protection are necessary. The most often used are complex atmospheric chemistry models (Vieno et al. 2010), driven by off-line meteorology or integrated on-line to allow for two directional effects of atmospheric chemistry and meteorology. These tools need a significant amount of computational effort, but are able to provide information on spatial and
temporal information on atmospheric ozone concentrations. Statistical methods, including regression models and artificial neural networks (ANN) are also often applied to provide information on spatial (Pfeiffer et al. 2009) and temporal variability of O . ANN were also found to be useful for O 3 3
forecasting, and were applied to e.g. metropolitan areas by local environmental or health agencies (Comrie 1997, Corani 2005, Ibarra-Berastegi et al. 2008, Yi and Prybutok 1996). In this paper we present the preliminary results of the O3 forecasting system for the city of Wrocław, SW Poland. Two main tools are used to estimate the hourly O3 for the next 3 and 24 hours – the Weather Research and Forecasting (WRF) mesoscale meteorological model and an artificial neural network (ANN). WRF provides the meteorological variables for the next 3 and 24 hours, and the ANN is then applied to forecast the O3 concentrations.

FannTool ;


...
 The analysis was performed with
the Fast Artificial Neural Network library and FANN Tool 1.1 interface.
...


27 Ekim 2012 Cumartesi

Automated Analysis of Cardiotocograms


Orjinal Çalışma ;
Özeti ;

To describe the latest version of SisPorto, a program for automated analysis of cardiotocograms that closely follows the FIGO guidelines, analyses ante- and intrapartum tracings, performs no signal reduction, and has the possibility of simultaneously recording twins.A detailed description of the program's processing algorithms and operation is provided, as well as the main results of the studies performed to-date with this system.Considering both current and previous versions of the program, SisPorto has been tested in over 6000 pregnancies. The system's FHR baseline was compared with an average of three experts' estimates, and the difference was under 8 bpm in all cases. A fair to good agreement was found with experts' identification of accelerations, decelerations, contractions, and normal/reduced variability (proportions of agreement 0.64-0.89). In a preliminary validity study (n = 85), a sensitivity of 100% and a specificity of 99% were obtained in prediction of poor neonatal outcome. The system is currently undergoing an international multicentre validation study.Although still at the research level, a considerable experience has now been gathered with this system. Promising results have been achieved in studies comparing SisPorto with experts' analysis and in those evaluating the validity of the system.

Çalışmanın verilerine The UCI Machine Learning Repository den Cardiotocography Data Set  başlığından ulaşabilirsiniz. Cardiotocography Anne karnındaki bebeğin kalp sağlığının belirlenmesi için kullanınal bir teknoloji. Sisporto ise Omniview-SisPorto adıyla ticarileşmiş bir proje artık.



Verilerin detayına bakacak olursak;
2126 fetal cardiotocograms (CTGs) were automatically processed and the respective diagnostic features measured. The CTGs were also classified by three expert obstetricians and a consensus classification label assigned to each of them. Classification was both with respect to a morphologic pattern (A, B, C. ...) and to a fetal state (N, S, P). Therefore the dataset can be used either for 10-class or 3-class experiments.

Attribute Information:


LB - FHR baseline (beats per minute)

AC - # of accelerations per second
FM - # of fetal movements per second
UC - # of uterine contractions per second
DL - # of light decelerations per second
DS - # of severe decelerations per second
DP - # of prolongued decelerations per second
ASTV - percentage of time with abnormal short term variability
MSTV - mean value of short term variability
ALTV - percentage of time with abnormal long term variability
MLTV - mean value of long term variability
Width - width of FHR histogram
Min - minimum of FHR histogram
Max - Maximum of FHR histogram
Nmax - # of histogram peaks
Nzeros - # of histogram zeros
Mode - histogram mode
Mean - histogram mean
Median - histogram median
Variance - histogram variance
Tendency - histogram tendency
CLASS - FHR pattern class code (1 to 10)
NSP - fetal state class code (N=normal; S=suspect; P=pathologic)
 Orjinal verinin 2 çeşit çıktısı var. İlkinde 10 çeşit FHR tipinden hangisi olduğu, ikincisinde ise üç çeşit Fetal State için (N=normal; S=suspect; P=pathologic) bir sınıflandırma var. Biz Örneğimiz için ikincisini kullandık.
Bütün YSA işlemleri FannTool ile yapıldı. Bir Önceki örneğimizdeki gibi program yazmadık sonuçalrı Excell Dosyasındaki "Full Sonuç-Eğitim" ve "Full Sonuç-Test" sayfalarında görebilirsiniz

Eğitim Verileri için Başarı Oranı :  % 98,72  (  1488 Örnekden  1469 Doğru )
Test Verileri için  Başarı Oranı   :  % 94.2  ( 638 Örnekden 601 Doğru  )
Dosyalar İndirmek İçin :  CTG.zip

26 Ekim 2012 Cuma

Yapay Sinir Ağları ile Finansal Başarısızlık Öngörüsü

Finansal Başarısızlık Öngörüsü hem Firmanın yöneticileri, Hem ilgili firmayla ilişkileri olan firmalar, hemde  - borsada olsun olmasın  - yatırımcıları  için önemli bir konudur.
Öngörü sonuçlarına göre Yöneticiler tedbirler alabilir, İlişkide oldukları firmalar için alternatifler arayabilir,  Yatırımcılar yatrımlarını daha güvenilir yerlere kaydırabilirler. Elbette İş işden geçmeden önce...

Ufak bir internet aramasıyla sizinde göreceğniz gibi pek çok değişik metod ve sistemle "Finansal Başarısızlık Öngörü"  çalışmaları yapılmıştır. Bizim Çalışmamızda Borsada işlem gören bazı şirketler için Yapay Sinir Ağları ile benzeri bir çalışma yapılmıştır.

Firmaların Son Üç yıllık
  • İşletme Sermayesi /Toplam Varlıklar
  • Net Kar/Toplam Varlıklar
  • FVÖK (Faaliyet Karı)/Toplam Varlıklar
  • Borçların Defter Değeri/Toplam Varlıklar
  • Satışlar/Toplam Varlıklar
  • FVÖK (Faaliyet Karı)/Toplam Faiz Ödemeleri

verileri kullanılarak  mevcut  yıldaki Finansal Başarı / Başarısızlıkları öngörülmeye çalışılmıştır.

Ulaşılan Sonuçlar : Doğru sınıflandırma başarı Yüzdesi olarak

Eğitim Verileri  : % 93,3
Test Verileri      : % 84.6
Resimden de göreceğiniz gibi Bütün çalışmada yine FannTool kullanıldı.

Yapay Sinir Ağları ile Tel Erozyon Hesabı


Tel Erozyon Nedir ;

İletken olan malzemelerin işlenmesi ve kesilmesi için kullanılan bir metod ve bu iş için kullanılan tezgahın adıdır. Malzeme Dielektirik bir sıvı içerisine daldırılır. Malzemenin  yüzeyi ile elektrod ( tel ) arasında ark oluşturularak  yüzey aşındırılırlır.

Bizim Çalışmamıza esas olan; Nihat Tosun'un  "Tel erozyon tezgahında tel aşınmasının ve yüzey pürüzlülüğünün deneysel olarak incelenmesi ve modellenmesi" başlıklı doktora tezidir. Bu tezde bir dizi deney yapılmış ve deney sonuçları Regresyon analiziyle modellenmiştir.
Biz bu deney datalarını FannTool ile YSA kullanarak modelledik.

Giriş Değerleri ( Kontrol Parametreleri ) olarak
; Puls Süresi, Gerilim, Tel İlerleme Hızı, Dielektirik Sıvı püskürtme basıncı kullanıldı.
Çıkış Değerleri ; Yüzey Prürüzlülüğü, Telde oluşan krater Derinlik ve Çapı , Ağırlık Kaybı

Parametrelerle ilgili detaylar için ilgili teze bakınız. Deneysel verilerin bir kısmı YSA eğitimi için kullanıldı. Kalan kısmıda Eğitilmiş YSA'nın performansını görmek için Test aşamasında kullanıldı.
Biz buraya Sadece Test Verireliyle ulaşılan Grafiklerden birkaç tane koyuyoruz.

Krater Derinliği Test Sonuçları :



Yüzey Pürüzlülüğü Test Sonuçları :

Yapay Sinir Ağları ile Sıcaklık Tahmini

Eksik veri tamamla , İstanbul Göztepe meteoroloji istasyonunda belirli bir tarihten sonra sıcaklık parametresine ait verilerde eksiklik olduğu tespit ediliyor. Diğer parametreler (su buharı basıncı, bağıl nem, rüzgar şiddeti, hava basıncı ) yardımıyla YSA kullanılarak Sıcaklık parametresinin tahmin edilmesi gerekiyor. Ve biz bu işi FannTool ile ve Tek satır kod yazmadan yapacağız.
 FannTool'a giriş niteliğinde olan bu Yazımızı ve ilgili verileri indirmek için ; Sıcaklık

25 Ekim 2012 Perşembe

Üriner sistem hastalıklarının ön tanısı / diagnosis of urinary system diseases


Üriner sistem hastalıklarının ön tanısı hakkında yapılmış bir çalışmadan yola çıkıldı.
Orjinal çalışma ;
Application of rough sets in the presumptive diagnosis of urinary system diseases

Bu Makale  "Artificial intelligence and security in computing systems" kitabında geçiyor  ( sayfa 41-51)

Konunun detayını aynen aktarıyorum

The main idea of this data set is to prepare the algorithm of the expert system, which will perform the presumptive diagnosis of two diseases of urinary system. It will be the example of diagnosing of the acute inflammations of urinary bladder and acute nephritises. For better understanding of the problem let us consider definitions of both diseases given by medics. Acute inflammation of urinary bladder is characterised by sudden occurrence of pains in the abdomen region and the urination in form of constant urine pushing, micturition pains and sometimes lack of urine keeping. Temperature of the body is rising, however most often not above 38C. The excreted urine is turbid and sometimes bloody. At proper treatment, symptoms decay usually within several days. However, there is inclination to returns. At persons with acute inflammation of urinary bladder, we should expect that the illness will turn into protracted form.

Acute nephritis of renal pelvis origin occurs considerably more often at women than at men. It begins with sudden fever, which reaches, and sometimes exceeds 40C. The fever is accompanied by shivers and one- or both-side lumbar pains, which are sometimes very strong. Symptoms of acute inflammation of urinary bladder appear very often. Quite not infrequently there are nausea and vomiting and spread pains of whole abdomen.  The data was created by a medical expert as a data set to test the expert system, which will perform the presumptive diagnosis of two diseases of urinary system. The basis for rules detection was Rough Sets Theory. Each instance represents an potential patient
Attribute Information:

a1 Temperature of patient { 35C-42C }
a2 Occurrence of nausea { yes, no }
a3 Lumbar pain { yes, no }
a4 Urine pushing (continuous need for urination) { yes, no }
a5 Micturition pains { yes, no }
a6 Burning of urethra, itch, swelling of urethra outlet { yes, no }
d1 decision: Inflammation of urinary bladder { yes, no }
d2 decision: Nephritis of renal pelvis origin { yes, no }


 Orjinal Çalışmada veriler Bir Uzman sistem tasarlanmak için kullanılmış biz YSA eğitmek için kullandık . YSA eğitimi için yine FannTool 'u kullandık. ve sonuçda  hem Eğitim hemde  Test Verileri için % 100.Başarıya ulaşıldı

Üstünüde Üriner sistem hastalıklarının ön tanısını yapan bir program yazdık;  
Programın yaptıkları kabaca;  Giriş değerlerini Kullanıcadan alıp Eğitilmiş YSA'yı bu giriş değerleriyle çalıştırmak. Ve tabii ki sonuçlarıda göstermek.


Indirmek için :   Acute_Inflammations

Konuşma ile Parkinson Hastalığı Tanısı

Önce Çalışmanın önemini anlayabilmek için Hastalıkdan söz edelim;


Parkinson hastalığı, beynin alt kısımlarındaki gri cevher çekirdeklerinin bozukluğuna bağlı bir sinir sistemi hastalığı. Genellikle orta yaş hastalığıdır. Adını hastalığı ilk defa 1817'de titremeli felç olarak tarifleyen James Parkinson'dan almıştır. Binde bir sıklıkla görülen, müzmin, ilerleyici, tedavisiz iyileşmeyen bir hastalıktır. (1)

Parkinson hastalığına tanı koymak için özel bir yöntem yoktur. Laboratuvar ya da röntgen tetkikleri sonucu da bunun anlaşılması mümkün değildir. Fakat uzman bir nörologun hastadan ve hastanın yakınlarından aldığı bilgiler, ayrıca yaptığı muayene sonucu tanı koyabilir. (2)

 Parkinson hastalığının klinik tanısı, hastanın anamnezinin değerlendirilmesi ve nörolojik muayenenin yapılması ile konulur.  Kesin tanıyı sağlayan laboratuar veya radyoloji yöntemi bulunmamaktadır. (3)


Orjinal Çalışma
'Suitability of dysphonia measurements for telemonitoring of Parkinson's disease'
diye geçen makale.
Özeti ;
 We present an assessment of the practical value of existing traditional and non-standard measures for discriminating healthy people from people with Parkinson‟s disease (PD) by detecting dysphonia. We introduce a new measure of dysphonia, Pitch Period Entropy (PPE), which is robust to many uncontrollable confounding effects including noisy acoustic environments and normal, healthy variations in voice frequency. We collected sustained phonations from 31 people, 23 with PD. We then selected 10 highly uncorrelated measures, and an exhaustive search of all possible combinations of these measures finds four that in combination lead to overall correct classification performance of 91.4%, using a kernel support vector machine. In conclusion, we find that non-standard methods in combination with traditional harmonics-to-noise ratios are best able to separate healthy from PD subjects. The selected non-standard methods are robust to many uncontrollable variations in acoustic environment and individual subjects, and are thus well-suited to telemonitoring applications.

Yapılanlara gelirsek; Oxford Üniversitesinden Max Little'in National Centre for Voice and Speech ile olan işbirliğiyle hazırlanmış.ve görebildiğim kadarıyla sınıflandırma için SVM kullanmışlar. Biz tahmin edeceğiniz üzre Yapay Sinir Ağı ve FannTool kullanacağız.

23'ü parkinson hastası olan 31 kişinin toplamda 195 ses kaydı yapılmış ve bu ses kayıtlarından çıkarılan özniteliklerle (feature extraction) Kişinin Hastamı, Sağlıklımı olduğuna karar vermek gerekiyor.

Verilerin nelerden oluştuğuna bakarsak

1 ) MDVP:Fo(Hz) - Average vocal fundamental frequency
2 ) MDVP:Fhi(Hz) - Maximum vocal fundamental frequency
3 ) MDVP:Flo(Hz) - Minimum vocal fundamental frequency
4 ) MDVP:Jitter(%),
5 ) MDVP:Jitter(Abs),
6 ) MDVP:RAP,
7 ) MDVP:PPQ,
8 ) Jitter:DDP - Several measures of variation in fundamental frequency
9 ) MDVP:Shimmer,
10) MDVP:Shimmer(dB),
11) Shimmer:APQ3,
12) Shimmer:APQ5,
13 ) MDVP:APQ,
14) Shimmer:DDA - Several measures of variation in amplitude
15) NHR,
16) HNR - Two measures of ratio of noise to tonal components in the voice
17) RPDE,
18) D2 - Two nonlinear dynamical complexity measures
19) DFA - Signal fractal scaling exponent
20) spread1,
21) spread2,
22) PPE - Three nonlinear measures of fundamental frequency variation
23) status - Health status of the subject (one) - Parkinson's, (zero) - healthy

detaylı bilgi için makaleye bakabilirsiniz.

Orjinal veriyi Tablolama programımıza aktarıyoruz ve Status kısmını son sütüna taşıyoruz.sonra sadece verileri seçip bir text dosyasına kaydediyoruz. "ParkinsonRaw.txt" bundan sonrası için FannTool kılavuzuna müracaaat edeblirsiniz.

Sonuçlardan bahsederek yazıyı bitirmek istiyorum.
Çeşitli denemelerden sonra optimum bir sonuç veren YSA kaydedildi.

Eğitim verisinde 117 verinin hepsi doğru sınıflandırılıyor ve başarı yüzdesi %100
Test Verisiyle ulaşılan sonuçlar ise
58 Parkinson Hastasının 56 sı doğru tahmin ediliyor başarı yüzdesi %96,55
20 Sağlıklı kişinin 17 si doğru tahmin ediliyor başarı yüzdesi %85
Konuyla ilgili çalışmaları görmek için ;
Parkinson

21 Ekim 2012 Pazar

Buğday Sınıflandırma





Öncelikle Orjinal çalışmadan bahsedelim ;

Complete Gradient Clustering Algorithm for Features Analysis of X-Ray Images





Abstract

Methods based on kernel density estimation have been successfully applied for various data mining tasks. Their natural interpretation together with suitable properties make them an attractive tool among others in clustering problems. In this paper, the Complete Gradient Clustering Algorithm has been used to investigate a real data set of grains. The wheat varieties, Kama, Rosa and Canadian, characterized by measurements of main grain geometric features obtained by X-ray technique, have been analyzed. The proposed algorithm is expected to be an effective tool for recognizing wheat varieties. A comparison between the clustering results obtained from this method and the classical k-means clustering algorithm shows positive practical features of the Complete Gradient Clustering Algorithm.







X-Işını tekniği dedikleri bir metodla çektikleri görüntüler üzerinden çıkardıkları özniteliklerle, "Complete Gradient Clustering Algorithm"kullanılarak sınıflandırma çalışması yapılmış.

Biz bu çalışmanın veri setine The UCI Machine Learning Repository den ulaştık.

http://archive.ics.uci.edu/ml/datasets/seeds

Veri setininin tanıtımı şöyle yapılmış ;


The examined group comprised kernels belonging to three different varieties of wheat: Kama, Rosa and Canadian, 70 elements each, randomly selected for the experiment. High quality visualization of the internal kernel structure was detected using a soft X-ray technique. It is non-destructive and considerably cheaper than other more sophisticated imaging techniques like scanning microscopy or laser technology. The images were recorded on 13x18 cm X-ray KODAK plates. 

Studies were conducted using combine harvested wheat grain originating from experimental fields, explored at the Institute of Agrophysics of the Polish Academy of Sciences in Lublin.

The data set can be used for the tasks of classification and cluster analysis.

Attribute Information:

To construct the data, seven geometric parameters of wheat kernels were measured:
1. area A,
2. perimeter P,
3. compactness C = 4*pi*A/P^2,
4. length of kernel,
5. width of kernel,
6. asymmetry coefficient
7. length of kernel groove.
All of these parameters were real-valued continuous.

Bu veri setini FannTool'u kullanarak YSA ile sınıflandırmayı deneyeceğiz.

Öncelikle Veri setini inceliyoruz

 http://archive.ics.uci.edu/ml/machine-learning-databases/00236/seeds_dataset.txt

Veri setimiz 7 giriş ve 1 çıkış dan oluşuyor

1 çıkış değerimiz 3 buğday türü için bir sınıflandırma içerdiğinden
biz o bir sutunu her bir sınıf için bir sutun haline getiriyoruz yani

Kama için 1 0 0 
Rosa  için  0 1 0
Canadian   0 0 1

Sonuçda 7 giriş 3 çıkışlı bir veri setimiz oluyor


bu verileri bir text dosyasına kaydedip, FannTool'un DataProcessing kısmıyla açıyoruz

7 giriş 3 çıkış üzere ayarlayıp
sonrasında oluşan dosyalarımız

seed-scale.txt : Ölçeklendirme bilgilerini tutan dosya
seed-train.dat  :  Eğtim verileri
seed-test.dat   :   Test  Verileri

Artık yapmamız gereken şey Eğitim ve test verilerini yükleyip. YSA için değişik yapılarda ve değişik eğitim algoritmaları ve paramtereleri ile denemeler yapmak.




Sonuç :  

Yapılan pek çok denemenin ardından oldukça başarılı Sınıflandırma başarılarına ulaşıldı
Eğitim Verisi için %  99,32 ( 146 verinin 145 adedi doğru sınıflandırıldı )
Test Verisi için  %  96,88  ( 64 verinin 62 adedi doğru sınıflandırıldı )



8 Ekim 2012 Pazartesi

Intelligent Condition Monitoring Systems for an AUV Robot


Intelligent Condition Monitoring Systems for an AUV Robot    

Journal : Applied Mechanics and Materials (Volumes 152 - 154)
Volume     : Mechanical Engineering and Materials
Authors : Amir Parsa Anvar, Manjit S. Garcha, Ritchie D. Saliba, Taranjit M. Singh, Amir M. Anvar, Steven Grainger

January, 2012

Abstract:

This paper discuses intelligent techniques used to monitor and correct operational abnormalities in Autonomous Underwater Vehicles. Neural Networks are usually utilised in the diagnosis section, while Fuzzy Logic is implemented in the prognosis and remedy sections. The performance of an AUV’s sub-system has a great affect on the overall success of the vehicle. Once a sub-system becomes faulty, the various components associated with the control of the AUV may get influenced, which can degrade the overall performance of the integrated system or make it invalid altogether . Such failures may result in large amounts of wasted time, loss of data and increases in mission costs.

FannTool ;

...
These input values were fed into the Fast Artificial Neural Network
(FANN) toolbox, FannTool-1.1, to provide simulations of a Neural Network for the inputand output across each sensor.
...

Efficient Segmentation and Classification of Hyper Spectral Cubes


Efficient Segmentation and Classification of Hyper Spectral Cubes

Papagrigoriou Stylianos
Technical University of Crete

Abstract:

Hyper Spectral Imaging is a powerful analytical tool, which has been used in a wide area of applications, from Satellite Imaging to Biomedical Diagnosis. Spectral imagery of either macroscopic or microscopic origin is usually depicted in a spectral cube, a registered set of images, featuring one spectral and two spatial dimensions as pixel coordinates. From each pixel, associated with a spectrum -instead of an RGB value-, one is able to extract information about the nature of the material, by studying its spectral signature on the Spectral Cube.
This technique offers a non-destructive and non-invasive way (one does not have to extract part of the material and bring it to the lab) of examining materials, suitable for medical purposes. In the hereby thesis the computational capabilities of spectral imaging methods are examined and attempted to be improved, in order to provide real time pixel classification. Specifically, a successful attempt is made to create a hyper spectral classifier with real-time performance for cubes acquired from a cervix biopsy. Various techniques are tested for efficient segmentation of the Cube, in order to generate a golden standard for the training process. The classification is performed using Neural Networks while the final result is a GPU implementation, the main reason behind the speed up of the application.
Although this study was based on specific medical data, it is possible to be generalized on any aspect of Hyper Spectral Imaging, and shows that real-time Hyper Spectral Processing for classification purposes is feasible.

FannTool ;

...
FANN library, provides a really fast and powerful tool -FannTool- for training neural networks with many different algorithms and automatic mechanisms for identifying the best activation function and training algorithm. FANN library was used exactly for these two purposes (finding the best activation function and training algorithm) and train the Network
...

7 Ekim 2012 Pazar

Filyos Hisarönü Dalga Verilerinin Yayap Sinir Ağları, Arima Modelleri ve Melez Modeller ile Tahmini


Gazi Üniversitesi
Fen Bilimleri Enstitüsü
İnşaat Mühendisliği
Yüksek Lisans Tezi
MART 2010
ANKARA
Turan GÜZEL

Filyos Hisarönü Dalga Verilerinin Yayap Sinir Ağları, Arima Modelleri ve Melez  Modeller ile Tahmini

Özet :

Zaman serilerinin çözümünde birçok yaklaşım kullanılmaktadır. Kıyı yapılarının projelendirilmesinde, özellikle proje sahasında yapılan ölçümlerden elde edilen verilerin kullanılması yapılacak projenin devamlılığı açısından önemlidir. Bu çalışmada planlanan Filyos Limanı için yörede yapılan dalga yüksekliği ölçüm verileri  kullanılmıştır. Bu verilerin oluşturduğu zaman serisi elde olmayan sebeplerden dolayı kesintilere uğramıştır. Eksik kalan dalga yüksekliği verileri Yapay Sinir Ağları, ARIMA Modelleri ve Melez Modeller kullanılarak tamamlanmıştır. Yapay Sinir Ağı Modeli seçilen zaman serisine en iyi uyumu sağlamasına rağmen, ARIMA Modeli diğer serilere Yapay Sinir Ağı modelinden daha yakın sonuçlar verdiğinden dolayı göz ardı edilmemelidir.

Abstract:

Many approaches are used in the solution of time series. Especially measurements of projects field of the data use during projecting coastal structures. This is important for term of continuity of structures. In this study, wave height data are taken in Filyos Harbor field. These wave heights are created time series. This time series are disrupted by unaccountable causes. Missing wave heights are completed by using Artificial Neural Network Model, ARIMA Model and Hybrid Model. Artificial Neural Network Model is best fit to provided selected time series. Although ARIMA Model is more provide results then Artificial Neural Network Model to the other series.

FannTool;

...
Çalışmada, STATGRAPHICS Centurion programı ARIMA modellemeleri için
ve FannTool programı yapay sinir ağı modellemeleri için kullanılmıştır.

...

A Back Propagation Artificial Neural Networks Approach to Automatic Customer Record Classification


Maastricht University / Department of Quantitative Economics
Master Thesis
A Back Propagation Artificial Neural Networks Approach to Automatic Customer Record Classification.
Author: Camilo Gaviria

Introduction :


In this thesis I address the problem of finding the correct customer to account (AMID)
assignment based on several variables called customer attributes. These customer at-
tributes contain information that provide a partial description of the customer, i.e. cus-
tomer name, customer address, etc. As each customer record carries many attributes,
and there are many possible accounts or classes to which it can belong, this is in itself
a combinatorial optimization problem which is hard to solve. I will call the problem
of minimizing the number of incorrect class (AMID) assignments from now on, the
customer alignment problem.
...

In the literature, many approach to address similar problems are discussed,
one of these, which I have chosen to explore, is the utilization of neural network based
classi cation approaches that are commonly used in the classi cation of natural language
documents as patents, articles, books. In this thesis I will approach the customer record
alignment problem using an adaptation of the methodology used by to classify
patent documents.

FannTool ;

...
Another advantage of using this pre-compiled library, is the availability of a series of
open source graphical user interfaces. By using one of these GUI's, the development
efort is significantly reduced, and the number of additional tests and configurations
that can be easily performed is much larger. Taking into account that there are several
parameters for which there is no one setup rule (number of neurons per layer, number of layer, type of training algorithm, etc.) being able to easily change the configuration
of the ANN is an highly valued feature. The GUI of choice was FANNTool 1.3 an
open source GUI developed specifically for FANN and portable to several OS. This GUI
allows for direct instance scaling, data manipulation as well as real time monitoring of
the learning process.
...

6 Ekim 2012 Cumartesi

Yapay Sinir Ağları Metodolojisi ile Düzeltme Yöntemi Öngörüsü Yapısal İş İstatistikleri Anketi İçin Bir Uygulama

Yapay Sinir Ağları Metodolojisi ile Düzeltme Yöntemi Öngörüsü Yapısal İş İstatistikleri Anketi İçin Bir Uygulama
Ahmet Mert AKTAS
Türkiye İstatistik Kurumu
Uzmanlık Tezi - 2010

Özet:

Günümüzde, teknolojinin gelismesi ile bilgisayarlar karar verici organlar olmaya
baslamıs ve insan zekasına haiz birçok durumu bir arada değerlendirme yeteneğine,
çesitli algoritmalar ile erismislerdir. İnsan zekası benzeri bir yapıyı, bilgisayara aktarma
konusunda yazılım yöntemlerinden biri de yapay sinir ağları ve yapay zeka’dır.
Bu çalısmada, yapay sinir ağlarının düzeltme yöntemi olarak kullanılmasıyla ilgili
kapsamlı bir arastırma olusturulması amaçlanmıstır. Öncelikle yapay zeka kavramından
bahsedilmis, yapay zekanın bir alt baslığı olan yapay sinir ağları kullanılarak Yapısal İş
İstatistikleri Ana Soru Kağıdı (A101) için düzeltme yöntemi öngörülerinde
bulunulmustur. Yapmıs olduğumuz bu öngörülerin somut verilerle elde edilen basarısı
değerlendirilmistir.
Özellikle soru kağıdı üzerindeki nitelikli isgücünü arttırması ve cevaplayıcı yükünü
azaltması gibi belirgin avantajları nedeniyle yapay sinir ağlarını, soru kağıtları için
düzeltme yöntemi olarak kullanmanın gerekliliği çok önemlidir. Standart uygulamaların
altyapısı ancak insani unsurların tam kontrollü sistemlere aktarılmasıyla mümkün
olacaktır. Ancak yıllık olarak derlenen soru kağıtlarından elde edilen verilerin su an için
sınırlı sayıda olması ve ilgili periyotta birçok farklı değiskenden etkilenmesi gibi
nedenlerle uygulama üzerinde daha çok arastırma yapılmalıdır.

FannTool Hakkında;

...
FannTool, hem menüler yardımıyla hem de menü içeriği ile bire bir tanımlanmıs komut
düğmeleriyle kullanılabilmektedir. FannTool program içeriği ve yapılandırması daha
genis kitlelere ulasması için İngilizce olarak hazırlanmıstır. Program yardımıyla
istenilen eğitim metotları ile eğitim gerçeklestirilebileceği gibi program optimum eğitim
algoritmasını da uygulama için tespit edebilmektedir. Benzer sekilde gizli katman ve
çıkıs katmanları için en yaygın fonksiyonlar programda yer almaktadır. Bu fonksiyonlar
arasından seçim yapılabileceği gibi, program aktivasyon fonksiyonları içinde optimum
yöntemi tespit eden bir eklentiye sahiptir.
Durma fonksiyonuna iliskin seçenekler sunulmakta, tekrar sayısı ile raporlama döngüsü
ayarlanabilmektedir. “Log” sekmesinden programın çalısması esnasında olusan islem
günlüklerine ulasılabilmektedir. “Graphic” sekmesinden eğitim ve test sonrası uyum grafiklerine ulasılabilmekte, “Fine Tuning” ve “Cascade Tuning” ile kademeli
özellestirmeler gerçeklestirilebilmektedir
...