Σελίδα 1 από 2

Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 12:37
από stamatiou
Τώρα τελευταία, έχω αρχίσει να ψάχνω πηγές για να μάθω για νευρωνικά δίκτυα, αλλά το μόνο που έχω βρει είναι αυτό: http://www.learnartificialneuralnetworks.com/. Αλλά λόγω των αγγλικών μου και του ότι είμαι τελείως καινούργιος στο χώρο, δεν μπορώ να τα κατανοήσω πλήρως. Μήπως έχετε τίποτα άλλες πηγές (είτε αγγλικά είτε ελληνικά); Δεν ξέρω αν παίζει ρόλο αλλά ενδιαφέρομαι για ανάπτυξη σε γλώσσες C ή C++.

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 18:06
από konnn
Νομίζω πως πρέπει να έχεις ήδη κάποιο background στην τεχνητή νοημοσύνη και στα δίκτυα (συγκεκριμένα αλγόριθμους επίλυσης δικτύων όπως αυτός ).

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 18:50
από stamatiou
konnn έγραψε:Νομίζω πως πρέπει να έχεις ήδη κάποιο background στην τεχνητή νοημοσύνη και στα δίκτυα (συγκεκριμένα αλγόριθμους επίλυσης δικτύων όπως αυτός ).

Τι σχέση έχει ο αλγόριθμος του Dijkstra με τα δίκτυα;
EDIT: *Νευρωνικά δίκτυα

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 19:07
από Learner

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 20:12
από stamatiou

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 22:16
από konnn
stamatiou έγραψε:
konnn έγραψε:Νομίζω πως πρέπει να έχεις ήδη κάποιο background στην τεχνητή νοημοσύνη και στα δίκτυα (συγκεκριμένα αλγόριθμους επίλυσης δικτύων όπως αυτός ).

Τι σχέση έχει ο αλγόριθμος του Dijkstra με τα δίκτυα;
EDIT: *Νευρωνικά δίκτυα


:) Δεν είπα πως έχει άμεση σχέση , απλά ένα backround, μια γενικότερη γνώση δικτύων είπα. Εννοείται πως Dijkstra κλπ έχουν σχέση στα φυσικά δίκτυα.

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 22:41
από c7p
Υπάρχει course για τα νευρωνικά, στο https://www.coursera.org/course/neuralnets.
Βέβαια εκτός από αγγλικά, πρέπει να έχεις και καλές γνώσεις μαθηματικών -ανάλυση και γραμμική άλγεβρα- για να τα κατανοήσεις πλήρως, δηλαδή γνώσεις τουλάχιστον πρώτου έτους. Επειδή είναι ένα εξειδικευμένο αντικείμενο, θα βλέπεις σχεδόν παντού μαθηματικά.

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 16 Αύγ 2012, 23:22
από Dimitris
c7p έγραψε:Βέβαια εκτός από αγγλικά, πρέπει να έχεις και καλές γνώσεις μαθηματικών -ανάλυση και γραμμική άλγεβρα- για να τα κατανοήσεις πλήρως, δηλαδή γνώσεις τουλάχιστον πρώτου έτους. Επειδή είναι ένα εξειδικευμένο αντικείμενο, θα βλέπεις σχεδόν παντού μαθηματικά.

Τα μαθηματικά που χρειάζονται για τα νευρωνικά δίκτυα, εκτός ανάλυσης και γραμμικής άλγεβρας που δεν πας πουθενά χωρίς αυτά, περιλαμβάνουν και αριθμητική βελτιστοποίηση (ελαχιστοποίηση εν προκειμένω). Ένα νευρωνικό δίκτυο δεν είναι τίποτε άλλο από μία συνάρτηση με πολλές εισόδους και πολλές εξόδους και στην αρχή άγνωστες παραμέτρους. Τα δεδομένα εκπαίδευσης (training data) χρησιμοποιούνται για να λύσεις το πρόβλημα ελαχιστοποίησης σφάλματος μεταξύ του data output και του υπολογισμένου output από το δίκτυο. Αφού υπολογίσεις τις παραμέτρους του δικτύου κάνεις ουσιαστικά παρεμβολή (interpolation) για τα input που θες να υπολογισεις. To extrapolation (προεκβολή) είναι πάντα at your own risk. To πρόβλημα με τα NN (neural networks) είναι να υπερεκπαιδευτουν, οποτε θα κάνουν τελειο fit κάτι που θα οδηγησει σε ταλαντώσεις στο interpolation. Γι'αυτό χρειάζεται να υπολογιστεί η καμπύλη λάμδα και να επιλέχθουν έτσι οι παράμετροι ώστε να μειωνουν μεν το σφάλμα άλλα όχι σε τετοιο βαθμο που να δημιουργεί προβληματα. Γι'αυτο τα δεδομενα χωρίζονται σε training set & test set. Η καμπύλη λάμδα είναι μια άλλη μορφή της καμπύλης pareto από το multiobjective optimization.

Τώρα ανάλογα με τις συνδέσεις μεταξύ των νευρώνων έχεις και διαφορετική δομή στο δίκτυο, πχ με ή χωρίς ανάδραση. Επίσης οι συναρτήσεις των νευρώνων μπορεί να είναι είτε sigmoid ή radial basis. Ένα άλλο μεγάλο θέμα είναι πόσα layers και πόσους νευρώνες διαλέγεις ανα layer.

Αν προχωρήσεις παραπέρα θα χρειαστείς στοιχειώδεις γνώσεις από αντίστροφα προβλήματα (inverse problems) και στατιστική, γιατί ουσιαστικά έχεις ένα black box με το οποίο κάνεις data fitting. Το οποίο black box μπορείς έπειτα να το συνδυάσεις με μια a priori γνώση για τα δεδομένα σου, ένα μοντέλο δηλαδή, και να δημιουργήσεις ένα grey box.

Φυσικά τα νευρωνικά δίκτυα έχουν πολλές άλλες εφαρμογές εκτός της τεχνητής νοημοσύνης. Αν θέλεις απλώς να τα χρησιμοποιήσεις και όχι να προγραμματίσεις ένα τότε το πρόγραμμα R έχει σίγουρα πακέτα για ΝΝ και είμαι σχεδόν σίγουρος ότι και σε python υπάρχει πακέτο.

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 17 Αύγ 2012, 21:20
από stamatiou
Dimitris έγραψε:Τα δεδομένα εκπαίδευσης (training data) χρησιμοποιούνται για να λύσεις το πρόβλημα ελαχιστοποίησης σφάλματος μεταξύ του data output και του υπολογισμένου output από το δίκτυο.

Από εκεί και πέρα σε έχασα :P Επίσης γιατί κάποιος να φτιάξει ένα νευρωνικό δίκτυο αντί να χρησιμοποιείσει ένα έτοιμο;

Re: Ξεκίνημα με νευρωνικά δίκτυα

ΔημοσίευσηΔημοσιεύτηκε: 20 Αύγ 2012, 10:52
από Dimitris
Αυτό ακριβώς έγραψα στο τέλος. Το πρόγραμμα R έχει πακέτα για ΝΝ και η python επισης. Ξεκίνα να διαβάζεις εσύ αυτά που σου έδωσαν και θα φτάσεις και σ'αυτό το σημείο.