La parte migliore circa il termine “Intelligenza Artificiale” è che nessuno può davvero dire che cosa significhi esattamente. La ragione principale di questo deriva dal termine “intelligence”, con definizioni che vanno dalla possibilità di praticare il ragionamento logico, la capacità di eseguire compiti cognitivi o sognare sinfonie. Quando si tratta di intelligenza umana, di proprietà, quali la consapevolezza di sé, cognitivo complesso prodezze, e la capacità di pianificare e di motivare se stessi sono generalmente considerati la definizione di caratteristiche. Ma, francamente, è quello che è e non è “intelligenza” è aperta al dibattito.
Ciò che non è aperta al dibattito, è che l’AI è un marketing miniera d’oro. La vaghezza è consentito per i dipartimenti di marketing in tutto il mondo per andare tutti AI-felice, dichiarando che il loro prodotto è AI abilitati e insistendo sul fatto che il loro discorso assistente risponde ‘intelligente’ per una query. Si potrebbe iniziare a credere che siamo sulla cuspide di una funzione fantastica abitata da androidi e forte AIs di assistere a ogni nostro capriccio.
In questo articolo esamineremo la realtà dietro queste affermazioni e a riflettere progresso dell’umanità verso il diventare un Tipo mi civiltà. Ma questo è Hackaday, quindi stiamo anche andando a scavare nei segreti di alcune AI chip, tra cui il Kendryte K210 e vedere come l’hardware di oggi si inserisce nel nostro Glorioso Futuro.
Introducendo il K210
Il Kendryte K210 System-on-Chip è AI-on-the-edge chip du jour e combina un processore dual-core a 64-bit RISC-V processore, insieme con la solita sfilza di periferiche. Come per il mercato di destinazione di questo chip, Kendryte riassume in questo modo:
Kendryte in Cinese significa la ricerca di intelligenza. Il principale campo di applicazione di
questo chip è nel campo dell’Internet delle Cose. Il chip fornisce soluzioni ai
aggiungere intelligenza per questo.
Di pertinenza vi è la KPU processore che la K210 datasheet viene descritto come:
KPU è un general-purpose di rete neurale processore con built-in di convoluzione,
lotto di normalizzazione, l’attivazione e la messa in comune delle operazioni. È in grado di rilevare i volti o
gli oggetti in tempo reale.
Il Kendryte K210 KPU la descrizione schematica. (Credit: Kendryte)
Nello stesso PDF si possono trovare informazioni più dettagliate su cosa KPU set di funzionalità è:
- Mirate verso convolutional reti neurali (CNNs).
- Supporta la CNN chicchi di dimensioni 1×1 o 3×3.
- Supporta qualsiasi tipo di funzione di attivazione.
Tutto questo ci dà un chiaro indizio che cosa abbiamo a che fare qui è un po ‘ di silicone, che è volto ad accelerare la trasformazione di convolutional reti neurali (CNNs), che sono comunemente utilizzati in aree che coinvolgono la macchina di visione. In sintesi, elucubrazioni, vengono applicati i filtri, a migliorare alcune caratteristiche come i bordi, linee e punti, e quindi queste caratteristiche sono utilizzati come input per gli strati più profondi in una rete neurale. Macchina di visione, e, più specificamente, di oggetto e di riconoscimento del volto, è probabilmente quello che sarà un bene per.
Quindi, dove l’intelligenza in questo aggeggio?
Macchine per la produzione di Vedere con CNNs
Il punto di CNNs è quello di aggiungere qualcosa di simile a una retina di un sistema di computer, molto simile a come altri algoritmi come Ricorsiva di Rete Neurales (RNNs), insieme con i Modelli di Markov Nascosti (HMMs) sono utilizzati per il riconoscimento del linguaggio naturale. In sostanza si aggiunge qualcosa di simile ai sensi e (a seconda del tipo di parte di una corteccia associato con quel senso. (Se CNN e cosa fa una retina umana, e CNN è di un’intelligenza artificiale, io in realtà non lo sono “smart retine”?)
Molto simile a una retina, CNN utilizzato per la visione artificiale è utilizzato per ridurre la quantità di materie prime immagini. Con il K210 SoC l’ ‘KPU’ periferici viene quindi utilizzato per alleggerire la CPU operazioni di hardware dedicato, al fine di velocizzare l’elaborazione. Questo è essenzialmente lo stesso come l’utilizzo di un processore video per accelerare analogamente attività parallele con general-purpose computing on graphics processing units (GPGPU) elaborazione, come reso popolare da CUDA e OpenCL.
CNN è composto da un numero di elementi consecutivi, in genere il livello di input, un numero di convoluzione strati con il loro pool di livello e, infine, una cucina completamente collegato strato che funziona come una classica rete neurale artificiale (ANN). Il cosiddetto kernel sono applicati per la convoluzione livello, con il kernel (di solito un 2×2 o 3×3-dimensioni griglia) applicato al livello. Questo kernel funziona essenzialmente come un CUDA o OpenCL kernel, in cui si applica la stessa sentenza(s) a molte istanze di dati (SIMD).
Gli strati di CNN
L’essenziale obiettivo di CNN è quello di ridurre i dati grezzi densità (rosso, verde e blu i canali, per i dati RGB), in modo che completamente collegati strato finisce con solo i dati essenziali, come i contorni abbozzati o la forma di un oggetto, che può essere quindi classificato da una rete neurale addestrata come una rete neurale feedforward. Questa rete sarebbe uscita un risultato probabilistico basato sui propri dati di allenamento. Più complicato implementazioni di utilizzare una cucina completamente collegato strato che ha anche il feedback per migliorare la sua classificazione.
È Scalari e Vettori Tutto il Senso Giù
Una base tensore di sforzo. (TimothyRias, CC BY 3.0)
Così il K210 è essenzialmente un processore vettoriale. È ottimizzato per il per la matematica di prendere circonvoluzioni e la costruzione di somme ponderate. E ciò avviene molto velocemente. È come una GPU senza hardware per la grafica.
O, al contrario, una GPU è come un AI acceleratore. Anche un low-end scheda grafica o GPU in un vecchio portatile è anche un ‘motore di AI’ che è molte volte più potente di quello che si trova in un K210, NVidia Jetson sistema, e simili embedded “machine learning” o “machine vision” sistemi di puntamento. Con qualche conoscenza di algebra e una GPGPU quadro (o utilizzando GLSL shaders se siete hardcore) e si può anche utilizzare la GPU per tutti coloro ‘AI’ applicazioni. O di fare scienza dei materiali, o qualsiasi altra cosa. È solo matematica.
Questo non È il Futuro?
Purtroppo, la realtà dipinta per noi dai dipartimenti di marketing è molto diverso da quello della realtà al di fuori di quelli le mura aziendali. Nonostante decenni di ricerca ha dato nuovi modi di elaborare le informazioni e classificare ingresso più veloce che mai, non abbiamo un po ‘ di cervello incorporato nell’hardware acquistare.
Ciò che abbiamo è una meravigliosa applicazione dell’algebra vettoriale e processori, l’ultimo dei quali sono diventati più potenti e a prezzi accessibili che mai, in gran parte per gentile concessione di GPU-alimentato lo sviluppo. A causa della scheda grafica vettoriale capacità di elaborazione è aumentato rapidamente, in qualche modo, superando lo sviluppo delle CPU. Scientifica, medica, e molti altri campi questo è stato un enorme vantaggio. Forse processori vettoriali, un giorno, sottendono il primo artificiale intelletti, come si sarebbe probabilmente ottenere chiamato, ma, per ora, si può almeno avere l’auto di sapere se si pensa che ha visto un gatto o un bambino piccolo.
Avete messo AI co-processori per un buon uso? Fateci sapere nei commenti.
social experiment by Livio Acerbo #greengroundit #live https://hackaday.com/2019/11/04/how-smart-are-ai-chips-really/