Derin Öğrenme Modeli Oluşturma

Sinir ağı modelimiz doğrusal bir katman yığınından oluşacaktır. Böyle bir modeli tanımlamak için,Sequential işlev -

model = Sequential()

Giriş Katmanı

Aşağıdaki program ifadesini kullanarak ağımızdaki ilk katman olan giriş katmanını tanımlıyoruz -

model.add(Dense(512, input_shape=(784,)))

Bu, 784 giriş düğümü ile 512 düğüm (nöron) içeren bir katman oluşturur. Bu, aşağıdaki şekilde tasvir edilmiştir -

Tüm giriş düğümlerinin Katman 1'e tam olarak bağlı olduğuna, yani her bir giriş düğümünün Katman 1'in 512 düğümüne bağlı olduğuna dikkat edin.

Ardından, Katman 1 çıktısı için aktivasyon fonksiyonunu eklememiz gerekiyor. Aktivasyonumuz olarak ReLU kullanacağız. Aktivasyon işlevi, aşağıdaki program ifadesi kullanılarak eklenir -

model.add(Activation('relu'))

Ardından, aşağıdaki ifadeyi kullanarak% 20 Bırakma ekliyoruz. Bırakma, modelin aşırı uymasını önlemek için kullanılan bir tekniktir.

model.add(Dropout(0.2))

Bu noktada, girdi katmanımız tamamen tanımlanmıştır. Ardından gizli bir katman ekleyeceğiz.

Gizli Katman

Gizli katmanımız 512 düğümden oluşacaktır. Gizli katmanın girdisi, önceden tanımladığımız girdi katmanımızdan gelir. Önceki durumda olduğu gibi tüm düğümler tamamen bağlıdır. Gizli katmanın çıktısı, son ve çıktı katmanımız olacak olan ağdaki bir sonraki katmana gidecek. Önceki katmanla aynı ReLU etkinleştirmesini ve% 20'lik bir bırakmayı kullanacağız. Bu katmanı ekleme kodu burada verilmiştir -

model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.2))

Bu aşamadaki ağ aşağıdaki gibi görselleştirilebilir -

Ardından, çıkış katmanı olan son katmanı ağımıza ekleyeceğiz. Burada kullanmış olduğunuza benzer bir kod kullanarak istediğiniz sayıda gizli katman ekleyebileceğinizi unutmayın. Daha fazla katman eklemek, ağı eğitim için karmaşık hale getirir; ancak, hepsinde olmasa da çoğu durumda daha iyi sonuçlara kesin bir avantaj sağlar.

Çıktı Katmanı

Verilen görüntüleri 10 farklı basamakta sınıflandırmak istediğimiz için çıktı katmanı sadece 10 düğümden oluşur. Aşağıdaki ifadeyi kullanarak bu katmanı ekliyoruz -

model.add(Dense(10))

Çıkışı 10 farklı birimde sınıflandırmak istediğimiz için softmax aktivasyonunu kullanıyoruz. ReLU durumunda, çıkış ikilidir. Aktivasyonu aşağıdaki ifadeyi kullanarak ekliyoruz -

model.add(Activation('softmax'))

Bu noktada, ağımız aşağıdaki diyagramda gösterildiği gibi görselleştirilebilir -

Bu noktada, ağ modelimiz yazılımda tamamen tanımlanmıştır. Kod hücresini çalıştırın ve hata yoksa, aşağıdaki ekran görüntüsünde gösterildiği gibi ekranda bir onay mesajı alacaksınız -

Daha sonra modeli derlememiz gerekiyor.