Professional Documents
Culture Documents
algoritmadır. Tur tur ileri ve geri yayılım yaparak ağırlıklarını ve biasını öğrenme, kendini
eğitme amacıyla değiştirir.
Loss Function: Loss function, belirli bir algoritmanın sağlanan verileri ne kadar iyi
modellediğini hesaplar.
Layer (katman): Sinir ağları, bir giriş, bir çıktı katmanlarından ve bu iki katmanın arasında
olan gizli (hidden) katmanlardan oluşur. Her katman belirli sayıda düğüme (node) sahiptir. Bu
düğümler sahip olduğu ağırlıkla modeli oluşturur.
Model oluşturma
model = models.Sequential()
Functional API, çoklu çıktılı modeller, paylaşılan katmanlar vs. gibi karmaşık model
mimarileri tasarlamak için kullanılır.
Model tanımında dikkat edilmesi gereken önemli bir nokta, ilk katman için
giriş şeklini belirtmemiz gerektiğidir.
model.add(layers.Dense(10, activation='softmax'))
optimize ediciler
Kayıp fonksiyonları
Denetimli bir öğrenme probleminde gerçek değerler ile öngörülen değerler arasındaki hatayı
bulmak zorundayız. Bu hatayı değerlendirmek için kullanılabilecek farklı ölçümler olabilir.
Bu metriğe genellikle kayıp fonksiyonu veya maliyet fonksiyonu veya amaç fonksiyonu
denir. Hata ile ne yaptığınıza bağlı olarak, birden fazla kayıp fonksiyonu olabilir. Genel
olarak kullanırız
batch = aynı anda işlenecek veri sayısı. Düşük ise işleme süresi uzar. 2 nin kuvveti olması iyidir
Suffle boolean değer alır ve her bir epoch’tan önce verilerin yerlerinin değiştirilmesi için kullanılır
Verbose 0,1 ve 2 değerlerinden birisini alır. 0 eğitim sırasında ekranda bir sonuç göstermezken 1
progres bar gibi anlık olarak güncellenen sonçları gösterir. 2 ise her bir epoch sonunda tek bir satır
olarak çıktı verir.
Epoch sayısı, model eğitilirken verilerin modelden kaç kez geçiş yapacağını belirtir. Optimum seçilmeli
history =model.fit(X_train,
y_train,
validation_data=(X_test, y_test),
batch_size=16,
shuffle=True,
verbose=1,
epochs=500)
Modelin Değerlendirilmesi
train_X = train_df.drop(columns=['Type'])
train_X.head()
train_y = train_df[['Type']]
train_y.head()
Bu modeli yeni verilerle ilgili tahminlerde bulunmak için kullanmak istiyorsak, model.predict
() fonksiyonunu kullanmamız gerekir. girdi olarak test verilerinden istediğimiz bir tanesini
seçip verebiliriz.
results = model.predict(X_test.iloc[1:2])
#sınıflarımız, 3 adet tümeör türü var
class_names = ['Glioma', 'Meningioma', 'Patiutary']
ind = 0.1+0.3*np.arange(len(class_names))
width = 0.15 #bar genişliği
color_list = ['blue','orangered','limegreen']
#sonuçlarımızı renklendirelim
for i in range(len(class_names)):
plt.bar(ind[i], results[0][i], width, color=color_list[i])
plt.title("Sınflandırma sonuçları ",fontsize=20)
plt.ylabel(" Sınıflandırma Skoru",fontsize=16)
plt.xticks(ind, class_names, rotation=0, fontsize=14)
plt.show()
print("Tahmin sonucu:", class_names[np.argmax(results)])
print("Gerçek sonuç:",class_names[np.argmax(y_test[1:2])])
Başarım grafiği
from matplotlib import pyplot as plt
# Plot training & validation accuracy values
plt.figure(figsize=(14,3))
plt.subplot(1, 2, 1)
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
# Plot training & validation loss values
plt.subplot(1, 2, 2)
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()
NORON SAYISI HESAPLAMA
RELU
ReLU veya Rectified Linear Activation. Bu aktivasyon fonksiyonu sıfırdan küçük olan değerleri sıfır
olarak, sıfırdan büyük olan değerleri olduğu gibi alır. formül olarak f(x)=max(0,x) şeklinde yazabiliriz.