-
1. Data: 2014-02-09 20:59:13
Temat: Czy ma sens stosować binarne wyjście z sieci neuronowej? [cross]
Od: Borneq <b...@a...hidden.pl>
Przypuśćmy że chcemy z warstwy wyjściowej sieci rozpoznającej znaki
dostawać każdą z 2^16 możliwości UTF-16 Unicode. To zmuszało by nas do
działania z siecią z olbrzymią ilością komórek. Zamiast tego wystarczyło
by 16 a pobudzana była by nie jedna ale dowolna ich ilość. Mielibyśmy
binarne wyjście sieci neuronowej. Tak jest w przykładzie Unicode OCR z
codeproject.
Jednak czy nie powoduje to braku uogólniania? W tym przykładzie pięknie
odgaduje tekst, gdy jest wyraźny oraz napisany dokładnie tym samym
fontem co przy nauce. Jeżeli font się różni, dostajemy nie pojedyncze
błędy ale całkiem błędną odpowiedź.
Czy zamiast tego lepiej jest już stosować zasadę jednej pobudzonej
komórki? I kilka sieci, np jedna tylko do cyfr, druga dla małych i
dużych, trzecia tylko do dużych itp.
-
2. Data: 2014-02-09 22:39:14
Temat: Re: Czy ma sens stosowa? binarne wyj?cie z sieci neuronowej? [cross]
Od: A.L. <a...@a...com>
On Sun, 09 Feb 2014 20:59:13 +0100, Borneq <b...@a...hidden.pl>
wrote:
>Przypuśćmy że chcemy z warstwy wyjściowej sieci rozpoznającej znaki
>dostawać każdą z 2^16 możliwości UTF-16 Unicode. To zmuszało by nas do
>działania z siecią z olbrzymią ilością komórek. Zamiast tego wystarczyło
>by 16 a pobudzana była by nie jedna ale dowolna ich ilość. Mielibyśmy
>binarne wyjście sieci neuronowej. Tak jest w przykładzie Unicode OCR z
>codeproject.
>Jednak czy nie powoduje to braku uogólniania? W tym przykładzie pięknie
>odgaduje tekst, gdy jest wyraźny oraz napisany dokładnie tym samym
>fontem co przy nauce. Jeżeli font się różni, dostajemy nie pojedyncze
>błędy ale całkiem błędną odpowiedź.
>Czy zamiast tego lepiej jest już stosować zasadę jednej pobudzonej
>komórki? I kilka sieci, np jedna tylko do cyfr, druga dla małych i
>dużych, trzecia tylko do dużych itp.
Czy wiesz w ogole na jakiej zasadzie dzialaja sieci neuronowe?
A.L.
-
3. Data: 2014-02-13 12:46:22
Temat: Re: Czy ma sens stosować binarne wyjście z sieci neuronowej? [cross]
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-02-09 22:39, A.L. pisze:
>> Czy zamiast tego lepiej jest już stosować zasadę jednej pobudzonej
>> komórki? I kilka sieci, np jedna tylko do cyfr, druga dla małych i
>> dużych, trzecia tylko do dużych itp.
>
> Czy wiesz w ogole na jakiej zasadzie dzialaja sieci neuronowe?
Patrzyłem na OCR+sieci komórkowe i widzę że te dwie dziedziny się nie
bardzo lubią. FANN nie ma w przykładach rozpoznawania znaków, natomiast
Tesseract działa na zupełnie innej zasadzie, która nie wiem czy będzie
wystarczająca dla znaków małych rozmiarów i zaszumionych. A jeżeli już
mowa o sieciach neuronowych lub wektorach nośnych to tylko w kontekście
znaków ręcznie pisanych.
Myślę że sieć neuronowa powinna mieć 15x15=225 neuronów wejściowych
przyjmujących wartości z zakresu <0,1> według skali szarości bo
progowanie do koloru jednobitowego nie jest dobre dla znaków słabej
jakości pogarszając tylko sprawę. Około 70 neuronów wyjściowych, jeden
dla każdego znaku, włączając w tym spację. Na wyjściu tylko jeden neuron
powinien mieć wartość 1 a pozostałe 0, chyba że będą trudności w
rozpoznawaniu, np cyfra 1, duże I lub małe l dla różnych fontów nie będą
rozpoznawane.