ਸਵੈ-ਚਾਲਿਤ ਕਾਰਾਂ ਸਾਲਾਂ ਤੋਂ ਸਖ਼ਤ ਨਿਰਦੇਸ਼ਾਂ ਦੇ ਸਮੂਹਾਂ ਦੀ ਪਾਲਣਾ ਕਰ ਰਹੀਆਂ ਹਨ। ਇੰਜੀਨੀਅਰਾਂ ਨੇ ਹਜ਼ਾਰਾਂ 'ਜੇ-ਤਾਂ' (if-then) ਕਥਨ ਲਿਖੇ। ਜੇਕਰ ਕੋਈ ਪੈਦਲ ਚੱਲਣ ਵਾਲਾ ਰਸਤਾ ਪਾਰ ਕਰਦਾ ਹੈ, ਤਾਂ ਬ੍ਰੇਕ ਲਗਾਓ। ਜੇਕਰ ਲਾਈਟ ਲਾਲ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਰੁਕ ਜਾਓ। ਜੇਕਰ ਲੇਨ ਮੁੜਦੀ ਹੈ, ਤਾਂ ਸਟੀਅਰਿੰਗ ਮੋੜੋ। ਇਹ ਪਹੁੰਚ ਉਦੋਂ ਕੰਮ ਕਰਦੀ ਹੈ ਜਦੋਂ ਦੁਨੀਆ ਬਿਲਕੁਲ ਉਮੀਦ ਅਨੁਸਾਰ ਚੱਲਦੀ ਹੈ, ਪਰ ਅਸਲ ਡਰਾਈਵਿੰਗ ਬਹੁਤ ਉਲਝੀ ਹੋਈ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਨਿਯਮ-ਪੁਸਤਕ ਹਰ ਚਿੱਕੜ ਭਰੇ ਪਿਛਲੇ ਰਸਤੇ, ਅਣਚਿੰਨ੍ਹੇ ਚੌਕ, ਜਾਂ ਟ੍ਰੈਫਿਕ ਵਿੱਚੋਂ ਨਿਕਲਦੇ ਸਾਈਕਲ ਸਵਾਰ ਨੂੰ ਕਵਰ ਨਹੀਂ ਕਰ ਸਕਦੀ। ਜਦੋਂ ਵਾਤਾਵਰਣ ਬਦਲਦਾ ਹੈ, ਤਾਂ ਸਖ਼ਤ ਹੁਕਮ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦੇ ਹਨ। ਸਾਨੂੰ ਅਜਿਹੇ ਸਿਸਟਮਾਂ ਦੀ ਲੋੜ ਹੈ ਜੋ ਸਿਰਫ਼ ਇੱਕ ਚੈੱਕਲਿਸਟ ਦੀ ਪਾਲਣਾ ਕਰਨ ਦੀ ਬਜਾਏ ਇਹ ਸਿੱਖਣ ਕਿ ਚੰਗੀ ਡਰਾਈਵਿੰਗ ਦਾ ਅਰਥ ਕੀ ਹੈ।
ਹਾਰਡ-ਕੋਡਡ ਨਿਯਮਾਂ ਤੋਂ ਪਰੇ
ਰਵਾਇਤੀ ਖੁਦਮੁਖਤਿਆਰ (autonomous) ਸਿਸਟਮ ਸਪੱਸ਼ਟ ਪ੍ਰੋਗਰਾਮਿੰਗ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਉਹ ਵੇਅਰਹਾਊਸ ਫਲੋਰ, ਸਮਰਪਿਤ ਲੇਨਾਂ, ਅਤੇ ਅਨੁਮਾਨਿਤ ਮੌਸਮ ਵਰਗੇ ਬੰਦ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਵਧੀਆ ਕੰਮ ਕਰਦੇ ਹਨ। ਜਨਤਕ ਸੜਕਾਂ 'ਤੇ, ਉਹੀ ਤਰਕ ਅਕਸਰ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ।
ਉਸਾਰੀ ਖੇਤਰ (construction zone) ਦੀ ਕਲਪਨਾ ਕਰੋ ਜਿੱਥੇ ਹੱਥ ਨਾਲ ਲਿਖੇ ਚਿੰਨ੍ਹ ਹਨ, ਕੋਨ ਅਜੀਬ ਕੋਣਾਂ 'ਤੇ ਖਿੰਡੇ ਹੋਏ ਹਨ, ਅਤੇ ਇੱਕ ਫਲੈਗਮੈਨ ਟ੍ਰੈਫਿਕ ਨੂੰ ਇਸ਼ਾਰਾ ਕਰ ਰਿਹਾ ਹੈ। ਇੱਕ ਨਿਯਮ-ਅਧਾਰਤ ਸਿਸਟਮ ਇੱਕ ਸਪੱਸ਼ਟ ਟ੍ਰੈਫਿਕ ਸਿਗਨਲ ਚਾਹੁੰਦਾ ਹੈ। ਉਹ ਸਿਰਫ਼ ਹਾਹਾਕਾਰ ਦੇਖਦਾ ਹੈ। "ਸੰਤਰੀ ਵੈਸਟ ਪਹਿਨ ਕੇ ਇਸ਼ਾਰਾ ਕਰਦੇ ਵਿਅਕਤੀ" ਲਈ ਕਿਸੇ ਖਾਸ ਨਿਯਮ ਤੋਂ ਬਿਨਾਂ, ਕਾਰ ਉੱਥੇ ਹੀ ਰੁਕ ਜਾਂਦੀ ਹੈ ਜਾਂ ਗਲਤ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦੀ ਹੈ। ਮਨੁੱਖੀ ਡਰਾਈਵਰ ਇਸ ਨੂੰ ਤੁਰੰਤ ਸੰਭਾਲ ਲੈਂਦੇ ਹਨ ਕਿਉਂਕਿ ਅਸੀਂ ਸਿਰਫ਼ ਪਿਕਸਲ ਨੂੰ ਨਹੀਂ, ਸਗੋਂ ਇਰਾਦੇ ਅਤੇ ਸੰਦਰਭ ਨੂੰ ਸਮਝਦੇ ਹਾਂ। ਅਸੀਂ ਦ੍ਰਿਸ਼ ਨੂੰ ਪੜ੍ਹਦੇ ਹਾਂ। ਮਸ਼ੀਨ ਨੂੰ ਵੀ ਇਹੀ ਕਰਨ ਲਈ ਸਿਖਾਉਣ ਲਈ ਇੱਕ ਬੁਨਿਆਦੀ ਤੌਰ 'ਤੇ ਵੱਖਰੇ ਪਹੁੰਚ ਦੀ ਲੋੜ ਹੈ।
ਦੇਖ ਕੇ ਸਿੱਖਣਾ: Inverse Reinforcement Learning
ਇੱਥੇ ਹੀ Inverse Reinforcement Learning ਖੇਡ ਨੂੰ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਸਟੈਂਡਰਡ ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ (reinforcement learning) ਵਿੱਚ, ਤੁਸੀਂ AI ਨੂੰ ਇੱਕ ਟੀਚਾ ਅਤੇ ਇੱਕ ਰਿਵਾਰਡ ਫੰਕਸ਼ਨ ਦਿੰਦੇ ਹੋ। ਮੰਜ਼ਿਲ 'ਤੇ ਜਲਦੀ ਪਹੁੰਚੋ, ਅੰਕ ਪ੍ਰਾਪਤ ਕਰੋ। ਕਿਨਾਰੇ ਨਾਲ ਟਕਰਾਓ, ਅੰਕ ਗੁਆਓ। ਏਜੰਟ ਉਦੋਂ ਤੱਕ ਭਟਕਦਾ ਰਹਿੰਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਉਹ ਅਜਿਹੀ ਨੀਤੀ ਨਹੀਂ ਲੱਭ ਲੈਂਦਾ ਜੋ ਉਸਦੇ ਸਕੋਰ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰ ਸਕੇ। ਪਰ ਡਰਾਈਵਿੰਗ ਸਿਰਫ਼ ਕੁਸ਼ਲਤਾ ਬਾਰੇ ਨਹੀਂ ਹੈ। ਇਹ ਆਰਾਮ, ਸੁਰੱਖਿਆ, ਕਾਨੂੰਨੀਤਾ ਅਤੇ ਸਮਾਜਿਕ ਰੀਤੀ-ਰਿਵਾਜਾਂ ਬਾਰੇ ਹੈ। "ਇੱਕ ਸਾਵਧਾਨ ਪਰ ਸਮਰੱਥ ਮਨੁੱਖ ਵਾਂਗ ਚਲਾਓ" ਲਈ ਇੱਕ ਗਣਿਤਿਕ ਰਿਵਾਰਡ ਲਿਖਣਾ ਲਗਭਗ ਅਸੰਭਵ ਹੈ।
Inverse Reinforcement Learning ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਉਲਟਾ ਦਿੰਦਾ ਹੈ। AI ਨੂੰ ਟੀਚਾ ਦੇਣ ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਉਸਨੂੰ ਉਦਾਹਰਣਾਂ ਦਿਖਾਉਂਦੇ ਹੋ। ਐਲਗੋਰਿਦਮ ਮਨੁੱਖੀ ਡਰਾਈਵਿੰਗ ਦੇ ਘੰਟਿਆਂ ਬੱਧੀ ਫੁਟੇਜ ਦੇਖਦਾ ਹੈ। ਇਹ ਦੇਖਦਾ ਹੈ ਕਿ ਮਨੁੱਖ ਕਦੋਂ ਹੌਲੀ ਹੁੰਦਾ ਹੈ, ਲੇਨ ਬਦਲਦਾ ਹੈ, ਜਾਂ ਮਰਜ ਹੋ ਰਹੇ ਟਰੱਕ ਨੂੰ ਰਸਤਾ ਦਿੰਦਾ ਹੈ। ਇਹ ਸਿਰਫ਼ ਸਟੀਅਰਿੰਗ ਦੇ ਸਹੀ ਕੋਣ ਨੂੰ ਯਾਦ ਨਹੀਂ ਕਰਦਾ। ਇਹ ਇਹ ਸਮਝਣ ਲਈ ਪਿੱਛੇ ਵੱਲ ਕੰਮ ਕਰਦਾ ਹੈ ਕਿ ਅਜਿਹਾ ਕਿਉਂ ਕੀਤਾ ਗਿਆ। ਸ਼ਾਇਦ ਡਰਾਈਵਰ ਇਸ ਲਈ ਹੌਲੀ ਹੋ ਗਿਆ ਕਿਉਂਕਿ ਇੱਕ ਬੱਚਾ ਫੁੱਟਪਾਥ ਦੇ ਨੇੜੇ ਖੜ੍ਹਾ ਸੀ, ਭਾਵੇਂ ਕਿ ਸੜਕ ਕਾਨੂੰਨੀ ਤੌਰ 'ਤੇ ਸਾਫ਼ ਸੀ। AI ਲੁਕਿਆ ਹੋਇਆ ਰਿਵਾਰਡ ਕੱਢ ਲੈਂਦਾ ਹੈ: ਪੈਦਲ ਚੱਲਣ ਵਾਲੇ ਦੀ ਨੇੜਤਾ ਮਾਇਨੇ ਰੱਖਦੀ ਹੈ, ਭਾਵੇਂ ਉੱਥੇ ਕੋਈ ਕ੍ਰਾਸਵਾਕ ਨਾ ਹੋਵੇ।
ਮਨੁੱਖ ਨੂੰ ਇੱਕ ਮਾਹਰ ਵਜੋਂ ਮੰਨ ਕੇ, ਜਿਸਨੇ ਪਹਿਲਾਂ ਹੀ ਆਪਟੀਮਾਈਜ਼ੇਸ਼ਨ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰ ਲਿਆ ਹੈ, ਐਲਗੋਰਿਦਮ ਉਸ ਲਾਗਤ ਫੰਕਸ਼ਨ (cost function) ਨੂੰ ਪ੍ਰਾਪਤ ਕਰ ਲੈਂਦਾ ਹੈ ਜਿਸ ਨੂੰ ਉਹ ਮਾਹਰ ਘੱਟ ਕਰ ਰਿਹਾ ਹੈ। ਇੱਕ ਵਾਰ ਜਦੋਂ ਸਿਸਟਮ ਅੰਡਰਲਾਈਨ ਪਸੰਦਾਂ ਨੂੰ ਸਮਝ ਲੈਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਅਚਾਨਕ ਰੁਕਣ ਦੀ ਬਜਾਏ ਨਰਮ ਬ੍ਰੇਕਿੰਗ ਨੂੰ ਤਰਜੀਹ ਦੇਣਾ ਜਾਂ ਮੋੜ ਕੱਟਣ ਦੀ ਬਜਾਏ ਲੇਨ ਦੇ ਕੇਂਦਰ ਵਿੱਚ ਰਹਿਣਾ, ਤਾਂ ਇਹ ਆਮ ਵਰਤੋਂ (generalize) ਕਰ ਸਕਦਾ ਹੈ। ਜਦੋਂ ਇਹ ਕਿਸੇ ਦੂਜੇ ਸ਼ਹਿਰ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਸੜਕ 'ਤੇ ਪਹੁੰਚਦਾ ਹੈ, ਤਾਂ ਇਹ ਲਗਭਗ ਜਾਣਦਾ ਹੈ ਕਿ ਇੱਕ ਚੰਗਾ ਡਰਾਈਵਰ ਉਸ ਅਣਜਾਣ ਮਾਹੌਲ ਵਿੱਚ ਕਿਸ ਚੀਜ਼ ਨੂੰ ਮਹੱਤਵ ਦੇਵੇਗਾ।
ਚੋਣਾਂ ਕਰਨਾ: Deep Q-Networks
ਰਿਵਾਰਡਾਂ ਨੂੰ ਸਮਝਣਾ ਸਿਰਫ਼ ਅੱਧੀ ਜੰਗ ਹੈ। ਇੱਕ ਕਾਰ ਨੂੰ ਅਜੇ ਵੀ ਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। Deep Q-Networks ਸਭ ਤੋਂ ਵਧੀਆ ਕਾਰਵਾਈ ਚੁਣਨ ਲਈ ਸੰਵੇਦੀ ਡੇਟਾ (sensory data) ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਕੇ ਫੈਸਲੇ ਲੈਣ ਦਾ ਕੰਮ ਸੰਭਾਲਦੇ ਹਨ।
ਕਲਾਸਿਕ Q-learning ਦਹਾਕਿਆਂ ਤੋਂ ਮੌਜੂਦ ਹੈ। ਇੱਕ ਏਜੰਟ ਇੱਕ ਖਾਸ ਸਥਿਤੀ ਵਿੱਚ ਇੱਕ ਖਾਸ ਕਾਰਵਾਈ ਕਰਨ ਦੀ ਕੀਮਤ ਸਿੱਖਦਾ ਹੈ। ਮੁਸ਼ਕਲ ਇਹ ਹੈ ਕਿ ਅਸਲ ਡਰਾਈਵਿੰਗ ਸਥਿਤੀਆਂ ਲਗਭਗ ਅਨੰਤ ਹਨ। ਕੈਮਰਾ ਫੀਡ ਕੋਈ ਸਧਾਰਨ ਗਰਿੱਡ ਵਰਗੀ ਦੁਨੀਆ ਨਹੀਂ ਹੈ। ਇਹ ਸੈਕੰਡ ਦੇ ਸੱਠ ਫਰੇਮਾਂ 'ਤੇ ਬਦਲਦੇ ਲੱਖਾਂ ਪਿਕਸਲ ਹਨ, ਜੋ ਲਿਡਾਰ ਪੁਆਇੰਟ ਕਲਾਉਡਸ, ਸਪੀਡ ਰੀਡਿੰਗਜ਼, ਅਤੇ GPS ਵੈਕਟਰਾਂ ਦੇ ਨਾਲ ਮਿਲੇ ਹੋਏ ਹਨ।
Deep Q-Networks ਇੱਕ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਨੂੰ ਫੰਕਸ਼ਨ ਅਪ੍ਰੌਕਸੀਮੇਟਰ (function approximator) ਵਜੋਂ ਵਰਤ ਕੇ ਇਸ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਨ। ਨੈੱਟਵਰਕ ਕੱਚਾ ਸੰਵੇਦੀ ਡੇਟਾ ਲੈਂਦਾ ਹੈ ਅਤੇ ਹਰ ਸੰਭਵ ਕਾਰਵਾਈ ਲਈ ਇੱਕ ਅਨੁਮਾਨਿਤ ਮੁੱਲ ਦਿੰਦਾ ਹੈ: ਖੱਬੇ ਸਟੀਅਰਿੰਗ ਮੋੜੋ, ਹੌਲੀ ਬ੍ਰੇਕ ਲਗਾਓ, ਤੇਜ਼ ਕਰੋ, ਰਸਤਾ ਬਣਾਈ ਰੱਖੋ। ਹਰ ਸਥਿ
ਕੋਈ ਵੀ ਇੱਕ ਵਿਧੀ ਇਕੱਲੀ ਇੱਕ ਸਮਰੱਥ ਡਰਾਈਵਰ ਨਹੀਂ ਬਣਾ ਸਕਦੀ। Decision engine ਤੋਂ ਬਿਨਾਂ Inverse Reinforcement Learning ਸਿਰਫ਼ ਇੱਕ ਨਿਰੀਖਕ ਹੈ। ਇਹ ਜਾਣਦਾ ਹੈ ਕਿ ਇਨਸਾਨ ਮੁਲਾਇਮ ਰਫ਼ਤਾਰ ਨੂੰ ਮਹੱਤਵ ਦਿੰਦੇ ਹਨ ਪਰ ਇਹ ਸਟੀਅਰਿੰਗ ਨੂੰ ਨਹੀਂ ਛੂਹ ਸਕਦਾ। ਇੱਕ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਤਿਆਰ ਕੀਤੇ ਗਏ reward function ਤੋਂ ਬਿਨਾਂ Deep Q-Network ਗਲਤ ਚੀਜ਼ ਲਈ optimize ਕਰਦਾ ਹੈ। ਇਹ ਸ਼ਾਇਦ ਇਹ ਪਾਇਆ ਕਿ ਗੋਲ-ਗੋਲ ਘੁੰਮਣਾ ਟੱਕਰਾਂ ਤੋਂ ਬਚਣ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਹੈ, ਜਿਸ ਨਾਲ ਕਿਤੇ ਵੀ ਨਾ ਪਹੁੰਚਦੇ ਹੋਏ ਵੀ ਉੱਚ ਸਕੋਰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਜਦੋਂ ਇਹਨਾਂ ਨੂੰ ਮਿਲਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਲੂਪ ਬਣਾਉਂਦੇ ਹਨ। Inverse Reinforcement Learning ਮਨੁੱਖੀ ਮਾਹਰਾਂ ਨੂੰ ਦੇਖਦਾ ਹੈ ਅਤੇ ਇੱਕ ਅਜਿਹਾ reward function ਤਿਆਰ ਕਰਦਾ ਹੈ ਜੋ ਅਸਲ ਦੁਨੀਆ ਦੀਆਂ ਤਰਜੀਹਾਂ ਨੂੰ ਸਮਝਦਾ ਹੈ। ਫਿਰ Deep Q-Network ਉਸ reward function ਦੀ ਵਰਤੋਂ ਕਰਕੇ trial and error ਰਾਹੀਂ ਆਪਣੇ ਆਪ ਨੂੰ ਸਿਖਲਾਈ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਕਾਰਵਾਈਆਂ ਚੁਣਨ ਲਈ ਲਾਈਵ ਸੈਂਸਰ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। AI ਨਿਰੀਖਣ ਰਾਹੀਂ ਵੀ ਗੁੰਝਲਦਾਰ ਵਿਵਹਾਰ ਸਿੱਖਦਾ ਹੈ ਅਤੇ ਅਭਿਆਸ ਰਾਹੀਂ ਵੀ।
ਹਾਈਵੇਅ ਮਰਜ (highway merge) ਦੀ ਉਦਾਹਰਣ ਲਓ। Inverse Reinforcement Learning ਕੰਪੋਨੈਂਟ ਨੇ ਇਹ ਅੰਦਾਜ਼ਾ ਲਗਾਇਆ ਹੈ ਕਿ ਮਨੁੱਖੀ ਡਰਾਈਵਰ ਰਫ਼ਤਾਰ ਨੂੰ ਮੇਲ ਕਰਨ ਅਤੇ ਗੈਪ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨ ਵਿਚਕਾਰ ਸੰਤੁਲਨ ਬਣਾਉਂਦੇ ਹਨ। Deep Q-Network ਇਸ ਬਾਰੀਕ cost signal ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ simulation ਵਿੱਚ ਦਸ ਹਜ਼ਾਰ ਵਾਰ ਮਰਜ ਕਰਨ ਦਾ ਅਭਿਆਸ ਕਰਦਾ ਹੈ। ਇਹ ਸਿੱਖਦਾ ਹੈ ਕਿ ਕਦੋਂ ਰਫ਼ਤਾਰ ਵਧਾਉਣੀ ਹੈ, ਕਦੋਂ ਪਿੱਛੇ ਰਹਿਣਾ ਹੈ, ਅਤੇ ਕਦੋਂ ਗੈਪ ਬਹੁਤ ਘੱਟ ਹੈ। ਨਤੀਜਾ ਕੋਈ ਅਜਿਹਾ ਤੋਤਾ ਨਹੀਂ ਹੈ ਜੋ ਮਨੁੱਖੀ ਹਰਕਤਾਂ ਦੀ ਨਕਲ ਕਰ ਰਿਹਾ ਹੋਵੇ। ਇਹ ਇੱਕ ਅਜਿਹਾ ਸਿਸਟਮ ਹੈ ਜਿਸਨੇ ਤਰਕ ਨੂੰ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਅਪਣਾ ਲਿਆ ਹੈ ਅਤੇ ਜਦੋਂ ਹਾਈਵੇਅ ਗਿੱਲਾ ਹੋਵੇ ਜਾਂ ਗੈਪ ਆਮ ਨਾਲੋਂ ਘੱਟ ਹੋਵੇ, ਤਾਂ ਇਹ ਆਪਣੇ ਆਪ ਨੂੰ ਢਾਲ ਸਕਦਾ ਹੈ।
