Sıralı Modeller Oluşturma
Dense katmanlarını üst üste ekleyin, aktivasyonları uygulayın ve kayıp işlevi ile iyileştiriciyi kullanarak derleyin.
Sıralı Modeller Oluşturma, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.
Sıralı Model
Sıralı model, her katmanın tam olarak bir giriş tensörüne ve bir çıkış tensörüne sahip olduğu doğrusal bir katman yığınıdır. En basit Keras model türüdür ve pratik kullanım alanlarının çoğunu kapsar: ileri beslemeli sınıflandırıcılar, regresörler ve temel CNN/RNN'ler.
library(keras)
# An empty sequential model
model <- keras_model_sequential()
print(model)
# Or specify the input shape upfront
model <- keras_model_sequential(input_shape = c(20))
print(model)layer_dense() — Tam Bağlantılı Katman
layer_dense(units, activation), her giriş nöronunun her çıkış nöronuna bağlandığı tam bağlantılı (yoğun) bir katman ekler. units bağımsız değişkeni, çıkış boyutunu belirler. activation doğrusal olmayanlığı uygular: 'relu', gizli katmanlar için standart seçenektir.
library(keras)
model <- keras_model_sequential(input_shape = c(30)) |>
layer_dense(units = 128, activation = 'relu') |>
layer_dense(units = 64, activation = 'relu') |>
layer_dense(units = 1, activation = 'sigmoid')
# Print architecture
summary(model)Çıkış Katmanı Etkinleştirmeleri
Son katmanın etkinleştirmesi göreve bağlıdır:
'sigmoid': ikili sınıflandırma (0-1 aralığında olasılık çıktısı verir)'softmax': çok sınıflı sınıflandırma (toplamı 1 olan olasılıklar çıktılar)'linear'veya etkinleştirme yok: regresyon (gerçek değerli tahminler üretir)
# Binary classification
binary_model <- keras_model_sequential(input_shape = c(20)) |>
layer_dense(64, activation = 'relu') |>
layer_dense(1, activation = 'sigmoid') # P(class=1)
# Multi-class (10 classes)
multi_model <- keras_model_sequential(input_shape = c(20)) |>
layer_dense(64, activation = 'relu') |>
layer_dense(10, activation = 'softmax') # P per class
# Regression
reg_model <- keras_model_sequential(input_shape = c(20)) |>
layer_dense(64, activation = 'relu') |>
layer_dense(1, activation = 'linear') # raw valuecompile() — Kayıp, İyileştirici, Ölçütler
compile(loss, optimizer, metrics), öğrenme sürecini yapılandırır. Yaygın birleşimler:
- İkili:
loss = 'binary_crossentropy',metrics = 'accuracy' - Çok sınıflı:
loss = 'categorical_crossentropy' - Regresyon:
loss = 'mse',metrics = 'mae'
model |> compile(
loss = 'binary_crossentropy',
optimizer = optimizer_adam(learning_rate = 0.001),
metrics = c('accuracy')
)
# Check configuration
model$loss
model$optimizer$get_config()optimizer_adam()
Adam (Uyarlamalı Moment Tahmini), çoğu derin öğrenme görevi için varsayılan iyileştiricidir. Gradyanların birinci ve ikinci moment tahminlerini kullanarak öğrenme oranını her parametre için uyarlar. Varsayılan 0,001 öğrenme oranı, çoğu problem için iyi bir başlangıç noktasıdır.
# Adam with default settings
model |> compile(
optimizer = 'adam',
loss = 'binary_crossentropy',
metrics = 'accuracy'
)
# Customised Adam
model |> compile(
optimizer = optimizer_adam(
learning_rate = 0.0005,
beta_1 = 0.9,
beta_2 = 0.999,
epsilon = 1e-7
),
loss = 'binary_crossentropy',
metrics = 'accuracy'
)fit() — Modeli Eğitme
fit(model, x, y, epochs, batch_size, validation_split), modeli eğitir. Her epoch, eğitim verilerinin tamamından bir kez geçilmesidir. Yığın boyutu, her ağırlık güncellemesinden önce kaç örneğin işleneceğini belirler. İşlev bir geçmiş nesnesi döndürür.
# Prepare example data
x_train <- matrix(rnorm(1000 * 20), nrow = 1000)
y_train <- sample(c(0, 1), 1000, replace = TRUE)
history <- model |> fit(
x = x_train,
y = y_train,
epochs = 20,
batch_size = 32,
validation_split = 0.2, # reserve 20% for validation
verbose = 1
)
plot(history)Katman Düzenlileştirmesi — Dropout
layer_dropout(rate), eğitim sırasında giriş birimlerinin bir bölümünü rate oranında rastgele 0 yapar. Bu, nöronların birbirine aşırı uyum sağlamasını önleyerek güçlü bir düzenlileştirici görevi görür. Dropout yalnızca eğitim sırasında etkindir; çıkarım sırasında etkin değildir.
model <- keras_model_sequential(input_shape = c(784)) |>
layer_dense(512, activation = 'relu') |>
layer_dropout(rate = 0.4) |>
layer_dense(256, activation = 'relu') |>
layer_dropout(rate = 0.3) |>
layer_dense(10, activation = 'softmax')
summary(model)L1 ve L2 Ağırlık Düzenlileştirmesi
Büyük ağırlıkları cezalandırmak için kernel_regularizer kullanarak tek tek katmanları düzenlileştirin. L2 (ridge), ağırlıkların kareleri toplamını cezalandırır; L1 (lasso), mutlak değerleri cezalandırır ve seyrekliğe yol açar. Her ikisi de regularizer_l2() ve regularizer_l1() aracılığıyla kullanılabilir.
model <- keras_model_sequential(input_shape = c(100)) |>
layer_dense(
units = 64,
activation = 'relu',
kernel_regularizer = regularizer_l2(l = 0.01)
) |>
layer_dense(
units = 32,
activation = 'relu',
kernel_regularizer = regularizer_l1_l2(l1 = 1e-4, l2 = 1e-3)
) |>
layer_dense(1, activation = 'sigmoid')
summary(model)Yığın Normalleştirme
layer_batch_normalization(), önceki katmanın etkinleştirmelerini her mini yığın için normalleştirir. Bu, eğitimi kararlı hâle getirir, daha yüksek öğrenme oranlarına olanak tanır ve hafif bir düzenlileştirici görevi görür. Bunu layer_dense() sonrasına ve etkinleştirme işlevinden öncesine veya etkinleştirmeden sonrasına yerleştirebilirsiniz; her iki kullanım da uygulamada yaygındır.
model <- keras_model_sequential(input_shape = c(100)) |>
layer_dense(256, use_bias = FALSE) |>
layer_batch_normalization() |>
layer_activation('relu') |>
layer_dense(128, use_bias = FALSE) |>
layer_batch_normalization() |>
layer_activation('relu') |>
layer_dense(1, activation = 'sigmoid')
summary(model)evaluate() ve predict()
evaluate(model, x_test, y_test), sınama verileri üzerindeki kaybı ve ölçümleri hesaplar. predict(model, x_new), ham tahminler (sınıflandırma için olasılıklar) üretir. Her ikisi de sayısal matrisleri kabul eder ve tutarlı, R-yerel değerler döndürür.
x_test <- matrix(rnorm(200 * 20), nrow = 200)
y_test <- sample(c(0, 1), 200, replace = TRUE)
# Evaluate on test set
test_metrics <- model |> evaluate(x_test, y_test, verbose = 0)
cat('Test Loss:', test_metrics['loss'])
cat('Test Accuracy:', test_metrics['accuracy'])
# Generate predictions
prob_preds <- model |> predict(x_test)
class_preds <- ifelse(prob_preds > 0.5, 1, 0)
table(class_preds, y_test)Modelleri Kaydetme ve Yükleme
Derlenmiş ve eğitilmiş bir modeli save_model_tf(model, 'path') (önerilen TF SavedModel biçimi) veya save_model_hdf5(model, 'model.h5') ile kaydedebilirsiniz. load_model_tf() veya load_model_hdf5() ile yeniden yükleyebilirsiniz. Yüklenen model, derleme ayarlarını korur ve hemen tahmin yapabilir veya eğitime devam edebilir.
# Save in TensorFlow SavedModel format (recommended)
save_model_tf(model, '/tmp/my_dense_model')
# Reload
loaded <- load_model_tf('/tmp/my_dense_model')
# Confirm predictions match
new_preds <- loaded |> predict(x_test)
all.equal(prob_preds, new_preds) # TRUEHızlı Kontrol
5 sınıflı bir sınıflandırma problemi için sıralı bir model oluştururken çıktı katmanında hangi etkinleştirme işlevi ve kaç birim kullanılmalıdır?
Sıralı Modellere Genel Bakış
Sıralı Modeller Oluşturma konusundan temel çıkarımlar:
keras_model_sequential(), katmanlardan oluşan doğrusal bir yığın oluşturur.layer_dense(units, activation), temel tam bağlı katmandır.- Çıktı etkinleştirmesi:
'sigmoid'(ikili),'softmax'(çok sınıflı),'linear'(regresyon). compile(loss, optimizer, metrics), öğrenme sürecini yapılandırır.fit(model, x, y, epochs, batch_size, validation_split), modeli eğitir.- Düzenlileştirme:
layer_dropout(rate),regularizer_l2(),layer_batch_normalization(). save_model_tf()ile kaydedin;load_model_tf()ile yükleyin.
library(keras)
model <- keras_model_sequential(input_shape = c(30)) |>
layer_dense(128, activation = 'relu') |>
layer_dropout(0.4) |>
layer_dense(64, activation = 'relu') |>
layer_dropout(0.3) |>
layer_dense(1, activation = 'sigmoid')
model |> compile(
optimizer = optimizer_adam(0.001),
loss = 'binary_crossentropy',
metrics = 'accuracy'
)
history <- model |> fit(
x_train, y_train,
epochs = 30, batch_size = 64,
validation_split = 0.2, verbose = 0
)
plot(history)Sıkça Sorulan Sorular
“Sıralı Modeller Oluşturma” dersi ücretsiz mi?
Evet — “Sıralı Modeller Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.
“Sıralı Modeller Oluşturma” dersinde ne öğreneceğim?
Dense katmanlarını üst üste ekleyin, aktivasyonları uygulayın ve kayıp işlevi ile iyileştiriciyi kullanarak derleyin. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
R Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Sıralı Modeller Oluşturma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu R Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- R'de Keras ve TensorFlow Kurulumu
- Sıralı Modeller Oluşturma
- Evrişimli Sinir Ağlarının Temelleri
- Eğitim, Doğrulama ve Aşırı Öğrenmeyi Önleme