20191215周学习总结

最近会打算每周总结一下学习的内容,主要内容可能是看过的书的一些学习笔记、论文阅读、学习的知识点以及推荐一些文章。

这周的学习包括:

  • 推荐系统的知识点整理

  • 机器学习的技巧学习

  • linux下两台机器的ssh免密登陆方式

  • 书籍阅读

  • 效率方法


推荐系统

因为工作方向的原因,从九月份开始工作内容从图像转到了推荐系统,不过推荐系统的内容其实是非常的多,目前也还是在学习,然后也简单做了一个推荐系统知识体系的思维导图,算是作为学习的一个指导方向,会陆续完善这个知识体系:

主要是参考这两本书和极客时间的一门课程:

  • 《推荐系统实践》

  • 《推荐系统开发实战》

  • 极客时间的《推荐系统三十六式》

推荐看的几篇文章有:

  • 今日头条、抖音推荐算法原理全文详解!

  • 电商个性化推荐系统,怎么设计?

  • 腾讯信息流内容理解技术实践

  • 《文章推荐系统》推荐系统系列--jianshu.com/u/ac833cc5146e


机器学习

分享下本科生晋升GM记录 & Kaggle比赛进阶技巧分享中一些不错的调参技巧

优化器的选择

一般选择 Adam,初始学习率是 3e-4,据说这是 Adam 最好的初始学习率;另一个选择就是 SGD,随即梯度下降,这个速度会更快,但如何选择学习率就考验调参功力了

学习率策略

如何选择一个合适的学习率策略,即学习率下降的频率和幅度的选择,这个主要影响的当然就是梯度下降是否可以到达全局最小值,而不是陷入局部最小值了。作者推荐的三种策略:

  • ReduceLROnPlateau,patience=4(5),gamma=0.1,这是我常用的一套组合,并不是最好的;

  • StepLR,个人比较喜欢用这个,自己设定好在哪个epoch进行学习率的衰减,个人比较喜欢用的衰减步骤是[5e-4(3e-4), 1e-4, 1e-5, 1e-6],至于衰减位置,就需要自己有比较好的直觉,或者就是看log调参,对着2.1上训练的valid loss走势,valid loss不收敛了,咱就立刻进行衰减;

  • CosineAnnealingLR+Multi cycle,这个相较于前两个,就不需要太多的调参,可以训练多个cycle,模型可以找到更多的局部最优,一般推荐min_lr=1e-6,至于每个cycle多少epoch这个就说不准了,不同数据不太一样。

Finetuning的技巧

微调是指采用一个预训练模型的初始参数,然后在自己的数据集或者新的网络模型上训练得到自己的模型,之所以要使用 finetuning,目的就是更好更快的收敛,并且得到性能更好的模型,由于现在网络模型越来越大,模型的参数都是几十万,上百万,甚至更多,如何设置初始参数就非常重要,好的初始参数当然就可以缩短训练时间,并且获得更佳的性能,而预训练模型就能达到这个目的--提供不错的初始参数选择,当然这里具体微调的方式,也是有以下四种:

  • 微调方式一,最常用,只替换掉最后一层 fc layer,改成本任务里训练集的类别数目,然后不做其余特殊处理,直接开始训练;

  • 微调方式二,在微调一的基础上,freeze backbone 的参数,只更新(预训练)新的fc layer的参数(更新的参数量少,训练更快)到收敛为止,之后再放开所有层的参数,再一起训练;

  • 微调方式三,在微调方式二预训练fc layer之后或者直接就是微调方式一,可选择接上差分学习率(discriminative learning rates)即更新backbone参数和新fc layer的参数所使用的学习率是不一致的,一般可选择差异10倍,理由是backbone的参数是基于imagenet训练的,参数足够优秀同时泛化性也会更好,所以是希望得到微调即可,不需要太大的变化。

  • optimizer = torch.optim.Adam([{'params': model.backbone.parameters(), 'lr': 3e-5},{'params': model.fc.parameters(), 'lr': 3e-4},   ])
    
  • 微调方式四,freeze浅层,训练深层(如可以不更新resnet前两个resnet block的参数,只更新其余的参数,一样是为了增强泛化,减少过拟合)。


编程开发

了解如何实现两台机器的 ssh 免密登陆:

  1. 两台机器之间免密登陆的方法,首先是在两台机器分别执行 ssh-keygen, 命令出来后,直接按3次回车键,第一次就是默认生成的密钥保存在 ~/.ssh/id_rsa.pub,然后两次是确认密码

  2. 接着在两台机器分别执行命令 ssh-copy-id -I ~/.ssh/id_rsa.pub root@ip,这里的ip 是另一台机器的ip,这就是将本机生成的ssh公钥传到另一台机器,并写入其 ~/.ssh/authorized_keys 文件中

  3. 执行完后,ssh ip 来试验登陆机器,查看是否设置成功

另外完成这个设置后,两台机器之间的文件传输也是可以不需要输入密码的,也是非常方便了。


阅读

这周终于是看完《软技能:代码之外的生存指南》,我觉得这确实是一本非常值得程序员看看的书,或者说对于之前比较火的一个话题--怎么做副业,想做副业的也推荐看看这本书,这本书正如书名说的,介绍的代码之外的技能,整本书分为 7 篇,也是 7 个方面的内容,包括:

  • 职业:对自己职业的规划、自由职业者的介绍等

  • 自我营销:提高自己的影响力,打造自己的品牌;

  • 学习:学习方法

  • 生产力:如何提高自己的效率

  • 理财:如何分配每个月的薪水、退休计划、对房地产的投资

  • 健身:一些健身知识的科普

  • 精神力:如何拥有积极的心态、爱情、积极面对失败等


效率方法

其实一直都在想着怎么提高自己的工作学习效率,之前其实也看过一些文章的介绍,方法包括:

  • 设置一个大目标,然后分解成一个个小目标,然后做好月计划、周计划,并且做好总结;

  • 番茄工作法,也就是工作学习一段时间,比如30分钟,然后休息5分钟,主要就是提高专注了;

这几个方法都有在使用,不过目前在计划方面会做得不够好,每次总结的时候,都会发现这周的计划似乎太多,导致完成率不到50%,这主要是也是每天的效率有些低。

不过最近,又新学习了一个方法,来自也大(公众号:也谈钱),叫做每天三件事+记录一件自己开心的事情,主要就是每天只计划完成 3 件事情即可,数量不多也不会太少,难度也不会太高,每天都能完成也可以保证一个正反馈,提高自己的积极性;

而记录一件开心的事情也是可以让自己在遭遇一些挫折困难或者不够自信的时候,看看自己曾经做过的成功的事情,或者开心的事情,鼓励自己勇于面对挫折、困难或者是失败;

一开始可以先定下一个坚持7天的目标,然后坚持完成7天,则可以继续提高到 14 天,然后再就是一个月,这样就很快能养成这个习惯,目前我的进展是到了 14 天的这个阶段,再坚持 2 天也可以完成坚持 14 天的目标,当然其实这个过程中,也还是有一两天没能完全完成 3 件事情,但我感觉并不要紧,记录下来每件事情的完成程度,或者说原因,明天再继续今天没有完成的事情。

当然每天 3 件事情,其实也是需要根据自己的计划来的,每周的计划依然还是需要尽量量力而行,需要做好减法,只挑选当前紧急重要的事情或者重要但不紧急的事情。


欢迎关注我的微信公众号--算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!

如果觉得不错,在看、转发就是对小编的一个支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转12306之系统登录

【申明:本文所涉及的技术和分析的目的都是为了学习和交流,任何人使用文中所提的技术或成果做出的违法事情与我无关,大家购买火车票还是去12306官网上去购买。】 从今天起,我开始分析12306网站的Http请求,以及编写一个客…

react学习(10)----react数组定义 从0开始 直接加个0下标空

{title: 状态,dataIndex: status,render: (text, row) > {let arr [, 未开始, 进行中, 已结束, 已作废];return <span>{arr[text]}</span>;},},

Nginx快速搭建和基本使用

2019年第 83 篇文章&#xff0c;总第 107 篇文章最近在工作中项目需要上线&#xff0c;所以也了解到关于一些部署上线的知识内容&#xff0c;Nginx 就是其中一个知识点&#xff0c;主要是可以用它来进行负载均衡&#xff0c;本文的目录如下&#xff1a;简介安装配置基本使用简介…

对于mysql的用户权限管理

转载链接&#xff1a;http://www.cnblogs.com/ymy124/archive/2012/05/23/2514196.html 1.新建用户 //登录MYSQL>mysql -u root -p>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,jeecn’,password(‘jeecn’));//刷新系统权…

第二期周总结

第二期的周总结&#xff0c;这次学习的内容可能没有上次那么广泛&#xff0c;主要是因为这周我负责的模块需要测试并进行上线&#xff0c;所以主要学习了解的就是工程开发方面的内容&#xff0c;准确说是部署上线的内容&#xff0c;所以本周主要简单总结这次上线过程的一些内容…

react学习(12)-moment插件设置日期格式

<p>{moment(boothDetails.startTime).format(YYYY-MM-DD)}到{moment(boothDetails.endTime).format(YYYY-MM-DD)}</p>

AI知识点(1)--激活函数

2019年第 84 篇文章&#xff0c;总第 108 篇文章本文大约 5000 字&#xff0c;阅读大约需要 15 分钟AI知识点&#xff08;AI Knowledge&#xff09;系列第一篇文章--激活函数。本文主要的目录如下&#xff1a;激活函数的定义为什么需要激活函数常见的激活函数1. 激活函数的定义…

oracle分区

oracle 分区技术&#xff1a;使用分区技术&#xff0c;Oracle允许把一个大表分成几个部分&#xff0c;每部分叫一个分区&#xff0c;然后把每个部分放在不同的物理磁盘&#xff0c;以提高整个数据库的性能。分区技术的优点&#xff1a;1.分区技术使数据库的可管理性变得更加容易…

react学习(13)-moment中 isRangePicker 控制类型

<Col span{8} key{index}><Form.Item label{item.label} {...formItemLayout}>{getFieldDecorator(${item.paramsName}, {})(item.isRangePicker ? (<RangePickershowTime{item.showTime ? item.showTime : false}style{{ width: 100% }}allowClear/>) : (…

Linux 定时执行shell 脚本

2019年第 85 篇文章&#xff0c;总第 109 篇文章本文大约2000字&#xff0c;阅读大约需要6分钟crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令。定时执行shell 脚本简单给出执行 shell 脚本的步骤。首先是编写一个测试脚本--test.sh# 创建脚本 $ vim tes…

react学习(14)-getTime是对时间进行处理的方法

{name: data?.name,startTimeLong: new Date(data?.code[0]).getTime(),endTimeLong: new Date(data?.code[1]).getTime(),},() > {this.getFrameList();}

同余定理

http://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/03/2430676.html http://blog.sina.com.cn/s/blog_6e223f1d0101bkry.html 转载于:https://www.cnblogs.com/thefirstfeeling/p/4410970.html

简单总结 2019 展望 2020

2019 总结整体回顾一下今年&#xff0c;一个完整的经济独立的一年&#xff0c;也是工作满一年&#xff0c;改变很多&#xff0c;虽然有进步&#xff0c;但还不够明显&#xff0c;依然存在的三分钟热度、拖延、执行力低下的问题。工作这一年做的还是同一个项目&#xff0c;不过具…

react学习(15)-getTime selectedRowKeys是this.props取值的

const rowSelection {selectedRowKeys,onChange: this.onSelectChange,};

RS(1)--10分钟了解什么是推荐系统

总第 110 篇文章&#xff0c;本文大约 3200 字&#xff0c;阅读大约需要 10 分钟2020 年第一篇技术文章&#xff0c;以一个新的系列开始--推荐系统&#xff08;Recommend System&#xff09;&#xff0c;第一篇文章会简单介绍推荐系统的定义和应用&#xff0c;目录如下&#xf…

当搭配遇上个性化推荐

总第 111 篇文章&#xff0c;本文大约 3000 字&#xff0c;阅读大约需要 10 分钟今天介绍的是一篇个性化搭配推荐的论文&#xff0c;是 2017 年时候的论文&#xff0c;这也是比较早的开始结合搭配和个性化推荐的一个工作&#xff0c;基于度量学习和排序学习的方法。论文题目&am…

清除浮动造成的影响的解决方案总结

1、将设置float的元素的父元素也设置float。 缺点&#xff1a;很有可能不符合情况要求 2、设置父元素的position为absolute&#xff0c;前提是父元素的父元素并没有设置position&#xff1a;relative。 缺点&#xff1a;很有可能不符合情况要求 3、设置父元素的overflow为hidde…

2020年周记(1/50)

总第 112 篇文章&#xff0c;本文大约 1200 字&#xff0c;阅读大约需要 3 分钟正如标题所言&#xff0c;希望 2020 年能写满 50 篇周记吧&#xff0c;刚好前两周没有发&#xff0c;所以希望接下来每周完成一篇。周记的内容主要是这几方面的内容&#xff1a;工作学习阅读&…

react学习(16)---getFieldDecorator赋值

<Row gutter{12}><Col span{12}><Form.Item label"名称">{getFieldDecorator(name, {rules: [{ required: true, message: 活动名称不能为空 }],})(<Input placeholder"请输入" />)}</Form.Item></Col></Row>