交叉熵损失函数
交叉熵损失函数(逻辑回归):
$$
J(\theta)=-\frac{1}{N}\sum_{i=1}^{N}y^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))
$$
$J(\theta)$对$\theta$的偏导数(用于诸如梯度下降法等优化算法的参数更新):
$$\frac{\partial}{\partial\theta_j}J(\theta)=\frac{1}{N}\sum_{i=1}^{N}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}$$
Redis数据类型
作为key-value型数据库,Redis也提供了键和值的映射关系。除了常规的数值和字符串,Resis的值还可以是Lists
,Sets
,Sorted Sets
,Hashes
。值的数据类型决定了该键值支持的操作。Redis 支持诸如列表、集合或有序集合的交集、并集、查集等高级原子操作;同时,如果值的类型是普通数字,Redis则提供自增等原子操作。
C/C++编程—序列化库Cereal
Cereal是一个开源的、轻量级的跨平台序列化库。cereal只包含头文件,不依赖任何三方库,易于使用。Cereal可以将任意的数据类型序列化成二进制、XML格式或者JSON。
C/C++编程—序列化
在程序中往往需要将程序中的某些数据存储在内存中,然后将其写入本地文件或者进行网络传输。将程序数据转化成能被存储和传输的格式的过程称为序列化,它的逆过程称为反序列化。本文主要记录通过Boost.Serialization进行序列化的相关内容。