Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją 25.06.2010 we wszystkich miejscach

  1. 2 punkty
    Czy zastanawiałeś się kiedyś co to sztuczna sieć neuronowa? A może nie wiesz jak wykorzystać pozostałe w twoim warsztacie części? A może po prostu chcesz zbudować inteligentnego robota? Jeśli chociaż raz odpowiedziałeś "tak" zapraszam Cię do poczytania tej serii artykułów o sztucznych sieciach neuronowych. A jeśli w ogóle nie odpowiedziałeś "tak" to i tak zapraszam do poczytania Na pewno znajdziesz coś dla siebie :]. Na początek... Sieć neuronowa najprościej mówiąc, jest to system symulujący pracę mózgu - tworu tworzonego i rozwijającego przez na naturę przez miliony lat. Dlaczego neuronowa? Nasz mózg składa się z wielu milionów komórek nerwowych, które zwane są neuronami. Neurony połączone są tzw. synapsami, które tworzą taką "sieć". Stąd właśnie swą nazwę czerpie sieć neuronowa. Dla skrótu będę dalej, zamiast pełnej nazwy ("sieć neuronowa") pisać IS ("inteligentna sieć") lub SSN ("sztuczna sieć neuronowa"). No dobra. Ale dlaczego niby mamy używać tej "sieci" ?! No i ja się zgodzę. Komputery szybko przeliczają liczby, wykonują algorytmy. Ale co gdy musimy coś rozpoznać? Co gdy będziemy musieli porównywać głosy? I tu właśnie góruje SSN. Gdy stworzymy IS to będziemy mogli rozpoznawać przedmioty bez względu np. na oświetlenie. Ale to już wyższa szkoła jazdy. Myślę że SSN zainteresują was. Pomyślicie pewnie że tu będzie kłaniać się matematyka. I macie rację, ale wszystko wytłumaczę, a więc może ten przedmiot nie stanie się tak straszny . Zaletą poznawania i tworzenia SSN jest to że będziemy odkrywać ciekawe zjawiska, a przy okazji zahaczymy o inne przedmioty, które ułatwią wam przyswajanie IS. Po tym długim wstępie czas na dalsze rozważania, które będą także kontynuowane w dalszych częściach. Dlaczego SSN tak szybko się rozwijają? Poprzez rozwój wielu dziedzin nauki: biologii, matematyki, fizyki człowiek zdobył większą wiedzę, którą wykorzystał w postawianiu problemów technicznych i umiejętności zbierania informacji które wykorzystuje w SSN. Drugim czynnikiem wpływającym na rozwój jest rozwój techniki(szczególnie komputerów) na którym SSN mogą działać i ciągle się rozwijać Czy zdołamy odwzorować człowieka i jego mózg? Choć może to być dziwne, ale niektóre badania wykazują że da się odwzorować mózg. Wiadome jest tylko jedno- minie dużo czasu zanim poznamy wszystkie tajniki i rozwiązania. Sami widzimy że sam napęd sprawia nam mnóstwo problemu a co dopiero inne układy? Dlatego SSN rozwija się w kilku dziedzinach. Oprócz chęci na stworzenie człowieka, warto rozwijać SSN mogące nam pomóc a nie klonować. Na jakie problemy może spotkać SSN? SSN musi być odporna na uszkodzenie. Jej uszkodzenie może sprawić duży problem(szczególnie np. na giełdzie). SSN żeby była jak najwydajniejsza musi posiadać możliwość uczenia - czyli jeden z trudniejszych procesów. IS powinny sobie radzić także z losowymi czy też niedokładnymi informacjami(szczególnie w projektach "klonujących" człowieka). Zalety i wady SSN SSN nie wymagają programowania. Rola programisty ogranicza się do zaprojektowania takiej struktury sieci, która najlepiej będzie nadawała się do rozwiązania danego problemu, a następnie do sprytnego pokierowania procesem uczenia sieci. SSN w przypadku drobnego uszkodzenia działa nadal, oczywiście do pewnego stopnia. Podobnie jest z naszym mózgiem. Jeśli ma np. drobny uraz po wypadku to i tak działa. SSN nie zda egzaminu gdzie potrzeba dokładnych i jasnych wyników. Zbieranie danych dla sieci neuronowych Jeśli zdecydujemy się na tworzenie sieci neuronowej do jakiegoś problemu, musimy przeanalizować jakie dane będzie potrzebować nasza SSN. Warto zważyć uwagę na 2 istotne problemy: -braki w danych - w tym wypadku SSN musi opierać się np. o wartości średnie lub inne wykresy, statystyki obliczane na podstawie wartości zmiennych dostępnych w ciągu uczącym - to właśnie wymyślił Bishop w 1995r. -wartości nienumeryczne - dla przykładu. Jeśli mamy wartości nienumeryczne np. dachówka={ceramiczna,blacho-dachówka} to możemy przedstawić je w formie numerycznej. Podsumowanie: W zbieraniu danych musimy zwracać uwagę na to: - Jeśli posiadamy za mało informacji, musimy zdobywać je za pomocą np. przyrządów próbkujących czy też innych źródeł informacji - aby nie podawać niepotrzebnych informacji - aby używać wartości numerycznych Przykłady zastosowań Można by tu wymieniać je do rana, lecz opisze te najbardziej zaawansowane, które mam nadzieję, jeszcze bardziej zachęcą Cię do czytania . •Rozpoznawanie Czy zastanawiałeś się kiedyś, dlaczego tak szybko rozpoznajesz np. że to twój pies? Nam, Homo Sapiens przychodzi to łatwo, bez większego wysiłku. Bez różnicy, czy będziemy rozpoznawać go (dalej mówię o tym zwierzu) w obroży czy bez, w słoneczny dzień, czy przy zachodzie słońca, pod kątem 10° czy 70°. No ale generacja "Robo Sapiens" już tak łatwo nie ma. I tu bez żartów powiem, że dobra SSN potrafi to zrobić( rozpoznać). W klasycznym komputerze twarze porównywane były by za pomocą określonego algorytmu. Lecz gdyby komputer miałby porównywać tyle twarz co człowiek... to albo by się zawiesił, albo robił by to baaaardzo długo. Dlaczego? Ponieważ klasycznie, program porównywał by za pomocą zasady: "pixel po pixelu". Ale co się stanie gdy twarz będzie pod innym niż wcześniej zapisana w komputerze? Odpowiedź prosta: "PROGRAM POLEGNIE!" (to tak jak w "pogromcach mitów": "mit został obalony" ) •Kojarzenie Jest w zasadzie bardzo zbliżone do rozpoznawania. Znów porównanie: to co próbujemy rozpoznać z tym co już znamy. Oczywiście w 90% (przypuszczam), aplikacja klasyczna źle stwierdzi i oznajmi że są to dwa różne obiekty. Tu narzucone są już pewne reguły (zależności) przez informatyka. Co ciekawe, jeśli mamy dobrą SSN, ona odnajdzie sama te zależności, o których nawet informatyk nie wie!! Wniosek więc prosty: chociaż gdybyśmy programowaniu najlepsze SSN, nie jesteśmy w stanie na 100% przewidzieć co IS zrobi. •Przewidywanie Znając jakieś zjawiska np: deszcz czy burza umiemy przewidzieć, kiedy to zjawisko nastąpi i co się stanie. Np. jeśli będziesz wiedzieć że będzie mocno lać ponieważ widać czarne chmury. SSN też służą do przewidywania, najczęściej ruchów na giełdzie(!). Tak więc ruch na giełdzie jest też wynikiem działania jakiś praw. •Roboty Naukowcy cały czas mają problem, ponieważ chcąc stworzyć robota chodzącego, borykają się problemami równowagi. Najlepszym dziełem jest mózg, który umożliwia nam (z pomocą mięśni, kości itp.) np: chodzenie, fikołki i jazdę na łyżwach. Aby stworzyć taki algorytm nie wątpliwie trzeba znać matematykę i kinematykę na wysokim poziomie. Ale i tu wykorzystywane są SSN! Przykład trochę kulawy, ale jest: I-droid 01 - też posiadał SSN (niby do wyrażania emocji;) ), choć nie tak rozwiniętą jak inne zaawansowane roboty. •Dobór pracowników Takie SSN przystosowane do takich działań, potrafią oceniać i porównywać ich wykształcenie, wiek, staż i wybierać najlepsze stanowisko w pracy. •Inne - diagnostyka układów elektronicznych - badania psychiatryczne - poszukiwania ropy naftowej - interpretacja badań fizycznych - prognozy cen - analiza badań medycznych - planowanie remontów urządzeń Struktura SSN •Podział SSN Istnieje wiele podziałów, ale wymienię tylko te najważniejsze. SSN możemy podzielić na: -jednokierunkowe - czyli wszystkie dane wędrują w jednym kierunku i nie wracają do poprzednich warstw(sygnał przechodzi przez każdy neuron dokładnie raz w swoim cyklu) -rekurencyjne - połączenia w tej sieci stanowią graf z cyklami Definicja i struktura sztucznego neuronu Przyjrzyjmy się poniższemu rysunkowi. Do neuronu dociera pewna liczba sygnałów, inaczej wartości wejściowych. Sygnały te pochodzą: - z zewnątrz-wtedy mówimy o sygnałach pierwotnych trafiających do sieci z zewnątrz - z wyjść innych neuronów (czyli aksonów) będących w tej samej sieci neuronowej Każda wartość wprowadzana jest do neuronu poprzez wagi, które wcześniej ustalone, zmieniają wartość wchodzącą do neuronu("zwiększają moc"). Wagi odpowiadają biologicznym synapsom. Każdy neuron posiada również pojedynczą wartość progową, określającą jak silne musi być jego pobudzenie(jaka musi być wartość), by doszło do "pracy" neuronu. W bloku sumującym (odpowiadającym biologicznemu jądru) sumuje się wszystkie wartości sygnałów wejściowych które zostały pomnożone w wagach przez współczynnik wagowy a następnie odejmuje się wartość progową. Uzyskana w ten sposób wartość pomocnicza określa pobudzenie neuronu. Powstała wartość zostaje przekształcona przez funkcję aktywacji (blok aktywacji). Wartość obliczona przez funkcję aktywacji jest ostatecznie wartością wyjściową (sygnałem wyjściowym) neuronu. Tabela przedstawia porównanie między elementami sztucznego neuronu a biologicznemu Łączenie neuronów Szczerze mówiąc, już nawet jeden neuron można nazwać siecią - jednoelementową lecz... za wydajna to ona nie będzie . Aby realizować większe cele, potrzeba więcej neuronów. Jak je łączymy? Po pierwsze żaden neuron nie ma ze sobą bezpośredniego połączenia!. Dla przykładu weźmy 3 neurony. Są trzy sposoby łączenia neuronów: -"każdy z każdym" -połączenia między kolejnymi warstwami w sieciach warstwowych -tylko z określoną grupą neuronów, najczęściej z tzw. sąsiedztwem [www.neuron.kylos.pl] Liczymy, liczymy... Każda z wag posiada pewną wartość. Sygnały są mnożone przez wartości wag, wyniki owego mnożenia dodawane są do siebie w bloku sumującym. W ten sposób powstaje konkretna liczba, którą określa się jako potencjał membranowy. Dla przykładu podajmy jakiś przypadkowy neuron: Metody uczenia SSN Uczenie się to „po prostu” dobieranie wartości wag i połączeń między neuronami w taki sposób, aby po podaniu na wejściu sieci jakiś wartości, na jej wyjściu uzyskać odpowiedni wynik przy założeniu uzyskania jak najniższego błędu. Można wyróżnić kilka sposobów uczenia się: •uczenie pod nadzorem (z nauczycielem) - stosujemy wtedy gdy znamy odpowiedź na ciąg danych podanych na wejścia. Odmianą tego sposobu jest uczenie się z krytykiem. •uczenie z krytykiem - w tym "systemie nauczania" nie występuje informacja o wartościach pożądanych na wyjściu systemu, a jedynie informacja czy podjęta zmiana wartości wag daje wyniki pozytywne w sensie pożądanego zachowania systemu, czy negatywne działanie. Obrazek ze strony www.kik.pcz.czest.pl obrazuje tą zasadę. •uczenie bez nadzoru(bez nauczyciela) - pożądana odpowiedź nie jest znana. Ze względu na brak informacji o poprawności, czy niepoprawności odpowiedzi sieć musi się uczyć poprzez analizę. W trakcie analizy parametry sieci podlegają zmianom(samoorganizacji). Tu można wyróżnić kilka typów uczenia: -->typu Hebba Donald Olding Hebb w 1944 stwierdził że: Uczenie samoorganizujące się typu Hebba opiera się na obserwacji neurobiologicznej, zgodnie z którą waga powiązań między dwoma neuronami wzrasta przy stanie ich jednoczesnego pobudzenia, w przeciwnym wypadku maleje. -->typu konkurencyjnego Charakterystyczną cechą tego typu jest to że neurony współzawodniczą ze sobą, aby stać się aktywnymi (pobudzonymi). W metodzie Hebba, dowolna liczba neuronów mogła być aktywna, natomiast w uczeniu konkurencyjnym tylko jeden neuron może być aktywny, a reszta pozostaje w stanie spoczynku. -("Winner takes all"- zwycięzca bierze wszystko) - W tej metodzie grupa neuronów współzawodniczących otrzymuje te same sygnały wejściowe. W zależności od aktualnych wartości wag sygnały wyjściowe neuronów różnią się między sobą. W wyniku porównania tych sygnałów zwycięża ten neuron, którego wartość jest największa czyli jego wektor wag jest najbliższy aktualnemu wektorowi uczącemu. Neuron zwycięzca przyjmuje wartość 1, a pozostałe - przegrywające 0. W "nagrodę" neuron zwycięzca przyjmuje stan 1 umożliwiający korektę (aktualizację) wag. Pozostałe neurony(przegrane) przyjmują stan 0 przez co mają zablokowaną możliwość aktualizacji wag. Problemem tej metody jest to że niektóre neurony nigdy nie wygrywają przez co przechodzą w status "martwego neuronu" i przyczyniają się do zmniejszenia ilość jednostek uczących się, a zatem powodują zwiększenie ryzyka popełnienia błędu. Aby zapobiec takiej sytuacji wprowadza się limit zwycięstw który ogranicza ilość możliwych wygranych przez jeden neuron, i po przekroczeniu neuron zostaje stopowany, dając innym szansę na wygraną. -("Winner takes most"- zwycięzca bierze większość) - jest to odmiana uczenia konkurencyjnego. Neuron który wygra uaktywnia się przyjmując wartość 1 i umożliwia częściowe uaktualnianie innych neuronów z sąsiedztwa. Stopień ich uaktywnienia zależy od odległości ich wektorów wagowych od wag neuronu wygrywającego. Podsumowanie 1 części i zapowiedzi... Mam nadzieje że spodobała się wam ta pierwsza część serii artykułów o SSN. Już niebawem pojawi się 2 część. Omówimy RS-232 który przyda się nam w 3 części. Słowniczek trudniejszych pojęć: • Warstwy ukryte nazywamy wszystkie warstwy sieci oprócz wejściowej i wyjściowej. Źródła: wikipedia.pl neuron.kylos.pl Pozdrawiam Madik
  2. 1 punkt
    Wygląda na OK. Osobiście starałbym się zrobić optoizolację żeby dodatkowo zabezpieczyć port. Ale to w zupełności wystarczy. Jedyne czego nie widzę to konektora zasilania.
  3. 1 punkt
    masz zwarcia na tej płytce. np. switch na dole po środku (ten tuż nad kondensatorem) - lewe pady stykają się z sąsiednią ścieżką. W wielu miejscach także ścieżki/pady są tak blisko siebie, że na 95% porobisz tam zwarcia wykonując płytkę/lutując te elementy. I u góry jeden kondensator ma nie podłączoną jedną nóżkę. TOSC jest na dodatkowy kwarc np. zegarkowy ~32kHz, nie musisz się tym przejmować bo to trzeba dodatkowo zaprogramować. Normalny podłączasz pod XTAL.
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×
×
  • Utwórz nowe...