Wow, you've basically programmed the Google self-driving car localization
even though you might not quite know it yet.
Let me tell you where we are.
We talked about measurement updates, and we talked about motion.
We called these two routines "sense" and "move."
Now, localization is nothing else but the iteration of "sense" and "move."
There is an initial belief that is tossed into this loop if you.
If you sense first, if comes to the left side.
Then localization cycles through these--move, sense, move, sense, move, sense.
move, sense, move, sense cycle.
Every time the robot moves, it loses information as to where it is.
That's because robot motion is inaccurate.
Every time it senses it gains information.
That is manifest by the fact that after motion,
the probability distribution is a little bit flatter and a bit more spread out.
and after sensing, it's focused a little bit more.
In fact, as a foot note, there is a measure of information called "entropy."
Here is one of the many ways you can write it:
[-Ʃp(xi)log p(xi)]
as the expected log (logarithmic) likelihood of the probability of each grid cell.
Without going into detail, this is a measure of information that the distribution has,
and it can be shown that the update step, the motion step, makes the entropy go down,
and the measurement step makes it go up.
You really losing and gaining information.
I would now love to implement this in our code.
In addition to the 2 measurements we had before, red and green,
I'm going to give you 2 motions--1 and 1,
which means the robot moves right and right again.
Can you compute the posterior distribution if the robot first senses red,
then moves right by 1, then senses green, then moves right again?
Let's start with a uniform prior distribution.
Así que vaya, usted básicamente ha programado la localización el coche que conduce sólo de Google
aunque puede que no lo conozca mucho todavía.
Así que déjenme decirle dónde estamos.
Hablamos acerca de las actualizaciones de medición, y hablamos sobre el movimiento.
Y llamamos a estas dos funciones "sense" y "move".
Ahora, la localización no es otra cosa que la repetición de "sense" y "move".
Hay una creencia inicial cuando se lanza este bucle.
Si lanzamos sense primero, viene de la parte izquierda.
y entonces los ciclos de localización van a través de este movimiento, sense, move, sense, move, sense,
el ciclo , move, sense, move, sense.
Y cada vez que el robot se mueve, pierde información en cuanto a dónde está.
Eso es porque el movimiento del robot es inexacto.
Y cada vez que sensa adquiere información.
Que se manifiesta por el hecho de que después del movimiento,
la distribución de probabilidad es un poco más plana y un poco más hacia fuera.
y después de sensar, se centra un poco más.
De hecho, como una nota de pie, es una medida de información, denominada "entropía".
Y está una de las muchas maneras que usted puede escribirlo,
como la probabilidad local esperada de la probabilidad de cada celda del vector.
Y sin entrar en detalles, esta es una medida de información que tiene la distribución,
y se puede demostrar que el paso de actualización, el paso de movimiento, hace que la entropía vaya hacía abajo,
y el paso de medición la hace subir.
Así que usted está realmente perdiendo y ganando información.
Ahora me gustaría implementar esto en nuestro código.
Así que además de las 2 mediciones que teníamos antes, rojo y verde,
Yo te voy a dar dos movimientos, 1 y 1,
lo que significa que el robot se mueve hacia la derecha y a la derecha de nuevo.
¿Se puede calcular la distribución posterior si el robot primero detecta rojo,
a continuación, se mueve a la derecha por 1, entonces detecta verde y luego se mueve a la derecha otra vez?
Y vamos a empezar con una distribución previa uniforme.
Wow! In pratica hai programmato la localizzazione della self-driving Google car
anche se forse non te ne rendi ancora conto.
Ti spiego dove siamo.
Abbiamo parlato di aggiornamenti dopo la misura e abbiamo parlato di spostamenti.
Abbiamo chiamato queste due routine "sense" e "move".
Ora, la localizzazione non è altro che l'iterazione di "sense" e "move".
C'è un belief iniziale che viene buttato in questo loop.
Se come prima cosa esegui una misura, si sposta a sinistra.
Poi la localizzazione cicla tra questi: move, sense, move, sense, move, sense,
move, sense, move, sense ciclicamente.
Ogni volta che il robot si sposta, perde informazione sul dove si trova,
perché lo spostamento dei robot non è accurato.
Ogni volta che misura, acquisisce informazione.
Questo si manifesta nel fatto che dopo lo spostamento,
la distribuzione di probabilità è un po' più piatta e più spalmata,
e dopo la misura è un po' più focalizzata.
In realtà, aggiungo una nota: c'è una misura dell'informazione chiamata "entropia".
Questo è uno dei tanti modi in cui la puoi scrivere
[-Ʃp(xi)log p(xi)]
ossia come la log-verosimiglianza attesa della probabilità di ciascuna cella.
Senza scendere troppo nel dettaglio, è una misura dell'informazione contenuta nella distribuzione,
e si può mostrare che il passo di aggiornamento dopo lo spostamento, fa scendere l'entropia
e la misura la fa salire
In pratica perdi e acquisisci informazione.
Adesso vorrei implementare questo nel nostro codice.
Oltre alle due misure che avevamo prima, "red" e "green",
Ti do due spostamenti: 1 e 1,
il che significa che il robot si muove a destra e poi di nuovo a destra.
Sai calcolare la distribuzione a posteriori se il robot misura prima "red"
poi si muove a destra di 1, poi misura "green" poi si muove di nuovo a destra?
Partiamo con una distribuzione a priori uniforme.
Google自動運転車の位置推定を
プログラミングできました
まだ実感はないかもしれませんが
今何をしているか教えましょう
観測更新のあと動作について話しました
これら2つをsenseとmoveと呼びます
位置推定はsenseとmoveの反復に他なりません
初期信念はこのループに放り込まれます
最初に認識を実行すると左側に来ます
位置推定は次の動作を順番に実行します
move、sense、move、sense、move、sense
move、sense、move、senseのサイクルです
ロボットは動く度に今いる場所の情報を失います
動作が不確実だからです
認識する度に情報を得ます
これは次の事実を見れば明確です
動作後は確率分布が少しだけ平らになり広がります
そして認識したあとの確率分布は狭まります
補足ですがエントロピーと呼ばれる
情報量を表す尺度があります
たくさんある方法の1つが
[-Ʃp(Xi)log p(Xi)]で
それぞれのグリッドセルにおける
確率の期待値のlogを表しています
詳細は省略しますが
これがその分布が持っている情報量の尺度です
更新ステップや動作ステップでは
エントロピーが小さくなり
観測ステップでは大きくなります
私たちは情報を失ったり得たりしているのです
では これをコードに実装したいと思います
以前行った赤と緑の2種類の観測に加え
2つの動作を与えます 1と1です
つまりロボットは左右にもう一度動くのです
ロボットが初めに赤を認識した場合の
事後分布を計算できますか?
赤を認識したあと右に1動き緑を認識し
右にまた動いた場合の
事後分布を求めてください
先ほどの一様分布から始めましょう
Uau, praticamente programaste a localização usada pelo carro da Google
embora ainda não o saibas.
Deixa-me dizer-te a nossa situação.
Falámos de actualização com medidas e falámos de movimento.
Estas duas rotinas chamam-se "sense" e "move."
Bem, a localização é nada mais do que a iteração de "sense" e "move."
Há uma crença inicial que é atirada para este ciclo.
Se medires primeiro, vai para a esquerda.
Então a localização itera nestes ciclos -- move, sense, move, sense, move, sense.
move, sense, move, sense.
Sempre que o robot se move, perde informação sobre a posição correcta.
Porque o movimento do robot é impreciso.
Sempre que mede (observa), ganha informação.
Isto manifesta-se no facto de, após o movimento
a distribuição de probabilidade ficar mais aplanada.
E depois de medir, ficar um pouco mais focada, com bossas maiores.
Deixa-me dizer-te, em nota de rodapé, que há uma medida de informação, chamada "entropia."
Esta é uma das muitas formas como a podes escrever:
[-Ʃp(xi)log p(xi)]
como a verosimilhança logarítmica esperada da probabilidade de cada célula.
Sem entrar em detalhes, esta é a medida da informação contida na distribuição,
e pode ser mostrado que fazer um movimento faz a entropia baixar
e fazer uma observação faz a entropia aumentar.
Na realidade, perdes e ganhas informação.
Eu adoraria implementar isto no nosso código.
Adicionalmente às medidas que já temos, vermelho e verde,
dou-te dois movimentos -- 1 e 1,
o que signiofica que o robot se move duas vezes para a direita.
És capaz de calcular a distribuição a posteriori se o robot primeiro medir vermelho,
depois move-se 1 passo à direita, depois observa verde e finalmente move-se de novo para a direita?
Vamos partir de uma distribuição uniforme a priori.