(浅)机器学习综述入门

内容大纲:

1 什么是机器学习
2 为什么机器学习是趋势
3 机器学习方法
---3.1 有监督学习
------3.3.1 线性回归
------3.3.2 多项式回归
------3.3.3 Logistic回归
------3.3.4 神经网络
------3.3.5 svm

---3.2 无监督学习
------3.2.1 聚类
------3.2.2 主成分分析
------3.3.3 异常检测
---3.3 其他学习方法
------3.3.1 协同过滤
------3.3.2 增强学习
---3.4 在线学习
4 工具之外
---4.1......

继续阅读

超轻量级线程库Protothreads引子

Protothreads是一个Stackless的超轻量级线程库,其特点是顺序执行异步事件驱动的代码(类比协程),可以用于取代复杂的状态机逻辑;由于连栈空间都省了,因此一般用于内存稀缺的系统如嵌入式或传感器网络,但其特点也适用于常见的异步网络框架中的业务代码编码。其核心思想比较简单,本文相关代码和宏定义为简化重写版,且仅涉及小部分.

一、Label变量
GCC编译器支持label变量,即可以将label的地址值保存在一个void*变量里:

void *jump_addr = &&label_A;  // "&&" 是gcc的扩展......

继续阅读

分布式基础-Paxos、Chubby/Zookeeper

一、Paxos算法

1. 概念
考虑到消息延迟、重发、丢失、网络分化,结点宕机/重启等多类异常,分布式异步环境下要参与各方对某个事物达成一致理解往往比较困难. Paxos是分布式环境下一种共识(Consensus)算法/机制,其问题模型可以描述为:

有多个提议者(Proposer)提出议案(Proposal),有多个决策者(Acceptor),每个决策者可投票决定是否接受(accept)某个议案,当某个议案被大多数(Majority,如半数以上)决策者一致接受后,称该议案被通过,本轮投票结束. Paxos的目的就是保证每轮投票(一次Paxos实例)在大多......

继续阅读