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

 
Evgeny Dyuka :
1. Her şey doğru, tüm seçenekleri gözden geçirmeniz gerekiyor. Sorun şu ki, çok emek yoğun.
2. Denedim, daha da kötüleşti.
3. Ve hangilerini kullandığını nasıl öğrenebilirim ??? Bu bir kara kutu, bu yüzden her şeyi gönderiyorum.

MT test cihazındaki optimize edici gibi hiper parametre optimize ediciler vardır. Bir günlüğüne koyar ve kendini seçer.

O da hesap yapana kadar beklemekten çekindi ama bu Millet Meclisinin bir özelliğidir, kesin bilim yoktur, sadece tecrübe (başkasının, kendinin) ve sezgi vardır. Sonuçları buradan veya PM'den paylaşabilirsiniz.

Daha önce uygulama için bir örnek yayınlamıştım. Buradaki amaç, ağı sinyal satın alacak şekilde eğitmektir. Ardından girişi çeviriyoruz ve ağ satış sinyalleri vermelidir. Bu ikili bir sınıflandırmadır, bir sinyal var veya yok. Ağa satın almayı ve oturmayı tanımayı öğretmek mümkündü, ancak IMHO, bu daha kötü. Çıkış aralığı 0-1 ile sınırlıdır, eğer sadece bir alım arıyorsak, aralık 2 sınıfa ayrılır (alış var, alım yok) ve eşik en az 0,8 kaydırılabilir. Buy sit'leri ararsanız, 0-1 3 bölüme ayrılır: satın al, otur, arada bir şey. IMHO, sadece bir satın alma sinyali arayışı: 2 kat daha fazla eğitim örneği (girişi çevirin), daha küçük ağ boyutu (görev daha basit, daha az nörona ihtiyaç var), daha az eğitim süresi, bir çözüm bulmak daha kolay (sadece düşünün 1 sınıf), ancak bu sadece teoridir.

Ağın kendisinin işaretleri arayacağını, fiyatı, istenen sinyalleri vereceğini ve her şeyi kendi başına yapacağına dair bir fikrim var. lstm ile başladım, ideal gibi görünüyor ama henüz bir şeyler çok iyi değil. Normal ağları denemek istiyorum, gitmezse sonra ne olacağını düşünürüm. CNN'ler bir şekilde hemorajiktir, katmanların ve çekirdeklerin konfigürasyonunu seçerek işkence görürsünüz. Dalgacıkları normal bir ağa göndermek muhtemelen daha kolay olacaktır. Ve bu işe yaramazsa, girdi özelliklerinin seçimiyle daha çok çalışmanız gerekecek, ancak o zaman soru şu ki, ancak bu gerekli, “klasik” sistemi daha net, daha güvenilir, daha ekonomik ve daha kolay hale getirmek daha kolay. test etmek daha kolay.

Ve sonuçları nasıl analiz edersiniz, sadece sayılara bakın? Bu kodu kullanıyor musunuz?

plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])

2 grafik oluşturulur, trende bir hata ve test, ağın ne eksik olduğunu ve hangi yönde hareket edeceğini anlamak için kullanılabilir.

 
Rorschach :

O da hesap yapana kadar beklemekten çekindi ama bu Millet Meclisinin bir özelliğidir, kesin bilim yoktur, sadece tecrübe (başkasının, kendinin) ve sezgi vardır. Sonuçları buradan veya PM'den paylaşabilirsiniz.

Resimlerden mi bahsediyoruz yoksa pazardan mı daha kolay.

Ve sonuçları nasıl analiz edersiniz, sadece sayılara bakın? Bu kodu kullanıyor musunuz?

2 grafik oluşturulur, trende bir hata ve test, ağın ne eksik olduğunu ve hangi yönde hareket edeceğini anlamak için kullanılabilir.

Kişinin gerçek bir süreçte olduğu hemen anlaşılır))

İlk başta, kullanarak standart olarak oluşturdum

import matplotlib.pyplot as plt

ama çok az anlam var, büyük gürültü nedeniyle, 10 epok sonra grafik yataya düşüyor.
İkili bir sınıflandırmam var ve her yanıtta ağın güven derecesini analiz ediyorum, yani. örneğin, doğru cevap 0 1'dir ve ağ 0,4 0,6 verir - bu iyi bir cevaptır, ancak daha sık şöyledir: doğru cevap 0 1'dir ve ağ 0,49 0,51 verir
Binlerce cevap olduğu zaman, güven derecesine göre gruplara ayrılabilir ve analiz yapılabilir.


 
Rorschach :

Sonuç olarak, pratikte bu, sinir ağının anlamaya başladığı, ancak şimdiye kadar zayıf bir şekilde M2'de bugünün euro'su.
Mavi - tahmin yukarı, sarı - aşağı.


 
Evgeny Dyuka :

Kişinin gerçek bir süreçte olduğu hemen anlaşılır))

İlk başta, kullanarak standart olarak oluşturdum

ama çok az anlam var, büyük gürültü nedeniyle, 10 epok sonra grafik yataya düşüyor.
İkili bir sınıflandırmam var ve her yanıtta ağın güven derecesini analiz ediyorum, yani. örneğin, doğru cevap 0 1'dir ve ağ 0,4 0,6 verir - bu iyi bir cevaptır, ancak daha sık şöyledir: doğru cevap 0 1'dir ve ağ 0,49 0,51 verir
Binlerce cevap olduğu zaman, güven derecesine göre gruplara ayrılabilir ve analiz yapılabilir.


Kayıp tablolarını yayınlayabilir misiniz? Dönemlere ek olarak, parti boyutu değiştirilmelidir, daha fazla dönem ve parti boyutu ne kadar küçükse, ağırlıklar o kadar çok değişir. +- optimize edicideki lerning_rate değerini bir büyüklük sırasına göre değiştirmek de mantıklıdır. Hangi optimize ediciyi kullanıyorsunuz?

 
Rorschach :

Grafikleri yayınlayabilir misiniz? Dönemlere ek olarak, parti boyutu değiştirilmelidir, daha fazla dönem ve parti boyutu ne kadar küçükse, ağırlıklar o kadar çok değişir. +- optimize edicideki lerning_rate değerini bir büyüklük sırasına göre değiştirmek de mantıklıdır. Hangi optimize ediciyi kullanıyorsunuz?

Grafik için öğreticiyi çalıştırmanız gerekir, o zaman ... ama ilginç bir şey yok - dikey olarak aşağı sonra yatay olarak, ders kitaplarındaki gibi yumuşak bir düşüş yok))
Bach 128, eğer aynı şeyden bahsediyorsak. Her zaman 128 olmalı, bu TPU ile ilgili bir şey, böyle bir gereklilik.
Çağlar da değişmeyi bıraktı, 150'den sonra genellikle hiçbir şey değişmez.
Optimize edici adam, c SGD çalışmıyor.
 
Rorschach :

İşte ızgaram, burada katman sayısını dinamik olarak değiştiriyorum

def make_model(arr_size, lays):
  sgd = SGD(lr= 0.01 , decay= 1 e- 6 , momentum= 0.9 , nesterov=True)

  #res = 2 # количество ответов
  act = "softmax"
  #act = "sigmoid"
  #opt = sgd
  opt = 'adam'

  model = Sequential()

   if lays == 1 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))

   if lays == 2 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.5 *k), activation= 'relu' ))
    model.add(Dropout(dropout))

   if lays == 3 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.5 *k), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.3 *k), activation= 'relu' ))
    model.add(Dropout(dropout))

   if lays == 4 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.7 *k), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.5 *k), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.3 *k), activation= 'relu' ))
    model.add(Dropout(dropout))

  #model.add(Dense( int ((arr_size-res)* 0.1 *k), activation= 'relu' ))
  #model.add(Dropout(dropout))

  model.add(Dense(res, activation=act))

   if res== 1 :
    ls= "binary_crossentropy"
   else :
    ls= "categorical_crossentropy"
  model.compile(loss=ls, optimizer=opt, metrics=[ 'accuracy' ])
   return model
 
Evgeny Dyuka'nın fotoğrafı.

İşte ızgaram, burada katman sayısını dinamik olarak değiştiriyorum

Dropout yerine başka bir şey deneyebilir, nöron sayısını azaltabilirsiniz. Ağırlıkların başlatılmasını ve normalleştirilmesini ekleyin. Giriş bir şekilde işlendi mi? Girdi verilerini bir büyüklük sırasına göre çarptıktan sonra sonucum daha iyi oldu, hala durağanlıktan kurtulmanız gerekiyor gibi görünüyor.

 
Rorschach :

Dropout yerine başka bir şey deneyebilir, nöron sayısını azaltabilirsiniz. Ağırlıkların başlatılmasını ve normalleştirilmesini ekleyin. Giriş bir şekilde işlendi mi? Girdi verilerini bir büyüklük sırasına göre çarptıktan sonra sonucum daha iyi oldu, hala durağanlıktan kurtulmanız gerekiyor gibi görünüyor.

Hiçbir paket kesin sonucu vermez. Herhangi bir NN, yalnızca yukarı, aşağı veya bilinmeyen bir olasılık tahmini yayınlayabilir. Fiyat, sinir ağlarına uymaz ve kolayca onlara karşı gelebilir. %65 seçeneği zaten kabul edilebilir.

 
Uladzimir Izerski :

Hiçbir paket kesin sonucu vermez. Herhangi bir NN, yalnızca yukarı, aşağı veya bilinmeyen bir olasılık tahmini yayınlayabilir. Fiyat, sinir ağlarına uymaz ve kolayca onlara karşı gelebilir. %65 seçeneği zaten kabul edilebilir.

burada %56. Mavi olması gerektiği gibi, ağın cevabı kırmızıdır. Yüzdeler hiçbir şey ifade etmez.

burada %48, rakam daha da az, ama en azından bazı hareketler mevcut.


 
Rorschach :

Dropout yerine başka bir şey deneyebilir, nöron sayısını azaltabilirsiniz. Ağırlıkların başlatılmasını ve normalleştirilmesini ekleyin. Giriş bir şekilde işlendi mi? Girdi verilerini bir büyüklük sırasına göre çarptıktan sonra sonucum daha iyi oldu, hala durağanlıktan kurtulmanız gerekiyor gibi görünüyor.

Evet, her şeyi sıralamanız gerekiyor, yoksa hiçbir şey.
Oynamaya çalışın, parametrelerin sonucu nasıl etkilediğinin anlaşılmasını iyi sağlar.
Tensorflow — Neural Network Playground
Tensorflow — Neural Network Playground
  • Daniel Smilkov and Shan Carter
  • playground.tensorflow.org
It’s a technique for building a computer program that learns from data. It is based very loosely on how we think the human brain works. First, a collection of software “neurons” are created and connected together, allowing them to send messages to each other. Next, the network is asked to solve a problem, which it attempts to do over and over...