zoukankan      html  css  js  c++  java
  • 统计机器学习(statistical machine learning)

    组要组成部分:监督学习(supervised learning),非监督学习(unsupervised learning),半监督学习(semi-supervised learning),强化学习(reinforcement learning)。

    三要素:模型(model),策略(strategy),算法(algorithm)。

    模型就是设计一种机器学习模型(神经网络的网络结构),策略就是定义模型中的函数中什么是最优的(loss函数的选取),算法是如何找到最优值(梯度下降,牛顿法,拉普拉斯近似)。

    线性感知机:

    #include <iostream>
    #include <vector>

    using namespace std;


    std::vector<double> x[2],w;
    double y[2] = {1, -1},b=0;
    double rate = 0.00000001;

    bool notGood(int &t){
    for (int i = 0 ; i < 2 ; i++){
    double rr = 0;
    for (int j = 0 ; j < 2 ; j++){
    rr += w[j]*x[i][j];
    }
    rr += b;
    // cout << rr<<endl;
    if( y[i]*rr <= 0){
    t = i;
    return true;

    }
    }
    return false;
    }

    void iterat(int t){

    b += rate*y[t];
    for (int i = 0 ; i < 2 ; i++){
    w[i] += rate*y[t]*x[t][i];
    }
    }

    void print(int t){
    cout <<t<<":";
    for (int i = 0 ; i < 2 ; i++){
    cout << w[i]<<",";
    }
    cout << b<<endl;
    }

    int main(){
    w.push_back(0);
    w.push_back(0);
    x[0].push_back(1);
    x[0].push_back(1);
    x[1].push_back(2);
    x[1].push_back(2);

    int t;
    while( notGood(t) ){
    iterat(t);
    print(t);

    }

    return 0;
    }

    感知机学习算法的对偶形式:

           

  • 相关阅读:
    各种经典透镜投影模型
    表达式和运算
    数组
    如何使用布尔类型
    如何使用数字类型
    如何使用字符串类型
    如何声明变量,如何给变量赋值
    变量 构造函数 New 关键字
    调用write方法打印语句到浏览器
    MVC中几种常用ActionResult
  • 原文地址:https://www.cnblogs.com/huangshiyu13/p/6119489.html
Copyright © 2011-2022 走看看