【机器学习学习过程中的笔记1——Stochastic gradient descent 和 Batch gradient descent 】
2016-03-07 09:07
435 查看
<span style="font-size:18px;">#include "stdio.h" #include<iostream> using namespace std; #include "stdio.h" int main(void) { float matrix[4][2] = { { 1, 4 }, { 2, 5 }, { 5, 1 }, { 4, 2 } }; float result[4] = { 19, 26, 19, 20 }; float theta[2] = { 2, 5 }; float learning_rate = 0.01; float loss = 1000.0; for (int i = 0; i<100 && loss>0.0001; ++i) { float error_sum[2] = { 0.0, 0.0 }; for (int j = 0; j<4; ++j) { float h = 0.0; for (int k = 0; k<2; ++k) { h += matrix[j][k] * theta[k]; } for (int k = 0; k < 2; ++k) { error_sum[k] += (result[j] - h)*matrix[j][k]; } } for (int k = 0; k<2; ++k) { theta[k] += learning_rate*error_sum[k]; } printf("*************************************\n"); printf("theta now: %f,%f\n", theta[0], theta[1]); loss = 0.0; for (int j = 0; j<4; ++j) { float sum = 0.0; for (int k = 0; k<2; ++k) { sum += matrix[j][k] * theta[k]; } loss += (sum - result[j])*(sum - result[j]); } printf("loss now: %f\n", loss); } system("pause"); // return 0; }</span>
相关文章推荐
- TF-IDF及其算法
- myeclipse10 中的UTF-8 设置
- CRC16校验C语言程序源码
- 李学斌:论复杂系统中的应用间协作V3
- UESTC - 1251 谕神的密码 (模拟) 水
- 蓝桥杯-十六进制转八进制
- java中的移位操作
- sql 跨域
- 自我介绍(作业)
- 使用Retrofit 在代码混淆后 提示 Last parameter must be of type Callback or Callback
- Zend Framework教程之前端控制器Zend_Controller_Front用法详解
- 简单的百度定位
- transaction.addToBackStack(null);无效问题
- gh60 刷固件
- Android之AIDL服务
- shell编程(二):文件操作
- 数据结构(18)--Prim算法求解无向网的最小生成树
- Codeforces Round #340 (Div. 2)C. Watering Flowers(暴力)
- Oracle中"行转列"的实现方式
- SQL常用语句