浅谈Cost Function

杂谈 Cost Function

cost function 又称为代价函数,又记为loss。本文选取了一些有意思例子来介绍。

先看看我们学过课程中的:

最优化: 调整 $w$ 拟合f(x) loss=均方误差

模式识别: 分类器,以SVM为例,loss= 经验误差 - 几何边缘区 (即在经验误差最小的基础上,尽可能增大分类间隔。减法只是便于理解的一种记号)

人工智能概论: A*算法中的 f=h+g;

1 遗传算法:

1.1 画图

1

Win下编译好的文件 见这里, 需要windows .net framework 4.0 环境。360等杀毒软件可能会拦截。

可以在 遗传算法图片特效 在线使用。

loss应该定义成画的图和原图的差距。差距越小则loss函数越小,遗传算法可以通过收敛到最优解来使图形越来越准确。

原理说明见:http://songshuhui.net/archives/10462


1.2 解TSP(旅行商问题)

TravelingSalesmanUSCapitals2

loss=路径总长度。越短越好。

2 蚁群算法:

http://video.tudou.com/v/XMTc4NjQzMDAxNg==.html

实验很简单,用黏菌避光的特性,用光斑模拟海岸线和地形,在东京附近重要的地铁站对应的位置放上食物:
这是只有海岸线的时候,黏菌铺张、求出最省连通路径的过程图:

3

下面是用光的强度模拟水域和地势的结果,灰度越高代表光强度越弱(海拔在海平面以上同时越低)。

2

专业的建模分析就不赘述了,科学家最后的原理是黏菌形成的微网络当中,“远路”携带的营养运送过程中消耗大,因而流速低,直径逐渐收缩;而“捷径”流速更大,直径逐渐增大。这样,整个网格就逐渐收缩到最优解上。实际上是一种类似于蚁群算法的退火算法。
实验者模拟了一下这个算法,解出来的结果和黏菌搜索的结果相差无几:

1

loss≈总能量/总食物 即运输单位“食物”所耗费的能量(即通道长度)。

3深度学习相关:

大家可以自己想想以下项目的loss该怎么设置才能达到预期效果。

img

Cycle GAN 内容很多,科研+工程的典范。

里面有个直播换脸的视频可能无法访问 ,可以见https://weibo.com/1402400261/FpdgrlxoY?type=comment。

Reference

https://rogerjohansson.blog/2008/12/07/genetic-programming-evolution-of-mona-lisa/

https://rogerjohansson.blog/2008/12/11/genetic-gallery/

https://daily.zhihu.com/story/7634981