杂谈 Cost Function
cost function 又称为代价函数,又记为loss。本文选取了一些有意思例子来介绍。
先看看我们学过课程中的:
最优化: 调整 $w$ 拟合f(x) loss=均方误差
模式识别: 分类器,以SVM为例,loss= 经验误差 - 几何边缘区 (即在经验误差最小的基础上,尽可能增大分类间隔。减法只是便于理解的一种记号)
人工智能概论: A*算法中的 f=h+g;
1 遗传算法:
1.1 画图

Win下编译好的文件 见这里, 需要windows .net framework 4.0 环境。360等杀毒软件可能会拦截。
可以在 遗传算法图片特效 在线使用。
loss应该定义成画的图和原图的差距。差距越小则loss函数越小,遗传算法可以通过收敛到最优解来使图形越来越准确。
原理说明见:http://songshuhui.net/archives/10462
1.2 解TSP(旅行商问题)

loss=路径总长度。越短越好。
2 蚁群算法:
http://video.tudou.com/v/XMTc4NjQzMDAxNg==.html
实验很简单,用黏菌避光的特性,用光斑模拟海岸线和地形,在东京附近重要的地铁站对应的位置放上食物:
这是只有海岸线的时候,黏菌铺张、求出最省连通路径的过程图:

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

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

loss≈总能量/总食物 即运输单位“食物”所耗费的能量(即通道长度)。
3深度学习相关:
大家可以自己想想以下项目的loss该怎么设置才能达到预期效果。
http://seeleit.com/songci RNN 宋词生成器
https://www.twitch.tv/sentdex AI GTA5主播
http://www.cs.toronto.edu/~graves/handwriting.cgi?text=i+am+luoyi.+i+am+excited+today.&style=..%2Fdata%2Ftrainset_diff_no_start_all_labels.nc%2C1082%2B554&bias=0.05&samples=3 手写体模仿阿里鲁班:2017年双11将有4亿张人工智能海报由机器人设计。

Cycle GAN 内容很多,科研+工程的典范。
里面有个直播换脸的视频可能无法访问 ,可以见https://weibo.com/1402400261/FpdgrlxoY?type=comment。
Reference
https://rogerjohansson.blog/2008/12/07/genetic-programming-evolution-of-mona-lisa/