今天在看电影的过程中我忽然想起来几件特别郁闷的事,我居然忘了上周三晚上的计算机接口的实验课!然后我又想起来我又忘了上周六晚上的就业指导!
然后一阵恐惧与责备瞬间涌了上来。
这事要是在以前我绝对会释然的,可是重要的事说三遍~我要保研,我要保研,我要保研!我怎么能这么大意啊!!!!!!!!!!
哎,郁闷,还是说说代码吧。
心情不好转移一下
                           郁闷的分割线


学习此内容是建立在文本分类的MaxEntSentiment最大熵分类的基础上的,代码可以在github下载

稀疏特征构成单层神经网络

什么是稀疏特征

所谓稀疏特征就是说,在整个特征库V中选中的特征是很少的(如果说选中的特征用1标记,没选中的特征用0标记)
那么在整个特征向量中(0的个数大于1的个数)

比如说一个特征库中有A,B,C,D,E,F,G,H,I。。。。Z 26个特征 现在有一个句子中有A B C D这个四个特征 ,那么就表示为(1,1,1,1,0,0,0,0,0,0,0,0….)
可以参考:https://www.zhihu.com/question/31951092

单层神经网络

单层神经网络就是只有一个隐层
现在我们的目的是来判断一个句子是正向的还是负向的

第一步:

就是去特征库中找到想要的特征
比如:(就是含有特征A,B,C,D的这个句子)x:(1,1,1,1,0,0,0,0,0,0,0,0….)

第二步:

构建一个26*2(第一个参数是你有多少特征,第二个参数是你要分几类。前面的例子是由26个特征,要分为2类,正向1,负向0)的特征库,每一行表示这个特征在正向和负向上的“贡献”,就是这个特征有多大可能是正向的,多大可能是负向的。
当然,我们不会手工的对这26个特征进行正向和负向的赋值。因为深度学习是要学习的吗。所以最开始给他们赋值为-1到1的随机数

第三步:

V与x这两个矩阵相乘,x是1*26的,V是2*62的 结果就是1*2的矩阵。
也可以换种角度思考:对所选中的特征在0那一列的数值加一起,然后在1那一列的数值在一起。最后也是1*2的矩阵。有人说,这不是废话么。。。但是在编程的时候就不用乘了,直接加就可了,提高了速度??代码中就是这么定义的V,这么定义的目的就是在前向计算的时候是把这个矩阵出现的特征0, 1向分别加一起而不是v乘x

再提一句什么是前向计算:ComputeForward
v*x就是前向计算啦~~~ 我觉得这个名字就是为了一会要出现的反向计算而起的名字。这个12的矩阵就是最后的输出y ()

第四步:

这个1*2的矩阵我们还要变个形下,对她进行归一化也就是softmax。
可以这么想,想要统计理科的分数和100分有多大差距,你是不是要把你理科成绩加一起然后再除以科目数吧,这样你才能和100分对比。这里的softmax是不是类似这个功能。

第五步:

和真实情况对比求差距。产生差距的原因可定是每一个特征对正向和负向的赋值不准确。
然后反过来改v。这个就叫ComputeBackward。反向计算


然后再继续回到第三步。。。反复。。。。

这里的e1 e2神马的 就是所选择的特征,这个图中是选择了7个特征。然后在V中把它们正向和负向分别加一起(y是1*2的矩阵)与0,1做对比。这里的隐层就是图片中灰色的V

这个是学长做的图片,我就直接拿来了,我有空会自己做一个我自己觉得好理解的图片的。
单层的就说完了
下一篇讲多层的,和它几乎一样。我会尽量更详细的用图来解释,以及对这里有些一带而过的ComputeBackward进一步说明


22点45了。哎~早点睡觉明天早点起来去占个座,不能再继续这样不积极了。连课都会忘了,也不认真听课!大三下加油!


                     郁闷的结束线

坚持是一种伟大的力量,可以改变一切

Deep Learning入门的更多相关文章

  1. 大牛deep learning入门教程

    雷锋网(搜索"雷锋网"公众号关注)按:本文由Zouxy责编,全面介绍了深度学习的发展历史及其在各个领域的应用,并解释了深度学习的基本思想,深度与浅度学习的区别和深度学习与神经网络之 ...

  2. Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释

    代码1如下: #深度学习入门课程之感受神经网络(上)代码解释: import numpy as np import matplotlib.pyplot as plt #matplotlib是一个库,p ...

  3. Deep Learning入门视频(上)_一层/两层神经网络code

    关于在51CTO上的深度学习入门课程视频(9)中的code进行解释与总结: (1)单层神经网络: #coding:cp936 #建立单层神经网络,训练四个样本, import numpy as np ...

  4. deep learning入门:感知机

    权重和偏置 import numpy as np # 求x1 and x2 def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5 ...

  5. (转)深度学习(Deep Learning, DL)的相关资料总结

    from:http://blog.sciencenet.cn/blog-830496-679604.html 深度学习(Deep Learning,DL)的相关资料总结 有人认为DL是人工智能的一场革 ...

  6. 应该如何入门deep learning呢?从UFLDL开始!

    抱歉,大家,这里不是要分享如何学习deep learning,而是想要记录自己学习deep learning的小历程,算是给自己的一点小动力吧,希望各位业内前辈能够多多指教! 看到有网友提到,Andr ...

  7. 转:UFLDL_Tutorial 笔记(deep learning绝佳的入门资料 )

    http://blog.csdn.net/dinosoft/article/details/50103503 推荐一个deep learning绝佳的入门资料 * UFLDL(Unsupervised ...

  8. TensorFlow和深度学习入门教程(TensorFlow and deep learning without a PhD)【转】

    本文转载自:https://blog.csdn.net/xummgg/article/details/69214366 前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把 ...

  9. (转)Deep Learning深度学习相关入门文章汇摘

    from:http://farmingyard.diandian.com/post/2013-04-07/40049536511 来源:十一城 http://elevencitys.com/?p=18 ...

随机推荐

  1. 【JVM】线上应用故障排查

    高CPU占用 一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障. 通过ps aux ...

  2. ReferenceQueue

    @Test public void strongReference() { Object referent = new Object(); /** * 通过赋值创建 StrongReference * ...

  3. Pycharm建立web2py项目并简单连接MySQL数据库

    引言 web2py是一种免费的,开源的web开发框架,用于敏捷地开发安全的,数据库驱动的web应用:web2p采用Python语言编写,并且可以使用Python编程.web2py是一个完整的堆栈框架, ...

  4. 如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现

    一,话说天下大事 前不久看到lufy的博客上,有一位朋友想要一个RPG游戏引擎,出于兴趣准备动手做一做.由于我研究lufylegend有一段时间了,对它有一定的依赖性,因此就准备将这个引擎基于lufy ...

  5. sql 自定义函数返回中文,数字,英文

    --提取数字IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2GOCREATE FUNCTION DBO. ...

  6. 修改WordPress标签云字体大小颜色及标签显示数量

    WordPress 自带的标签云是一个很实用的小工具.站长可以通过标签对具有相同关健词的文章进行检索分类,利于访客查找相关文章.WordPress 默认标签云的字体最小为8pt,最大为22pt,标签显 ...

  7. java 并发——理解 wait / notify / notifyAll

    一.前言 前情简介: java 并发--内置锁 java 并发--线程 java 面试是否有被问到过,sleep 和 wait 方法的区别,关于这个问题其实不用多说,大多数人都能回答出最主要的两点区别 ...

  8. vue我的总结+转原理

    我的总结 vue:1 mvvm模型,model,view,viewmodel,自底层向上,逐渐增加的模式2 .vue文件 包含html css js 有最近设计原则,将自己需要的放到最近,2 组件化 ...

  9. 【转】js获取当前日期时间“yyyy-MM-dd HH:MM:SS”

    获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function getNowFormatD ...

  10. 关于Socket和ServerSocket类详解

    Socket类 套接字是网络连接的一个端点.套接字使得一个应用可以从网络中读取和写入数据.放在两个不同计算机上的两个应用可以通过连接发送和接受字节流.为了从你的应用发送一条信息到另一个应用,你需要知道 ...