NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Neuronová sieť na rozpoznávanie emócii - Stackflow

Aktivity
Avatar
Patrik Živčák:1.1.2018 13:09

Ahojte potrebujem pomoc alebo tutorial ako sa používa model (asi) čo som dostal: Postupoval som takto:

Použil som túto CNN: https://github.com/…ni/sound-cnn
Vytvoril som priečinok s názvom "sound" a pridal jeden zvukový súbor (* .wav) stiahnutých odtiaľ: https://drive.google.com/open?…
3. Nainštaloval som requirements.txt
Spustil som príkaz: python train.py 240 44100 audio / 1000 150
Po trénovaní som dostal subory: model.meta ',' model.index ',' checkpoint ',' model.data-00000-of-00001
Zatiaľ je to len test. Ak to bude fungovať, použijem iný zvuk a znova natrénujem sieť pre to čo potrebujem, ale najprv musím vedieť, ako sa používajú tie výstupné súbory (model.data) pre klasifikáciu zvuku. Myslím si, že tie výstupné súbory, ktoré mám po tréningu, sú akymsi modelom neurónovej siete.Keďže s neuronkou aj ubuntu robím prvý raz som totálne stratený navyše moje programovacie schopnosti su biedne. Mám vytvoriť neurónovú sieť v pythone alebo matlabe ktorá dokáže klasifikovať zvuk napr. plač, potlesk a musím to urobiť ale nemám ani šajnu ako.

V prílohe je ukažka toho čo sa mi nejako podarilo dať dokopy.

 
Odpovědět
1.1.2018 13:09
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Patrik Živčák
Martin Dráb:1.1.2018 13:34

No, jestli to chápu dobře, tak ty pro každou třídu zvuků, kterou chceš rozpoznávat (tedy pro každou jednu emoci) musíš mít jeden zvukový soubor. Všechny tyto soubory dáš do jednoho adresáře a pustíš na ně ten train.py, který by (podle mě) měl vytvořit neuronovou síť.

Co se týče nastavení parametrů trénování, to je velmi individuální. Měl bys mít jwště nějaou další množinu audio souborů pro různé tebou klasifikované emoce, abys na nich mohl pouštět tu neuronku a vidět, jak dobře klasifikuje a zda jí zvyšující se počet iterací trénování pomáhá či už ne.

Jak se ale ta neuronka pouští, to jsem z toho Githubu nevyčetl. Ale to se možná budeš muset podívat do TensorFlow. V Matlabu na to je docela pěkné GUI udělátko s názvem nprtool, které sice už je deprecated, ale funguje pěkně. Jen tam můžeš mít problém se zpracování těch audio souborů (resp. s vytažením toho, co chceš té neuronce ukázat jako vstupní data).

Obecně ale neuronku používáš proto,že

  1. jsi líný zjišťovat, jak jednotlivé třídy zvuků rozpoznat,
  2. prostě nedokážeš algoritmicky říci, jak se jednotlivé třídy liší (nebo je to velmi těžké).

Neuronka se pokusí ve vahách jednotlivých neuronů potřebné informace zakódovat (případě ve svojí struktuře) a pak vlastně funguje jako model pro rozpoznávání vzorů (emocí). Dívat se ale do její vnitřní struktury a nějak ji interpretovat – to je, pokud vím, velmi obtížný úkol; kdybychom to uměli, asi bychom neuronky nepoužívali.

Nahoru Odpovědět
1.1.2018 13:34
2 + 2 = 5 for extremely large values of 2
Avatar
Patrik Živčák:1.1.2018 13:46

No hej dobre si pochopil koľko wav suborov dam do priečinku audio toľko by malo vytvoriť tried neuronovej siete. Aspoň tak nejak to je tam písané. Po trenovaní dostanem tie subory čo sú na obrázku označené pre jednoduchosť som na prvý pokus dal do audio len jeden wav súbor teda ak by som ich mal tam viac asi by renovanie trvalo podstatne dlhšie a mal by som tych vystupnych súborov viac. Aj tak kým neviem čo s tými výstupnymi súbormi robiť neoplati sa mi použiť viac než jeden wav trenovaci súbor. Ide mi práve o to ako využiť tie výstupne súbory pre rozpoznávanie iných zvukov to vôbec nechápem. Proste ja viem, že po trenovaní som dostal tie subory ale vôbec neviem čo s tým akože mám robiť, Viem len že moj cieľ je pre už natrenovanu sieť tam vložiť neznámy zvuk a ono by mi malo povedať čo to je za zvuk. Nechápem programku a robím takú vec prvý krát v v Ubuntu, Pythone s neuronovou sieťou proste všetko prvý krát. Inak bybral som neuronku preto, že tak znie zadanie od učiteľa.

Ide mi o to či nekto nevie čo s tými vystupnymi udajmi mám akože robiť :D

Editováno 1.1.2018 13:48
 
Nahoru Odpovědět
1.1.2018 13:46
Avatar
coells
Tvůrce
Avatar
Odpovídá na Patrik Živčák
coells:1.1.2018 17:57

Výstupní soubory jsou metadata, checkpointy a váhy modelu. Abys je mohl použít, musíš vzít ten TensorFlow model a napsat nový kus kódu, který model nebude trénovat, ale používat - to v repu úplně chybí, protože autor zjevně testoval kvalitu modelu a neřešil použití.

Kód je poměrně jednoduchý, ale má krajně podezřelou architekturu.

2D konvoluce se používá pro detekci lokálních receptivních polí na obrázku, ne na zvuk, který je z principu 1D. To sice může fungovat, ale úplně jinak, než jak je to zamýšlené. Na zvuk se používá spíš RNN, která je v tomhle případě přirozenější.

Navíc, jak už psal Martin, diagnostika modelu je podivná, validace se mi nezdá a testování chybí úplně.

Celkově je takové zadání hodně podivné - učitel si myslí, že jen tak nastrénuješ neuronku, protože to je brnkačka? Dokonce i když budeš mít v ruce hotový kód neuronky a bude přípravený jen ke spuštění, nedokážeš ji správně natrénovat, protože k tomu musíš ovládat diagnostiku.

Nejjednodušším způsobem řešení by bylo najít si už hotový a vytrénovaný model pro klasifikaci zvuku a použít fine-tuning na vlastní sadu dat. K tomu je potřeba vědět, jak se model používá, jak aplikovat podobnou techniku, a jak ověřit, že nový model funguje dobře. Ale teoreticky si pak už vystačíš se znalostí logistické regrese.

Určitě by bylo lepší vzít si nějaké jednodušší zadání nebo se zeptat učitele, proč si myslí, že je to možné vyřešit bez potřebných znalostí?

 
Nahoru Odpovědět
1.1.2018 17:57
Avatar
Martin Dráb
Tvůrce
Avatar
Martin Dráb:1.1.2018 18:15

Proto mi přijde lepší spíš zkusit ten matlabí nprtool. Tam můžeš definovat vlastnosti neuronky (počty neuronů v jednotlivých druzích vrstev), jak vypadají vstupy, jaké jsou rozpoznávané třídy. Netvrdím, že ti to dá ty nejlepší výsledky, ale pokud je cílem udělat nějakou neuronku, protože je to přece ta umělá inteligence a dělat to je dnes velmi cool, bude to stačit. Výsledkem práce toho nástroje je právě neuronka (funkce), které hodíš data a ona ti je klasifikuje. Trénování, testování a validace jsou zahrnuty při tvorbě té sítě, musíš ale dodat trošku více vstupních dat (jeden soubor pro jednu třídu je fakt málo).

Problém tady právě mohou být ta vstupní data, protože by bylo dobré nedávat té neuronce přímo ty audiosoubory, ale vytáhnout z nich ty zajímavé (a pro rozlišení tříd užitečné) informace. Myslím, že na to by šla použít metoda z jednoho z těch pythoních skriptů (myslím, že v utils).

Když jsem si s tím ve škole hrál, tak jsme dělali klasifikaci rostlin podle podoby jejich listů. Měli jsme 100 druhů rostlin, od každého 16 vzorků, a to jednak v podobě černobílého obrázku NxN pixelů, jednak v podobě z něho vytažených informací, které stačilo jen strčit do neuronky. Tedy celkem 1600 vzorků. I když jsme použili 800 z nich na trénování/tes­tování/valida­ci (zkrátka, předhodili jsme je nprtoolu), tak úspěšnost na ostatních vzorkách (které ta síť při trénování neviděla) byla přes 90 % (v biologické poznávačce, co se dělají na střední, by to bylo za jedna), přesná čísla si ale už nepamatuju. I u trénování na 400 vzorcích byly výsledky celkem.

Nahoru Odpovědět
1.1.2018 18:15
2 + 2 = 5 for extremely large values of 2
Avatar
Patrik Živčák:2.1.2018 10:02

No hej inak ta architektúra je dobrá to mi aj docent vysvetľoval že zvuk sa v podstate prevedie na spektrogram čo už je obrázok kde každý pixel predstavuje nejaká číselná hodnota a to sa da naskladať do matice a to už môže aj CNN robiť. Viem nebol som úplne presný ale ten približný princíp by sedieť mal. A v podstate tam sa pomocou FFT s toho ziskávajú tie príznaky (features) MFCC a tak nejako. Odpísal by som aj skôr ale váš systém mi to nedovolil a potom som už šiel spať.

 
Nahoru Odpovědět
2.1.2018 10:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.