deep learning

0

Mam krótkie pytanie do znawców tematu. Co jest nowego w głębokich sieciach neuronowych względem starych sieci jedno, dwu lub trójwarstwowych? Pewne różnice są oczywiste: ilość warstw i funkcja aktywacji relu i softmax. Co jest jeszcze nowatorskiego względem starych architektur, starych metod uczenia, starych metod inicjalizacji, itd. Dodam, że ja w swoich próbach na bardzo głębokich sieciach nie widzę lepszych efektów, właściwie to widzę więcej problemów z powodu utykania w płytkim minimum lokalnym.

Pozdrawiam

0
lion137 napisał(a):

https://stats.stackexchange.com/questions/182734/what-is-the-difference-between-a-neural-network-and-a-deep-neural-network-and-w

Ktoś coś więcej napisze? Ładnie podziękuję za każdą wypowiedź :)

Może jeszcze parę słów od siebie dodam. Pytam głównie dlatego, że z głębokimi sieciami miałem w praktyce dużo problemów.
Rzekomo funkcje relu i softmax zapobiegają szybkiemu zanikowi gradientu, ale w moich próbach sieć i tak wpadała w
bardzo płytkie minimum lokalne i wyniki były gorsze niż dla płytkich sieci. W zasadzie dużo problemów miałem już
gdy sieć miała 4-5 warstw (obliczeniowych). Nie wyobrażam sobie obliczeń na sieciach które mają np. 12 warstw.
Inni jednak podobno maja dobre rezultaty na tak głębokich sieciach. Zastanawiam się co mogłem robić źle.
Myślę, że na głębokich sieciach bym też miał dobre wyniki, ale pod np. pod warunkiem ogromnej ilości
restartów z losowego punktu. W domowych warunkach na jednym komputerze trudno zrobić chociaż 10tys
restartów, a w trudniejszych zadaniach trudno zrobić chociaż dwa restarty. Czy możliwe jest, że w profesjonalnych
eksperymentach z głębokimi sieciami neuronowymi uczą sieci miliony razy od losowego punktu startowego i
dlatego maja tak dobre wyniki?

Pozdrawiam

1

Jakiej technologii/biblioteki Używasz? Powinna mieć jakieś optymalizacjie. Tutaj:
http://neuralnetworksanddeeplearning.com/chap3.html#weight_initialization
Michael Nielsen pisze co nieco o wagach początkowych.
Zaś tutaj:
https://arxiv.org/abs/1506.01186
Bardzo ciekawy papier o szukaniu optymalnej learning rate.
Generalnie, uczenie sieci to trudna sprawa, heurystyki raczej, a nie ścisłe twierdzenia.

0
lion137 napisał(a):

Jakiej technologii/biblioteki Używasz? Powinna mieć jakieś optymalizacjie. Tutaj:

Wszystko sam robiłem od zera w C++, używam tylko biblioteki standardowej.

http://neuralnetworksanddeeplearning.com/chap3.html#weight_initialization
Michael Nielsen pisze co nieco o wagach początkowych.

Popatrzę. Wagi początkowe zawsze brałem z jakiegoś generatora liczb losowych z różnych małych
przedziałów o rozkładzie równomiernym.

Zaś tutaj:
https://arxiv.org/abs/1506.01186
Bardzo ciekawy papier o szukaniu optymalnej learning rate.
Generalnie, uczenie sieci to trudna sprawa, heurystyki raczej, a nie ścisłe twierdzenia.

Wiem że trudna. Niektórym jednak się udaje z głębokimi, a nawet z bardzo głębokimi sieciami.
Ja najlepsze wyniki miałem maksymalnie do 3 obliczeniowych warstw.

Dziękuję i pozdrawiam.

1

Jak tak to polecam książkę Nielsena, co prawda ona jest w numpy - ale to nakładka na C, więc OK:) Spróbuj też jakiejś biblioteki jak kieras, czy tensorflow.

0
lion137 napisał(a):

Zaś tutaj:
https://arxiv.org/abs/1506.01186
Bardzo ciekawy papier o szukaniu optymalnej learning rate.

Ilość trudnych problemów w których stosuje się  głębokie sieci neuronowe z jakimś powodzeniem rozwala mnie :)
[
Deep neural networks are the basis of state-of-the-art re-
sults for image recognition [17, 23, 25], object detection
[7], face recognition [26], speech recognition [8], machine
translation [24], image caption generation [28], and driver-
less car technology [14]. However, training a deep neural
network is a difficult global optimization problem
]

Co będzie, gdy ktoś odważy się przeznaczyć na uczenie jednej sieci cały duży klaster, chociaż
20tys komputerów?

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1