Nós, uma pequena equipe de desenvolvimento de um dos departamentos da YaKurier, realmente queríamos contribuir para o rápido desenvolvimento do espaço de tecnologias não tripuladas. Comprou um Prius para experimentação, um pouco de periferia, concebeu seu próprio truque com o foco do sistema inteligente, imitando a atenção do motorista. Nós começamos. E o que dizer do próprio sistema de visão computacional inteligente e, com ele, do sistema “subinteligente” que garante a detecção da novidade, ou seja, essa mesma atenção?
TensorFlow ou algo semelhante - pronto? Vários experimentos deixam claro que para casos multifatoriais dinâmicos com rearranjos de matrizes de entrada, muitas subtarefas, incerteza óbvia de muitas classes de dados reconhecidos, a escalabilidade inevitável do sistema durante o desenvolvimento, com o desejo de adicionar as convoluções e camadas de seu próprio autor, a opção é "pronta", por incrível que pareça, requer suor, sangue, orçamentos e frustração por erros nas primeiras etapas, que estragam tudo e que não podem mais ser consertados (exceto com muletas chatas). E como somos um time bastante ingênuo, decidimos jogar do nosso jeito. Há uma opinião de que a questão não está no TensorFlow, mas na tecnologia que ele implementa, e seremos capazes de simplificar, melhorar e mudar algo completamente.
Vamos falar primeiro sobre as abordagens de classificação e reconhecimento de padrões, temos certeza de que você sabe tudo sobre eles, mas onde você pode ir sem o eyeliner. Vamos nos ater a abstrações e visualizações mais humanas em vez de falar em uma linguagem matemática estrita e considerar um caso abstrato de reconhecimento de pepinos e tomates convencionais.
Classificação e reconhecimento de padrões
- , , : ( ) ( ). «», , // , , , , , , x_1 x_2.
, , x_1: (-1), (+1); x_2: (-1), () 1/5 (+1). – , – , . , , , , , 1 {(x_1=0,53@x_2=0,77)} – , 2 {(x_1=-0,51@x_2=-0,82)} – .
, , – – 2 . , , , -, , -, , , , , , , 900 (3030 px) , 900- . , , , (, ).
? , . , , , - ? , , . , . , , : , , , , , :
, 4- , .. N- .
II-
, , . , , , . :
: Ax+By+C=0, A, B C w_1, w_2 -v_1, {x;y} {x_1;x_2 }. , N- – N-1. 0, () , , – « », – « », () – . «», «» «- » , - , (. ). . , , . .
0, «» « », «», «» « » « » 1- .
w (k)/j, , N- – . , , , . , 0 1 .
– , ( , – ):
– , , ( ), Ax2+By2+Cxy+Dx+Ey+F=0, . - , , ( , ). , / , , . .
, - . – , , , – , – . : S-, A-, R- . , , MNIST, : , , :
/ …
! , 1- :
. . -, , , , , (cost function) , , , . , - , «» , , , , , , , , , , , , – ( – , – ):
-, , , , , - , . , , , , , . . . 2-- - :
? , x_1: – (-1), – (+1); x_2: – (-1), 1/5 – (+1). , 2- - , , 900- ? , 1- , – . , . , II- – , , .
. , , , , . . , , .
, , , , .
, , , , : , , , / , , . , , , , , , , , , , - .
. ? -, , , -, , , , . , , . , , , – .
? {0;0;0} {2;0;2} , {2;2;0} – . , , . , , , , , , , .. , . , , , , , , , , .
. , , , , , , , , .
:
w_i – , b_i – , . h. , /, , – .
? , , , , , – . . , , , , , GPU CUDA.
MNIST, 28x28 px. 10 10 , , – . , , .
, , , , , 30÷60 .
, , , . – MNIST, – , – .
, , . , , .
« » .
( « »), , « » « ». , , , , «».
, , , (), , , ( , ). , TensorFlow 2- , , MNIST 2,6%, . , .
MNIST (10 000 ) « ».
, + 25%:
:
:
- ;
- , , , .
:
- , , , , ;
- ;
- , , ;
- .
, , , , , .
Hmm, o que a tecnologia não tripulada mencionada no início tem a ver com isso? Estamos confiantes que é nesta área que a nossa rede inteligente encontrará as suas principais aplicações, permitindo-nos ultrapassar as barreiras existentes associadas à multiplicidade, variabilidade e heterogeneidade na percepção e reconhecimento do ambiente.