behavior planning——15.cost function design weightTweaking
Designing cost functions is difficult and getting them all to cooperate to produce reasionable vehicle behavior is hard.
some of the difficulties associated with cost function design include solving new problems without unsolving old ones.
when you are working on a self-driving car,you may find that the vehicle is behaving reasonably well except for some
particular situations.Maybe it is not being aggressive enough about making left turns at traffic lights.
So, in an effort to solve this problem, you either add new cost funcions, tweak existing ones, or modify weights.But every time you do, there is chance that you will introduce some breaking change into something that already works.
in pracice ,we solve this throuth regression testing, where we define some set of situations, Then ,whenever we make a change, we simulate the viheicle in all of our test cases and make sure that it still behaves expected.
We won't say more about testing here, but it is an important part of developing software in a safety-cricical application.
The next difficulty is balancing costs of drastically different magnitudes.

Because, yes ,we want to get to our destination efficiently, but if we are in a situation where safety is an issue,
we want to solve that problem and not think about efficiency at all. one way to do that is to have weights which reflect
the type of problem the cost function addresses. so we want to most heavily penalize any behavior which simply is not possible due to physics, then we want to think about safety ,legality ,comfort.

And only once those are satisfied do we want to think about efficiency. But we alse may want to adjust the relative importance if these weights depending on situation. If a light turns red ,for example,legality becomes a much more relevant
concern than when we engage in normal highway driving . this leads us to out last difficulty, reasoning about individual cost functions. Ideally, each cost function will serve a very specific responsibility.
which is something we do not do in our earlier example of s speed cost function.
We were trying to balance out desire to drive quickly, which has to do with efficiency, with out desire to not exceed the speed limit , which is legality. In practice, we might want to difine several cost functions associated with vehicle speed.
In which case we might have a binary cost function which just checks to see if we are breaking the speed limit and the continuous cost function which pulls us towards out target speed.

By assigning each cost function to a very specific role, like safety versus legality versus efficiency, we can then standardize the output of all cost functions to be between -1 and 1. Additionlly, It is helpful to paraetrize whenever possible.
This allows us to use some parameter optimization technique like gradient descent along with our set of regression tests to
programmatically tweak our cost functions. Finally ,thinking in terms of vehicle state is helpful. The things we can indirestly
control about our vehicle are it is position, velocity, and acceleration. It can be helpful to keep these in mind when coming up with cost functions. Let is walk through an example.
Say we want to think about the following classer of cost functions.

And to make it easier, to keep everything straight,let is think in terms of position, velocity ,and acceleration.
The binary "Are we exceeding the speed? "cost functin would go here, then the cost function that wanted to keep us close
to the speed limit would go here. and now ,instead of being that weird discontinuous gragh we made earlier, this could just be some parabola like this.


And even though the cost of this is low even for speeds that exceed the speed limit, that is OK because we have our
binary cost function which would prevent that behavior. Continuing to think about speed, we also might want to try to
drive at a speed that is close to the average speed of traffic, for safety reasons ,even if that speed is above or below the
speed limit. And that would go here.

In the position column, we would have an obvious feasibility concern which is collision avoidance.

We can not drive somewhere if there is already a car there. Then, for safety reasons, wo would want the buffer distance,

which tries to keep us far from other vehicles, and the cost function which checks to make sure we are driving on the road
near the center of our lane and in a lane that is close to our goal lane.

For acceleration, we would first want to make sure we only consider behaviors that the car can execute,

Make sure we only consider behaviors that the car can execute, and then we would want to avoid having any rapid changes in acceleration because those are perceived as uncomfortable.

This is also known as jerk as which you will learn more about in the next lesson.
consider a merge onto a highway, for example.

This is a potentially dangerous situation where we really want to get up to traffic speed as quickly as possible.

So this cost function may become more relevant than it mormally is. But we alse want to make sure that we yield if there
is not really a gap, so we want to make sure this cost funcion and this one are weighted sufficiently high.

and we can compare these merge priorities to a different situation.
for examle, a car approaching a green light that suddenly turns yellow.

In this situation, we would probably want to boost the weights associated with legality and would probably need to
add a whole new cost function for obeying traffic rules.
now that do not fall neatly into the position, velocity ,or acceleration classes, so I will just put it over here.
If this is all starting to feel like it is getting pretty complex ,well,you are right.
It is pretty hard to aviod this exploding complexity when using finite state machines.
Partially that is because of the finite state machine itself, but we are also trying to solve a very hard problem and
some complexity is unavoidable no matter what solution approach you take.

behavior planning——15.cost function design weightTweaking的更多相关文章
- behavior planning——13. implement a cost function in C++
In the previous quizzes, you designed a cost function to choose a lane when trying to reach a goal i ...
- behavior planning——11 create a cost function speed penalty
A key part of getting transitions to happen when we want them to is the design of reasonable cost ...
- behavior planning——14.implement a cost function in C++
n most situations, a single cost function will not be sufficient to produce complex vehicle behavior ...
- behavior planning——12.example cost funtion -lane change penalty
In the image above, the blue self driving car (bottom left) is trying to get to the goal (gold sta ...
- Model Representation and Cost Function
Model Representation To establish notation for future use, we’ll use x(i) to denote the “input” vari ...
- 吴恩达机器学习笔记 - cost function and gradient descent
一.简介 cost fuction是用来判断机器预算值和实际值得误差,一般来说训练机器学习的目的就是希望将这个cost function减到最小.本文会介绍如何找到这个最小值. 二.线性回归的cost ...
- loss function与cost function
实际上,代价函数(cost function)和损失函数(loss function 亦称为 error function)是同义的.它们都是事先定义一个假设函数(hypothesis),通过训练集由 ...
- 【caffe】loss function、cost function和error
@tags: caffe 机器学习 在机器学习(暂时限定有监督学习)中,常见的算法大都可以划分为两个部分来理解它 一个是它的Hypothesis function,也就是你用一个函数f,来拟合任意一个 ...
- 逻辑回归损失函数(cost function)
逻辑回归模型预估的是样本属于某个分类的概率,其损失函数(Cost Function)可以像线型回归那样,以均方差来表示:也可以用对数.概率等方法.损失函数本质上是衡量”模型预估值“到“实际值”的距离, ...
随机推荐
- GIT → 03:Git的下载和安装
3.1 Git 下载 官网:https://git-scm.com/ 软件下载地址:https://git-scm.com/downloads 根据自己电脑版本下载对应版本: 3.2 Git 安装 3 ...
- 老大让我看baidu他们的查公交是怎么做的,我就看了
突然发现,baidu的查公交,Json请求都很乱 朝阳公园西门3号门 人民大学 较快捷 http://map.baidu.com/?newmap=1&reqflag=pcmap&biz ...
- Leetcode61. Rotate List旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4-& ...
- http响应头信息
HTTP 响应头信息 HTTP请求头提供了关于请求,响应或者其他的发送实体的信息. 在本章节中我们将具体来介绍HTTP响应头信息. 应答头 说明 Allow 服务器支持哪些请求方法(如GET.POST ...
- 上传同步github
…or create a new repository on the command line echo "# testproject" >> README.md ...
- Ubuntu上更换163源 - Mars Loo的博客
转载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/50865895 先备份源/etc/apt/sources.list为source ...
- TP5中隐藏入口文件的问题 - CSDN博客
使用phpstudy和linux部署的时候 tp5中的官方说明是在入口文件的同级目录下添加一个.htaccess文件 文件内容如下: <IfModule mod_rewrite.c>Opt ...
- 高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用
在消息队列中,当消费者去消费消息的时候,无论是通过 pull 的方式还是 push 的方式,都可能会出现大批量的消息突刺.如果此时要处理所有消息,很可能会导致系统负载过高,影响稳定性.但其实可能后面几 ...
- 词袋和 TF-IDF 模型
做文本分类等问题的时,需要从大量语料中提取特征,并将这些文本特征变换为数值特征.常用的有词袋模型和TF-IDF 模型 1.词袋模型 词袋模型是最原始的一类特征集,忽略掉了文本的语法和语序,用一组无序的 ...
- 六.随机神经网络Boltzmann(玻尔兹曼机)
Hopfield网络具有最优计算功能,然而网络只能严格按照能量函数递减方式演化,很难避免伪状态的出现,且权值容易陷入局部极小值,无法收敛于全局最优解. 如果反馈神经网络的迭代过程不是那么死板,可以在一 ...