Lei Feng Net AI Araştırma Enstitüsü Basın : Tekrarlayan Sinir Ağı (RNN), birçok doğal dil işlemede büyük bir başarı ve geniş uygulama elde etti. Bununla birlikte, İnternette RNN'ler hakkında çok az sayıda temel giriş vardır Bu makale temel bilgileri, ilkeleri ve RNN'lerin doğal dil işleme görevlerinde nasıl uygulanacağını tanıtmaktadır. Makalenin içeriği, Leifeng Ağı AI Araştırma Enstitüsü tarafından paylaşılan çevrimiçi videoya göre düzenlenmiştir.
Ping An Technology'nin yapay zeka laboratuvarından bir algoritma araştırmacısı olan Luo Dongri, Leifeng.com AI Araştırma Enstitüsü'nün son çevrimiçi paylaşım oturumunda, temel yapısı, avantajları ve dezavantajları ve nasıl kullanılacağı dahil olmak üzere RNN'nin temel bilgilerini popüler hale getirdi. LSTM ağı, konuşma tanımayı gerçekleştirir.
Luo Dongri şu anda Ping An Technology'nin yapay zeka laboratuvarında çalışıyor.Baidu ve Dianping'de algoritma araştırmacısı olarak çalıştı; Çin Bilimler Akademisi Enstitüsünden yüksek lisans derecesine sahip. Ana araştırma yönü konuşma tanıma ve doğal dil işlemedir.
Paylaşım konusu: Tekrarlayan Sinir Ağı (RNN) temelleri
ana içerik:
Sıradan RNN yapısı
Sıradan RNN'nin eksiklikleri
LSTM ünitesi
GRU birimi
LSTM kullanarak konuşma tanıma örnekleri
RNN ve CNN arasındaki fark
Sıradan evrişimli sinir ağları (CNN), "statik" verilerle ilgilenir ve örnek veriler bağımsızdır ve hiçbir ilişkisi yoktur.
Tekrarlayan Sinir Ağı (RNN) tarafından işlenen veriler "serileştirilmiş" verilerdir. Eğitim örnekleri öncesi ve sonrası ilişkilidir, yani bir dizinin mevcut çıktısı da önceki çıktıyla ilgilidir. Örneğin, konuşma tanımada, bir konuşma parçasının bir zaman dizisi vardır ve söylenenden önce ve sonra bir ilişki vardır.
Özet: Uzamsal veya yerel olarak ilişkili görüntü verileri, evrişimli sinir ağı işleme için uygundur ve zaman serileriyle ilgili veriler, döngüsel zaman ağı işlemesi için uygundur. Ancak şu anda, evrişimli sinir ağları konuşma problemleri veya doğal konuşmayı anlama problemleriyle başa çıkmak için de kullanılmaktadır.Aslında, evrişimli sinir ağlarının hesaplama yöntemleri de burada kullanılmaktadır.
RNN'nin temel yapısı ve yapı genişletme şeması:
Sıradan RNN'nin eksiklikleri
İlki, kabaca üç kategoriye ayrılabilen sinir ağındaki hesaplamadır: işlev bileşimi, işlev ekleme ve ağırlıklı hesaplama.
Hesaplama sürecinde, Sigmoid aktivasyon fonksiyonu gibi aktivasyon fonksiyonları sıklıkla kullanılır. İleri yayılma sürecinde, artık değer bir Sigmoid işlevinden her geçtiğinde bir Sigmoid işlevinin türev değeriyle çarpılmalıdır ve artık değer en az 0,25 katına düşürülür. Sinir ağının her bir ek katmanı için, artık ileri aktarıldığında, en az 3/4 oranında azalacaktır. Çok fazla katman varsa, kalıntılar önceki katmandan önce 0 olur ve bu da önceki katman ağının parametrelerinin güncellenememesine neden olur, bu da gradyanın kaybolmasıdır.
LSTM birimi ile sıradan RNN birimi arasındaki fark
En büyük fark, "hücre durumu" adı verilen bir kanalın tüm zaman serileri boyunca çalışmasıdır.
"Kapılar" adı verilen özenle tasarlanmış yapılar aracılığıyla hücrenin durumuna bilgi ekleme veya çıkarma yeteneği.
"Kapıyı unut"
"Giriş geçidi" nin açılması ve kapanması aynı zamanda önceki zaman noktasındaki akım girişi ve çıkışı tarafından belirlenir.
"Çıktı geçidi" ne kadar çıktıyı kontrol eder ve nihayetinde yalnızca çıktıyı belirleyen bölüm çıkacaktır.
Tüm formüllerin özeti:
Gözetleme deliği LSTM birimi ekle
Birkaç "geçidin" girdi verilerinin, normal giriş verilerine ve önceki anın çıktısına ek olarak "hücre durumu" girişini kabul etmesine izin verin.
GRU birimi
"Unutma geçidi" ve "girişleri" tek bir "güncelleme geçidinde" birleştirirken, aynı zamanda hücre durumunu ve gizli durumu karıştıran çeşitli varyantlardan biridir.
Daha sonra, basit bir konuşma tanıma örneği tanıtmak için bir deney yapmak için RNN'yi kullanacağım:
LSTM + CTC hakkında arka plan bilgisi
2015 yılında, Baidu'nun sinir ağlarını kullanan halka açık LSTM + CTC modeli, konuşma tanımanın hata oranını büyük ölçüde düşürdü. Bu teknolojiyi sessiz bir ortamda kullanan standart Mandarin'in tanınma oranı% 97'ye yakındır.
CTC, Connectionist Temporal Classification'ın kısaltmasıdır. Ayrıntılı kağıt girişi için lütfen "Connectionist Temporal Classification: Labeling Unsegmented Sequence Data with Recurrent Neural Networks" belgesine bakın
CTC'nin hesaplanması aslında kayıp değerini hesaplama sürecidir.Diğer kayıp fonksiyonları gibi, hesaplama sonucu da ağın çıktı değerinin gerçek değerden ne kadar farklı olduğunu değerlendirmektir.
Ses dalga formunun şematik diyagramı
Başlamadan önce, orijinal ses dalgaları üzerinde veri işlemeyi gerçekleştirmeniz gerekir.Giriş verileri, akustik özelliklerin çıkarıldığı verilerdir.Örnek olarak, 25 ms'lik bir çerçeve uzunluğuna ve 10ms'lik bir çerçeve kaydırmaya sahip bir çerçeveyi ele alırsak, bir saniyelik ses verisi yaklaşık 100 çerçeve veriye sahip olacaktır. .
Özellikleri ayıklamak için MFCC'yi kullanarak, varsayılan olarak, bir sonraki konuşma verisi çerçevesi 13 özellik değerini çıkaracaktır, böylece yaklaşık 100 * 13 özellik değeri bir saniyede çıkarılacaktır. Matris gösterimi, 100 satır ve 13 sütunlu bir matristir.
Ses verilerinin özelliklerini çıkardıktan sonra, aslında görüntü verileriyle hemen hemen aynıdır. Sadece görüntü verisi, işlenmek üzere tüm matrisi bir bütün olarak sinir ağına giriyor ve serileştirilmiş veriler, işlenmek üzere ağa gönderilen veri çerçevesi çerçeve.
İngilizce eğitim cümlesiyse, LSTM'ye girdinin 100 * 13 veri olduğunu ve telaffuz faktörlerinin sayısının 26 (26 harf) olduğunu ve LSTM işlemesinden sonra CTC'ye veri girişinin 100 * 28 olması gerektiğini varsayalım. Matrisin şekli (28 = 26 + 2). 100 orijinal dizinin uzunluğu, yani kaç veri çerçevesi olduğunda, 28 bu veri çerçevesinin 28 kategoride ilgili olasılığını temsil eder. 28 kategori arasından 26'sı telaffuz faktörleri ve kalan ikisi boş ve etiketsizdir.
Temel ağ organizasyonu
Orijinal wav dosyası, akustik özellik çıkarımından sonra N * 13 olur; burada N, bu veri parçasının ne kadar uzun olduğunu ve 13, her veri çerçevesinin sahip olduğu özellik değeridir. N sabit değil. Ardından, N * 13 matrisini LSTM ağına girin. Bu, iki katmanlı iki yönlü bir LSTM ağını içerir. 40 gizli düğüm vardır. LSTM ağından sonra, tek yönlü ise, çıktı 40 boyut olur ve iki yol değişir 80 boyuta. Tam bağlantıdan sonra bu özellik değerleri sınıflandırılır ve ardından her bir sınıflandırmanın olasılığı softmax ile hesaplanır. Sonra CDC'yi takip edin ve ardından doğru ses dizisi dizisini bağlayın.
Gerçek konuşma tanıma ortamı çok daha karmaşıktır. Deneyin gerektirdiği şey, standart Mandarin ve sessiz ve gürültüsüz bir ortamdır.
Kod açıklamasıyla ilgileniyorsanız, bağlantıdaki kodu kopyalayabilirsiniz: https://github.com/thewintersun/tensorflowbook/tree/master/Chapter6
Sonuçlar aşağıdaki gibidir:
Geliştirme içeriğiyle ilgileniyorsanız, lütfen Leifeng.com: AI Research Society'nin resmi hesabını takip edin.