THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Ευφυή Συστήματα Ρομπότ => Topic started by: poly1 on February 11, 2006, 12:46:42 pm



Title: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 12:46:42 pm
Στη δεύτερη άσκηση (την οποία τώρα ξεκινάω) αν έχει ασχοληθεί κάποιος ας βοηθήσει.

Συγκεκριμένα δοκιμάζω τους regressive και momentum του PART_B
(το momentum μου βγάζει καλύτερα αποτελέσματα.. is that true?)

Ποιές είναι οι recommended ποσότητες για τα frequency , epochs , learning rate ?

Ποιός είναι ο πιο λειτουργικός αριθμός εισόδων ? (με 2 μου δουλεύει καλούτσικα..με 5 χάλια)

μμμ.αυτά προς το παρόν..αν γνωρίζει κάποιος ας απαντήσει παρακαλώ


 ^caffine^


Title: Re: Task2006 _ Exercise 2... :)
Post by: TT_PTOLEMAIDA on February 11, 2006, 12:53:54 pm
Ξέρω πολύ καλά GW BASIC.

Μπορώ να σε βοηθήσω σε κάτι κοπελιά...? ::)


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 12:56:08 pm
Ξέρω πολύ καλά GW BASIC.

Μπορώ να σε βοηθήσω σε κάτι κοπελιά...? ::)

τι λεμε τωρα MW!

can u help or not..δεν εχεις ασχοληθει με την εργασια so u r off topic.


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 12:56:48 pm
Εγώ δοκιμάζω προς το παρόν τις έτοιμες συναρτήσεις που μας δίνει για την πρόβλεψη της λογιστικής χρονοσειράς που είναι χαοτική (labb2bp κλπ).
Έτσι όπως μας τις έχουν δώσει το sse δεν μειώνεται ποτέ, έτσι δεν είναι?

NINJA είχα ρωτήσει τον Τουλκερίδη και μου είχε πει ότι επειδή η συνάρτηση είναι χαοτική πρέπει να πάρουμε 10 ή και περισσότερες προηγούμενες τιμές και όχι μόνο 2.

Τώρα την παλεύω, αν βγάλω κάτι θα το δημοσιεύσω...


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 12:58:34 pm
Ωχ το χαοτικό μοντέλο λες ε??

μμ θα το δοκιμασω κ γω τοτε..

καταρα  :-\


Title: Απ: Task2006 _ Exercise 2... :)
Post by: amatakos on February 11, 2006, 13:15:49 pm
Την έχουμε δουλέψει την άσκηση αυτή με διάφορες παραμέτρους και για μεγάλο αριθμό εισόδων δίνει καλά αποτελέσματα. Δοκιμές για 10 ή και 20 προηγούμενες τιμές. Χρειάζεται και σχετικά μεγάλος αριθμός νευρώνων ανα στρώμα για να δώσει καλό αποτέλεσμα (8 ή και παραπάνω).

NINJA σε εμάς η traingd δούλεψε καλά ενώ η momentum όχι.

Ενδεικτικά καλά αποτελέσματα είχαμε πάρει με τις εξής παραμέτρους:
8 Στρώματα
20 Νευρώνες ανα στρώμα
Εκπαίδευση με back propagation (traingd)
Συνάρτηση απόφασης tansig
learnig rate 0.5
4000 εποχές

Παρακάτω δίνω και το διάγραμμα από πρόβλεψη 40 όρων.

Εσείς ποιές συναρτήσεις χρησιμοποιείτε; Αυτές από τις ασκήσεις των εργαστηρίων ή και τις πιο καινούριες που έχει το Matlab;


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 13:19:51 pm
Αυτές των εργαστηρίων δε πρέπει να χρησιμοποιήσουμε ???  :(

Δεν έχουμε κατασταλάξει ακόμα σε κάποια συγκεκριμένη συνάρτηση όπως καταλαβαίνεις..τα δοκιμάζουμε όλα..

Ευχαριστούμε για την πολύτιμη γνώμη σου  :)


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Netgull on February 11, 2006, 13:24:14 pm
Δεν ξέρω αν είναι χαοτική η συνάρτηση, πάντως με 10 προηγούμενες εισόδους το δίκτυο σίγουρα εκπαιδεύεται...χαοτικά, δηλαδή δεν εκπαιδεύεται.

Τα καλύτερα αποτελέσματα τα πήρα με momentum, με καμιά 10-15 νευρώνια στο κρυφό στρώμα και 2-3 προηγούμενες εισόδους. Momentum μεταξύ 0.6 και 0.9, και learning rate μεταξύ 0.005 και 0.01. Πετυχαίνει ένα σφάλμα τις τάξης 0.001 σε 5000 επαναλήψεις.

Με δυο λόγια φαίνεται να δουλεύουν όλα πολύ καλά. Το μόνο που σκέφτομαι τώρα είναι μήπως θέλει 10 εισόδους και ας βγάζει μεγαλύτερο σφάλμα, για να μην έχουμε καμιά υπερεκπαίδευση...

Edit: Των εργαστηρίων πιστεύω και γω... Αφού έγινε ολόκληρη φασαριά για το 7!
Edit 2: 8 κρυφά στρώματα;;!;!


Title: Απ: Task2006 _ Exercise 2... :)
Post by: amatakos on February 11, 2006, 13:27:14 pm
Αυτές των εργαστηρίων δε πρέπει να χρησιμοποιήσουμε ???  :(

Στην περιγραφή που έδωσαν λέει οτί μπορούμε να χρησιμοποιήσουμε ό,τι υπάρχει στο φάκελο nnet του matlab 6.5 . Εκεί έχει πιο καινούριες συναρτήσεις και ο κώδικας είναι πολύ πιο εύκολος. Έστειλα mail στον Τουλκερίδη γι'αυτό. Αν απαντήσει θα ενημερώσω.


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 13:32:42 pm
ναι ναι θα κανω αυτο που λεει ο Νετγκαλ!!! αφου με αυτο ξεκινησα!

Ζητωωωωωωωωωωωωωωωω ^wav^

και μενα 8 στρώματα μου φαίνονται πάρα πολλά!!!!! :(


Με δυο λόγια φαίνεται να δουλεύουν όλα πολύ καλά. Το μόνο που σκέφτομαι τώρα είναι μήπως θέλει 10 εισόδους και ας βγάζει μεγαλύτερο σφάλμα, για να μην έχουμε καμιά υπερεκπαίδευση...


Ωχ λές...ίσως όντως χρεεάζεται!



Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 13:58:37 pm
Λοιπόν εγώ έβγαλα καλά αποτελέσματα με τις εξής παραμέτρους
Είσοδοι 15
Κρυφά στρώματα 10
err_goal=0.5
lr =0.5
Προσεγγίζει το επιθυμητό σφάλμα σε 5125 εποχές.

Το πρόβλημα είναι ότι τα αποτελέσματα είναι λίγο σκ@τ@. voila
Target    Actual
    Output    Output
 
   -0.0467   -0.1705
    0.3760    0.2396
   -0.3736   -0.2703
   -0.2386   -0.1847
   -0.0779   -0.0014
    0.2001    0.1574
    0.0898    0.0329
    0.3224    0.3232
   -0.1583   -0.1397
    0.2799    0.1864
   -0.1130   -0.1760
    0.3244    0.1508
   -0.2250   -0.1487
    0.1611    0.0355
    0.1114   -0.0664
    0.2905    0.2726
   -0.0603   -0.1232
    0.3702    0.2765
   -0.3575   -0.3050
   -0.1855   -0.1914
    0.0321    0.0994
    0.2395    0.2333
    0.0419    0.1208
    0.3637    0.3709
   -0.3046   -0.2741
   -0.0239    0.0654
    0.2059    0.1367
    0.0949    0.1202
    0.3198    0.2464
   -0.1487   -0.1279
    0.2927    0.3623
   -0.1445   -0.1997
    0.2903    0.3306
   -0.1367   -0.1973
    0.2999    0.1622
   -0.1607   -0.2455
    0.2695    0.1578
   -0.0870   -0.1700
    0.3455    0.2059
   -0.2831   -0.2619
    0.0296    0.0201
    0.2110    0.0849
    0.1012    0.0419
    0.3155    0.2626
   -0.1343   -0.1024
    0.3105    0.3000
   -0.1902   -0.3022
    0.2243    0.1736
    0.0082   -0.1332
    0.3670    0.2341
   -0.3260   -0.2286
   -0.0857    0.0600
    0.1679    0.1999
    0.1427    0.1114
    0.2554    0.2279
    0.0385   -0.0381
    0.3697    0.2900
   -0.3263   -0.3289
   -0.0858   -0.0105
    0.1678    0.1465
    0.1429    0.1711
    0.2550    0.2403
    0.0394    0.0463
    0.3693    0.3185
   -0.3245   -0.2903
   -0.0806   -0.1176
    0.1724    0.0540
    0.1372    0.1764
    0.2639    0.2083
    0.0162    0.0279
    0.3779    0.3414
   -0.3617   -0.3063
   -0.1972   -0.1190
    0.0099    0.1414
    0.2404    0.2198
    0.0334    0.0870
    0.3669    0.3881
   -0.3183   -0.2812
   -0.0626    0.0401
    0.1862    0.1022
    0.1194    0.1767
    0.2894    0.2362
   -0.0549   -0.0863
    0.3727    0.3224
   -0.3648   -0.2844

Netgull, νομίζω ότι χρειάζονται οι πολλές είσοδοι. Χωρίς να είμαι σίγουρη!


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 15:17:48 pm
Λοιπόν ,  για το απλό (όχι χαοτικό) momentum με :

3500 εποχές , 0.05 error goal ,  0.005 learning rate κτλ..

10 εισοδους κ 10 στρωματα για το testing βγαζω
   
    Target    Actual
    Output    Output
 
    0.1862    0.1921
    0.1194    0.1049
    0.2894    0.2700
   -0.0549   -0.0729
    0.3727    0.3861
   -0.3648   -0.3347

καλο .. σχετικα

απο κει κ περα δε ξερω τι πρεπει να κανω για να βγαλω τις τιμες για t = 101 , 105 ktl

 :'(


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 16:44:06 pm
Ναι αυτό κι εγώ δεν έχω καταλάβει πως γίνεται. Αλλά προς το παρόν παλεύω να μειώσω το σφάλμα.
Με μια μιρκή μετατροπή στα παραπάνω το ελάχιστο σφάλμα που "πιάνω" είναι 0.1.
Ξέρετε περίπου πόσο είναι το αποδεκτό?
Επίσης η πρόσθεση επιπλέον κρυμμένου επιπέδου καταστρέφει και δεν βελτιώνει τα αποτελέσματα.


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Netgull on February 11, 2006, 16:45:32 pm
Με momentum 0.6, learning rate 0.01, ένα κρυφό στρώμα με 10 νευρώνες και 2 προηγούμενες εισόδους και με τα πρώτα 75 δείγματα για εκπαίδευση πετυχαίνω σφάλμα 0.001 σε 3000 επαναλήψεις.

Γιατί να κάνουμε κάτι πιο πολύπλοκο;

Για τις επιπλέον τιμές προφανώς θα προβλέψεις την y(101) από τις y(100),y(99),y(98),y(97) κλπ κλπ, στη συνέχεια την y(102) από την y(101) που πρόβλεψες πριν και τις y(100),y(99),y(98) Κλπ κλπ κ.ο.κ.


Title: Re: Task2006 _ Exercise 2... :)
Post by: Turambar on February 11, 2006, 17:00:01 pm
Πόσο σημαντικός είναι ο μειωμένος αριθμός επαναλήψεων;

και κάτι άλλο... αν ξεκινάς με έτοιμα βάρη, αντί για random, είναι λογικό ή ηλίθιο;
(άρχισαν τα ευφυή όργανα γουστάρω)


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 18:12:31 pm
Για τις επιπλέον τιμές προφανώς θα προβλέψεις την y(101) από τις y(100),y(99),y(98),y(97) κλπ κλπ, στη συνέχεια την y(102) από την y(101) που πρόβλεψες πριν και τις y(100),y(99),y(98) Κλπ κλπ κ.ο.κ.

Ναι οκ αυτό το πράγμα δε καταλαβαίνω πώς πρέπει να το κάνω..δήλαδη την πρόβλεψη

Πόσες προηγούμενες τιμές θα χρσηιμοποιήσω και που θα της εισάγω...

Τέσπα

 :-[


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 19:00:01 pm
Πράγματι με το momentum βγαίνει πολύ εύκολα.
Όλο το πρωι προσπαθούσα με regression και δεν κατάφερα να μειώσω το σφάλμα κάτω από 0.1.
ΝΙΝJA αυτό πρέπει να γίνεται με βάση τα βάρη που έχεις υπολογίσει. Δεν το δοκίμασα ακόμη.
Αν το καταφέρω, θα επανέλθω... ;)


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 19:13:49 pm
Από ότι κατάλαβα εγώ για να βρούμε τις τιμές των επόμενων χρονικών στιγμών κάνουμε το εξής:
1. Ο πίνακας z=load('yvalues.dat') περιέχει τις 100 πρώτες τιμές που μας δίνονται.
Ο πίνακας ΝWo που προκύπτει από την εκπαίδευση περιέχει τα βάρη για αυτές τις τιμές.
2.Επιλέγουμε να προβλέψουμε για παράδειγμα με βάση τα 5 παρελθόντα δείγματα. Έτσι για την χρονική στιγμή 101 θα έχουμε
z(101)= [z(96)*NWo(96)+z(97)*NWo(97)+...+z(100)*NWo(100)]/5
Συμφωνείτε με αυτό?


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 19:43:14 pm
Από ότι κατάλαβα εγώ για να βρούμε τις τιμές των επόμενων χρονικών στιγμών κάνουμε το εξής:
1. Ο πίνακας z=load('yvalues.dat') περιέχει τις 100 πρώτες τιμές που μας δίνονται.
Ο πίνακας ΝWo που προκύπτει από την εκπαίδευση περιέχει τα βάρη για αυτές τις τιμές.
2.Επιλέγουμε να προβλέψουμε για παράδειγμα με βάση τα 5 παρελθόντα δείγματα. Έτσι για την χρονική στιγμή 101 θα έχουμε
z(101)= [z(96)*NWo(96)+z(97)*NWo(97)+...+z(100)*NWo(100)]/5
Συμφωνείτε με αυτό?

ναι κ γω έτσι το σκέφτηκα.


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 19:53:35 pm
Αλλά από την άλλη αν είναι έτσι, για να βρούμε το z(102) χρειαζόμαστε το βάρος του z(101) το οποίο δεν έχουμε.
Καμιά άλλη ιδέα???


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Netgull on February 11, 2006, 19:57:24 pm
Το με πόσα παρελθόντα σημεία θα προβλέψεις το επιλέγεις από την αρχή και είναι ο αριθμός των εισόδων του νευρωνικού. Έστω ότι επιλέγεις 3 σημεία, οπότε το νευρωνικό θα παίρνει τις 3 προηγούμενες εξόδους και θα σου βγάζει την επόμενη. Έστω τώρα ότι το εκπαιδεύεις με τα πρώτα 100 δείγματα. Από αυτή την εκπαίδευση θα καταλήξεις στους πίνακες βαρών έστω NWh και NWo.

Αφού τελείωσε πλέον η εκπαίδευση αυτοί οι πίκανες είναι σταθεροί. Δεν υπάρχει NWh(96) και NWo(100). Υπάρχει ένα νευρωνικό δίκτυο με βάρη NWh και NWo, το οποίο παίρνει 3 εισόδους.

Βάζοντας λοιπόν σαν είσοδο τις τιμές y(98),y(99) και y(100) θα πάρεις στην έξοδο την πρόβλεψη για την y(101). Από το νευρωνικό με βάρη NWh και NWo. Ούτε μέσοι όροι ούτε τπτ. Μετά θα βάλεις σαν εισόδους τα y(99),y(100) και y(101) (όπου y(101) αυτή που υπολόγισες πριν) και θα πάρεις στην έξοδο την y(102) κοκ.


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 20:04:41 pm
Ναι αλλά σε ποια συνάρτηση θα δώσω τις τρεις εισόδους? Στην feval?


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Netgull on February 11, 2006, 20:08:10 pm
Ναι.
Πώς υπολογίζει  τα Actual Outputs;
Ε έτσι ακριβως.

Ζ=feval(Fh,NWh*in,NBh)
out=feval(Fo,NWo*Z,NBo)


Title: Απ: Task2006 _ Exercise 2... :)
Post by: poly1 on February 11, 2006, 20:12:45 pm
ναι μου βγηκε! γιουπι!!!

σευχαριστουμε Νετγκαλ!!!!

σευχαριστουμε πολυ!  ^notworthy^

 :)


Title: Απ: Task2006 _ Exercise 2... :)
Post by: Cyberkat on February 11, 2006, 20:17:34 pm
Ναι παίδες thanks σε όλους για τις συμβουλές! :D