Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 531

 
elibrarius :

R uzmanları için soru.

Mutlak değerlere sahip bir matris, softmax ile bir sınıf matrisine nasıl dönüştürülür?

apply(matr, 1 , function (rowvec) { result <- rep( 0 , length(rowvec)); result[which.max(rowvec)] <- 1 ; result } )

ve matrisin boyutuna bağlı olarak gerektiği gibi devrik

 
Maksim Dmitrievski :

ah, peki, henüz kütüphane yok, eğer .. onları kendin yazmazsan)


Onlara yazmayı düşünüyorum, sinir ağından borç isteyin, işe yararsa % ile iade edeceğim :)

bu arada, zaten orijinaline biraz daha yakınlar, en azından arabulucular eklendi, ama yine de AI değil. anladığım kadarıyla yeni sinapslar kendiliğinden oluşmaz ve yeniden kurulmaz

 
Maksim Dmitrievski :

Onlara yazmayı düşünüyorum, sinir ağından borç isteyin, işe yararsa % ile iade edeceğim :)

Basit MLP'ler ile çözümlerde bir kayma olmazsa, karmaşık NN'lerde de bir kayma olmayacağını düşünüyorum. Ek olarak, MLP'yi daha karmaşık bir NN ile değiştirsek bile, sonucun bir şekilde iyileşeceği kesin olmaktan uzaktır. Çünkü farklı bir araç, farklı bir tedaviyi, sorunun farklı bir formülasyonunu gerektirir.

Şimdilik, basit MLP'ye ve eski, BP'ye, öğrenme algoritmalarına sadık kalacağım ve sonra göreceğiz - gerçek bir ihtiyaç ortaya çıkarsa.

 
anonim :

ve matrisin boyutuna bağlı olarak gerektiği gibi devrik

Vay! Çok daha kısa! Teşekkür ederim!

Biraz yeniden yaptım, sütun ve satır isimleri kalsın diye eskisinden kopyalayarak yeni bir matris oluşturuyorum. Bu nedenle, daha fazla kullanılmaları durumunda daha evrensel olacaktır. Ve hemen matrisi çeviriyorum. Anladığım kadarıyla, application(x,1,f) her zaman! matrisi çevirir, çünkü verileri satır satır işler ve sütunlar halinde birleştirir.

get_softmax <- function(m){
    t(apply(m, 1, function (row) {r <- row;  r [1:length(row)] <-0 ; r[which.max(row)] <- 1;  r } ))
}

 
Yuri Asaulenko :

Basit MLP'ler ile çözümlerde bir kayma olmazsa, karmaşık NN'lerde de bir kayma olmayacağını düşünüyorum. Ek olarak, MLP'yi daha karmaşık bir NN ile değiştirsek bile, sonucun bir şekilde iyileşeceği kesin olmaktan uzaktır. Çünkü farklı bir araç, farklı bir tedaviyi, sorunun farklı bir formülasyonunu gerektirir.

Şimdilik, basit MLP'ye ve eski, BP'ye, öğrenme algoritmalarına sadık kalacağım ve sonra göreceğiz - gerçek bir ihtiyaç ortaya çıkarsa.


evet, kendim ormanları büküp döndürürken, her şeyin hızlı bir şekilde hesaplanmasını seviyorum, birçok stratejiden geçebilirsiniz

daha verimli bir analog olsaydı ona geçerdim.. ve evet %90 veri madenciliği %10 model seçimi

 
Maksim Dmitrievski :

evet, kendim ormanları büküp döndürürken, her şeyin hızlı bir şekilde hesaplanmasını seviyorum, birçok stratejiden geçebilirsiniz

daha verimli bir analog olsaydı ona geçerdim.. ve evet %90 veri madenciliği %10 model seçimi

Performansa gelince, eğitilmiş 6 katmanlı bir MLP'nin (~60 nöron) reaksiyon süresi 0,005 saniyedir. Neredeyse her şey için oldukça yeterli.

Eğitim süresine gelince ve bu uzun bir süre, bu hiç rahatsız etmiyor çünkü. sadece sonraki her deneyi düşünmek çok daha fazla zaman alır - bir hafta, hatta daha fazla.

Ve birkaç ayda bir yeniden eğitim, diyelim ki, birkaç gün geçireceğiz - bence sorun değil. Sistemi mantık üzerinde yeniden çalışmak çok daha uzun sürer. Evet ve sadece standart eğitim çalışmıyor - dönemler arasında tef ile uzun danslara ihtiyacınız var. Ve standart eğitim (danssız)) mükemmel sonuçlar verir - ancak yalnızca eğitim setinde.)

 

R ile ilgili başka bir sorun.

Bir bilgisayarda her şey yolunda, diğerinde kodun doğruluğu için bazı artan gereksinimler var.

örneğin

danch.unitFunction = linearUnit - Rterm.exe'nin çökmesine neden oldu

olarak değiştirildi

darch.unitFunction = " linearUnit"

bu nokta bir sonraki hataya kadar geçmeye başladı.

ayrıca library(darch) öğesini require(darch) olarak değiştirmek zorunda kaldı

Şimdi eğitimin kendisi bir serseri.

R_NN <- darch(
dart=NULL,
x = MatrixLearnX ,
y = MatrixLearnY ,
paramsList = params
)

birçok seçeneği denedim, Rterm.exe her zaman çöküyor

R'nin bir çeşit hata oranı kontrolü var mı? Belki ikinci bilgisayarda, her uyarıda bir durma meydana geldiğinde geliştirme için bir hata düzeyim vardı?

Her iki bilgisayarda da R'yi varsayılan ayarlarla ayarladım, tüm paketleri kurdum.
Nasıl düzeltilir?

 

Darch kitaplığı kurulu değilse, library(darch) bir hataya neden olur ve kod yürütme durur ve request(darch) sadece bir uyarıya neden olur ve kod çalışmaya devam eder, ancak kitaplık kurulu olmadığı için, o zaman işlevleri çağrılamaz.

Yapılması gerekiyor
kitaplığı otomatik olarak yüklemek için install.packages("darch", bağımlılıklar=DOĞRU)

 
Yuri Asaulenko :

Performansa gelince, eğitilmiş 6 katmanlı bir MLP'nin (~60 nöron) reaksiyon süresi 0,005 saniyedir. Neredeyse her şey için oldukça yeterli.

Eğitim süresine gelince ve bu uzun bir süre, bu hiç rahatsız etmiyor çünkü. sadece sonraki her deneyi düşünmek çok daha fazla zaman alır - bir hafta, hatta daha fazla.

Ve birkaç ayda bir yeniden eğitim, diyelim ki, birkaç gün geçiriyoruz - bence bu bir sorun değil. Sistemi mantık üzerinde yeniden çalışmak çok daha uzun sürer. Evet ve sadece standart eğitim çalışmıyor - dönemler arasında tef ile uzun danslara ihtiyacınız var. Ve standart eğitim (danssız)) mükemmel sonuçlar verir - ancak yalnızca eğitim setinde.)


Biraz yanlış bir şey yapıyorum - optimize ediciyi aktif olarak sadece stratejileri, yani özellikleri, TS bloklarının kombinasyonlarını aramak için kullanıyorum, başka bir şey sıralanıyor .. çünkü bazen bazı önemsiz şeylerin dikkate alınmadığı bile oluyor , ancak sistemde yeterli değildi. Ve en az yüz seçeneği sıralamak için hastalıklı bir öğrenme oranına ihtiyacınız var (ve 100 seçenek çok küçük) .. eh, herkesin kendi yaklaşımı var, benimki daha iyi demiyorum. NN'nin kendisinin bir optimize edici olduğunu kesinlikle söyleyebilirsiniz, ancak yine de ilk aşamada seçilebilecek bir dizi hiperparametre vardır.

 
Maksim Dmitrievski :

Biraz yanlış bir şey yapıyorum - optimize ediciyi aktif olarak sadece stratejileri, yani özellikleri, TS bloklarının kombinasyonlarını aramak için kullanıyorum, başka bir şey sıralanıyor .. çünkü bazen bazı önemsiz şeylerin dikkate alınmadığı bile oluyor , ancak sistemde yeterli değildi. Ve en az yüz seçeneği sıralamak için hastalıklı bir öğrenme oranına ihtiyacınız var (ve 100 seçenek çok küçük) .. eh, herkesin kendi yaklaşımı var, benimki daha iyi demiyorum. NN'nin kendisinin bir optimize edici olduğunu kesinlikle söyleyebilirsiniz, ancak yine de ilk aşamada seçilebilecek bir dizi hiperparametre vardır.

Yani yakında madencilik stratejileri için bir madencilik çiftliği kurmanız gerekecek.

Neden: