机器学习入门基本概念理解

张量 张量=容器 张量是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。 0维张量=数字;1维张量=向量;2维张量=矩阵;3维张量=公用数据存储在张量,彩色图片等… one-hot vector 独热编码,用于分类标记。比如(猫,狗,鼠)对应(1,0,0)代表猫,(0,1,0)代表狗…将离散型特征采用独热编码,会使得特征之间的距离计算更加合理。 softmax函数 softmax函数的作用主要是:1.通过将模型的预测结果转化到指数函数上将预测结果转化为非负数;2.归一化处理,使各种结果概率之和等于1. //blog.csdn.net/lz_peter/article/details/84574716 交叉熵 对于单标签多分类问题,p(x)表示是否为标记的类,如果用独热编码表示分类,则取值0或1;q(x)则是预测结果为该类的概率。用交叉熵做损失函数,值越小,表示模型预测结果与实际情况一致性越高。 单标签多分类问题所有类别概率和为1,多标签二分类问题所有类别和不为1,交叉熵的计算针对的是单个类别(即二分类),然后单张样本计算多个二分类交叉熵的和。 //blog.csdn.net/tsyccnh/article/details/79163834 欧式空间 欧几里得空间就是在对现实空间的规则抽象和推广(从n<=3推广到有限n维空间)。 欧几里得几何就是中学学的平面几何、立体几何, 在欧几里得几何中,平行线任何位置的间距相等。 而中学学的几何空间一般是2维,3维(所以,我们讨论余弦值、点间的距离、内积都是在低纬空间总结的),如果将这些低维空间所总结的规律推广到有限的n维空间,那这些符合定义的空间则被统称为 欧几里得空间(欧式空间,Euclidean Space)。而欧几里得空间主要是定义了 内积、距离、角(没错,就是初中的那些定义),理解了这些再去理解数学定义就很明确了。 //www.zhihu.com/question/27903807/answer/699570097 梯度弥散与梯度爆炸 靠近输出层的hidden layer 梯度大,参数更新快,所以很快就会收敛; 而靠近输入层的hidden layer 梯度小,参数更新慢,几乎就和初始状态一样,随机分布。 在上面的四层隐藏层网络结构中,第一层比第四层慢了接近100倍!! 这种现象就是梯度弥散(vanishing gradient problem)。而在另一种情况中,前面layer的梯度通过训练变大,而后面layer的梯度指数级增大,这种现象又叫做梯度爆炸(exploding gradient problem)。 总的来说,就是在这个深度网络中,梯度相当不稳定(unstable)。 //www.cnblogs.com/yangmang/p/7477802.html batch_size batch的选择首先决定的是下降的方向,batch_size越大,下降的方向越准确。 综合考虑数据集的大小,数据集比较小的时候,用整个数据集作为batch_size就可以,这时候下降的方向也是最精准的,数据集比较大的时候,相对小的batch可以达到和用整个数据集相似的全局学习率,综合考量学习的效果以及电脑内存是否撑得住,目的是尽量让学习效果和效率同时最大化。 在合理范围内,增大 Batch_Size 有何好处? 内存利用率提高了,大矩阵乘法的并行化效率提高。 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。 batch_size增大到一定程度后,再增大则效率变差,下降方向也基本不再变化。 //blog.csdn.net/starzhou/article/details/53692248 学习率 梯度下降的伪代码如下: 重复已下过程,直到收敛为止{ωj=ωj-λF(ωj) /ωj} λ就是学习率,学习率过小,优化效率可能很低,学习率过大则有可能越过最优值,收敛到局部最优解。 关于解决学习率的一些问题,如选择合适的学习率,动态调整学习率,归一化等参考: //www.cnblogs.com/mazhujun/p/9633576.html 如何通俗地解释欧氏空间? - 知乎 //www.zhihu.com/question/27903807/answer/699570097

May 16, 2020 · Xiangtao XIAO

UEditor部署到个人站点

一、下载UEditor //ueditor.baidu.com/website/download.html 在以上链接下载,选择自己需要的语言版本,我用的是jsp,就下载jsp版本。将下载的压缩包解压,可以直接将解压的文件导入到Eclipse中自己的项目中,导入到文件夹WebContent中即可。 二、配置 将jsp/lib中的jar包全部复制到WEB-INF/lib下 修改输入字符数统计、上限,自定义工具栏可以参考官方说明文档,配置项可在ueditor.config.js中修改。 修改图片上传路径等在官方说明文档中有详细的介绍。 注:这里仅仅是在一个项目中使用UEditor,还用别的使用方法,也可以直接部署到tomcat中。 三、在页面中插入Ueditor编辑器 首先要引用文件 <link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/thirdparts/utf8-jsp/themes/default/css/ueditor.change.css"> <script type="text/javascript" charset="utf-8" src="<%= request.getContextPath() %>/thirdparts/utf8-jsp/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="<%= request.getContextPath() %>/thirdparts/utf8-jsp/ueditor.all.min.js"> </script> <script type="text/javascript" charset="utf-8" src="<%= request.getContextPath() %>/thirdparts/utf8-jsp/lang/zh-cn/zh-cn.js"></script> 接着在需要插入编辑器的位置插入以下代码 <textarea id="content" name="content" style="width:100%;height:500px"></textarea> <script type="text/javascript" charset="utf-8"> UE.getEditor('content',{toolbars: [[ 'fullscreen', 'source', '|', 'undo', 'redo', '|','bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc']]}); </script> toolbars控制工具栏显示哪些工具 textarea是显示编辑器的容器,其id与UE.getEditor(‘id’,{})要一致。 不一定要是textarea,div等都可以,可以自己试一试,我没有深入研究,凑合着用了。

May 15, 2020 · Xiangtao XIAO

理解MVC模式

M:Model V:View C:Controller 在JSP开发中,JSP仅负责控制页面的显示内容,Javabean仅负责存储数据,在Javabean中,数据以设计好的格式存储着,这也是为什么他叫模型,JSP可以方便的从Javabean中取得数据进行显示,Servlet则负责从数据库中读取数据,向数据库存储数据,对数据进行逻辑处理,之后将数据存储在javabean中以供显示。 MVC与三层架构:界面、业务逻辑、数据库存取是不一样的。MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。 看到有另一种说法: //blog.csdn.net/zuiyingong6567/article/details/80150834 同样是MVC,对于各层的理解有一些不同。尤其是对于数据库的连接,在PPT上看到的是C存取数据库,而网上一些资料显示是M存取数据库,而要求C尽量简单,仅仅负责在V与M间协调,大部分业务逻辑的处理,数据存取都放在Model中进行。

May 15, 2020 · Xiangtao XIAO