作者outrunner (ot)
看板Soft_Job
标题[心得] kaggle心得分享
时间Sun Jul 2 09:45:08 2017
本鲁今年开始"认真"学习DL, 同时发现kaggle这个好地方.
先上DL自学菜单:
1.
http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
2.
http://cs231n.stanford.edu/
3.
https://www.google.com.tw/
看1,2, 看不懂就3. 但其实会google就够了.
最重要的是观念, 昨晚po在八卦板, 这里就不重复贴啦. (风格不符XD)
Kaggle则是我的学习动力来源, 玩了几个月有些心得跟网路上不太一样:
1. 直接找大比赛练习 -
同样是花时间, 不如找回馈较多的比赛,
不论是积分或奖金, 来满足一下虚荣心, 会学得比较开心.
2. 对有兴趣, 且没有套路的比赛认真 -
咖狗比较可惜的是, 很多竞赛大家的方法都一样, 成绩也挤成一团,
虽然说ensemble也是一门学问, 但还有其他更值得你花时间的地方.
3. 相信LB score -
许多人建议避免过度fit LB, 否则容易造成overfitting.
我想除非是藉由调整无关紧要的参数来取得更好的LB score,
或是public/private不是random或sample太少,
否则大部分的情况是不用担心的.
有些kaggler会建议找出与LB结果接近的CV set来使用,
有人说这不过是另一种型式的fit LB.
关於数海狮竞赛:
https://www.kaggle.com/c/noaa-fisheries-steller-sea-lion-population-count
题目是计算图片中各型别海狮(分公母大小, 5类)的数量.
既然是数数题, 我就这样解: (DL第一课: neural network is a black box)
Input(切成小片的图片) -> [黑盒子] -> output(小图片中海狮各型别的数量)
黑盒子:
VGG16 w/o top + FC*1024 + FC*5(linear, 输出五种海狮的数量)
最後就是用撒尿牛丸(Fit LB)搞定scale问题:
自从吃了outrunner的撒尿牛丸後考试都考一百分 ~by 5th team
我吃了以後明显的高了 ~by 4th team
5th还强烈建议2nd吃吃看, 我觉得这是这次比赛最有趣的地方.
至於入门第一场分鱼种的比赛, 我是用SSD, 成绩出乎意料.
因为一直到比赛结束一个月後我才把SSD看完,
想到Keras猫狗范例中有提到:
In fact, in the Kaggle competition, this model would have scored
in the top 100 (out of 215 entrants). I guess that at least 115
entrants weren't using deep learning.
最後附上profile:
https://www.kaggle.com/outrunner
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.206.20
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1498959912.A.6C5.html
1F:推 Murasaki0110: 记得鱼的data没有给bbox,请问你怎麽train SSD的? 07/02 10:14
2F:→ outrunner: 好心kaggler提供, 这次数海狮也有人发起. 07/02 10:17
3F:→ Murasaki0110: 大家一起label吗XD 07/02 11:03
各自做label的人(手动/半自动)还不少, 有些人会分享. 这次是资料量太大.
4F:推 johnpisces2: 推 07/02 11:19
5F:推 ray39620: 好强, 恭喜! 大大是刚接触ML就拿这样的成绩吗XD 07/02 11:24
6F:→ outrunner: ML学了15年吧, 刚接触DL. 07/02 11:45
7F:推 admin520: 感谢分享~ 07/02 11:46
8F:→ bobju: 路过推 07/02 11:58
9F:→ bobju: 数海狮有意思 07/02 11:58
10F:→ bobju: 推 07/02 11:58
11F:推 jj0321: 请问大大 玩Kaggle都是租Server还是本机做运算? 07/02 12:30
12F:→ outrunner: 本机. 上次估狗的比赛有免费server, 很复杂我不会用.QQ 07/02 12:33
13F:推 jj0321: 以前有玩过 但本机CPU I5第二代+16G RAM 好慢...好奇大大 07/02 12:36
14F:→ jj0321: 的配备 能分享吗? 07/02 12:36
分鱼类的时候, 我只用一台烂烂的nb,
不过後来a到一张gtx 1080, 以数海狮的资料量来说, 没GPU还真的玩不动.
建议至少弄张有4GB ram的显卡来玩.
我还蛮好奇租server的花费跟本机比起来差多少?
15F:推 YJSai: 推fast ai的课程 07/02 12:44
看起来很赞, 跟推.
16F:推 xsssxxzz: 大大超猛 我还假会用Faster RCNN解线型就可解的问题 07/02 13:38
17F:推 xsssxxzz: Train with Gcloud Titan 30 NT/hr 07/02 13:45
感谢. 用Faster RCNN就值得尊敬啦XD.
此外, YOLO作者在deadline後说他不小心错过了, 虽然他没说要用什麽方式做.
还是感到有点遗憾.
18F:推 jj0321: 感谢分享! 原来有用GPU! 有钱也来搞一张玩 07/02 13:48
19F:推 Murasaki0110: 目前1060是张很好的入门卡,CPU/SSD有闲钱再升级 07/02 14:30
20F:→ Murasaki0110: server是完全不推荐,除非你只想玩一个礼拜尝鲜XD 07/02 14:31
21F:→ lukelove: 蛮好奇这是大大的工作内容之一吗 07/02 15:00
22F:→ lukelove: 还是纯兴趣, 纯兴趣光靠下班时间真的强 07/02 15:01
23F:→ lukelove: ML学了15年 大大公司能透露一二吗 07/02 15:02
抱歉容我保留一下.
ML是当年念书的时候有学过. 其实不记得那时候有这个词.
就是PR, NN之类都学过, 然後工作也大多没有相关性.
这次就是DL红了, 大家跟风, 我也跟风.
24F:推 OS63: 是念 K狗,不是咖狗。 07/02 15:26
25F:推 drajan: .....这世界上只有一种英语发音吗? 07/02 16:11
26F:推 OS63: 也是啦,你知道是在说什麽就好。 07/02 16:31
27F:推 del680202: 可以请教使用的OS环境吗 最近也在考虑买张显卡 07/02 16:43
28F:→ del680202: 可是不太想用windows去跑 07/02 16:43
OS不是问题. 我用windows, 当然linux也ok.
29F:推 xsssxxzz: 其实我最近看大大也有在玩Planet...Rank 29超猛 07/02 18:14
30F:推 xsssxxzz: 对了 你是怎麽决定最後flatten要用1024个neurons? 07/02 18:16
就只是觉得够了这样...後来试过多了也没用.
31F:推 f496328mm: 厉害推 07/02 20:18
32F:→ f496328mm: 有github或是kernel可以参考吗?谢谢 07/02 20:18
关於我做法的讨论串:
https://goo.gl/ytpfLW (很破的英文)
里面第一个link是kernel.
33F:推 yiefaung: 最重要的应该是先干到GPU 没有GPU根本半残 07/02 22:48
34F:推 f496328mm: 你好屌 第二名看不到你的车尾灯 远远领先大家 07/02 23:16
35F:→ f496328mm: 看来你目前的工作应该不错 能力超强 07/02 23:17
36F:→ f496328mm: 而且你public 跟 privater几乎一样 代表你模型超好 07/02 23:18
37F:推 f496328mm: 想问你显卡RAM会不会不够用??这DATA超大耶 07/02 23:21
显卡ram主要跟model及batch size有关, 当然是多多益善啦.
但我为了弹性会双开. 所以这次一个process只用不到4GB. (1080有8G)
38F:推 f496328mm: 目前Kaggle上总排名第一的 组队还输给你 07/02 23:24
39F:推 y800122155: 真神人! 第12名那队三个都是Grandmaster 超猛的@@ 07/02 23:35
40F:推 toto9: 好厉害~感谢分享 07/02 23:36
41F:推 evecorkey: 推。也想下班自己研究玩但是好难可以问你吗 07/03 03:51
欢迎, 不过目前我比较有心得的就是数海狮...
42F:推 harry0731: 推神人 我自己尝试都只能在2.30%左右 07/03 10:49
43F:推 dreamnook: 推 07/03 11:32
44F:推 vi000246: 计算机视觉要怎麽入门啊 看有些人都直接用阵列操作图片 07/03 13:56
45F:→ vi000246: 不知道他们是怎麽想到用这方式处理图片的 07/03 13:56
46F:推 BlackMatrix: 楼上, 阵列可以代表一个图片, 假如这个图片是10x10的 07/03 14:24
47F:→ BlackMatrix: 大小, 那这个矩阵就是10x10x3大, 因为一个点可以用 07/03 14:25
48F:→ BlackMatrix: RBG(绿色蓝色红色代替) 所以每个点有三个数值 07/03 14:26
49F:→ BlackMatrix: 已经流行一阵子的Convolutional Networks是找物体 07/03 14:27
50F:→ BlackMatrix: 的边边角角拼凑成一张大物体 07/03 14:28
51F:→ BlackMatrix: 可以去看一下Stanford CS291入门 07/03 14:29
52F:→ BlackMatrix: 说错, 231N入门 07/03 14:41
53F:推 vi000246: 感谢楼上 我有找到影片了 07/03 15:53
54F:→ red0210: 台大李宏毅教授的开放式课程很不错 07/03 18:29
55F:→ ray39620: 以上都在文章的连结里喔…也可於youtube搜寻 07/04 10:59
56F:推 ericwu790419: 分鱼的那场data太烂 只要把sample submission上传就 07/04 19:23
57F:→ ericwu790419: 银牌了 07/04 19:23
哈, 还好我有赢sample submission
58F:推 zzxzxzzxz: fit LB是指post processing乘1.3那个步骤吗? 07/06 06:13
严格来说从test image缩图开始就算啦.
几乎所有人都缩了一半以上(vs. training set)
为了输出更多的未成年海狮有两个做法:
(1) 缩图
(2) 事後补偿
第二名的复杂regressor我猜多少有一点(2)的成分在.
另外我猜(1)做过头(做到最佳解, 平均大小会比训练集小), 再做(2)也没用.
59F:推 zzxzxzzxz: 原来如此 感谢! 07/07 00:11
※ 编辑: outrunner (114.42.219.184), 07/07/2017 16:46:28
60F:推 Obama19: Cong! 07/07 19:18
61F:推 DennisTang: 恭喜前辈~~ 07/08 17:43