机器人与人工智能爱好者论坛

 找回密码
 立即注册
查看: 33064|回复: 10
打印 上一主题 下一主题

Tensorflow学习一些心得——dulixin

[复制链接]

2

主题

8

帖子

61

积分

注册会员

Rank: 2

积分
61
跳转到指定楼层
楼主
发表于 2015-12-5 15:44:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dulixin 于 2016-1-22 16:34 编辑

这个帖子是参加FGM学习小组,每周总结学习的一些心得体会,每周我会在这个帖子基础上更新自己的学习过程,以及在这个过程当中对Tensorflow的一些认识。

第四次学习心得:
关于线性代数,需要重新学一下,否则过程会很痛苦,建议
线性代数:矩阵的加减乘除,特征值,向量,特征向量,奇异值分解,推荐下面这个视频课程:
http://open.163.com/special/opencourse/daishu.html    Gilbert Strang

http://open.163.com/special/Khan/linearalgebra.html   

书籍推荐下面两个,线性代数按照网上的说法,国内的书没法看,线性代数要学习为什么这样做,而不是怎么计算。
http://book.douban.com/subject/1425950/    linear algebra and its applications David C lay ,这本书第四版有英文的,中文书好像是针对第三版的,网上能够找到两个PDF文档

linear algebra and its applications Gilbert Strang 这本书只有英文的,网上可以找到PDF文档

关于数学之美的学习心得:

1、第6章信息的度量和作用,信息熵的概念,有助于理解算法中的交叉熵来评价算法模型。
2、182页有一个最大熵模型炒股的说法,这个比较牛逼,咱们是不是也整个这个实践玩玩?股市的数据在taobao上能买到
3、198页马库斯简历的语料库,LDC,这个太牛逼了,这个真的是差距,中美无法逾越的,所以国内也只能做做应用了
4、24章贝叶斯网络讲的比较浅显易懂,关于训练的实质就是调整参数和结构,然后训练结构和参数,需要标记过的数据。

第三周学习心得:
1、学习:
      a、学习一些机器学习的基础知识:基础的线性方法,理解机器学习的过程以及过程中用到的一些概念。
      b、资源:网易机器学习的一个公开课http://open.163.com/special/opencourse/machinelearning.html
      c、又看了一遍mnist的教程,更深入理解了各个参数和模型建立的过程。
2、对google开源tensorflow的看法又有一些心得
      一方面对机器算法专业人员来说有一个开源的渠道,加入更多的人员来完善算法本身,另外随着开发者的不断增加,应用也会比较完善。未来的两个方向,第一是算法本身的完善,第二是应用方面,可以说谁家的算法应用更好将有机会统治消费者市场。
      应用tensorflow不关注算法本身,需要学会怎么应用这些算法,如果从应用的角度上来分析,可以形成一些固定的学习模型。针对图像、文字、语音等形成专门的解决方案。例如识别手写汉字、汉语语音识别,需要进一步研究,而且也要结合其它现有的知识,怎么提取数据特征和建模是重点。
3、Tensorflow算法应用,两种模式:
第一种模式:应用包含数据模型训练过程,这种对应用主机配置有一定要求,而且怎么用也待思考。这种场景下,每台主机都是个性化的,刚出厂时预配置一个模型,然后随着用户的使用,不断学习,其实是属于不同的个体。这个应用比较难,目前没有看到哪家是这样干的。
第二种模式:云端做模型学习和算法处理,应用终端使用云端训练的模型进行匹配,这个是目前图像识别、语音识别等常用的方式和技术,而且云端的算法众多,各类不同的技术也很多。


第二周学习心得:
要理解tesorflow这个工具,需要具备一些基本的机器学习概念和算法,这个逐步更新:
1
mnist这几章的学习方法,建议将所有的文档先通读一遍,然后再来看不懂得概念和思想,mnist初学者的教程还不如看深入的,因为深入对x w b y y_怎么来的讲的比较清楚。实际我对x w b y y_还是不太理解,需要继续学习。
2
、确实需要一些机器学习的基础知识,目前开始在看《深度学习基础教程》,看点基础知识,至少明白一些概念。下周看一下相关的书籍,了解一下,正确对这个问题有一个初步的看法。带来的一个问题,学习tensorflow是否需要学习机器学习的知识,要学到设么深度?这个是给专业的机器学习开发人员使用,还是可以给非专业的人士来用?
3
、先看一下运作方式,再看教程,运作方式里面有一些基础的操作方法和概念。

两个实例的运行情况:
mnist_softmax.py
训练次数不同得到的结果:

次数    结果
100     0.892
1000   0.9147
2000   0.9195
10000 0.9222
50000 0.9193

深入MNIST这一章的内容,整理了一下。
这个据小组学习了解,大家跑下来都是3个小时多一些,我使用虚拟机也是3个多小时,大家的CPU不同,理论上这个时间应该有差别,那么造成这个问题的原因?遗留问题,暂时未解。
深入理解mnist的卷积算法代码整理如附件,结果大约需要跑3个小时,目前还不是非常理解这个代码过程。
mnist_conv2d.rar (1.06 KB, 下载次数: 82)

Extracting/tmp/data/train-images-idx3-ubyte.gz
Extracting/tmp/data/train-labels-idx1-ubyte.gz
Extracting/tmp/data/t10k-images-idx3-ubyte.gz
Extracting/tmp/data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/local_device.cc:25]Local device intra op parallelism threads: 1
Itensorflow/core/common_runtime/local_session.cc:45] Local session inter opparallelism threads: 1
step 0, training accuracy 0.1
step 100, training accuracy 0.86
step 200, training accuracy 0.9
step 300, training accuracy 0.84
step 400, training accuracy 0.98
step 500, training accuracy 0.86
step 600, training accuracy 0.98
step 700, training accuracy 0.98
step 800, training accuracy 0.92
step 900, training accuracy 1
step 1000, training accuracy 0.96
step 1100, training accuracy 0.98
step 1200, training accuracy 0.98
step 1300, training accuracy 0.98
step 1400, training accuracy 0.98
step 1500, training accuracy 0.96
step 1600, training accuracy 0.96
step 1700, training accuracy 0.94
step 1800, training accuracy 1
step 1900, training accuracy 0.98
step 2000, training accuracy 1
step 2100, training accuracy 0.96
step 2200, training accuracy 1
step 2300, training accuracy 0.96
step 2400, training accuracy 0.98
step 2500, training accuracy 0.98
step 2600, training accuracy 1
step 2700, training accuracy 0.98
step 2800, training accuracy 1
step 2900, training accuracy 0.96
step 3000, training accuracy 0.98
step 3100, training accuracy 0.98
step 3200, training accuracy 0.98
step 3300, training accuracy 0.92
step 3400, training accuracy 0.96
step 3500, training accuracy 1
step 3600, training accuracy 0.98
step 3700, training accuracy 1
step 3800, training accuracy 1
step 3900, training accuracy 1
step 4000, training accuracy 0.98
step 4100, training accuracy 1
step 4200, training accuracy 1
step 4300, training accuracy 0.98
step 4400, training accuracy 0.98
step 4500, training accuracy 1
step 4600, training accuracy 0.98
step 4700, training accuracy 1
step 4800, training accuracy 0.98
step 4900, training accuracy 0.96
step 5000, training accuracy 1
step 5100, training accuracy 1
step 5200, training accuracy 1
step 5300, training accuracy 0.98
step 5400, training accuracy 1
step 5500, training accuracy 1
step 5600, training accuracy 1
step 5700, training accuracy 1
step 5800, training accuracy 0.98
step 5900, training accuracy 0.96
step 6000, training accuracy 1
step 6100, training accuracy 1
step 6200, training accuracy 1
step 6300, training accuracy 0.98
step 6400, training accuracy 1
step 6500, training accuracy 1
step 6600, training accuracy 1
step 6700, training accuracy 1
step 6800, training accuracy 1
step 6900, training accuracy 1
step 7000, training accuracy 0.98
step 7100, training accuracy 1
step 7200, training accuracy 1
step 7300, training accuracy 1
step 7400, training accuracy 0.98
step 7500, training accuracy 1
step 7600, training accuracy 0.98
step 7700, training accuracy 1
step 7800, training accuracy 1
step 7900, training accuracy 1
step 8000, training accuracy 1
step 8100, training accuracy 1
step 8200, training accuracy 1
step 8300, training accuracy 1
step 8400, training accuracy 1
step 8500, training accuracy 0.96
step 8600, training accuracy 1
step 8700, training accuracy 1
step 8800, training accuracy 1
step 8900, training accuracy 0.98
step 9000, training accuracy 0.96
step 9100, training accuracy 0.98
step 9200, training accuracy 1
step 9300, training accuracy 1
step 9400, training accuracy 1
step 9500, training accuracy 1
step 9600, training accuracy 1
step 9700, training accuracy 1
step 9800, training accuracy 1
step 9900, training accuracy 1
step 10000, training accuracy 1
step 10100, training accuracy 1
step 10200, training accuracy 1
step 10300, training accuracy 1
step 10400, training accuracy 1
step 10500, training accuracy 1
step 10600, training accuracy 1
step 10700, training accuracy 1
step 10800, training accuracy 1
step 10900, training accuracy 1
step 11000, training accuracy 0.98
step 11100, training accuracy 1
step 11200, training accuracy 1
step 11300, training accuracy 1
step 11400, training accuracy 1
step 11500, training accuracy 0.98
step 11600, training accuracy 1
step 11700, training accuracy 1
step 11800, training accuracy 1
step 11900, training accuracy 1
step 12000, training accuracy 1
step 12100, training accuracy 0.96
step 12200, training accuracy 1
step 12300, training accuracy 1
step 12400, training accuracy 1
step 12500, training accuracy 1
step 12600, training accuracy 1
step 12700, training accuracy 1
step 12800, training accuracy 1
step 12900, training accuracy 1
step 13000, training accuracy 1
step 13100, training accuracy 1
step 13200, training accuracy 1
step 13300, training accuracy 1
step 13400, training accuracy 1
step 13500, training accuracy 1
step 13600, training accuracy 1
step 13700, training accuracy 1
step 13800, training accuracy 1
step 13900, training accuracy 1
step 14000, training accuracy 1
step 14100, training accuracy 1
step 14200, training accuracy 1
step 14300, training accuracy 1
step 14400, training accuracy 1
step 14500, training accuracy 1
step 14600, training accuracy 1
step 14700, training accuracy 1
step 14800, training accuracy 1
step 14900, training accuracy 1
step 15000, training accuracy 1
step 15100, training accuracy 1
step 15200, training accuracy 1
step 15300, training accuracy 1
step 15400, training accuracy 1
step 15500, training accuracy 1
step 15600, training accuracy 1
step 15700, training accuracy 1
step 15800, training accuracy 1
step 15900, training accuracy 1
step 16000, training accuracy 1
step 16100, training accuracy 1
step 16200, training accuracy 1
step 16300, training accuracy 1
step 16400, training accuracy 1
step 16500, training accuracy 1
step 16600, training accuracy 1
step 16700, training accuracy 1
step 16800, training accuracy 1
step 16900, training accuracy 1
step 17000, training accuracy 1
step 17100, training accuracy 1
step 17200, training accuracy 1
step 17300, training accuracy 1
step 17400, training accuracy 1
step 17500, training accuracy 1
step 17600, training accuracy 1
step 17700, training accuracy 1
step 17800, training accuracy 1
step 17900, training accuracy 1
step 18000, training accuracy 1
step 18100, training accuracy 1
step 18200, training accuracy 1
step 18300, training accuracy 1
step 18400, training accuracy 1
step 18500, training accuracy 1
step 18600, training accuracy 1
step 18700, training accuracy 1
step 18800, training accuracy 1
step 18900, training accuracy 1
step 19000, training accuracy 1
step 19100, training accuracy 1
step 19200, training accuracy 1
step 19300, training accuracy 1
step 19400, training accuracy 1
step 19500, training accuracy 1
step 19600, training accuracy 1
step 19700, training accuracy 1
step 19800, training accuracy 1
step 19900, training accuracy 1
test accuracy 0.9921


第一周的学习内容:
     先说说自己为什么要学习Tensorflow,参加这个学习小组。

     我不是机器学习相关专业的,而且毕业很多年了,连写代码都已经放下,之所以对Tensorflow产生兴趣,一方面是工作原因,有这方面的需求,另外一方面机器学习的技术相对比较前沿,即使对算法不太理解,但是并不妨碍对机器学习的学习,这是一个技术应用的趋势。

     对Tensorflow的整体看法,机器学习这块确实有不少开源或者不开源的算法,但是目前为止,学术上这块比较热,还有就是一些很有实力的大公司才能够投入来做。对于目前几家公司为什么要开源机器学习?我的理解是可以参考Android在整个手机生态系统上的作用,这也是为什么我选择Tensorflow的原因,google在推动技术工程化方面比M和F有明显的优势。可以预见未来,单机智能化也会像智能手机系统一样遍地开花,并不需要非常了解算法本身,甚至不了解数据训练和模型,就可以开发真正具有学习能力的产品。

      1、Tensorflow包含了一些现成的算法,具体的数据训练和模型还需要自己搭建,这块是一个比较困难的地方,举例都是以mnist这个数据库为例,学习有这个数据库支撑,但是实际数据怎么训练也是一个研究的方向。因为我对模型、训练这个过程只有一些概念,而且Tensorflow的文档才看了一个开头,是不是有很多成熟的模型来用,以后学习逐步扩展。
      2、应用方向,从各种信息来看,Tensorflow只是公开了单机版的模型,本身不支持分布式,那么应用价值有没有,需要看一下,能不能放到单机设备中跑,在单机中是一个什么样的存在,需要什么样的硬件资源支撑,这块google也并没有明确具体在google的哪款产品上有跑。这块有应用的价值。
      3、综合网络上的各类说法,Tensorflow至少不是一个目前较先进的机器学习算法,但是我认为google对这个工具的期望应该是工程化的需求大于学术需求,毕竟能大规模商业化才是最终为人们所接受的,这也许就是google的一次尝试。工程化会是一个比较漫长的过程。
回复

使用道具 举报

2

主题

8

帖子

61

积分

注册会员

Rank: 2

积分
61
沙发
 楼主| 发表于 2015-12-5 15:46:13 | 只看该作者
占楼,以后更新
回复 支持 反对

使用道具 举报

2

主题

8

帖子

61

积分

注册会员

Rank: 2

积分
61
板凳
 楼主| 发表于 2015-12-5 15:47:21 | 只看该作者
占楼,以后更新
回复 支持 反对

使用道具 举报

2

主题

8

帖子

61

积分

注册会员

Rank: 2

积分
61
地板
 楼主| 发表于 2015-12-5 15:48:59 | 只看该作者
占楼,以后更新
回复 支持 反对

使用道具 举报

285

主题

451

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13714
5#
发表于 2015-12-5 18:14:40 | 只看该作者
哈,老杜手快啊。

晚上我也好好整理一下,发出来。
我是笨鸟,我先飞!
回复 支持 反对

使用道具 举报

285

主题

451

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13714
6#
发表于 2015-12-14 12:48:47 | 只看该作者
第二周也更新了,不错。

我把你分享的书加入到主贴中。
我是笨鸟,我先飞!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

61

积分

注册会员

Rank: 2

积分
61
7#
 楼主| 发表于 2015-12-18 16:52:38 | 只看该作者
自己回复一个,免得沉了,每周更新一下学习进展。
回复 支持 反对

使用道具 举报

285

主题

451

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13714
8#
发表于 2015-12-19 12:41:20 | 只看该作者
老杜,你第3周中那两张图片是自己画的?
我是笨鸟,我先飞!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

61

积分

注册会员

Rank: 2

积分
61
9#
 楼主| 发表于 2016-2-14 15:10:12 | 只看该作者
morinson 发表于 2015-12-19 12:41
老杜,你第3周中那两张图片是自己画的?

是我画的,刚看到你的问题
回复 支持 反对

使用道具 举报

0

主题

120

帖子

251

积分

中级会员

Rank: 3Rank: 3

积分
251
10#
发表于 2016-2-22 13:12:26 | 只看该作者
谢谢楼主,楼主太好人了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|陕ICP备15012670号-1    

GMT+8, 2024-5-2 22:48 , Processed in 0.068256 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表