亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? solver.cs

?? SVM的一個(gè)源程序
?? CS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
                float[] Q_j = Q.get_Q(j, active_size);

                double C_i = get_C(i);
                double C_j = get_C(j);

                double old_alpha_i = alpha[i];
                double old_alpha_j = alpha[j];

                if (y[i] != y[j])
                {
                    double quad_coef = Q_i[i] + Q_j[j] + 2 * Q_i[j];
                    if (quad_coef <= 0)
                        quad_coef = 1e-12;
                    double delta = (-G[i] - G[j]) / quad_coef;
                    double diff = alpha[i] - alpha[j];
                    alpha[i] += delta;
                    alpha[j] += delta;

                    if (diff > 0)
                    {
                        if (alpha[j] < 0)
                        {
                            alpha[j] = 0;
                            alpha[i] = diff;
                        }
                    }
                    else
                    {
                        if (alpha[i] < 0)
                        {
                            alpha[i] = 0;
                            alpha[j] = -diff;
                        }
                    }
                    if (diff > C_i - C_j)
                    {
                        if (alpha[i] > C_i)
                        {
                            alpha[i] = C_i;
                            alpha[j] = C_i - diff;
                        }
                    }
                    else
                    {
                        if (alpha[j] > C_j)
                        {
                            alpha[j] = C_j;
                            alpha[i] = C_j + diff;
                        }
                    }
                }
                else
                {
                    double quad_coef = Q_i[i] + Q_j[j] - 2 * Q_i[j];
                    if (quad_coef <= 0)
                        quad_coef = 1e-12;
                    double delta = (G[i] - G[j]) / quad_coef;
                    double sum = alpha[i] + alpha[j];
                    alpha[i] -= delta;
                    alpha[j] += delta;

                    if (sum > C_i)
                    {
                        if (alpha[i] > C_i)
                        {
                            alpha[i] = C_i;
                            alpha[j] = sum - C_i;
                        }
                    }
                    else
                    {
                        if (alpha[j] < 0)
                        {
                            alpha[j] = 0;
                            alpha[i] = sum;
                        }
                    }
                    if (sum > C_j)
                    {
                        if (alpha[j] > C_j)
                        {
                            alpha[j] = C_j;
                            alpha[i] = sum - C_j;
                        }
                    }
                    else
                    {
                        if (alpha[i] < 0)
                        {
                            alpha[i] = 0;
                            alpha[j] = sum;
                        }
                    }
                }

                // update G

                double delta_alpha_i = alpha[i] - old_alpha_i;
                double delta_alpha_j = alpha[j] - old_alpha_j;

                for (int k = 0; k < active_size; k++)
                {
                    G[k] += Q_i[k] * delta_alpha_i + Q_j[k] * delta_alpha_j;
                }

                // update alpha_status and G_bar

                {
                    bool ui = is_upper_bound(i);
                    bool uj = is_upper_bound(j);
                    update_alpha_status(i);
                    update_alpha_status(j);
                    int k;
                    if (ui != is_upper_bound(i))
                    {
                        Q_i = Q.get_Q(i, l);
                        if (ui)
                            for (k = 0; k < l; k++)
                                G_bar[k] -= C_i * Q_i[k];
                        else
                            for (k = 0; k < l; k++)
                                G_bar[k] += C_i * Q_i[k];
                    }

                    if (uj != is_upper_bound(j))
                    {
                        Q_j = Q.get_Q(j, l);
                        if (uj)
                            for (k = 0; k < l; k++)
                                G_bar[k] -= C_j * Q_j[k];
                        else
                            for (k = 0; k < l; k++)
                                G_bar[k] += C_j * Q_j[k];
                    }
                }

            }

            // calculate rho

            si.rho = calculate_rho();

            // calculate objective value
            {
                double v = 0;
                int i;
                for (i = 0; i < l; i++)
                    v += alpha[i] * (G[i] + p[i]);

                si.obj = v / 2;
            }

            // put back the solution
            {
                for (int i = 0; i < l; i++)
                    alpha_[active_set[i]] = alpha[i];
            }

            si.upper_bound_p = Cp;
            si.upper_bound_n = Cn;

            Debug.Write("\noptimization finished, #iter = " + iter + "\n");
        }

        // return 1 if already optimal, return 0 otherwise
        protected virtual int select_working_set(int[] working_set)
        {
            // return i,j such that
            // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha)
            // j: mimimizes the decrease of obj value
            //    (if quadratic coefficeint <= 0, replace it with tau)
            //    -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha)

            double Gmax = -INF;
            double Gmax2 = -INF;
            int Gmax_idx = -1;
            int Gmin_idx = -1;
            double obj_diff_min = INF;

            for (int t = 0; t < active_size; t++)
                if (y[t] == +1)
                {
                    if (!is_upper_bound(t))
                        if (-G[t] >= Gmax)
                        {
                            Gmax = -G[t];
                            Gmax_idx = t;
                        }
                }
                else
                {
                    if (!is_lower_bound(t))
                        if (G[t] >= Gmax)
                        {
                            Gmax = G[t];
                            Gmax_idx = t;
                        }
                }

            int i = Gmax_idx;
            float[] Q_i = null;
            if (i != -1) // null Q_i not accessed: Gmax=-INF if i=-1
                Q_i = Q.get_Q(i, active_size);

            for (int j = 0; j < active_size; j++)
            {
                if (y[j] == +1)
                {
                    if (!is_lower_bound(j))
                    {
                        double grad_diff = Gmax + G[j];
                        if (G[j] >= Gmax2)
                            Gmax2 = G[j];
                        if (grad_diff > 0)
                        {
                            double obj_diff;
                            double quad_coef = Q_i[i] + QD[j] - 2 * y[i] * Q_i[j];
                            if (quad_coef > 0)
                                obj_diff = -(grad_diff * grad_diff) / quad_coef;
                            else
                                obj_diff = -(grad_diff * grad_diff) / 1e-12;

                            if (obj_diff <= obj_diff_min)
                            {
                                Gmin_idx = j;
                                obj_diff_min = obj_diff;
                            }
                        }
                    }
                }
                else
                {
                    if (!is_upper_bound(j))
                    {
                        double grad_diff = Gmax - G[j];
                        if (-G[j] >= Gmax2)
                            Gmax2 = -G[j];
                        if (grad_diff > 0)
                        {
                            double obj_diff;
                            double quad_coef = Q_i[i] + QD[j] + 2 * y[i] * Q_i[j];
                            if (quad_coef > 0)
                                obj_diff = -(grad_diff * grad_diff) / quad_coef;
                            else
                                obj_diff = -(grad_diff * grad_diff) / 1e-12;

                            if (obj_diff <= obj_diff_min)
                            {
                                Gmin_idx = j;
                                obj_diff_min = obj_diff;
                            }
                        }
                    }
                }
            }

            if (Gmax + Gmax2 < eps)
                return 1;

            working_set[0] = Gmax_idx;
            working_set[1] = Gmin_idx;
            return 0;
        }

        private bool be_shrunken(int i, double Gmax1, double Gmax2)
        {
            if (is_upper_bound(i))
            {
                if (y[i] == +1)
                    return (-G[i] > Gmax1);
                else
                    return (-G[i] > Gmax2);
            }
            else if (is_lower_bound(i))
            {
                if (y[i] == +1)
                    return (G[i] > Gmax2);
                else
                    return (G[i] > Gmax1);
            }
            else
                return (false);
        }

        protected virtual void do_shrinking()
        {
            int i;
            double Gmax1 = -INF;		// max { -y_i * grad(f)_i | i in I_up(\alpha) }
            double Gmax2 = -INF;		// max { y_i * grad(f)_i | i in I_low(\alpha) }

            // find maximal violating pair first
            for (i = 0; i < active_size; i++)
            {
                if (y[i] == +1)
                {
                    if (!is_upper_bound(i))
                    {
                        if (-G[i] >= Gmax1)
                            Gmax1 = -G[i];
                    }
                    if (!is_lower_bound(i))
                    {
                        if (G[i] >= Gmax2)
                            Gmax2 = G[i];
                    }
                }
                else
                {
                    if (!is_upper_bound(i))
                    {
                        if (-G[i] >= Gmax2)
                            Gmax2 = -G[i];
                    }
                    if (!is_lower_bound(i))
                    {
                        if (G[i] >= Gmax1)
                            Gmax1 = G[i];
                    }
                }
            }

            // shrink

            for (i = 0; i < active_size; i++)
                if (be_shrunken(i, Gmax1, Gmax2))
                {
                    active_size--;
                    while (active_size > i)
                    {
                        if (!be_shrunken(active_size, Gmax1, Gmax2))
                        {
                            swap_index(i, active_size);
                            break;
                        }
                        active_size--;
                    }
                }

            // unshrink, check all variables again before sealed iterations

            if (unshrinked || Gmax1 + Gmax2 > eps * 10) return;

            unshrinked = true;
            reconstruct_gradient();

            for (i = l - 1; i >= active_size; i--)
                if (!be_shrunken(i, Gmax1, Gmax2))
                {
                    while (active_size < i)
                    {
                        if (be_shrunken(active_size, Gmax1, Gmax2))
                        {
                            swap_index(i, active_size);
                            break;
                        }
                        active_size++;
                    }
                    active_size++;
                }
        }

        protected virtual double calculate_rho()
        {
            double r;
            int nr_free = 0;
            double ub = INF, lb = -INF, sum_free = 0;
            for (int i = 0; i < active_size; i++)
            {
                double yG = y[i] * G[i];

                if (is_lower_bound(i))
                {
                    if (y[i] > 0)
                        ub = Math.Min(ub, yG);
                    else
                        lb = Math.Max(lb, yG);
                }
                else if (is_upper_bound(i))
                {

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成a人无v码亚洲福利| 亚洲丝袜精品丝袜在线| 久久精品欧美一区二区三区麻豆| 久久久精品综合| 国产精品国产三级国产a| 亚洲成人动漫一区| 国产麻豆视频精品| 91在线视频播放| 91精品国产综合久久福利软件 | 亚洲美女精品一区| 天堂午夜影视日韩欧美一区二区| 狠狠v欧美v日韩v亚洲ⅴ| www.视频一区| 91麻豆精品国产91久久久久久| 国产女主播视频一区二区| 亚洲黄色av一区| 狠狠色狠狠色综合日日91app| 91亚洲精品一区二区乱码| 欧美一区二区精品久久911| 国产精品美女一区二区在线观看| 亚洲成人动漫在线观看| 成人av免费在线播放| 欧美一级在线视频| 亚洲视频中文字幕| 极品美女销魂一区二区三区| 91麻豆产精品久久久久久| 精品欧美一区二区三区精品久久| 一区二区中文视频| 久久99热这里只有精品| 色一情一伦一子一伦一区| 久久亚洲综合色一区二区三区| 亚洲黄色小视频| 岛国一区二区在线观看| 精品少妇一区二区三区免费观看 | 一本一道久久a久久精品| 日韩免费高清电影| 亚洲综合一区二区三区| 国产a级毛片一区| 日韩欧美电影一二三| 亚洲成人动漫精品| 一本久道久久综合中文字幕| 国产视频视频一区| 另类调教123区| 欧美日韩一区二区三区在线看| 国产精品水嫩水嫩| 韩国女主播成人在线| 欧美一级夜夜爽| 亚洲第一综合色| 色综合视频在线观看| 国产欧美视频一区二区三区| 久久精品国产77777蜜臀| 精品视频在线看| 亚洲综合色婷婷| 色成人在线视频| 亚洲日本在线看| 成a人片亚洲日本久久| 国产色婷婷亚洲99精品小说| 久久精品国产一区二区三区免费看 | 欧美精品一二三| 一区二区三区不卡视频| 99国产精品一区| 国产精品视频一区二区三区不卡| 国产一区二区网址| 精品国产乱子伦一区| 蜜桃视频一区二区三区| 正在播放亚洲一区| 污片在线观看一区二区 | 日精品一区二区| 欧美亚洲日本国产| 亚洲第一电影网| 欧美视频自拍偷拍| 天天综合网 天天综合色| 欧美另类z0zxhd电影| 天天综合色天天| 91精品国产乱码久久蜜臀| 日本欧美久久久久免费播放网| 欧美日韩久久久久久| 午夜欧美大尺度福利影院在线看 | 麻豆精品在线观看| 日韩一级成人av| 精品亚洲国内自在自线福利| 精品日韩在线一区| 黑人巨大精品欧美一区| 国产喷白浆一区二区三区| 成人av影院在线| 亚洲免费观看高清完整| 欧美日韩一级片网站| 日韩精品一二区| 久久亚洲捆绑美女| 成人黄色软件下载| 亚洲综合成人网| 在线电影一区二区三区| 精品综合免费视频观看| 国产亚洲人成网站| 99精品久久免费看蜜臀剧情介绍| 一区二区视频在线看| 欧美日韩国产小视频| 蜜桃av一区二区三区| 国产女主播视频一区二区| 91美女片黄在线| 五月婷婷综合网| 久久一区二区三区国产精品| 99久久精品国产一区| 亚洲综合免费观看高清完整版在线| 8v天堂国产在线一区二区| 国产资源精品在线观看| 国产精品国产三级国产专播品爱网| 日本久久电影网| 麻豆精品久久久| 中文字幕制服丝袜一区二区三区 | 丝袜国产日韩另类美女| 久久亚洲一级片| 91精品办公室少妇高潮对白| 日本午夜精品视频在线观看| 国产精品免费aⅴ片在线观看| 色88888久久久久久影院野外| 男女视频一区二区| 国产欧美久久久精品影院| 欧美三级在线视频| 国产成人免费av在线| 亚洲成人激情自拍| 国产日韩欧美精品在线| 欧美视频日韩视频| 国产成+人+日韩+欧美+亚洲| 亚洲午夜三级在线| 国产欧美久久久精品影院| 911国产精品| gogogo免费视频观看亚洲一| 日韩黄色小视频| 国产精品久久久久影院老司| 日韩免费在线观看| 色爱区综合激月婷婷| 国产乱色国产精品免费视频| 亚洲www啪成人一区二区麻豆| 久久九九国产精品| 欧美精品aⅴ在线视频| 99re亚洲国产精品| 国产一区二区三区免费| 午夜精品久久久久久久| 综合在线观看色| 久久久久国产精品免费免费搜索| 欧美日韩国产在线播放网站| 成人av午夜影院| 极品美女销魂一区二区三区| 午夜精品久久久久影视| 亚洲欧美乱综合| 中文字幕精品一区二区三区精品| 91精品国产品国语在线不卡| 在线观看视频一区二区| 成人高清免费在线播放| 久久99在线观看| 日韩一区欧美二区| 亚洲一区二区三区四区不卡| 亚洲欧洲成人av每日更新| 2021久久国产精品不只是精品| 91精品国产全国免费观看| 欧美色图免费看| 91免费看视频| 99riav一区二区三区| 成人免费看的视频| 国产精品亚洲午夜一区二区三区 | 久久免费偷拍视频| 日韩一区二区三区电影| 欧美久久免费观看| 欧美午夜不卡在线观看免费| 日本高清免费不卡视频| 一本一本大道香蕉久在线精品| 成人综合婷婷国产精品久久免费| 国产乱码精品一区二区三区忘忧草 | eeuss影院一区二区三区| 国产精品一区二区久久不卡| 极品少妇xxxx精品少妇| 久久国产夜色精品鲁鲁99| 蜜桃av一区二区在线观看| 日韩av在线免费观看不卡| 日欧美一区二区| 日本视频一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 午夜不卡av在线| 日韩成人av影视| 久久av资源网| 国产一区在线观看视频| 国精产品一区一区三区mba桃花| 久久精品国产网站| 精品一区二区免费| 国产成人高清在线| 成人理论电影网| 色综合久久中文综合久久牛| 在线精品视频小说1| 欧美色图一区二区三区| 6080yy午夜一二三区久久| 91精品国产91久久久久久最新毛片 | 亚洲人成网站精品片在线观看 | 色av一区二区| 欧美视频一二三区| 日韩女优制服丝袜电影| 26uuu国产在线精品一区二区| 久久精品免费在线观看| 亚洲国产精品二十页| 亚洲啪啪综合av一区二区三区|