smo怎么下载怎么完?谁能详细的告诉我下?如题 谢谢了

smo怎么下载怎么完?谁能详细的告诉我下?如题 谢谢了,第1张

SMO下载地址 http://www.tiaowutan.com/stepmania/StepMania%20CVS4.0中文版安装程序.exe 具体设置问题: 1:添加歌曲.. StepMania的歌曲添加是要放在songs文件夹里才能在游戏里体现的 打开你安装的文件夹 打开找到songs文件夹 把歌放进去解压既可 但要注意一点 并不是直接解压就可以使用歌曲 体现歌曲如下 songs文件夹 → 专集目录文件夹 → 歌曲文件夹 才可以实现歌曲在游戏体现出来 有时候大家下到的是一个专集 因此不用新建文件夹就可以直接解压到songs里 但是下到的单曲 必须得新建个文件夹 或者放到别的专辑文件夹里 才能实现噢 放置不对的话 有可能出现StepMania认定系统文件损坏 2: 调节速度.. StepMania默认的速度有 0.25x 0.50x 0.75x 1.0x 1.5x 2.0x 3.0x 4.0x 8.0x c200 c400 几种速度 并没有5速 6速之类的 要怎么调节呢 首先 打开 安装文件夹 找到 Themes文件夹 打开后 找到default文件夹 找到个设置文档metercs 打开 在编辑里查找C200 就可以找到如下字符: [ScreenOptionsMaster] # Player options Speed=11 SpeedDefault=mod,1x Speed,1=mod,0.25xname,x0.25 Speed,2=mod,0.50xname,x0.50 Speed,3=mod,0.75xname,x0.75 Speed,4=mod,1xname,x1 Speed,5=mod,1.5xname,x1.5 Speed,6=mod,2xname,x2 Speed,7=mod,3xname,x3 Speed,8=mod,4xname,x4 Speed,9=mod,8xname,x8 Speed,10=mod,C200name,C200 Speed,11=mod,C400name,C400 大家可以依照自己的喜爱 调出来自己喜欢的速度 比如0.25x 根本不需要的话 修改如下 Speed,1=mod,0.5xname,x0.25 既可 后面的x0.25是显示名字 有些因电脑认定 修改后无法使用 因此没有必要改后面的数值 只要进入游戏后 选择0.25x 就可以玩到5速了 名字没改 速度改咯 还有就是C速的问题 大家可以看到最后两行是 C速度 C速度比x速度稳定些 但是要怎么理解呢 记得有个前辈这样说过 bpm x x速度 = C速度 这样解释的话 如果歌曲bpm是150 大家喜欢用4速玩那歌的话 就是C600 就可以体现了 C速是根据bpm后歌曲从始至终依照bpm速度运行 没有变速 而且稳定... 改C速度的方法和上面一样 进入游戏内部选项 第一步:选择Background Options 选择 Brightness选项里的数值 这里是调整背景透明度的 100% 有时候背景太刺眼 会影响看音符 可以选择暗点的 30%~50%左右既可 然后看下面的选项 BeginnerHelper选项 选择ON 会让音符居中 当然 如果喜欢放左边的话 可以不选 默认为 OFF 第二步:选择Coin Options 选择 Event Mode选项为ON 这样会让你的StepMania游戏为练习模式 因为默认是投币挑战模式 打完三首歌后重新设定 因此最好是选此选项 第三步:选择Config key/joy Mappings 此选项是设置键位选项 英文上下左右 大家应该都会知道吧 不过 和超舞不一样 并不是从坐到右 这样容易看懂的 它的设置是从上到下 同样可以设置8个键 但是 从上到下设置 比如 我的键位是ASKL 在里面设置的话 从上到下 就是ALKS 这样设置 摸索摸索就懂了 不难 第四步:选择Machine Options 判定选项 进入后 在Judge Difficulty选项里调节你所要选择的判定 默认为4判 但本人强烈希望大家用4判打歌 因为调成了1判后 打歌实在太简单 就达不到练习的效果了.. 当然某些BT歌除外 然后选择Life Difficulty 这个是扣血强度的指数 默认为4血 数值越低 掉音符后扣血的强度越少 还有回血速度 如果歌曲过不去 pass不了 可以试试比较低的回血速度...

1. SM0.0:常通电讲解A:常用于一个总开关,把程序缩短到一个程序段里,方便检查。B:用于后面的通信、定位等定义参数。

2. SM0.1:上电初始化主要用于上电赋值,或者清零,防止自动运行

3. SM0.5时钟脉冲发生器主

SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》了。

我拜读了一下,下面先说讲义上对此方法的总结。

首先回到我们前面一直悬而未解的问题,对偶函数最后的优化问题:

要解决的是在参数上求最大值W的问题,至于和都是已知数。C由我们预先设定,也是已知数。

按照坐标上升的思路,我们首先固定除以外的所有参数,然后在上求极值。等一下,这个思路有问题,因为如果固定以外的所有参数,那么将不再是变量(可以由其他值推出),因为问题中规定了

因此,我们需要一次选取两个参数做优化,比如和,此时可以由和其他参数表示出来。这样回带到W中,W就只是关于的函数了,可解。

这样,SMO的主要步骤如下:

意思是,第一步选取一对和,选取方法使用启发式方法(后面讲)。第二步,固定除和之外的其他参数,确定W极值条件下的,由表示。

SMO之所以高效就是因为在固定其他参数后,对一个参数优化过程很高效。

下面讨论具体方法:

假设我们选取了初始值满足了问题中的约束条件。接下来,我们固定,这样W就是和的函数。并且和满足条件:

由于都是已知固定值,因此为了方面,可将等式右边标记成实数值。

当和异号时,也就是一个为1,一个为-1时,他们可以表示成一条直线,斜率为1。如下图:

横轴是,纵轴是,和既要在矩形方框内,也要在直线上,因此

同理,当和同号时,

然后我们打算将用表示:

然后反代入W中,得

展开后W可以表示成。其中a,b,c是固定值。这样,通过对W进行求导可以得到,然而要保证满足,我们使用表示求导求出来的,然而最后的,要根据下面情况得到:

这样得到后,我们可以得到的新值。

下面进入Platt的文章,来找到启发式搜索的方法和求b值的公式。

这边文章使用的符号表示有点不太一样,不过实质是一样的,先来熟悉一下文章中符号的表示。

文章中定义特征到结果的输出函数为

与我们之前的实质是一致的。

原始的优化问题为:

求导得到:

经过对偶后为:

s.t.

这里与W函数是一样的,只是符号求反后,变成求最小值了。和是一样的,都表示第i个样本的输出结果(1或-1)。

经过加入松弛变量后,模型修改为:

由公式(7)代入(1)中可知,

这个过程和之前对偶过程一样。

重新整理我们要求的问题为:

与之对应的KKT条件为:

这个KKT条件说明,在两条间隔线外面的点,对应前面的系数为0,在两条间隔线里面的对应为C,在两条间隔线上的对应的系数在0和C之间。

将我们之前得到L和H重新拿过来:

之前我们将问题进行到这里,然后说将用表示后代入W中,这里将代入中,得

其中

这里的和代表某次迭代前的原始值,因此是常数,而和是变量,待求。公式(24)中的最后一项是常数。

由于和满足以下公式

因为的值是固定值,在迭代前后不会变。

那么用s表示,上式两边乘以时,变为:

其中

代入(24)中,得

这时候只有是变量了,求导

如果的二阶导数大于0(凹函数),那么一阶导数为0时,就是极小值了。

假设其二阶导数为0(一般成立),那么上式化简为:

将w和v代入后,继续化简推导,得(推导了六七行推出来了)

我们使用来表示:

通常情况下目标函数是正定的,也就是说,能够在直线约束方向上求得最小值,并且。

那么我们在(30)两边都除以可以得到

这里我们使用表示优化后的值,是迭代前的值,。

与之前提到的一样不是最终迭代后的值,需要进行约束:

那么

在特殊情况下,可能不为正,如果核函数K不满足Mercer定理,那么目标函数可能变得非正定,可能出现负值。即使K是有效的核函数,如果训练样本中出现相同的特征x,那么仍有可能为0。SMO算法在不为正值的情况下仍有效。为保证有效性,我们可以推导出就是的二阶导数,,没有极小值,最小值在边缘处取到(类比),时更是单调函数了,最小值也在边缘处取得,而的边缘就是L和H。这样将和分别代入中即可求得的最小值,相应的还是也可以知道了。具体计算公式如下:

至此,迭代关系式出了b的推导式以外,都已经推出。

b每一步都要更新,因为前面的KKT条件指出了和的关系,而和b有关,在每一步计算出后,根据KKT条件来调整b。

b的更新有几种情况:

来自罗林开的ppt

这里的界内指,界上就是等于0或者C了。

前面两个的公式推导可以根据

和对于有的KKT条件推出。

这样全部参数的更新公式都已经介绍完毕,附加一点,如果使用的是线性核函数,我们就可以继续使用w了,这样不用扫描整个样本库来作内积了。

w值的更新方法为:

根据前面的

公式推导出。

12 SMO中拉格朗日乘子的启发式选择方法

终于到了最后一个问题了,所谓的启发式选择方法主要思想是每次选择拉格朗日乘子的时候,优先选择样本前面系数的作优化(论文中称为无界样例),因为在界上(为0或C)的样例对应的系数一般不会更改。

这条启发式搜索方法是选择第一个拉格朗日乘子用的,比如前面的。那么这样选择的话,是否最后会收敛。可幸的是Osuna定理告诉我们只要选择出来的两个中有一个违背了KKT条件,那么目标函数在一步迭代后值会减小。违背KKT条件不代表,在界上也有可能会违背。是的,因此在给定初始值=0后,先对所有样例进行循环,循环中碰到违背KKT条件的(不管界上还是界内)都进行迭代更新。等这轮过后,如果没有收敛,第二轮就只针对的样例进行迭代更新。

在第一个乘子选择后,第二个乘子也使用启发式方法选择,第二个乘子的迭代步长大致正比于,选择第二个乘子能够最大化。即当为正时选择负的绝对值最大的,反之,选择正值最大的。

最后的收敛条件是在界内()的样例都能够遵循KKT条件,且其对应的只在极小的范围内变动。

至于如何写具体的程序,请参考John C. Platt在论文中给出的伪代码。

13 总结

这份SVM的讲义重点概括了SVM的基本概念和基本推导,中规中矩却又让人醍醐灌顶。起初让我最头疼的是拉格朗日对偶和SMO,后来逐渐明白拉格朗日对偶的重要作用是将w的计算提前并消除w,使得优化函数变为拉格朗日乘子的单一参数优化问题。而SMO里面迭代公式的推导也着实让我花费了不少时间。

对比这么复杂的推导过程,SVM的思想确实那么简单。它不再像logistic回归一样企图去拟合样本点(中间加了一层sigmoid函数变换),而是就在样本中去找分隔线,为了评判哪条分界线更好,引入了几何间隔最大化的目标。

之后所有的推导都是去解决目标函数的最优化上了。在解决最优化的过程中,发现了w可以由特征向量内积来表示,进而发现了核函数,仅需要调整核函数就可以将特征进行低维到高维的变换,在低维上进行计算,实质结果表现在高维上。由于并不是所有的样本都可分,为了保证SVM的通用性,进行了软间隔的处理,导致的结果就是将优化问题变得更加复杂,然而惊奇的是松弛变量没有出现在最后的目标函数中。最后的优化求解问题,也被拉格朗日对偶和SMO算法化解,使SVM趋向于完美。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8008556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存