函数的梯度是函数上升的最大方向。 如果要对一个目标函数做最小化,每次只需将目标函数对各个parameters 做偏导,得到梯度,然后用当前parameter加上负梯度乘以一个步长进行更新。 步长太大可能跳出局部最优点。 常用的梯度下降方法有batch gd(使用全部数据计算梯度),SGD(对每个sample计算梯度)。 SGD计算更快,并且能取得不错的效果,而且有时能跳出局部最优,去explore其他更优 的极值点

Continue reading

生成模型学习联合概率分布,再用贝叶斯
判别模型直接学习条件概率分布

简单地说,对于监督学习,预测时,一般都是在求生成模型: 从数据中学习联合概率分布,然后利用贝叶斯公式求:; 这类典型的模型包括:朴素贝叶斯、LDA、HMM
判别模型:直接学习, 它直观输入什么特征X,就直接预测出最可能的; 典型的模型包括:LR, SVM,CRF,Boosting,Decision tree….
Continue reading

决策树是机器学习中一种基本的分类和回归算法,是依托于决策抉择而建立起来的树。
原理:依托树中的决策规则来预测未知样本的类别和值。
过程:决策树学习算法包含特征选择(从训练数据的特征中选择一个特征作为当前节点的分裂标准),决策树的生成(依据选择特征标准,从上至下递归生成子节点,直到数据集不可再分则停止)与决策树的剪枝(决策树易过拟合,需要通过剪枝来缩小树的结构和规模)。
终止条件:依据选择特征标准,从上至下递归生成子节点,直到数据集不可再分则停止
防止过拟合:剪枝

Continue reading

1.(机器学习理论)请描述推荐系统中协同过滤算法的原理

协同过滤算法,主要的功能是预测和推荐。通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。分为两大类,一类为基于memory的(Memory-based),包括:基于用户的协同过滤算法(user-based collaboratIve filtering)和基于物品的协同过滤算法(item-based collaborative filtering),两种方法都是将用户的所有数据读入到内存中进行运算的;另一类为基于Model的(Model-based),包括Aspect Model,pLSA,LDA,聚类,SVD,Matrix Factorization等,这种方法训练过程比较长,但是训练完成后,推荐过程比较快。
分为

以下三个步骤:
1.收集数据
2.找到相似用户和物品
3.进行推荐
具体请参考:

 
Continue reading

相比图形数据的查询,Neo4j更新图形数据的速度较慢,通常情况下,Neo4j更新数据的工作流程是:每次数据更新都会执行一次数据库连接,打开一个事务,在事务中更新数据。当数据量非常大时,这种做法非常耗时,大多数时间耗费在连接数据库和打开事务上,高效的做法是利用Neo4j提供的参数(Parameter)机制和UNWIND子句:在一次数据更新中,进行一次连接,打开一次事务,批量更新数据;参数用于提供列表格式的数据,UNWIND子句是把列表数据展开成一行一行的数据,每行数据都会执行结构相同的Cypher语句。再批量更新图形数据之前,用户必须构造结构固定的、参数化的Cypher语句。当Cypher语句的结构相同时,Neo4j数据库直接从缓存中复用已生成的执行计划,而不需要重新生成,这也能够提高查询性能。

Continue reading