Sieci neuronowe - innowacyjne rozwiązania (propozycje)

0

Cześć,
zacząłem pisać nowy program wykorzystujący jednokierunkową, wielowarstwową sieć neuronową, którego celem będzie to co związane z sieciami neuronowymi, czyli w szczególności: aproksymacja, klasyfikacja oraz predykcja.

Moim celem jest stworzenie takiego programu, który będzie umożliwiał korzystanie z maksymalnie dużej liczby rozwiązań rzadko stosowanych lub wręcz innowacyjnych. Celem programu będzie przede wszystkim chęć testowania nowych rozwiązań i porównywanie ich do rozwiązań powszechnie stosowanych.

Naturalnie program będzie umożliwiał:

  • możliwość "wyłączenia" wybranego neuronu,
  • możliwość dodawania nowych neuronów w wybranej warstwie,
  • możliwość dodawania nowych warstw,
  • możliwość nauki wybranych neuronów,
  • stosowanie różnych algorytmów uczenia,
  • możliwość zastosowania różnych funkcji aktywacji,
  • możliwość zastosowania różnych funkcji celu,
  • różne metody wyznaczania kroku uczenia, współczynnika momentum oraz bet-y (dla gradientów sprzężonych)
    a także inne.

W związku z powyższym mam prośbę do osób, które interesują się tym tematem, żeby wskazały co można byłoby jeszcze zastosować w takim programie -> czyli co według Was mogłoby przynieść dobre lub ciekawe rezultaty lub co Wy chcielibyście wypróbować. Jeśli macie jakieś ciekawe artykuły naukowe to również możecie je załączać. Zdaję sobie sprawę, że temat nie jest łatwy i raczej kierowany jest do miłośników sztucznej inteligencji, ale każda wypowiedź będzie mile widziana ;-). Może są osoby, które wpadły na jakiś ciekawy pomysł, ale z z uwagi na brak czasu, chęci, umiejętności etc. nie miały możliwości go zweryfikować w praktyce...

0

na chwilę obecną ie mam propozycji co do twojego pytania ale chciałbym wiedzieć jak ci idzie gdyż interesuję się pokrewną dziedziną a mianowicie sieciami neuronowymi tworzonymi za pomocą automatów komórkowych

0
niedobry napisał(a):

na chwilę obecną ie mam propozycji co do twojego pytania ale chciałbym wiedzieć jak ci idzie gdyż interesuję się pokrewną dziedziną a mianowicie sieciami neuronowymi tworzonymi za pomocą automatów komórkowych

Najgorsze już za mną ;-). Miałem trochę przygód i kilkakrotnie zmieniałem podejście do pewnych rzeczy, ale już powoli kończę. Ciągle myślę nad tym co można by jeszcze zaimplementować... W razie czego będę modyfikował kod.
Automaty komórkowe to nie moja działka. W ogóle trochę sceptycznie podchodzę do algorytmów heurystycznych (chociaż nie kwestionuję ich skuteczności!). W mojej aplikacji zamierzałem dodać algorytmy genetyczne, ale chwilowo się z tego wycofałem. Zostawiłem sobie jednak furtkę, gdybym chciał powrócić do tego pomysłu :P.

0

a myślałeś o zapisie do pliku i odczycie z pliku takich rzeczy jak topologia sieci i wartości wag progów i funkcji progowej? myślałeś o zastosowaniu takiej sieci do prostego fltrowania obrazów jako zastosowanie niejako testowe? taki fotoszop tylko za pomocą sieci neuronowej

0

algorytmy genetyczne hmm... to ci dopiero, co nim chcesz losować? topologię, wagi? poważna sprawa

0
niedobry napisał(a):

a myślałeś o zapisie do pliku i odczycie z pliku takich rzeczy jak topologia sieci i wartości wag progów i funkcji progowej? myślałeś o zastosowaniu takiej sieci do prostego fltrowania obrazów jako zastosowanie niejako testowe? taki fotoszop tylko za pomocą sieci neuronowej

Oczywiście, że tak. Program będzie zapisywał strukturę sieci (ilość warstw, ilość neuronów w każdej z nich, wielkości wag, rodzaj wybranej funkcji aktywacji w każdym neuronie etc.) do pliku automatycznie po nauce sieci (dla najlepszych rozwiązań w zbiorze walidacyjnym - nie testowym).
Dodatkowo będzie można samemu ręcznie zapisać stworzoną i nauczoną sieć ze zmienioną strukturą (np. po dodaniu kilku neuronów lub nowej warstwy) lub ręcznej zmianie wag w wybranych neuronach. Zapisać będzie można w nowym pliku lub tym samym.

Zastosowanie sieci to już inna bajka. To już leży w gestii osoby, która będzie korzystać z programu do czego będzie chciała ją wykorzystać. Zadanie jest proste:

  1. trzeba wskazać początkową strukturę sieci
  2. wczytać zmienne wejściowe i wzorcowe
  3. nauczyć sieć - wybierając wcześniej ustawienia algorytmu uczenia etc.
  4. zapisać najlepszą strukturę sieci do pliku (na przyszłość)
  5. wyświetlić wykresiki z procesu nauki - by sobie poanalizować ;-)
  6. sprawdzać jak sieć sobie radzi z nowymi danymi.
    easy! ;)
niedobry napisał(a):

algorytmy genetyczne hmm... to ci dopiero, co nim chcesz losować? topologię, wagi? poważna sprawa

AG przeważnie stosuje się do szukania optymalnych wartości wag. Można również je wykorzystywać do szukania optymalnej struktury sieci oraz do redukcji zmiennych wejściowych. Zastosowań AG jest sporo, jednak osobiście nie jestem ich zwolennikiem - mają kilka niepożądanych właściwości...

0

Przepraszam ale jak tylko widzę nowe posty w tym temacie to uśmiech ciśnie mi się na usta ;] Nie widzę tutaj nic na temat żadnej "innowacji" w kontekście sieci neuronowych. Te opisane funkcjonalności to są absolutnie podstawowe możliwości symulatorów SSN ;]
Może po prostu wystartujesz od jakiegoś w miarę gotowego projektu i zaczniesz dodawać prawdziwe innowacje? ;) Możesz zacząć od mojego https://github.com/Pharisaeus/Neural jeśli chcesz ;]

0

Ja tylko dodam, że większość funkcjonalności (jeśli nie wszystkie), które wymieniłeś są w bibliotece fann, która jest open source, ma wsparcie dla wielu języków i jest rozwijana od 10 lat.

0
Shalom napisał(a):

Przepraszam ale jak tylko widzę nowe posty w tym temacie to uśmiech ciśnie mi się na usta ;] Nie widzę tutaj nic na temat żadnej "innowacji" w kontekście sieci neuronowych. Te opisane funkcjonalności to są absolutnie podstawowe możliwości symulatorów SSN ;]
Może po prostu wystartujesz od jakiegoś w miarę gotowego projektu i zaczniesz dodawać prawdziwe innowacje? ;) Możesz zacząć od mojego https://github.com/Pharisaeus/Neural jeśli chcesz ;]

To co wymieniłem to rzeczywiście same podstawowe rzeczy - nie twierdzę inaczej - ale ja właśnie szukam rzeczy nowych, które można spróbować zastosować.
Po prostu dyskusja potoczyła się w kierunku takich podstaw ;-)
Problem polega jednak na tym co jest lub może być "innowacją" w kontekście SSN?

1

Może najpierw opanuj w pełni i wykorzystaj do czegoś techniki, które już są opracowane ?

Wymyślanie czegoś nowego bez dobrej znajomości tego co już jest to nie innowacja tylko prowizorka.

0
walec51 napisał(a):

Może najpierw opanuj w pełni i wykorzystaj do czegoś techniki, które już są opracowane ?

Wymyślanie czegoś nowego bez dobrej znajomości tego co już jest to nie innowacja tylko prowizorka.

o widzisz proponuję na start prosty projekt testowy w którym pliki dźwiękowe zamieniane będą na tekst lub rozpoznawanie obrazów i wyizolowywanie tekstu z obrazu plik wejściowy to grafika plik wyjściowy to TXT

po przerobieniu takiego prostego projektu którego produktem ubocznym będzie prosty progrmik do obróbki danych a celowym produktem twoja wiedza nt. problemów z biblioteką będziesz wiedzieć czy założenia pierwotne są ok następnie dane z owego projektu spróbuj wykorzystać do innego projektu (np. szukanie zestawów liczb wygrywających w totka) tak by ten programik będący produktem ubocznym przerabiać tylko by mógł obrabiać dane z obydwu projektów.

Wiem że to pojebana wizja ale jakiś plan działania musisz mieć nie możesz tworzyć czegoś oderwanego od rzeczywistości spróbuj się odnieść do mojego pomysłu tak by wydusić z tego szitu własny pomysł

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